Задачи с решениями
1. Одномерные массивы
Дан одномерный массив.
Произвести циклический сдвиг массива
на один элемент влево
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
writeln('NO')
else
writeln(k);
readln;
readln;
end.
Дан одномерный массив, все элементы которого различны.
найти наибольший элемент данного массива
program p4a;
const n=5;
var
a:array[1..n] of integer;
i,max:integer;
begin
for i:=1 to n do
read(a[i]);
max:=a[1];
for i:=1 to n do
if a[i]>max then
max:=a[i];
writeln(max);
readln;
readln;
end.
Дан одномерный массив, все элементы которого различны.
найти наименьший элемент данного массива.
program p4b;
const n=5;
var
a:array[1..n] of integer;
i,min:integer;
begin
for i:=1 to n do
read(a[i]);
min:=a[1];
for i:=1 to n do
if a[i]<min then
min:=a[i];
writeln(min);
readln;
readln;
end.
Дан одномерный массив
Найти первый максимальный элемент массива
program p5a;
const n=5;
var
a:array[1..n] of integer;
i,max,imax:integer;
begin
for i:=1 to n do
read(a[i]);
max:=a[1];imax:=1;
for i:=1 to n do
if a[i]>max then
begin
max:=a[i];
imax:=i;
end;
writeln('max,imax');
write(max,' ',imax);
readln;
readln;
end.
Дан одномерный массив
Найти первый минимальный элемент массива
program p5a;
const n=5;
var
a:array[1..n] of integer;
i,min,imin:integer;
begin
for i:=1 to n do
read(a[i]);
min:=a[1]; imin:=1;
for i:=1 to n do
if a[i]<min then
begin
min:=a[i];
imin:=i;
end;
writeln('min,imin');
write(min,' ',imin);
readln;
readln;
end.
Дан одномерный массив
Найти последний максимальный элемент массива
program p5c;
const n=5;
var
a:array[1..n] of integer;
i,max,imax:integer;
begin
for i:=1 to n do
read(a[i]);
max:=a[n]; imax:=n;
for i:=n downto 1 do
if a[i]>max then
begin
max:=a[i];
imax:=i;
end;
writeln('max,imax');
write(max,' ',imax);
readln;
readln;
end.
Дан одномерный массив, все элементы которого различны.
Поменять местами наибольший и наименьший элементы массива.
program p12a;
const n=5;
var
a:array[1..n] of real;
i,imax,imin:integer;
max,min,b:real;
begin
writeln('mas');
for i:=1 to n do
read(a[i]);
max:=a[1];imax:=1;
min:=a[1];imin:=1;
for i:=1 to n do
begin
if a[i]>max then
begin
max:=a[i];
imax:=i;
end;
if a[i]<min then
begin
min:=a[i];
imin:=i;
end;
end;
b:=a[imax];
a[imax]:=a[imin];
a[imin]:=b;
for i:=1 to n do
writeln(a[i]);
readln;readln;
end.
Дан одномерный массив.
Подсчитать количество отрицательных, положительных и нулевых элементов
массива.
program p7;
const n=5;
var
a:array[1..n] of integer;
kpol,kotr,knul,i:integer;
begin
writeln('mas');
for i:=1 to n do
read(a[i]);
kpol:=0; kotr:=0; knul:=0;
for i:=1 to n do
if a[i]>0 then
kpol:=kpol+1
else
if a[i]<0 then
kotr:=kotr+1
else
knul:=knul+1;
write('kpol=',kpol,' kotr= ',kotr,' knul= ',knul);
readln;readln;
end.
Дан одномерный массив. Определить составляют ли элементы
массива строго возрастающую последовательность (первый способ).
program p8;
const n=5;
var
a:array[1..n] of integer;