Подготовка к ЕГЭ. Основные типы задач на массивы

advertisement
Массивы
Массив - конечная именованная
последовательность однотипных
индексированных величин
При описании необходимо указать:


число элементов;
тип элементов.
Объявление массива
var имя_переменной: array
[тип_индекса] of тип_элемента;
Var x:array [1 .. 10] of real;
a,b:array [1..1000] of integer;
const n = 6;
type intmas = array [1 .. n] of integer;
var a, b : intmas;
Объявление массива
type имя_типа = array [тип_индекса]
of тип_элемента;
var имя_переменной: имя_типа;
type mas = array [1 .. 10] of real;
Color = array [1..1000] of integer;
Var x:mas, a,b:color;
Заполнение массива
По закону:
const n = 20
Var x:array [1 .. n] of integer; I: byte;
begin
for i:=1 to n do
a[i]:=i+5;

Заполнение массива
Случайными числами:
[A,B]
x=int(random(B-A))+A
const n = 20
Var x:array [1 .. n] of integer; I: byte;
begin
randomize;
for i:=1 to n do
a[i]:=int(random(40))-20;

Заполнение массива
Заполнение с клавиатуры:
const n = 20
Var x:array [1 .. n] of integer; I: byte;
begin
for i:=1 to n do
read a[i];

Заполнение массива
чтение из файла:
const n = 20
Var x:array [1 .. n] of integer; I:byte;
begin

assign(<имя файла>, '<физическое
имя файла>');
reset (<имя файла>);
for i:=1 to n do
read (<имя файла >,a[i]);
close (<имя файла>);
Основные задачи на обработку
массивов

Подсчет количества элементов,
удовлетворяющих некоторому условию:
k:=k+1
const n = 20;
Var x:array [1 .. n] of integer; I,k: byte;
begin
randomize;
for i:=1 to n do
begin
read (a[i]);
if (a[i]mod2=0) then k:=k+1;
end;
writeln(k);
end.
Основные задачи на обработку
массивов

Подсчет суммы элементов,
удовлетворяющих некоторому условию:
s:=s+a[i]
const n = 20
Var x:array [1 .. n] of real; I: byte; s:real;
begin
randomize;
for i:=1 to n do
begin
a[i]:=int(random(40))-20; writeln(a[i],’ ‘);
if a[i]>0 then s:=s+a[i];
end;
writeln(s);
end.
Основные задачи на обработку
массивов

Подсчет произведения элементов,
удовлетворяющих некоторому
условию:
p:=p*a[i]
const n = 20
Var x:array [1 .. n] of integer; I:byte; p: comp;
begin
p:=1;
for i:=1 to n do
begin
read a[i];
if (a[i]>0) and (a[i]<10) then p:=p*a[i];
end;
writeln(p);
end.
Основные задачи на обработку
массивов
Обработка пар соседних чисел
const n = 20;
Var x:array [1 .. n] of integer; I,k: byte;
begin
for i:=1 to n do read (a[i]);
for i:=1 to n-1 do
If a[i]*a[i+1]>0 then k:=k+1;
writeln(k);
end.

Основные задачи на обработку
массивов
Нахождение максимального (минимального)
элементов массивав
const n = 20;
Var a:array [1 .. n] of integer; I,nomer: byte;max: integer;
begin
for i:=1 to n do read (a[i]); max:=a[1];nomer:=1;
for i:=2 to n do
If a[i]>max then
begin
max:=a[i];
nomer:=I;
end;
writeln(max, nomer);
end.

Download