Описать процедуру 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.

Объяснение кода листинга программы

  1. В первой строке кода объявлена константа nmax, которая определяет максимальное значение размера массива.
  2. Затем объявлен тип данных mas, который представляет собой массив целых чисел.
  3. Далее объявлена процедура RemoveForInc, которая принимает три аргумента: a (массив), n (размер массива) и k (номер элемента для удаления). Также в этой процедуре объявлены две переменные i и n, которые используются для выполнения операций.
  4. В условии if k=n then n:=n-1 проверяется, равен ли номер элемента для удаления размеру массива. Если это так, то размер массива уменьшается на единицу.
  5. Если условие не выполняется, то в цикле for i:=k to n-1 do происходит перенос элементов массива с индексами от k до n-1 на один шаг влево.
  6. После этого переменная n уменьшается на единицу.
  7. Вторая часть кода начинается с объявления переменных a, n и i.
  8. Затем выполняется цикл repeat, в котором пользователю предлагается ввести размер массива от 2 до nmax.
  9. После ввода размера массива выполняется цикл for i:=1 до n do, в котором каждый элемент массива a[i] присваивается значению 10*random.
  10. После этого выводится сообщение 'Массив A'.
  11. Затем выполняется цикл while, в котором проверяется, если текущий элемент массива a[i] меньше предыдущего элемента, то вызывается процедура RemoveForInc.
  12. Если условие не выполняется, то переменная i увеличивается на единицу.
  13. После окончания цикла while выводится измененный массив.
  14. Наконец, выводится сообщение 'Измененный массив' и выполняется цикл for i:=1 до n do, в котором выводится значение элемента массива a[i].

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы