Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Osnovy_informatiki_-_9_Tipy_dannykh

.pdf
Скачиваний:
14
Добавлен:
13.02.2015
Размер:
484.47 Кб
Скачать

Инициализация массивов

var A: array [1..4] of integer = (2,1,3,7); // нельзя для локальных переменных

const B: array[0..2] of real= (0.1, 0.01, 0.001);

// можно для локальных переменных

var AA: array [1..3,1..4] of integer = ((1,2,3,4),(5,6,7,8),(9,10,11,12));

10.11.2012

Чердынцева М.И., мехмат ЮФУ

11

Работа с массивом

const RM=10;

type arr = array [1..RM] of integer; var a : arr;

n, i : integer; begin

repeat read(n);

until (n>=1) and (n<=RM); for i:= 1 to n do

read (a[i]); for i:= 1 to n do

writeln(a[i]);

. . .

10.11.2012

Чердынцева М.И., мехмат ЮФУ

12

Циклы for и foreach

for <параметр цикла>:=<нач. значение>

{to | downto} <конеч.значение>do …

foreach <переменная> in <массив> do …

var a:array [1..10] of real; x:real;

begin

foreach x in a do writeln (x);

10.11.2012

Чердынцева М.И., мехмат ЮФУ

13

Стандартные задачи на обработку

одномерных массивов

Пример 1

const NM=100;

type vector:array[1..NM] of integer; var a,b:vector;

i,n:integer;

begin read(n);

for i:=1 to n do read(a[i]);

for i:=1 to n do b[i]:=0; {1 или i,или random(n)} for i:=1 to n do write (a[i],’ ’); writeln;

for i:=1 to n do writeln (b[i]); end.

10.11.2012

Чердынцева М.И., мехмат ЮФУ

15

Модуль

unit arrays; interface const NM=10;

type IArr:array[1..NM] of integer; RArr:array[1..NM] of real;

procedure ReadArr(var a:IArr; n:integer); procedure ReadArr(var a:RArr; n:integer); procedure WriteArr(const a:IArr; n:integer); procedure WriteArr(const a:RArr; n:integer); procedure FillArrRand(var a:IArr; n,r:integer); procedure FillArrVal(var a:IArr; n,val:integer);

procedure FillArrVal(var a:RArr; n:integer; val:real);

10.11.2012

Чердынцева М.И., мехмат ЮФУ

16

Модуль

implementation

procedure ReadArr(var a:IArr; n:integer); var k:integer;

begin

for k:=1 to n do begin write(’a[’,k,’]=’); read(a[k]);

end;

end;

procedure ReadArr(var a:RArr; n:integer); { аналогично }

. . .

10.11.2012

Чердынцева М.И., мехмат ЮФУ

17

Модуль

procedure WriteArr(const a:IArr; n:integer); var k:integer;

begin

for k:=1 to n do

write (’a[’,k,’]=’,a[k]:10); writeln;

end;

procedure WriteArr(const a:RArr; n:integer); { аналогично }

. . .

10.11.2012

Чердынцева М.И., мехмат ЮФУ

18

Модуль

procedure FillArrRand(var a:IArr; n,r:integer); var k:integer;

begin

for k:= 1 to n do a[k]:= random(100);

end;

procedure FillArrVal(var a:IArr; n,val:integer); var k:integer;

begin

for k:=1 to n do a[k]:=val;

end;

procedure FillArrVal(var a:RArr; n:integer; val:real); {аналогично}

. . .

 

 

10.11 2012

Чердынцева М.И., мехмат ЮФУ

19

Модуль

initialization randomize; end.

10.11.2012

Чердынцева М.И., мехмат ЮФУ

20