Вопрос задан 03.11.2023 в 20:12. Предмет Информатика. Спрашивает Рябцев Матвей.

Дан одномерный массив целых чисел. Выбрать из массива все числа больше заданного числа k и

упорядочить их по убыванию. Программа должна быть на Pascal
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Закотнова Анна.

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.


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа на 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 и сохраняются в начале массива. Затем полученная часть массива сортируется по убыванию, используя пузырьковую сортировку. Наконец, программа выводит отфильтрованный и отсортированный массив.

Обратите внимание, что программа предполагает, что пользователь вводит корректные данные (корректный размер массива и числа). Для упрощения кода выбраны глобальные переменные для массива и его размера. В реальном проекте рекомендуется использовать передачу параметров по ссылке и проверку на корректность ввода данных.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос