begin

       writeln ('n=');

       readln (n);

       writeln ('Введите элементы вектора');

       for i:=1 to n do readln (a[i]);

       min:=a[1];

       imin:=1;

       max:=a[1];

       imax:=1;

       for i:=1 to n do

               begin

                if a[i] < min then

                       begin

                               min:=a[i];

                               imin:=i;

                       end;

                if a[i] >= max then

                       begin

                               max:=a[i];

                               imax:=i;

                       end

               end;

НЕ нашли? Не то? Что вы ищете?

       writeln ('min=', min:8:3,', imin=', imin:3);

       writeln ('max=', max:8:3,', imax=', imax:3);

end.

Внешний вид формы в Delphi


В конструкторе


При выполнении

Для того, чтобы объект StringGrid1 был доступен для внесения в него данных пользователем, необходимо его свойство Options -> goEditing установить в True.

Код программы в среде Delphi

procedure TForm1.Button1Click(Sender: TObject);

{процедура определения количества элементов массива в соответствии с Edit1.Text}

begin

       StringGrid1.ColCount:=StrToInt(Edit1.Text);

end;

procedure TForm1.Button2Click(Sender: TObject);

{процедура определения минимально и максимального элемента в веденном массиве и их позиции}

const n1=100;

var a: array [1 .. n1] of real;

       n, i, imin, imax: integer;

        min, max: real;

begin

       n:= StringGrid1.ColCount;

       for i:=1 to n do

               a[i]:=StrToInt(StringGrid1.Cells[i-1, 0]);

       min:=a[1];

       imin:=1;

       max:=a[1];

       imax:=1;

       for i:=1 to n do

               begin

                if a[i] < min then

                       begin

                        min:=a[i];

                        imin:=i

                       end;

                if a[i] >= max then

                       begin

                        max:=a[i];

                        imax:=i;

                       end

               end;

       Label3.Caption := FloatToStr(min);

       Label5.Caption := FloatToStr(max);

       Label7.Caption := IntToStr(imin);

       Label9.Caption := IntToStr(imax);

end;

Замечание. Для заполнения массива случайным образом используется следующая конструкция:

for i:=1 to n do

       begin

       а[i]:=random(101);

       writeln (а[i])

       end;

Причем, функция random(N+1) генерирует случайным образом числа в диапазоне от 0 до N.

Так, для того чтобы получить случайное число x в некотором заданном диапазоне [a; b] необходимо воспользоваться командой random() следующим образом:

x = random(| b – a | + 1) +a

Лабораторная работа №7

Пусть задан доход фирмы за заданное пользователем количество лет. В том случае, если доход больше нуля, то считается, что в соответствующем году фирма получила прибыль, в противном случае считается, что фирма понесла убыток. Вывести на экран таблицу: год, величина дохода. Найти также данные по дополнительному заданию.

Решить задачу, используя оба способа заполнения массивов: один – в среде Pascal, другой – в среде Delphi.



Формулировка задания

Интервал доходов

1.

Вычислить сумму прибылей фирмы. Определить максимальный убыток, если он был.

[-120; 250]

2.

Вычислить сумму убытков фирмы. В каком году прибыль была наибольшей?

[- 300; 250]

3.

Вычислить суммы прибылей и убытков фирмы и их разность. Когда прибыль была максимальной?

[-150; 450]

4.

Сколько лет подряд у фирмы доходов было меньше 600, но больше 200? Когда фирма понесла наибольший убыток?

[-100; 800]

5.

Вычислить сумму убытков фирмы. В каком году фирма имела наибольшую прибыль?

[-200; 1200]

6.

Вычислить сумму доходов фирмы в диапазоне от 0 до 710. В каком году фирма понесла самые большие убытки?

[-150; 850]

7.

Сколько лет доходы фирмы находились в диапазоне от 200 до 700? Вывести эти года.

[150; 1200]

8.

Вычислить сумму убытков, которые находятся в диапазоне от –600 до –100. Определить наибольший доход фирмы.

[-600; 1500]

9.

Вычислить сумму всех убытков. В каком году фирма имела наибольший убыток? Какова его величина?

[-100; 150]

10.

Определить суммы прибылей и убытков. Сколько лет фирма имела прибыль?

[-350; 670]

11.

Вычислить сумму убытков, которые находятся в диапазоне от –750 до –200. Когда доход фирмы был минимальным?

[-950; 1500]

12.

Вычислить сумму доходов, которые изменяются в диапазоне от 230 до 850. Сколько лет фирма имела такие прибыли?

[-400; 1900]

13.

Вычислить суммы прибылей и убытков за первые семь лет работы и их разность. Найти наибольший доход за этот период.

[-350; 500]

14.

Вычислить сумму прибылей в диапазоне от 170 до 620. Сколько лет фирма имела такую прибыль.

[100; 780]

15.

Вычислить сумму убытков фирмы и количество лет, в которых фирма несла убытки? В каком году убыток был максимальным?

[-350; 750]

16.

Найти наибольший убыток фирмы. Определить в каком году фирма имела максимальный доход.

[-470; 600]

17.

В каком году фирма имела самые большие прибыль и убыток?

[-600; 780]

18.

Вычислить сумму убытков фирмы. Имела ли фирма нулевой доход?

[-350; 620]

19.

Найти суммы доходов, убытков фирмы и их разность. Вычислить минимальный доход фирмы.

[-400; 1300]

20.

Вычислить сумму доходов, которые изменяются в диапазоне от 330 до 590. Найти наибольший убыток фирмы. В каком году это было?

[-350; 1400]

21.

Вычислить сумму убытков фирмы. В каком году фирма имела наименьшую прибыль? Найти ее величину.

[-600; 780]

22.

Вычислить среднее арифметическое всех прибылей и убытков фирмы.

[-200; 2400]

23.

Вычислить суммы прибылей и убытков фирмы за первые пять лет работы фирмы. Сколько лет фирма имела прибыль в этом периоде?

[-50; 670]

24.

Вычислить сумму доходов фирмы в диапазоне от –40 до 90. В каком году фирма имела наибольшие убытки?

[400; 350]

25.

Когда фирма имела доходы в диапазоне от 100 до 580? Когда фирма имела наибольшую прибыль?

[-50; 700]


Двумерные массивы


Двумерные массивы предназначены для работы с табличными данными. В двумерном массиве элементы определяются именем массива и двумя индексами: первый индекс указывает номер строки, а второй – номер столбца, на пересечении которых и находиться элемент массива.

Способы объявления двумерных массивов:

Const

n=9;

ConstArray: array[1..2,1..4] of integer=((4,3,5,3),(4,4,5,3));

Var

time: array[0..23] of array[0..59] of integer;

p: array[1..n,1..n] of integer;

Т. о. получим

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17