• Даны 3 различных массива целых чисел (размер каждого не превышает 15). В каждом массиве найти сумму элементов и среднеарифметическое значение
    Написать программу с использованием функций.

Ответы 6

  • Строка 25 - ошибка (CalcArray (A,s,m);
  • Текст ошибки можете написать?
  • Ошибка в том, что ты в процедуру CalcArray передаёшь параметр A как статический массив, а в объявлении функции динамический.
  • rykipyro: Если вопрос еще актуален - откройте ответ для корректировки - исправлю.
  • Изменил программу, чтобы работала на ранних версиях Pascal
  • procedure CalcArray (const Ax: array of Integer; var S: Integer; var M: Real);  // var в параметрах означает, что переменная используется для возврата значения

    var

     i, c: Integer;

    begin

     S := 0;

     c := 0;

     for i := 0 to High (Ax) do begin

       S := S + Ax [i];   // здесь накапливаем сумму элементов

       c := c + 1;

     end;

     M := S / c;   // когда найдена сумму, рассчитываем среднеарифметическое

    end;

    var

     A: array [0..4] of Integer;     // размерность массивов можно делать любой, но начинаться с 0

     B: array [0..14] of Integer;

     C: array [0..9] of Integer;

     i, s: Integer;

     m: Real;

    begin

     SetConsoleCP (1251);

     SetConsoleOutputCP (1251);

     Randomize;   // инициализация датчика случайных чисел

     WriteLn ('Массив 1:');

     for i := Low (A) to High (A) do begin

       A [i] := Random (10);   // заполняем элементы массива случайными значениями

       Write (IntToStr (A [i]) + ' ');   // выводим их для просмотра

     end;

     CalcArray (A, s, m);   // вызов процедуры

     WriteLn;   // показываем возвращаемые из функции переменные

     WriteLn ('Сумма элементов = ' + IntToStr (s));

     WriteLn ('Среднеарифметическое = ' + FloatToStr (m));

     WriteLn;   // аналогично поступаем с другими массивами

     WriteLn ('Массив 2:');

     for i := Low (B) to High (B) do begin

       B [i] := Random (10);

       Write (IntToStr (B [i]) + ' ');

     end;

     CalcArray (B, s, m);

     WriteLn;

     WriteLn ('Сумма элементов = ' + IntToStr (s));

     WriteLn ('Среднеарифметическое = ' + FloatToStr (m));

     WriteLn;

     WriteLn ('Массив 3:');

     for i := Low (C) to High (C) do begin

       C [i] := Random (10);

       Write (IntToStr (C [i]) + ' ');

     end;

     CalcArray (C, s, m);

     WriteLn;

     WriteLn ('Сумма элементов = ' + IntToStr (s));

     WriteLn ('Среднеарифметическое = ' + FloatToStr (m));

    end.

  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years