Пример.

Пусть элементы двумерного массива 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