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

alena13gerda alena13gerda    2   24.04.2019 19:13    6

Ответы
Dasha1648938190 Dasha1648938190  26.01.2024 05:49
Конечно, я могу помочь вам составить такую программу на языке PascalABC.

Ниже приведен код программы:

```pascal
program SchoolTeacher;

var
arr: array[1..10] of integer;
i, j, k, x, n: integer;
numArr: array[1..10] of integer;
numDigitsArr: array[1..10] of integer;

begin
randomize;
// Шаг 1: заполняем массив случайными числами
for i := 1 to 10 do
begin
arr[i] := random(71) - 40; // генерируем случайное число от -40 до 30
writeln('arr[', i, '] = ', arr[i]);
end;

// Шаг 2: удаляем элементы, состоящие из одинаковых цифр
for i := 1 to 10 do
begin
x := arr[i];
k := 0;
while x <> 0 do
begin
numArr[k + 1] := x mod 10;
x := x div 10;
k := k + 1;
end;
numDigitsArr[i] := k;

for j := 1 to k div 2 do
begin
if numArr[j] = numArr[k - j + 1] then
begin
arr[i] := 0; // заменяем число на 0, чтобы позже удалить его
end;
end;
end;

for i := 1 to 10 do
begin
if arr[i] <> 0 then
begin
// выводим только неудаленные числа
writeln('arr[', i, '] = ', arr[i]);
end;
end;

// Шаг 3: добавляем число к к элементам, в которых есть цифра 1 с клавиатуры
writeln('Введите число к:');
readln(k);

for i := 1 to 10 do
begin
x := arr[i];
while x <> 0 do
begin
if (x mod 10) = 1 then
begin
arr[i] := k * 10 + arr[i];
break; // прерываем цикл, чтобы не добавлять число к нескольким элементам
end;
x := x div 10;
end;
writeln('arr[', i, '] = ', arr[i]);
end;

// Шаг 4: переставляем первые три и последние три элемента местами
for i := 1 to 3 do
begin
x := arr[i];
arr[i] := arr[7 + i];
arr[7 + i] := x;
end;

for i := 1 to 10 do
begin
writeln('arr[', i, '] = ', arr[i]);
end;

readln;
end.
```

Объяснение:

1. На шаге 1 мы используем цикл для заполнения массива `arr` случайными числами из диапазона [-40, 30]. Функция `random(71) - 40` генерирует случайное число от 0 до 70, а затем вычитаем 40 для получения чисел из диапазона [-40, 30]. Затем мы выводим все элементы массива.

2. На шаге 2 мы используем цикл для проверки каждого элемента массива на наличие одинаковых цифр. Для этого мы разделяем число на цифры и сохраняем их в отдельный массив `numArr`. Затем сравниваем цифры из начала и конца числа, и если они одинаковы, заменяем элемент массива на 0.

3. На шаге 3 мы считываем число `k` с клавиатуры и затем проверяем каждый элемент массива на наличие цифры 1. Если цифра найдена, мы добавляем число `k` перед этим элементом, умноженное на 10.

4. На шаге 4 мы используем цикл для перестановки первых трех элементов массива со вторыми третьими. Это достигается путем присваивания значений первых трех элементов элементам с индексами 7, 8 и 9, а затем значениям с индексами 7, 8 и 9 присваивается значения из первых трех элементов.

После выполнения программы будет получен отсортированный массив согласно требованиям задачи. Надеюсь, этот ответ понятен для школьника. Если у вас есть еще вопросы, пожалуйста, спрашивайте.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика