Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л7_2012 мас_ы.doc
Скачиваний:
2
Добавлен:
19.11.2019
Размер:
88.06 Кб
Скачать
  1. Составление программ с структурированными данными.

2.1 Составление программ с массивами

пример1 {организация ввода и вывода матрицы }

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

var a:array[1..4,1..3] of byte;

i,j:byte;

begin

writeln('Enter elementi masiva');

for i:=1 to 4 do

for j:=1 to 3 do

readln(a[i,j]);

writeln; writeln;

readln;

for i:=1 to 4 do

begin

for j:=1 to 3 do

write(a[i,j]:2,' ');

writeln;

end;

readln

end.

Пример2 Составить программу нахождения суммы элементов массива.

Прежде чем находить сумму, надо заполнить массив элементами (числами), а это можно сделать только поэлементно, т.е. присвоить значение сначала первому элементу, затем второму и т.д.

Рассмотрим два способа заполнения массива:

Первый способ заполнения одномерного массива - с клавиатуры:

const n=30;

var m: array [1..n] of integer; I:integer;

. . . . . . . . .

begin

writeln(‘введите’, n , ‘ целых чисел’ );

for I:=1 to n do readln m[i] ; . . .

end.

Второй способ заполнения - с помощью генератора случайных чисел:

Функция random(n) выбирает случайное число из отрезка от 0 до n-1.

Этот способ более удобен, когда в массиве много элементов, а их точные значения не очень важны.

Const m=30; n=51; {m – количество элементов; n – используется в генераторе}

Var a:array[1..m] of integer; I: integer;

. . . . . . . . .

begin

for I:=1 to m do a[I]:= - 25 + random(n);. . .

end.

Числа будут выбираться из отрезка 0 – 50, значит, очередному элементу будет присвоено значение -25+ случайное число из отрезка от 0 до 50.

Решение предложенной выше задачи:

Для вычисления суммы будем использовать так называемый алгоритм накопления, который

заключается в том, что для вычисления суммы n слагаемых необходимо n раз выполнить оператор:

S := S+ i-oe слагаемое;

где i = 1, 2, 3,..., n; Если указанный оператор выполняется первый раз, т.е. i = 1, то S должна содержать 0.

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

const n=100; m=61;

var a : array[1..100] of integer;

I,s: integer;

begin

s:=0;

for I:=1 to n do

begin

a[I]:= -30 + random(m);

write(a[i]:2,' ');

s:=s + a[I]

end;

writeln;

writeln (' suma = ' , s:5) ;

readln

end.

пример 3: сумма элементов 2-мерного массива

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

var a:array[1..4,1..3] of byte;

i,j,s:byte;

begin

writeln('Enter elementi masiva');

for i:=1 to 4 do

for j:=1 to 3 do

readln(a[i,j]);

writeln; writeln;

readln;

s:=0;

for i:=1 to 4 do

begin

for j:=1 to 3 do

s:=s+a[I,j];

write(a[i,j]:2,' ');

writeln;

end;

writeln (' suma = ' , s:5) ;

readln

end.

Пример 1_а

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas= array[1..4,1..3] of byte;

var b:mas;

i,j:byte;

procedure vvod(var a:mas);

begin

writeln('Enter elementi masiva');

for i:=1 to 4 do

for j:=1 to 3 do

readln(a[i,j]);

end;

procedure vivod(a:mas);

begin

for i:=1 to 4 do

begin

for j:=1 to 3 do

write(a[i,j]:2,' ');

writeln;

end;

end;

begin

vvod(b);

writeln; writeln;

readln;

vivod(b);

readln

end.