В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
ulianna26
ulianna26
22.12.2020 21:44 •  Информатика

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

Показать ответ
Ответ:
denis200518
denis200518
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 присваивается значения из первых трех элементов.

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