Двумерные массивы. Paskal Дан массив целых чисел (n=20), заполненный случайным образом числами из промежутка [-45;95]. 1, удалить из него все элементы, кратные 7 и принадлежащие промежутку [a,b] (a и b вводить с клавиатуры) 2, вставить число k между всеми соседними элементами, которые образуют пару элементов с одинаковыми знаками (k вводить с клавиатуры) 3, переставить в обратном порядке часть массива между элементами с номерами kl и k2, включая их. Сделать проверку корректности ввода kl и k2, если ввод неправильный, то ничего не делать.

Ответы

Ответ дал: sinbad7
0

1)

var

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

i,j,k,a,b,f:integer;

begin

randomize;

readln(a);

readln(b);

k:=0;

for i:=1 to 20 do

begin

a[i]:=random(135)-45;

f:=0;

for j:=a to b do

if (a[i]=j) and (a[i] mod 7 =0) then f:=1;

if f=0 then

begin

k:=k+1;

b[k]:=a[i];

end;

end;

for i:=1 to k do

writeln(b[i]);

end.

2)

var

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

i,j,k:integer;

begin

randomize;

readln(k);

j:=0;

for i:=1 to 20 do

begin

a[i]:=random(135)-45;

writeln(a[i]);

for i:=1 to 19 do

begin

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

begin

j:=j+1;

b[j]:=a[i];

j:=j+1;

b[j]:=k;

end

else

begin

j:=j+1;

b[j]:=a[i];

end;

end;

j:=j+1;

b[j]:=a[20];

for i:=1 to j do

writeln(b[j]);

 

3)

var

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

i,j,k1,k2:integer;

begin

randomize;

readln(k1);

readln(k2);

if k1<k2 then

begin

for i:=1 to 20 do

begin

a[i]:=random(135)-45;

writeln(a[i]);

end;

for i:=1 to k1-1 do

b[i]:=a[i];

for i:=k2+1 to 20 do

b[i]:=a[i];

j:=k2;

for i:=k1 to k2 do

begin

b[j]:=a[i];

j:=j-1;

end;

for i:=1 to 20 do

writeln(b[i]);

end;

end.

 

Похожие вопросы