Типа калькулятор

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Fire3d, 20 Jun 2007.

  1. Fire3d

    Fire3d Elder - Старейшина

    Joined:
    14 Apr 2007
    Messages:
    47
    Likes Received:
    6
    Reputations:
    0
    Внимание это Turbo pascal:)
    Воть думаю как сделать к примерру в воде 4+4.
    Программа понимал + и складовала.
    Может быть так
    uses crt;
    var a,b,c:integer;
    begin
    write('vedi 4enit>'); readln(a,+,b);
    c:=a+b;
    writeln('=',c);
    end.
    ?
    Подскажите пожалуйста как это реализовать.
     
    #1 Fire3d, 20 Jun 2007
    Last edited: 20 Jun 2007
  2. Fire3d

    Fire3d Elder - Старейшина

    Joined:
    14 Apr 2007
    Messages:
    47
    Likes Received:
    6
    Reputations:
    0
    Может быть не правильно мысль оформил ?))
     
  3. NetMan

    NetMan Elder - Старейшина

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Code:
    uses crt;
    var a,b,c:integer;
    begin
    write('a='); readln(a);
    write('b='); readln(b);
    c:=a+b;
    writeln('c=',c);
    readln;
    end.
     
  4. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    в целом все правильно. можно покрасивее:

    program calc;

    uses crt;
    var a,b,c:integer;
    d:char; // (1)
    begin
    write('введите первое число');
    readln(a);
    write('введите второе число');
    readln(b);
    write('введите операцию');
    readln(d);
    c:=a StrToChar(d) b; // по поводу StrToChar() не уверен, но думаю, что-то похожее сделать можно
    writeln(a,d,b,'=',c);
    end.


    NetMan, я так понял, что ему калькулятор нужен, а не только сложение))
     
    1 person likes this.
  5. Fire3d

    Fire3d Elder - Старейшина

    Joined:
    14 Apr 2007
    Messages:
    47
    Likes Received:
    6
    Reputations:
    0
    Не netman это не то.
    Надо при вводе 4+4 программа сочитала и вывила ответ 4+4=8.
     
  6. NetMan

    NetMan Elder - Старейшина

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Code:
    var
        a,b,c:real;
        action:char;
    begin
          write('a='); readln(a);
          write('b='); readln(b);
          write('action='); readln(action);
          case action of
            '+':c:=a+b;
            '-':c:=a-b;
            '/':c:=a/b;
            '*':c:=a*b;
          end;
          writeln(a:1:3,action,b:1:3,'=',c:1:3);
          readln;
    end.
     
  7. Exile1985

    Exile1985 Elder - Старейшина

    Joined:
    10 Aug 2006
    Messages:
    124
    Likes Received:
    35
    Reputations:
    1
    круто, молодца развеселил, поржал отдуши :D

    Если серьезно то нужно так:

    Code:
    uses crt;
    var a,b,c:integer;
    begin
    write('Vvedite 4+4'); readln;
    a:=4;
    b:=4;
    c:=a+b;
    writeln('c=',c);
    readln;
    end.
    :D :D
     
    #7 Exile1985, 20 Jun 2007
    Last edited: 20 Jun 2007
  8. Exile1985

    Exile1985 Elder - Старейшина

    Joined:
    10 Aug 2006
    Messages:
    124
    Likes Received:
    35
    Reputations:
    1
    ну а если вообще серьезно то вот:

    Code:
    uses
      SysUtils;
    
    var 
    b,c,r,y:integer;
    a:string;
    begin
      write('4to xotite slozhit?'); 
      readln(a);
      y:=Length(a);
      b:=strtoint(copy(a,pos('+',a)+1,y));
      c:=strtoint(copy(a,1,pos('+',a)-1)); 
      r:=c+b;
    writeln('Otvet=',r);
    readln;
    end.
    как заказывали, если ввести 4+4 одной строкой то выдаст ответ.
     
  9. Fire3d

    Fire3d Elder - Старейшина

    Joined:
    14 Apr 2007
    Messages:
    47
    Likes Received:
    6
    Reputations:
    0
    То что ты мне накалякал я могу сделать ^_^ Но ты меня наверноене понил что надо к примеру чел вводит. x+y жмет ентер ему выходит экран решение в таком формате x+y=n
     
  10. Exile1985

    Exile1985 Elder - Старейшина

    Joined:
    10 Aug 2006
    Messages:
    124
    Likes Received:
    35
    Reputations:
    1
    ну ты следующий пост посмотри :D :D
    а вообще спасибо, настроение офигенно поднял :D
    особенно этим:

    :D :D
     
  11. Fire3d

    Fire3d Elder - Старейшина

    Joined:
    14 Apr 2007
    Messages:
    47
    Likes Received:
    6
    Reputations:
    0
    Рад старатся ))))
    Твой вариант не работает (
    пишет типа отсутвует файл SysUtils.TPU
     
    #11 Fire3d, 20 Jun 2007
    Last edited: 20 Jun 2007
  12. Exile1985

    Exile1985 Elder - Старейшина

    Joined:
    10 Aug 2006
    Messages:
    124
    Likes Received:
    35
    Reputations:
    1
    ааа чел, тода сори, попробуй за место SysUtils поставить другой модуль свой crt, я на делфе писал, все пашет замечательно, можно воодить не только 4+4 но вообще любые числа т.е. и 44 и 6532+5563 ей вообще пофиг, а так все работает сам проверял
     
  13. NetMan

    NetMan Elder - Старейшина

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Я же дал новый рабочий код!
    Code:
    uses crt;
    var
        a,b,c:real;
        action:char;
    begin
          write('a='); readln(a);
          write('b='); readln(b);
          write('action='); readln(action);
          case action of
            '+':c:=a+b;
            '-':c:=a-b;
            '/':c:=a/b;
            '*':c:=a*b;
          end;
          writeln(a:1:3,action,b:1:3,'=',c:1:3);
          readln;
    end.
     
  14. Exile1985

    Exile1985 Elder - Старейшина

    Joined:
    10 Aug 2006
    Messages:
    124
    Likes Received:
    35
    Reputations:
    1


    да нет чел, в твоем коде получается так:
    a= //вводим первое число
    b= //вводим второе число
    жмем Enter и получаем
    c:= //ответ

    а нужно так

    a:= 4+4 //т.е. вводим не по одному числу, а сразу все вместе с знаком +,-,/,*, все одной строкой, чтоб получилосьтак
    a:= 25+26
    жмем Enter получаем
    c:=51
     
  15. NetMan

    NetMan Elder - Старейшина

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Exile1985 в выражении могут присутствовать скобки?
     
  16. Exile1985

    Exile1985 Elder - Старейшина

    Joined:
    10 Aug 2006
    Messages:
    124
    Likes Received:
    35
    Reputations:
    1
    честно сказать не понял вопроса.
    стесняюсь спросить, эт ты щас про что спросил? :D
     
  17. NetMan

    NetMan Elder - Старейшина

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Такое может быть (2+2)/4 ? Или у тебя только сложение и только 2 операнда? :d
     
  18. Fire3d

    Fire3d Elder - Старейшина

    Joined:
    14 Apr 2007
    Messages:
    47
    Likes Received:
    6
    Reputations:
    0
    Только сложение.
     
  19. NetMan

    NetMan Elder - Старейшина

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Ну тогда вот так:
    Code:
    uses crt;
    var s:string;
        a,b,c,posit:integer;
    
    function Str2Int(Str:String):Integer;
    var Res,code:integer;
    begin
          val(Str,Res,code);
          Str2Int:=Res;
    end;
    
    begin
          read(s);
          posit:=pos('+',s);
          a:=Str2Int(copy(s,1,posit-1));
          b:=Str2Int(copy(s,posit+1,length(s)-posit+1));
          c:=a+b;
          write('=',c);
          readln;
    end.
     
    1 person likes this.
  20. Fire3d

    Fire3d Elder - Старейшина

    Joined:
    14 Apr 2007
    Messages:
    47
    Likes Received:
    6
    Reputations:
    0
    Спасибо netman. Все пашет!
     
    #20 Fire3d, 20 Jun 2007
    Last edited: 20 Jun 2007