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

10

Задачи с решениями Одномерные массивы

Дан одномерный массив.

Произвести циклический сдвиг массива

на один элемент влево

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;

i,k:integer;

begin

for i:=1 to n do

read(a[i]);

k:=0;

for i:=1 to n-1 do

if a[i+1]>a[i] then

k:=k+1;

if k=n-1 then

writeln('yes')

else

writeln('no');

readln;

readln;

end.

Дан одномерный массив. Определить составляют ли элементы

массива строго возрастающую последовательность (второй способ).

program p9;

const n=5;

var

a:array[1..n] of integer;

i,k:integer;

begin

for i:=1 to n do

read(a[i]);

k:=0;

for i:=1 to n-1 do

if a[i+1]<=a[i] then

k:=1;

if k=0 then

writeln('yes')

else

writeln('no');

readln;

readln;

end.

Дан массив А из 2*N элементов.

Получить новую последовательность A1, A2N, A2, A2N-1, …, AN, AN+1

program p11;

const n=3;

var

a,b:array[1..2*n] of real;

i:integer;

begin

for i:=1 to 2*n do

read(a[i]);

for i:=1 to n do

begin

b[2*i-1]:=a[i];

b[2*i]:=a[2*n-i+1];

end;

For i:=1 to 2*n do

writeln(b[i]);

readln;

readln;

end.

Дан массив А из 2*N элементов.

Получить новую последовательность A2N, AN, A2N-1, …, AN+1, A1.

program p12;

const n=3;

var

a,b:array[1..2*n] of real;

i:integer;

begin

for i:=1 to 2*n do

read(a[i]);

for i:=1 to n do

begin

b[2*i-1]:=a[2*n-i+1];

b[2*i]:=a[n-i+1];

end;

For i:=1 to 2*n do

writeln(b[i]);

readln;

readln;

end.

Дан одномерный массив.

Подсчитать количество элементов, равных заданному значению.

program p13;

const n=5;

var

a,b:array[1..n] of integer;