Работа с массивом через диалоговое меню - PascalABC.NET

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

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

Я новичок, ошибок куча. Прошу указать по возможности на каждую. Программа не запускается из - за ошибок, как решить их - не знаю((
1 функция должна увеличивать нечетные по порядку числа массива на число, введенное пользователем 2 функция менять местами числа слева и справа от центрального 3 функция ищет максимальное число кратное 5 4 функция сортирует массив пузырьком по убыванию

Решение задачи: «Работа с массивом через диалоговое меню»

textual
Листинг программы
const N = 10;
type mas = array [1..N] of integer;
 
procedure ArrayPrint(a: mas);
begin
  for var i := 1 to N do
    write(a[i], ' ');
  writeln;
end;
 
function uvel(var a: mas): integer;
var k, i: integer;
begin
  writeln('введите число, на которое хотите увeличить нечетные числа по порядку');
  readln(k);
  for i := 1 to N do 
    if i mod 2 > 0 then
      a[i] := a[i] + k;
  ArrayPrint(a);
end;
 
 
function exchange(var a: mas): integer;
var t, i: integer;
begin
  for i := 1 to N div 2 do begin
    t := a[i];
    a[i] := a[N - i + 1];
    a[N - i + 1] := t
  end;
  ArrayPrint(a);
end;
 
function Max(var a: mas): integer;
var max, i: integer;
begin
  write(' максимальный элемент, кратный 5 - ');
  max := -16;
  for i := 1 to N do
    if (a[i] mod 5 = 0) and (a[i] > max) then
      max := a[i];
  if max = -16 then
    writeln('Такого числа нет')
  else
    writeln(max);
end;
 
 
 
function ubivanie(var a: mas): integer;
var i, j, c: integer;
begin
  for i := 1 to n - 1 do
    for j := 1 to n - 1 do
      if(a[j] < a[j + 1]) then
      begin
        c := a[j];
        a[j] := a[j + 1];
        a[j + 1] := c;
      end;
  ArrayPrint(a);
end;
 
 
var i, g, d, c, k: integer;
    A: mas;
 
begin
  randomize;
  writeln('Нажмите 0, если хотите заполнить массив вручную;Если хотите рандомом - жмите 1');
  readln(d);
  case d of 
    0:
      for i := 1 to N do begin
        write('A[', i, '] = ');
        readln(A[i]);
      end;
    1:
      begin
        for i := 1 to N do 
          A[i] := random(31) - 15;
        ArrayPrint(a);
      end;
  end;
  repeat
    writeln('1-увеличение нечетных чисел массива, 2-поменять местами числа массива, соседние с центральным, 3-найти максимальное число массива, кратное 5, 4-выполнить сортировку массива по убыванию, 0-закончить');
  until g = 0;
  readln(g);
  case g of
    1: uvel(A);
    2: exchange(A);
    3: max(A);
    4: ubivanie(A);
    0: writeln('программа завершена');
  end;
end.

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

  1. Объявляется константа N, которая определяет размер массива (10).
  2. Определяется тип массива mas, который представляет собой массив целых чисел размером от 1 до N (массив длины 10).
  3. Создается функция ArrayPrint, которая принимает массив a в качестве параметра и выводит все его элементы через пробел.
  4. Создается функция uvel, которая принимает массив a в качестве параметра и умножает нечетные числа в массиве на введенное пользователем число k.
  5. Создается функция exchange, которая принимает массив a в качестве параметра и меняет местами четные и нечетные числа в первой половине массива.
  6. Создается функция Max, которая принимает массив a в качестве параметра и находит максимальное число в массиве, кратное 5.
  7. Создается функция ubivanie, которая принимает массив a в качестве параметра и сортирует его в порядке убывания.
  8. В основной части программы определяется массив A типа mas.
  9. Пользователю предлагается заполнить массив вручную или случайными числами.
  10. Если пользователь выбирает ручное заполнение массива, ему предлагается ввести 10 чисел.
  11. Если пользователь выбирает случайное заполнение массива, генерируются случайные числа от -15 до 15 для каждого элемента массива.
  12. После заполнения массива выводится его содержимое.
  13. Пользователю предлагается выбрать действие из списка: увеличение нечетных чисел, обмен соседними четными и нечетными числами, поиск максимального числа, сортировка массива по убыванию.
  14. Пока пользователь не введет 0, программа повторяет шаги 13.
  15. Если пользователь выбирает увеличение нечетных чисел, вызывается функция uvel.
  16. Если пользователь выбирает обмен соседними четными и нечетными числами, вызывается функция exchange.
  17. Если пользователь выбирает поиск максимального числа, вызывается функция Max.
  18. Если пользователь выбирает сортировку массива по убыванию, вызывается функция ubivanie.
  19. Если пользователь выбирает завершение программы, выводится сообщение программа завершена.

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


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

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

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