Автор: geraldine 24.05.2005 2:50
Пожалуйста, помогите! Срочно надо сделать калькулятор (+,-,*,/), работающий с двумя вещественными числами, например 31.06+455.8 В анализе символов не должна использоваться процедура val
Автор: klem4 24.05.2005 12:08
ну если срочно, то то вот так :DDD, а вообще поиском надо пользоваться :yes:
Код
{$n+}
uses crt;
var
a,b:extended;
ch:char;
flag:boolean;
Begin
repeat
flag:=True;
clrscr;
write('Vvedite pervoe 4slo : ');
readln(a);
write('Vvedite vtoroe 4islo : ');
readln(b);
write('Vvedite deistvie < +, - , * , / > : ');
ch:=readkey;
case ch of
'+': writeln(a:2:2,'+',b:2:2,'=',a+b:2:2);
'-': writeln(a:2:2,'-',b:2:2,'=',a-b:2:2);
'*': writeln(a:2:2,'*',b:2:2,'=',a*b:2:2);
'/': if b<> 0 then writeln(a:2:2,'/',b:2:2,'=',a/b:2:2)
else writeln('Div by zero')
else writeln('Err');
end;
write('Exit ? <Y/N>');
ch:=readkey;
if ch='y' then flag:=false;
until not(flag);
end.
Автор: geraldine 24.05.2005 21:03
Спасибо, конечно, но мне нужно, чтобы считалась именно строчка, т.е. вводится сразу выражение (2+34), а не числа и действие поодиночке.
Автор: volvo 24.05.2005 21:08
В таком случае придется изобретать свою функцию (типа процедуры Val)... Кстати, вот тут: http://forum.pascal.net.ru/index.php?showtopic=4694&view=findpost&p=40351 есть очень похожая на это функция stt_ ...
Автор: geraldine 24.05.2005 23:21
Ну спасибо за помощь. Посмотрю. :yes: