
Дан одномерный массив целых чисел. Выбрать из массива все числа больше заданного числа k и
упорядочить их по убыванию. Программа должна быть на Pascal

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

var m,a:array [-100..100] of integer;
n,j,i,k,count:integer;
begin
write('введите сколько необходимо чисел: ');
read(n);
write('число к: ');
read(k);
//осуществим ввод n элементов и отсортируем по условию в другой массив а
for i:=1 to n do begin
read(m[i]);
if m[i]>k then begin
inc(count);
a[count]:=m[i];
end;
end;
//отсортируем этот массив пузырьковым методом
for i:=1 to count-1 do begin
for j:=1 to count-i do
if a[j] < a[j+1] then
swap(a[j],a[j+1]);
end;
//выводим уже отсортированный массив чисел > к
for i:=1 to count do
write(a[i],' ');
end.




Программа на Pascal для решения данной задачи может выглядеть следующим образом:
```pascal program Main;
const MAX_SIZE = 100;
type IntArray = array[1..MAX_SIZE] of Integer;
procedure ReadArray(var arr: IntArray; var n: Integer); var i: Integer; begin writeln('Введите размер массива (не более ', MAX_SIZE, '): '); readln(n); writeln('Введите элементы массива:'); for i := 1 to n do readln(arr[i]); end;
procedure PrintArray(const arr: IntArray; n: Integer); var i: Integer; begin writeln('Элементы массива:'); for i := 1 to n do writeln(arr[i]); end;
procedure SortArrayDescending(var arr: IntArray; n: Integer); var i, j, temp: Integer; begin for i := 1 to n do begin for j := 1 to n - i do begin if arr[j] < arr[j + 1] then begin temp := arr[j]; arr[j] := arr[j + 1]; arr[j + 1] := temp; end; end; end; end;
procedure FilterAndSortArray(var arr: IntArray; var n: Integer; k: Integer); var i, j: Integer; begin j := 0; for i := 1 to n do begin if arr[i] > k then begin j := j + 1; arr[j] := arr[i]; end; end; n := j; SortArrayDescending(arr, n); end;
var arr: IntArray; n, k: Integer; begin ReadArray(arr, n); writeln('Введите число k:'); readln(k); FilterAndSortArray(arr, n, k); PrintArray(arr, n); end. ```
В данной программе вводится массив целых чисел, затем вводится число k. Далее производится фильтрация массива - выбираются все числа больше k и сохраняются в начале массива. Затем полученная часть массива сортируется по убыванию, используя пузырьковую сортировку. Наконец, программа выводит отфильтрованный и отсортированный массив.
Обратите внимание, что программа предполагает, что пользователь вводит корректные данные (корректный размер массива и числа). Для упрощения кода выбраны глобальные переменные для массива и его размера. В реальном проекте рекомендуется использовать передачу параметров по ссылке и проверку на корректность ввода данных.


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







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