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