Выдает ошибку " Нельзя преобразовать тип real к integer" - Pascal

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

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

Столкнулся с такой проблемой, что когда начинаю выводить процедуры в конце там где Vvod_mas(m[i]) выдает ошибку " Нельзя преобразовать тип real к integer".Как ее исправить? И если не затруднит проверьте остальной код.
Листинг программы
  1. program mas3;
  2. const
  3. n_st = 8;
  4. procedure Vvod_mas(i: integer);
  5. var
  6. m: array[1..n_st] of real;
  7. begin
  8. writeln('Введите массив из ', n_st, ' строк:');
  9. for i := 1 to n_st do
  10. readln(m[i]);
  11. writeln('Ваш массив:');
  12. for i := 1 to n_st do
  13. write(' m[', i:2, ']= ', m[i]:1:1);
  14. writeln;
  15. end;
  16. procedure Poisk_max(max: real; i: integer);
  17. var
  18. m: array[1..n_st] of real;
  19. begin
  20. writeln('Максимальное число массива:');
  21. max := m[1];
  22. for i := 1 to n_st do
  23. begin
  24. if m[i] > max then
  25. max := m[i];
  26. end;
  27. writeln(' m[', i:2, ']= ', max:1:1);
  28. readln;
  29. end;
  30. procedure summa(sum, s: real; i: integer);
  31. var
  32. m: array[1..n_st] of real;
  33. begin
  34. writeln('Сумма от первого элемента до максимального элемента:');
  35. sum := 0;
  36. begin
  37. for i := 1 to 8 do
  38. s := s + m[i];
  39. sum := s;
  40. end;
  41. writeln('Сумма от максимального элемента до конца массива:');
  42. begin
  43. for i := 8 to n_st do
  44. s := s + m[i];
  45. sum := s;
  46. end;
  47. end;
  48. var
  49. m: array[1..n_st] of real;
  50. i: integer;
  51. begin
  52. Vvod_mas(m[i]);
  53. Poisk_max(max);
  54. summa(sum);
  55. readln;
  56. end.

Решение задачи: «Выдает ошибку " Нельзя преобразовать тип real к integer"»

textual
Листинг программы
  1. procedure Vvod_mas;
  2. var i: integer;
  3. ...
  4. procedure Poisk_max;
  5. var max: real; i: integer;
  6. ...
  7. procedure summa;
  8. var sum, s: real; i: integer;
  9. ...
  10. {не забудьте добавить вывод найденных сумм}
  11. ...
  12. begin
  13.   Vvod_mas;
  14.   Poisk_max;
  15.   summa;

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

  1. Создается процедура Vvod_mas с переменной i типа integer.
  2. Создается процедура Poisk_max с переменной max типа real и переменной i типа integer.
  3. Создается процедура summa с переменными sum и s типа real и переменной i типа integer.
  4. В основной программе вызываются процедуры Vvod_mas, Poisk_max и summa.
  5. При вызове происходит попытка преобразовать значение переменной типа real к типу integer, что приводит к ошибке Нельзя преобразовать тип real к integer.

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


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

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

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

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

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

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