
Задана последовательность a1. ап вещественных чисел. Округлить каждое до целого ирасположить по
убыванию. Вывести исходный и полученный массив. Вставить в него число Р.сохраняя упорядоченность. Pascal abc

Ответы на вопрос

var
A: array [1..11] of Real;
i, j, aj, ai: Integer;
amax, atmp, P: Real;
begin
Randomize;
WriteLn ('Исходный массив:');
for i := Low (A) to High (A) - 1 do begin
A [i] := Random * 100;
Write (A [i]:5:2, ' ');
end;
for i := Low (A) to High (A) - 1 do begin
A [i] := Round (A [i]);
end;
for i := Low (A) to High (A) - 1 do begin
amax := A [i];
aj := i;
for j := i to High (A) do begin
if A [j] > amax then begin
amax := A [j];
aj := j;
end;
end;
if i <> aj then begin
atmp := A [i];
A [i] := A [aj];
A [aj] := atmp;
end;
end;
WriteLn;
WriteLn ('Полученный массив:');
for i := Low (A) to High (A) - 1 do begin
Write (A [i]:5:2, ' ');
end;
WriteLn;
Write ('Введите число Р: ');
Read (P);
ai := High (A);
for i := Low (A) to High (A) - 1 do begin
if P > A [i] then begin
ai := i;
Break;
end;
end;
for i := High (A) downto ai + 1 do
A [i] := A [i - 1];
A [ai] := P;
WriteLn ('Массив после вставки:');
for i := Low (A) to High (A) do begin
Write (A [i]:5:2, ' ');
end;
end.



Для решения данной задачи в Pascal ABC (Pascal for Artificial Intelligence, Big Data, and Cloud Computing), мы можем использовать следующий алгоритм:
- Заполним исходный массив a из вещественных чисел.
- Округлим каждое число до целого, сохраняя результат в новом массиве b.
- Отсортируем массив b по убыванию.
- Вставим число Р в массив b, сохраняя упорядоченность.
- Выведем исходный массив a и полученный массив b.
Вот как выглядит решение на Pascal ABC:
pascalprogram RoundAndSort; const N = 5; // Размерность массива var a: array[1..N] of Real; // Исходный массив с вещественными числами b: array[1..N] of Integer; // Массив с округленными целыми числами i, j, P: Integer; // Переменные для циклов и числа P // Процедура для сортировки массива b по убыванию procedure SortDescending(var arr: array of Integer); var i, j, temp: Integer; begin for i := 0 to High(arr) do begin for j := i + 1 to High(arr) do begin if arr[i] < arr[j] then begin temp := arr[i]; arr[i] := arr[j]; arr[j] := temp; end; end; end; end; begin // Ввод исходного массива a writeln('Введите ', N, ' вещественных чисел:'); for i := 1 to N do readln(a[i]); // Округление каждого числа до целого и сохранение в массив b for i := 1 to N do b[i] := Round(a[i]); // Сортировка массива b по убыванию SortDescending(b); // Ввод числа P, которое нужно вставить writeln('Введите число P:'); readln(P); // Поиск позиции для вставки числа P в массив b i := 1; while (i <= N) and (b[i] >= P) do i := i + 1; // Вставка числа P в массив b, сдвигая элементы if i <= N then begin for j := N downto i + 1 do b[j] := b[j - 1]; b[i] := P; end else b[N] := P; // Вывод исходного массива a и полученного массива b writeln('Исходный массив:'); for i := 1 to N do write(a[i]:8:2, ' '); writeln; writeln('Полученный массив:'); for i := 1 to N do write(b[i]:8, ' '); writeln; end.
Примечание: Пожалуйста, убедитесь, что у вас установлена и настроена среда Pascal ABC для успешного выполнения этой программы.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







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