Вопрос от посетителя:
Двумерные массивы. 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 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.