Другие языки программирования и технологии

Тип данных в паскале

Проблема в том, что когда я присваю переменной тип integer и провожу операцию "sr:=s/10;" паскаль пишет, что попытка присвоить переменной типа integer выражение типа real. Если же поменять тип на real, то чуть позже, когда я буду проводить операцию "B[i,j]:=sr;" он напишет "попытка присвоить переменной типа real выражения типа integer". Что же делать? Какой тип данных надо задать?
надо применять целочисленное деление, оно возвращает целый результат.
команда див
АС
А С К Е Р
1 279
Лучший ответ
он напишет "попытка присвоить переменной типа real выражения типа integer"
Не боись, не напишет.
А в чем проблема? :) Разве real нельзя присваивать integer? :)
"чуть позже, когда я буду проводить операцию "B[i,j]:=sr;" он напишет "попытка присвоить переменной типа real выражения типа integer""
Он такого не напишет. Вещественные числа - более общий тип, поэтому им можно присваивать целые, а вот наоборот в Паскале прямо нельзя, только через специально для этого предусмотренные функции, с помощью которых выбирается тип округления к целому.
В borland pascal 7, обычно, в таких случаях пишет "Не соответствие типов".
Результат операции деленияв pascal всегда тип real, поэтому объяви sr: real; двумерный массив так же объяви как of real.
Если тебе нужно отработать с целыми числами, то примени стандартую функцию INT(s/10) - выделение целой части, а массив объяви of integer/
"попытка присвоить переменной типа real выражения типа integer" Такого быть не может.

"Тип массива и тип переменной должен быть одинаковым" это полный бред.

"просьба не писать, что такого быть не может, ибо это происходит, когда я это делаю) " Просьба не писать того, что не может быть или выложи скрин или хотя бы код.
Алекс Мельник
Алекс Мельник
20 142
при делении он и будет РЕАЛ.. а потом приводим к RealToInt, и проблемы сняты
Назир Назыров
Назир Назыров
8 140
Тип массива и тип переменной должен быть одинаковым
real присвоит integer, а наоборот нет.