Задачи с решениями
Одномерные массивы
Дан одномерный массив.
Произвести циклический сдвиг массива
На один элемент влево
program P1а;
const n=5;
Var
a:array[1..n] of integer;
i,b:integer;
Begin
for i:=1 to n do
read(a[i]);
b:=a[1];
for i:=1 to n-1 do
a[i]:=a[i+1];
a[n]:=b;
for i:=1 to n do
writeln(a[i]);
readln;
readln;
End.
Сдвиг массива на один элемент вправо
program P1b;
const n=5;
Var
a:array[1..n] of integer;
i,b:integer;
Begin
for i:=1 to n do
read(a[i]);
b:=a[n];
for i:=n downto 2 do
a[i:=a[i-1];
a[1]:=b;
for i:=1 to n do
writeln(a[i]);
readln;
readln;
End.
Сдвиг массива на k элементов вправо
program P1c;
const n=5;
Var
a:array[1..n] of integer;
i,b,k,j:integer;
Begin
writeln('BBOD MASSIVA');
for i:=1 to n do
read(a[i]);
writeln('BBOD k');
read(k);
for j:=1 to k do
Begin
b:=a[n];
for i:=n downto 2 do
a[i:=a[i-1];
a[1]:=b;
end;
for i:=1 to n do
writeln(a[i]);
readln;
readln;
End.
Сформировать из последовательности элементов массива
A1, A2, … AN-1, AN
новую последовательность A1*A3, A2*A4, …AN-2*AN
Без использования дополнительного массива
program p2;
const n=5;
Var
a:array[1..n] of real;
i:integer;
Begin
for i:=1 to n do
read(a[i]);
for i:=1 to n-2 do
a[i]:=a[i]*a[i+2];
for i:=1 to n-2 do
writeln(a[i]);
readln;
readln;
End.
Дан одномерный массив.
Найти первый положительный элемент массива
program p3a;
const n=5;
Var
a:array[1..n] of real;
i,k:integer;
Begin
for i:=1 to n do
read(a[i]);
k:=0;
for i:=1 to n do
if a[i]>0 then
Begin
k:=i;
break;
end;
if k=0 then
Writeln('NO')
Else
writeln(k);
readln;
readln;
End.
Дан одномерный массив.
Найти последний положительный элемент массива
program p3b;
const n=5;
Var
a:array[1..n] of real;
i,k:integer;
Begin
for i:=1 to n do
read(a[i]);
k:=0;
for i:=n downto 1 do
if a[i]>0 then
Begin
k:=i;
break;
end;
if k=0 then