Выдает ошибку " Нельзя преобразовать тип real к integer" - Pascal
Формулировка задачи:
Столкнулся с такой проблемой, что когда начинаю выводить процедуры в конце там где Vvod_mas(m[i]) выдает ошибку
" Нельзя преобразовать тип real к integer".Как ее исправить? И если не затруднит проверьте остальной код.
Листинг программы
- program mas3;
- const
- n_st = 8;
- procedure Vvod_mas(i: integer);
- var
- m: array[1..n_st] of real;
- begin
- writeln('Введите массив из ', n_st, ' строк:');
- for i := 1 to n_st do
- readln(m[i]);
- writeln('Ваш массив:');
- for i := 1 to n_st do
- write(' m[', i:2, ']= ', m[i]:1:1);
- writeln;
- end;
- procedure Poisk_max(max: real; i: integer);
- var
- m: array[1..n_st] of real;
- begin
- writeln('Максимальное число массива:');
- max := m[1];
- for i := 1 to n_st do
- begin
- if m[i] > max then
- max := m[i];
- end;
- writeln(' m[', i:2, ']= ', max:1:1);
- readln;
- end;
- procedure summa(sum, s: real; i: integer);
- var
- m: array[1..n_st] of real;
- begin
- writeln('Сумма от первого элемента до максимального элемента:');
- sum := 0;
- begin
- for i := 1 to 8 do
- s := s + m[i];
- sum := s;
- end;
- writeln('Сумма от максимального элемента до конца массива:');
- begin
- for i := 8 to n_st do
- s := s + m[i];
- sum := s;
- end;
- end;
- var
- m: array[1..n_st] of real;
- i: integer;
- begin
- Vvod_mas(m[i]);
- Poisk_max(max);
- summa(sum);
- readln;
- end.
Решение задачи: «Выдает ошибку " Нельзя преобразовать тип real к integer"»
textual
Листинг программы
- procedure Vvod_mas;
- var i: integer;
- ...
- procedure Poisk_max;
- var max: real; i: integer;
- ...
- procedure summa;
- var sum, s: real; i: integer;
- ...
- {не забудьте добавить вывод найденных сумм}
- ...
- begin
- Vvod_mas;
- Poisk_max;
- summa;
Объяснение кода листинга программы
- Создается процедура Vvod_mas с переменной
i
типаinteger
. - Создается процедура Poisk_max с переменной
max
типаreal
и переменнойi
типаinteger
. - Создается процедура summa с переменными
sum
иs
типаreal
и переменнойi
типаinteger
. - В основной программе вызываются процедуры Vvod_mas, Poisk_max и summa.
- При вызове происходит попытка преобразовать значение переменной типа
real
к типуinteger
, что приводит к ошибкеНельзя преобразовать тип real к integer
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д