Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2017, 23:23   #1
Cryptic22
Пользователь
 
Регистрация: 30.11.2017
Сообщений: 16
По умолчанию Операция '=' не применима к типам real и char

Операция '=' не применима к типам real и char. Как исправить?
Код:
Program calculate;
var c,v:integer;
    a,g:real;
    b:char;
 

Begin

b:='-';
g:=9.8;

Writeln('Введите объем');
Readln(a);
 if (a=b)then
 
a:= a/10000;

{Writeln('Введите массу');
Readln(b);}

Writeln('Введите плотность');//Если не знаете введите название жидкости
Readln(c);

Writeln(a*g*c);


End.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 06.12.2017 в 10:06.
Cryptic22 вне форума Ответить с цитированием
Старый 06.12.2017, 00:33   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
a:real;
b:char;
...
if (a=b)then
Это сурово. А зачем Вам тут нужен чар, если у Вас расчитывается формула из вещественных чисел?

А ещё g := 9.8; вполне выносится в константу - прямо как в учебнике физики
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 06.12.2017, 08:05   #3
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Попробуй удалить строчку:
Код:
if (a=b)then
ura_111 вне форума Ответить с цитированием
Старый 06.12.2017, 10:10   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

про ошибку в строке if (a=b)then
где a - это вещественное (дробное) число, а b - это символ '-' всё верно сказали.

но, чтобы исправить ошибку, нужно понять логику.
а я не могу понять, что за алгоритм пытался автор реализовать в строчках:
Цитата:
Код:
 if (a=b)then
     a:= a/10000;
это читаем так, если ввели символ "-" (пока опустим невозможность ввести символ в переменную вещественного типа), тогда нужно в переменную a записать символ "-" разделенный на 10000. Это, простите, как? и для чего?

Автор, Вы какую задачу вообще пытаетесь решить?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.12.2017, 11:26   #5
Cryptic22
Пользователь
 
Регистрация: 30.11.2017
Сообщений: 16
По умолчанию

Я пытаюсь сделать код по решению задач по физике с использование формул, то есть формула F=gmV и если в это формуле m или v неизвестно я хочу чтобы код вычислил их по другим формулам. Именно поэтому я пишу условном операторе что значение неизвестно
Cryptic22 вне форума Ответить с цитированием
Старый 06.12.2017, 11:40   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
если в это формуле m или v неизвестно я хочу чтобы код вычислил их по другим формулам.
В случае с данными величинами вполне можно использовать число "-1" в качестве определения неизвестности. То есть предложить пользователю "Введите массу или -1, если масса неизвестна" и соответственно сравнивать введённое значение с -1.

Тот метод, который Вы выбрали, требует сначала ввода char. Но поскольку введённое число может не уместиться в один символ, придётся использовать уже даже не char, а string.
Потом, если этот char/string не равен "-" - требуется его преобразование в real (функция val в "классическом" паскале или StrToFloat в обжект-паскале), и уже с real проводить все необходимые расчёты.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 06.12.2017, 13:27   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Cryptic22 Посмотреть сообщение
то есть формула F=gmV и если в это формуле m или v неизвестно я хочу чтобы код вычислил их по другим формулам.
т.е., если вместо неизвестного объёма ввести -, тогда объём находится как неизвестное значение разделить на 10000?!! Однако! Интересные у Вас методы решения уравнения!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по типам данных ДралсяСошибками Общие вопросы Delphi 3 05.02.2013 15:43
как исправить ошибку invalid conversion from const char* to char Ника К Помощь студентам 5 01.06.2012 00:13
Delphi и AutoCAD - страсти по типам данных praeeo Общие вопросы Delphi 3 21.10.2010 17:25
Доступ к типам другой формы godlsd Общие вопросы Delphi 4 16.08.2010 13:30
как перевести из integer в real(и обратно), и из real в string(и обратно) Ga-sergey Общие вопросы Delphi 2 08.06.2007 21:13