Ввод массива
Если вы вводите значения элементов массива с клавиатуры, то получится следующая запись:
.
.
for i:=1 to 5 do
read(a[i]);
.
Можно заполнить массив с помощью генератора случайных чисел:
.
.
randomize;
for i:=1 to 5 do
a[i]:=random(50);
.
.
В этом случае массив заполнится случайными целыми числами от 0 до 49.
Если использовать запись a[i]:=random; массив заполнится случайными действительными числами от 0 до 1.
Вывод массива
Чтобы вывести массив, нужно также последовательно перебрать, вывести на печать все его элементы. Для этого используем оператор цикла со счетчиком.
вывод в одну строку –
.
.
for i:=1 to 5 do
write(a[i],’ ‘);
.
.
вывод в столбец –
.
.
for i:=1 to 5 do
writeln(a[i]);
.
.
Примеры:
1. Вычислить сумму пятнадцати целых чисел. Для обозначения чисел введем имя массива x, элементы которого имеют индекс i. Сумму обозначим именем sum. Тогда sum=x[1] +x[2] + ••• +x[15].
----------------------------------------------
Program P1;
var
x : array [1..15] of integer;
sum, i: integer;
begin
sum:=0;
for i:=1 to 15 do
begin
read(x[i]);
sum:= sum + x[i];
end;
writeln(‘sum=’,sum);
end.
Внутри цикла вводится значение одного элемента массива x[i] и оно прибавляется к значению текущей суммы sum. Цикл повторяется 15 раз. Элементы массива имеют целый тип (integer), а индекс — ограниченный тип 1..15.
Переменная i, с одной стороны, используется как параметр цикла, а с другой — в качестве индекса. В этом случае описать переменную i можно двояко:
а) в разделе переменных var указать переменную i как ограниченного типа, например
var
x : array [1..15] of integer;
i :1..15;
б) учитывая, что элементами ограниченного типа являются целые числа, можно ввести описание integer, например
var
x : array [1..15] of integer;
i : integer;
Так как в языке ПАСКАЛЬ требуется описание всех переменных, то необходимо описать еще и переменную sum. Естественно, что она имеет тип integer, так как все суммарные числа x[i] имеют целый тип
---------------------------------------------------------------------------------------
Рассчитать сумму элементов массива А из N элементов (7<N<10).
----------------------------------------------------------------------------------------
Program massiv;
var i,n:byte;
s:integer;
a:array [ 1..10] of integer;
begin
writeln(‘введите n от 7 до 10’);
read(n);
s:=0;
for i:=1 to n do
begin
read(a[i]);
s:=s+a[i];
end;
writeln(‘s=‘,s);
end.
-------------------------------------------------------------------
Вычислите произведение 10 элементов массива А вещественного типа.
-----------------------------------------------------------------------------------------------
Program massiv1;
Var
p : real;
i : integer;
a:array [1..10] of real;
begin
p := 1;
writeln('Введите массив a');
for i: = 1 to 10 do
begin
read(a[i]);
p:=p*a[i];
end;
writeln('p=',p:10:4);
end.
-------------------------------------------------------------------------------
Даны n натуральных чисел a1, a2, ... an. Определите среднее арифметическое членов последовательности, которые кратны 3 и не кратны 5.
--------------------------------------------------------------------------------
Program sr;
Var a : array [1..50] of integer;
i, n, k : integer;
s, sa : real;
begin
writeln('Bведите n');
readln(n);
writeln('Введите элементы массива a');
for i:=l to n do
read(a[i]);
writeln;
s:=0;
k:=0;
for i:=1 to n do
begin
if (a[i] mod 3=0) and (a[i] mod 5<>0) then
begin
s:=s+a[i];
k:=k+1;
end;
end;
if k=0 then
writeln('Нет решения')
else
begin
sa:=s/k;
writeln('sa=',sa:12:3);
end;
end.
---------------------------------------------------------------------------