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 |




