Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачи с решениями.doc
Скачиваний:
1
Добавлен:
19.07.2019
Размер:
125.95 Кб
Скачать

13

Задачи с решениями

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;