BG Development


  Reply to this topicStart new topicStart Poll

> Help Pascal, прост калкулатор
elica1979
  Публикувано на: 22-10-2015, 09:22
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 4
Регистриран на: 22.10.15



Здравейте!

Имам задание за прост калкулатор на Paskal.
Кода който написах в програмата е:
Program Calculator;

var
operand1 : real;
operand2 : real;
result : real;
operation : char;
error : string;


BEGIN
write('Въведете число: ');
readln(operand1);

write('Въведете операция: ');
readln(operation);

write('Въведете число: ');
readln(operand2);

error := '';

case operation of
'+': result := operand1 + operand2;
'-': result := operand1 - operand2;
'*': result := operand1*operand2;
'/': result := operand1/operand2;
end;

if error = ''
then writeln('Резултатът е: ', result:6:5)
else writeln('Грешка: ', error);

END.

Програмата работи. Не ми дава грешка. Само при извеждането на резултата се затваря много бързо. Желая да не се затваря.
Моля ако някой може да ми помогне за този проблем да пише.
Благодаря предварително

Това мнение е било редактирано от elica1979 на 22-10-2015, 09:24
PMEmail Poster
Top
ivan84
Публикувано на: 22-10-2015, 09:25
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Затварянето не е проблем на програмата ти, а на шела в който я стартираш. Ако не искаш да се затвори веднага в края и я спри изкуствено. Най-лесно става с един празен readln.
Така шела ще затвори прозорецът, чак след като натиснеш ентер.
PMEmail Poster
Top
RoYaL
Публикувано на: 22-10-2015, 09:26
Quote Post



Име:
Група: Потребител
Ранг: Старо куче

Мнения: 873
Регистриран на: 21.08.05



А какво искаш да стане?

1. Да те пита на ново за числа?
- Вкарай цялата операция в безкраен цикъл
2. Да стои отговорът, но приложението да не се затваря и да не можеш а правиш нищо по него освен ръчно да го затвориш?
- Би било достатъчно, ако потребителят я рънне от командния ред, а не от IDE-то. Иначе едно празно четене на потребителски вход в края на програмата също ще свърши работа
PMEmail Poster
Top
elica1979
Публикувано на: 22-10-2015, 10:26
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 4
Регистриран на: 22.10.15



Благодаря за бързите отговори.
Искам да ме пита отново за числата.
PMEmail Poster
Top
elica1979
Публикувано на: 22-10-2015, 10:31
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 4
Регистриран на: 22.10.15



for (uint = 1; i > 0; i++)
тази команда дали ще стане?
PMEmail Poster
Top
RoYaL
Публикувано на: 22-10-2015, 10:50
Quote Post



Име:
Група: Потребител
Ранг: Старо куче

Мнения: 873
Регистриран на: 21.08.05



Това ще направи безкраен цикъл според мен, да.

Няма ли while (true) в Pascal?
PMEmail Poster
Top
ivan84
Публикувано на: 22-10-2015, 10:53
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



не.
Сложи цялата програма в цикъл, като преди излизането от него провери дали потребителя иска да направи нова сметка или не.

CODE

repeat
     ...

     write('Do you want to quit? (Y/N) ');
     ch := readkey;
until (ch = 'y') or (ch = 'Y');


---edit---
За четене на char е по удачно да се ползва readkey. Така няма да се налага да се натиска enter

---edit---
Едитнах горе кода, че беше пълен с грешки icon_sad.gif

---edit---
Така даже и работи...
CODE
program calc;
uses crt;

var
      ch: char;

begin
      repeat
            ...

            write('Do you want to quit? (Y/N) ');
            repeat
                  ch := readkey;
            until (ch = 'y') or (ch = 'Y') or (ch = 'n') or (ch = 'N');

            writeln(ch);
      until (ch = 'y') or (ch = 'Y');
end.


Това мнение е било редактирано от ivan84 на 22-10-2015, 14:04
PMEmail Poster
Top
elica1979
Публикувано на: 22-10-2015, 17:03
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 4
Регистриран на: 22.10.15



много благодаря ivan84
стана както го исках icon_smile.gif

Това мнение е било редактирано от elica1979 на 22-10-2015, 17:03
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0