Описать процедуру RemoveForInc(A,N,K),удаляющую из вещественного мас-сива A размера N элемент с номером К - Pascal ABC
Формулировка задачи:
Описать процедуру RemoveForInc(A,N,K),удаляющую из вещественного мас-
сива A размера N элемент с номером К (уменьшая N). С помощью этой проце-
дуры удалить "лишние"элементы массива так, чтобы оставшиеся элементы
оказались упорядоченными по возрастанию: первый элемент не удаляется,
второй элемент удаляется, если он меньше первого, третий — если он меньше
предыдущего элемента, оставленного в массиве, и т. д. Например, массив 5.5,
2.5, 4.6, 7.2, 5.8, 9.4 должен быть преобразован к виду 5.5, 7.2, 9.4.
очень нужно завтра сдавать (((((((((((((((
Решение задачи: «Описать процедуру RemoveForInc(A,N,K),удаляющую из вещественного мас-сива A размера N элемент с номером К»
textual
Листинг программы
const nmax=100; type mas=array[1..nmax] of real; procedure RemoveForInc(var a:mas;var n:integer; k:integer); var i:integer; begin if k=n then n:=n-1 else begin for i:=k to n-1 do a[i]:=a[i+1]; n:=n-1; end; end; var a:mas; n,i:integer; begin randomize; repeat write('Размер массива А от 2 до ',nmax,' n='); readln(n); until n in [2..nmax]; writeln('Массив A'); for i:=1 to n do begin a[i]:=10*random; write(a[i]:5:1) end; writeln; i:=2; while i<=n do if a[i]<a[i-1] then RemoveForInc(a,n,i) else inc(i); writeln('Измененный массив'); for i:=1 to n do write(a[i]:5:1); end.
Объяснение кода листинга программы
- В первой строке кода объявлена константа nmax, которая определяет максимальное значение размера массива.
- Затем объявлен тип данных mas, который представляет собой массив целых чисел.
- Далее объявлена процедура RemoveForInc, которая принимает три аргумента: a (массив), n (размер массива) и k (номер элемента для удаления). Также в этой процедуре объявлены две переменные i и n, которые используются для выполнения операций.
- В условии if k=n then n:=n-1 проверяется, равен ли номер элемента для удаления размеру массива. Если это так, то размер массива уменьшается на единицу.
- Если условие не выполняется, то в цикле for i:=k to n-1 do происходит перенос элементов массива с индексами от k до n-1 на один шаг влево.
- После этого переменная n уменьшается на единицу.
- Вторая часть кода начинается с объявления переменных a, n и i.
- Затем выполняется цикл repeat, в котором пользователю предлагается ввести размер массива от 2 до nmax.
- После ввода размера массива выполняется цикл for i:=1 до n do, в котором каждый элемент массива a[i] присваивается значению 10*random.
- После этого выводится сообщение 'Массив A'.
- Затем выполняется цикл while, в котором проверяется, если текущий элемент массива a[i] меньше предыдущего элемента, то вызывается процедура RemoveForInc.
- Если условие не выполняется, то переменная i увеличивается на единицу.
- После окончания цикла while выводится измененный массив.
- Наконец, выводится сообщение 'Измененный массив' и выполняется цикл for i:=1 до n do, в котором выводится значение элемента массива a[i].
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д