Сформировать массив из степеней двоек - Pascal

Узнай цену своей работы

Формулировка задачи:

Необходимо сформировать одномерный массив элементы которого определяются выражением an=2n. Элементы полученного массива отсортировать по убыванию методом вставки. Помогите решить!!!!!!!!

Решение задачи: «Сформировать массив из степеней двоек»

textual
Листинг программы
procedure out_arr(s: string; var x: array of word);
var i: integer;
begin
    writeln(s);
    for i := low(x) to high(x) do write(x[i], ' ');
    writeln
end;
 
var a: array [1..16] of word;
    i, j: integer;
    k: word;
begin
  a[1] := 1;
  for i := 2 to 16 do a[i] := a[i - 1] * 2;
  out_arr('Исходный массив:', a);
  for j := 2 to 16 do
    begin
      k := a[j];
      i := j - 1;
      while (i > 0) and (a[i] < k) do
        begin
          a[i + 1] := a[i];
          dec(i)
        end;
      a[i + 1] := k
    end;
  out_arr('Отсортированный массив:', a);
  readln
end.

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

  1. Procedure out_arr(s: string; var x: array of word)
    • Процедура out_arr принимает два параметра: строку s в качестве описания массива и массив слов x.
  2. var i: integer
    • Объявляется переменная i типа integer.
  3. begin
    • Начало основного блока программы.
  4. var a: array [1..16] of word
    • Объявляется массив a размером от 1 до 16 слов.
  5. var i, j: integer k: word
    • Объявляются переменные i и j типа integer, а также переменная k типа word.
  6. a[1] := 1
    • Присвоение элементу с индексом 1 значение 1.
  7. *for i := 2 to 16 do a[i] := a[i - 1] 2**
    • Цикл от 2 до 16, в котором каждому элементу массива a с индексом i присваивается произведение предыдущего элемента на 2.
  8. out_arr('Исходный массив:', a)
    • Вызов процедуры out_arr с описанием Исходный массив: и массивом a в качестве параметров.
  9. for j := 2 to 16 do
    • Цикл от 2 до 16.
  10. k := a[j]
    • Присвоение переменной k значения элемента массива a с индексом j.
  11. i := j - 1 while (i > 0) and (a[i] < k) do a[i + 1] := a[i] dec(i) a[i + 1] := k
    • Запуск вложенного цикла для сортировки вставками.
  12. out_arr('Отсортированный массив:', a)
    • Вызов процедуры out_arr с описанием Отсортированный массив: и массивом a в качестве параметров.
  13. readln
    • Ожидание ввода пользователем.
  14. end.
    • Конец основного блока программы.

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


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

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

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