дан массив целых чисел (n=10), заполненный случайными числами из промежутка [-40,30]. 1. удалить из него все элементы, которые состоят из одинаковых цифр(включая однозначные числа). 2. вставить число k перед всеми элементами, в которых есть цифра 1(k вводить с клавиатуры). 3. переставить первые три и последние три элемента местами, сохраняя их следование.

Вопрос пользователя:

дан массив целых чисел (n=10), заполненный случайными числами из промежутка [-40,30]. 1. удалить из него все элементы, которые состоят из одинаковых цифр(включая однозначные числа). 2. вставить число k перед всеми элементами, в которых есть цифра 1(k вводить с клавиатуры). 3. переставить первые три и последние три элемента местами, сохраняя их следование.

Илюха отвечает:

1)

var
a: array[1..20] of integer;
i, j, k: integer;

begin
for i := 1 to 10 do
begin
a[i] := random(71) – 40;
write(a[i]:4);
end;
writeln;
writeln(‘удалили элементы из одинаковых цифр включая однозначные’);
i := 1;
k := 10;
while i <= k do
begin
if (abs(a[i]) < 10) or ((a[i] mod 10) = (a[i] div 10)) then
begin
if i = k then k := k – 1
else
begin
for j := i to k – 1 do a[j] := a[j + 1];
k := k – 1;
end;
end
else
i := i + 1;
end;
for i := 1 to k do
write(a[i]:4);
end.

2)

var
a: array[1..20] of integer;
i, j, k,n: integer;

begin
for i := 1 to 10 do
begin
a[i] := random(71) – 40;
write(a[i]:4);
end;
writeln;
writeln(‘введите k(не должно содержать 1)=’);
readln(k);
writeln(‘вставляем k перед всеми элементами где есть цифра 1’);
i := 1;
n := 10;
while i <= n do
begin
if (abs(a[i]) mod 10=1) or (abs(a[i]) div 10=1) then
begin
for j:=n+1 downto i+1 do a[j]:=a[j-1];
a[i]:=k;
n:=n+1;
i:=i+1;
end;
i := i + 1;
end;
for i := 1 to n do
write(a[i]:4);
end.

3)

var
a: array[1..10] of integer;
i, j, k: integer;

begin
for i := 1 to 10 do
begin
a[i] := random(71) – 40;
write(a[i]:4);
end;
writeln;
writeln(‘меняем местами три первых и три последних элемента’);
for i:=1 to 3 do
begin
k:=a[i];
a[i]:=a[i+7];
a[i+7]:=k;
end;
for i := 1 to 10 do
write(a[i]:4);
end.

 

Добавить свой ответ