Неправильный вывод. - Pascal

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

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

Подскажите пожалуйста почему выводятся одни нули. Заранее благодарю.
Листинг программы
  1. program core;
  2. uses moduli;
  3. var
  4. a, b: x;
  5. i, k1, k2, n: integer;
  6. s1, s2, z: real;
  7. procedure vivod(var a: x; var b: x; i: integer);
  8. begin
  9. writeln('Массив X:');
  10. for i := 1 to m do
  11. begin
  12. write(' X[', i:2, ']=', a[i]:2);
  13. if i mod 5 = 0 then
  14. begin
  15. writeln;
  16. end;
  17. end;
  18. begin
  19. writeln;
  20. writeln('Массив O:');
  21. for i := 1 to l do
  22. begin
  23. write(' O[', i:2, ']=', b[i]:2);
  24. if i mod 5 = 0 then
  25. begin
  26. writeln;
  27. end;
  28. end;
  29. end;
  30. end;
  31. begin
  32. vvod(a, b, n, i);
  33. vivod(a, b, i);
  34. sum(a, m, s1);
  35. sum(b, l, s2);
  36. count(a, m, k1);
  37. count(b, l, k2);
  38. writeln;
  39. z := (abs(s1) + s2) / (k1 + k2);
  40. writeln('Значение функции z=', z:4:2);
  41. readln;
  42. end.
вот модуль
Листинг программы
  1. unit moduli;
  2. interface
  3. const
  4. m = 8; l = 14;
  5. type
  6. x = array[1..l] of integer;
  7. procedure vvod(a, b: x; n: integer; var i: integer);
  8. procedure sum(a: x; n: integer; var s: real);
  9. procedure count(a: x; n: integer; var k: integer);
  10. implementation
  11. procedure sum;
  12. var
  13. i: integer;
  14. begin
  15. for i := 1 to n do
  16. s := s + a[i];
  17. end;
  18. procedure count;
  19. var
  20. i: integer;
  21. begin
  22. k := 0;
  23. for i := 1 to n do
  24. if a[i] > 0 then
  25. k := k + 1;
  26. end;
  27. procedure vvod;
  28. begin
  29. writeln('Введите массив X');
  30. for i := 1 to m do
  31. begin
  32. write(' X[', i, ']=');
  33. read(a[i]);
  34. end;
  35. begin
  36. writeln('Введите массив O');
  37. for i := 1 to l do
  38. begin
  39. write(' O[', i, ']=');
  40. read(b[i]);
  41. end;
  42. end;
  43. end;
  44. end.

Решение задачи: «Неправильный вывод.»

textual
Листинг программы
  1. procedure vvod(var a, b: x; n: integer; var i: integer);

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

  1. Создается процедура с именем vvod.
  2. Процедура принимает аргументы:
    • переменные a и b типа x по ссылке,
    • переменную n типа integer,
    • переменную i типа integer по ссылке.
  3. В процедуре осуществляется ввод значений в переменные a и b и увеличение значения переменной n на 1.
  4. Измененное значение переменной n доступно в вызывающей программе через аргумент процедуры.

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


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

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

9   голосов , оценка 4.444 из 5

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

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

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