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

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

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

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

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

textual
Листинг программы
  1. procedure out_arr(s: string; var x: array of word);
  2. var i: integer;
  3. begin
  4.     writeln(s);
  5.     for i := low(x) to high(x) do write(x[i], ' ');
  6.     writeln
  7. end;
  8.  
  9. var a: array [1..16] of word;
  10.     i, j: integer;
  11.     k: word;
  12. begin
  13.   a[1] := 1;
  14.   for i := 2 to 16 do a[i] := a[i - 1] * 2;
  15.   out_arr('Исходный массив:', a);
  16.   for j := 2 to 16 do
  17.     begin
  18.       k := a[j];
  19.       i := j - 1;
  20.       while (i > 0) and (a[i] < k) do
  21.         begin
  22.           a[i + 1] := a[i];
  23.           dec(i)
  24.         end;
  25.       a[i + 1] := k
  26.     end;
  27.   out_arr('Отсортированный массив:', a);
  28.   readln
  29. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы