Пример.
Пусть элементы двумерного массива b размером 5х5 заданы следующей формулой: b[i, j]=i+j2, где i, j=1,..,5.Создать и вывести массив y, состоящий из элементов массива b, значение которых больше 20.
Блок-схема

Код программы в среде Pascal
program Search;
uses Crt;
type arr1=array[1..5, 1..5] of real
arr2=array[1..25] of real;
var b: arr1;
y: arr2;
i, j, k : integer;
begin
clrscr;
k:=0; {Счетчик количество элементов массива b, которые >20}
{Введем двумерный массив b}
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
b[i, j] :=i + j * j;
write(b[i, j]:7:2);
if b[i, j] > 20 then
begin
k := k + 1;
y[k] := b[i, j];
end;
end;
writeln();
end;
if k = 0 then write(‘В массиве нет элементов > 20’)
else
begin
writeln(‘Получен следующий массив’);
for i:=1 to k do writeln(y[i]:7:2);
end;
readln;
end.
Внешний вид формы в Delphi
В конструкторе | При выполнении |
|
|
Код программы в среде Delphi
…
var
Form1: TForm1;
b: array [1..5, 1..5] of real;
y: array [1..25] of real;
{двумерный и результирующий одномерный массивы объявляются как глобальные}
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
{ формирование двумерного массива}
var i, j: integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
begin
b[i, j]:=i+j*j;
StringGrid1.Cells[i-1,j-1] := FloatToStr(b[i, j]);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
{формирование результирующего массива }
var i, j, k: integer;
min : real;
begin
k:=0;
for i:=1 to 5 do
begin
for j:=1 to 5 do
if b[i, j] > 20 then
begin
k := k + 1;
y[k] := b[i, j];
end;
end;
if k = 0 then Label1.Caption:='В массиве нет элементов > 20'
else
begin
Label1.Caption:='Получен следующий массив :';
StringGrid2.ColCount:=k;
for i:=1 to k do StringGrid2.Cells[i-1, 0]:= FloatToStr(y[i]);
end;
end;
end.
Лабораторная работа №9
Задача о выборах.
Пусть в шести избирательных участках проходят выборы, в которых участвуют одни и те же 5 кандидатов. Количество голосов, отданных за каждого кандидата в каждом населенном пункте, является равномерно распределенной случайной величиной в заданном для каждого варианта диапазоне. Вывести на экран таблицу результатов голосования, где значения в строчках – данные из избирательного участка, а в столбцах – данные по конкретным кандидатам. Выполнить задание двух вариантов: один – в среде Pascal, другой – в среде Delphi. Создать одномерный массив с искомыми данными.
№ | Формулировка задания | Диапазон |
1. | Вывести итоговые результаты по проголосовавшим для каждого кандидата. | [53; 147] |
2. | Определить номера избирательных участков, где количество проголосовавших превысило 150 человек. | [19; 213] |
3. | Кто из кандидатов набрал максимальное количество голосов на заданном пользователем избирательном участке. | [42; 187] |
4. | Какое суммарное количество голосов было подано за двух заданных пользователем кандидатов во всех избирательных участках. | [67; 194] |
5. | Для каждого избирательного участка вывести номер победившего на этом участке кандидата. | [45; 174] |
6. | Для каждого кандидата вывести номер участка, где кандидат набрал максимальное количество голосов по сравнению с другими участками. | [37; 284] |
7. | Сколько избирателей участвовали в голосовании на каждом избирательном участке? | [94; 168] |
8. | На каких избирательных участках количество проголосовавших больше некоторого заданного пользователем числа. | [49; 147] |
9. | Кто из кандидатов набрал минимальное количество голосов на заданном пользователем избирательном участке. | [52; 211] |
10. | За кого из кандидатов подано общее количество голосов меньше некоторого заданного пользователем числа. | [85; 192] |
11. | На каких избирательных участках заданный пользователем кандидат победил? | [64; 153] |
12. | На каких избирательных участках заданный пользователем кандидат проиграл? | [87; 205] |
13. | Для каждого избирательного участка вывести номер кандидата, набравшего наименьшее количество голосов. | [36; 208] |
14. | На каких избирательных участках количество проголосовавших меньше некоторого заданного пользователем числа. | [31; 142] |
15. | На каких участках заданный пользователем кандидат набрал максимальное и минимальное количество голосов по сравнению с остальными участками? | [65; 190] |
16. | На каких участках заданный пользователем кандидат набрал максимальное и минимальное количество голосов по сравнению с другими кандидатами на этих же участках? | [34; 195] |
17. | На каких избирательных участках количество проголосовавших больше некоторого заданного пользователем числа. | [48; 167] |
18. | У каких кандидатов рейтинг больше заданного пользователем числа. | [76; 204] |
19. | Для каких кандидатов число проголосовавших на выбранном пользователем участке больше заданного пользователем числа? | [52; 165] |
20. | Для каких кандидатов общее количество проголосовавших на двух заданных пользователем участках больше некоторого числа, заданного пользователем. | [27; 203] |
21. | Для каждого кандидата вывести среднее арифметическое количество голосов по всем участкам. | [65; 195] |
22. | Вывести номера участков с максимальным и минимальным количеством проголосовавших. | [79; 204] |
23. | Определить двух кандидатов, набравших наибольшее количество голосов в заданном пользователем избирательном участке. | [58; 126] |
24. | Для каждого избирательного участка определить отношение голосов за победившего кандидата к общему числу проголосовавших. | [22; 166] |
25. | Для каждого избирательного участка определить отношение голосов за выбранного пользователем кандидата к общему числу проголосовавших за этого кандидата на всех участках. | [45; 196] |
Строки
Данные строкового типа – это ограниченная последовательность произвольных символов, т. е. элементов типа char. Постоянные строкового типа записываются в апострофах. Длинна строки может быть от 0 до 255 символов.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |




