Решение заданий С2
Одномерные массивы
Теория по теме «Одномерные массивы»
А — имя массива
Индексы
1
3
2
3
7
4
9
5
1
2
Значения
1, 2 …5 — номер элемента.
А[3]=9
Значение
Доступ к каждому элементу массива осуществляется по его индексу (порядковому номеру).
Индексы указываются после имени массива в КВАДРАТНЫХ скобках.
Имя массива
Индекс
Описание массива
: array[..] of ;
Например,
var M: array[1..17] of Real;
Заполнение массива
Заполнение массива можно производить:
- с клавиатуры;
- через датчик случайных чисел;
- через оператор присваивания (по формуле)
Способ 1
Ввод:
For i:=1 to n do readln(a[i]);
Вывод:
For i:=1 to n do writeln(a[i]);
Способ 2
Через датчик или генератор случайных чисел RANDOM(i) .
Randomize;
For i:=1 to n do begin
а[i]:=random(i);
Если требуется, чтобы значения элементов массива выбирались из определенного интервала [a,b],
то
a+Random(b-a+1);
Способ 3
По формуле:
For i:=1 to n do а[i]:=i*3;
Формирование нового массива из четных элементов и подсчет их количества.
var i,y:integer;
s:array [1..10] of integer;
begin
for i:=1 to 10 do
read(s[i]);
for i:=1 to 10 do
if s[i] mod 2=0 then begin
writeln (s[i]);
y:=y+1;
end;
writeln;
writeln('количество четных чисел = ',y)
end.
Сформировать одномерный массив из N элементов, где элементы массива - целые случайные числа в пределах от 1 до 45. Напечатать элементы массива в прямом и обратном порядке.
var i, n:integer;
a:array[1..10000] of integer;
begin
randomize;
write(' размер =' );readln(n);
for i:=1 to n do
begin
{Получаем случайные числа в пределах от 1 до 45.}
a[i]:=random(46))+1;
{Выводим элементы массива на экран.}
write(a[i], ' ' );
end;
{Полученный массив печатаем в обратном порядке.}
for i:=n downto 1 do
write(a[i],' ');
readkey; end.
С2 . Составьте программу, которая вводит с клавиатуры 8 целых неотрицательных чисел (каждое число — с новой строки отдельной командой «ввод»), записывает их в массив, выводит на экран сначала в прямом порядке все без исключения элементы массива, затем, в обратном порядке относительно следования в массиве, все чётные элементы. Например, для массива «1 2 5 4 5 3 7 8» программа должна выводить числа в таком порядке: 1 2 5 4 5 3 7 8 8 4 2. Каждое число программа должна выводить в отдельной строке; ничего, кроме чисел, программа выводить не должна
1 способ: program dfgh;
var j,i,b,n:integer;
a:array[1..10000] of integer;
begin
randomize;
readln(n);
for i:=1 to n do
begin
a[i]:=random(46)+1;
write(a[i],' ');
end;
for i:=n downto 1 do begin
if a[i] mod 2=0 then
write(a[i]);
end;
readln;
end.
2 способ:
var a:array[1..8] of integer;
i:integer;
begin
for i:=1 to 8 do
readln(a[i]);
for i:=1 to 8 do
writeln(a[i]);
for i:=8 downto 1 do
if a[i]mod 2 =0 then
writeln(a[i]);
end.
Дан одномерный целочисленный массив.
Вычислить среднее арифметическое значение элементов кратных 5.
cоnst n=10;
var i,j,s:integer;
sr:real;
a:array[1..n] of integer;
begin
Randomize;
s:=0;
j:=0;
for i=1 to n do begin
a:= Random(10)+1;
writeln(a[i]);
if a[i] mod 5 = 0 then begin
s:=s+a[i];
j:=j+1;
end; end;
if j 0 then sr:=s/j;
writeln(sr:5:1); readln;
end.
Дан одномерный целочисленный массив. Вычислить среднее арифметическое значение элементов, стоящих на четных местах и имеющих нечетные значения.
cоnst n=10;
var i,j,s:integer;
sr:real;
a:array[1..n] of integer;
begin
Randomize;
s:=0;
j:=0;
for i=1 to n do
begin
a:= Random(10)+1;
writeln(a[i]);
if i mod 2 = 0 then
if a[i] mod 2 0 then begin
s:=s+a[i];
j:=j+1; end; end;
if j 0 then sr:=s/j;
writeln(sr:5:1); readln; end.
Задачи:
- Одномерный массив из 7 элементов заполнить случайным образом числами от 5 до 9. Заменить все элементы массива равные 7 единицами. Вывести на экран монитора первоначальный и преобразованный массивы в строчку.
- Одномерный массив из 9 элементов заполнить случайным образом числами от 2 до 7. Заменить все элементы массива меньше 5 нулями. Вывести на экран монитора первоначальный и преобразованный массивы в столбик.
- Одномерный массив из 10 элементов заполнить случайным образом числами от -5 до 5. Заменить все отрицательные элементы массива 0, а положительные увеличить на 2. Вывести на экран монитора первоначальный и преобразованный массивы в строчку.