Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Строчный калькулятор

Автор: 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), а не числа и действие поодиночке. unsure.gif

Автор: 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: