М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
fedorovaka12346
fedorovaka12346
24.07.2022 02:04 •  Информатика

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

👇
Ответ:
Raigon
Raigon
24.07.2022
Конечно, я могу помочь вам составить такую программу на языке 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 присваивается значения из первых трех элементов.

После выполнения программы будет получен отсортированный массив согласно требованиям задачи. Надеюсь, этот ответ понятен для школьника. Если у вас есть еще вопросы, пожалуйста, спрашивайте.
4,5(19 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ