logo search
Лекция 8_Массивы

Примеры использования массивов

  1. Попарное суммирование элементов массивов А и В.

Program Prim1;

Const N=10;

Var i:integer;

A,B,C:Array[1..N] of Real;

Begin

        FOR i:=1 TO N DO

        begin

                 Write('A[',i,']= '); Readln(A[i]);

                 Write('B[',i,']= '); Readln(B[i])

        end;

        FOR i:=1 TO N DO C[i]:=A[i]+B[i];

        Writeln('----------------------------------');

        FOR i:=1 TO N DO Writeln('C[',i,']=',C[i]:6:1);

        Readln

End.

2. Объединить в массиве “С” массивы “А” и “В” так, чтобы их элементы чередовались: элементы из массива “А” занимали нечетные ячейки, а элементы массива “В” - четные.

Program Prim2;

Const N=10;

Var i:integer;

A,B:Array[1..N] of Real;

C:Array[1..N*2] of Real;

Begin

         FOR i:=1 TO N DO

         begin

                 Write('A[',i,']= '); Readln(A[i]);

                 Write('B[',i,']= '); Readln(B[i])

         end;

         FOR i:=1 TO N DO

         begin

                 C[2*i-1]:=A[i];

                 C[2*i]:=B[i]

         end;

         Writeln('------------------------------');

          FOR i:=1 TO 2*N DO Writeln('C[',i,']=',C[i]:6:1);

          Readln

End.

3. Пример программы ввода-вывода одномерного массива

program priimer1;

uses crt;

var

mas : array [1..10] of integer; {Описание одномерного массива с именем mas, состоящего из 10

элементов типа integer}

n,i : integer; {n-количество элементов массива, i-счетчик в цикле for}

BEGIN

clrscr;

writeln('Введите количество элементов массива не больше 10: ');

readln(n);

for i:=1 to n do {ввод элементов массива}

begin

writeln('Введите ',i,' элемент массива');

readln(mas[i]);

end; {конец ввода}

writeln('Введенный массив: ');

for i:=1 to n do {вывод элементов массива}

write(' ',mas[i],' ');

readkey; {конец вывода}

END.

4. Пример программы ввода-вывода двумерного массива

program primer2;

uses crt;

var

i,j,n,m:integer;

massiv:array[1..10,1..10] of integer; {описан двумерный массив с именем massiv}

BEGiN

clrscr;

write('Введите количество строк массива (не больше 10): ');

read(n); {n-количество строк}

write('Введите количество столбцов массива (не больше 10):');

read(m); {m-количество столбцов}

for i:=1 to n do {ввод элементов двумерного массива}

begin

for j:=1 to m do

read(massiv[i,j]);

end; {конец ввода}

writeln('Введенный массив: ');

for i:=1 to n do {вывод элементов двумерного массива}

begin

for j:=1 to m do

write(massiv[i,j]:5);

end; {конец вывода}

readkey;

END.

5. В квадратной матрице n-го порядка найти и вывести на экран строку, сумма элементов которой максимальна.

Program matrica;

Сonst Nmax = 20;

Var A : Array [1..nmax, 1..nmax ] Of Real;

i,j,N,Nstr : Byte;

S,Smax : Real;

Begin

Writeln ('Ввести порядок матрицы <= ',nmax,' )');

Readln (n);

For i:=1 To N Do

Begin

Writeln ('Введите элементы ',i,'-й строки ');

For j:=1 To N Do Read (A[i,j]);

S:=0;

For j:=1 To N Do S:=S + A[i,j]; {накопление суммы элементов матрицы}

If i=1 Then

Begin

Nstr:=1; {если это первый элемент столбца, то запомнить в S максимальное значение суммы}

{элементов строки}

Smax:=S;

End

Else if S > Smax Then

Begin {сумма элементов текущей строки >, то заменить на бóльшую для дальнейшего сравнения}

Nstr:=i;

Smax:=s;

End;

End;

Writeln ( 'Номер строки = ',nstr );

For j:=1 To N Do Write (A[nstr,j]:10:3); {вывод элементов указанной строки}

Writeln;

End.