Osnovy_informatiki_-_9_Tipy_dannykh
.pdfИнициализация массивов
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 |