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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2010, 16:14   #11
ne4kin
Пользователь
 
Регистрация: 03.12.2010
Сообщений: 16
По умолчанию

у меня к каждоме repeat свой until. че лишний ставить ?
ne4kin вне форума Ответить с цитированием
Старый 04.12.2010, 16:43   #12
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

лишним он будет когда компилятор скажет.
Хорошо, сейчас скопировав код из поста номер 3, я вставил его в блокнот, воспользовавшись поиском видим
Цитата:
if sx=1 then stop:=true;
repeat
clrscr;
это один
Цитата:
if not stop then
repeat
clrscr;
это два
а вот
Цитата:
until deistvie = 'm';
только один
Теперь поверили?
Отдельные куски программы у вас правильные, а вот связаны в единую программу они не верно
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 04.12.2010, 17:33   #13
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
А что, для паскаля уже существуют интерпретаторы? Сколько я помню, паскаль компилируемый язык...
Используйте лучше Borland Pascal 7.0
Да, PascalABC - интерпретатор языка, в следствие чего он не соответствует стандарту, но он очень и очень удобен, во много раз удобнее TP. Про отладку я вообще молчу, невероятно удобно сделана.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 04.12.2010, 22:00   #14
ne4kin
Пользователь
 
Регистрация: 03.12.2010
Сообщений: 16
По умолчанию

Теперь все работает.Но!!!
При выборе способа аналитический, т.е. ввод цифры отличной от 1 включается способ арифметический.Логическая операция почему то не работает(
При вводе знака действия в арифметическом способе выходит ошибка, скриншот в прикрепленном файле.
Код, который прислал, я исправил, смотрите последний.
Что мне делать (((?
Изображения
Тип файла: jpg Снимок.jpg (58.7 Кб, 135 просмотров)
ne4kin вне форума Ответить с цитированием
Старый 04.12.2010, 22:55   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты учитываешь что завершение ввода для read должен быть либо пробел либо энтер?
т.е. ты должен вводить свое выражение так - "1 + 2". и энтер
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2010, 22:58   #16
ne4kin
Пользователь
 
Регистрация: 03.12.2010
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А ты учитываешь что завершение ввода для read должен быть либо пробел либо энтер?
т.е. ты должен вводить свое выражение так - "1 + 2". и энтер
у меня 3 read. Это значит что для ввода выражения надо использовать 3 ввода. тоесть 1 ентер, + ентер, 2 ентер.Вот после ввода плюса ну или любого другого выходит ошибка представленная на скриншоте
ne4kin вне форума Ответить с цитированием
Старый 04.12.2010, 23:11   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ne4kin
Вот именно поэтому так не пишут.
Вводят строку, а потом ее разбирают парсером.
Опасно вводить элементы через read, он слабо для этого предназначен. А если точнее он морально устарел.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2010, 23:16   #18
ne4kin
Пользователь
 
Регистрация: 03.12.2010
Сообщений: 16
По умолчанию

а как тогда лучше ввести? через че? и разбор строки тогда производить через цикл и ord()?
Если не затруднит, вы не могли бы подправить код ?
ne4kin вне форума Ответить с цитированием
Старый 05.12.2010, 14:47   #19
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Ну я вот, когда с хорошим парсером было лень заморачиваться, делал разбор, сканируя строку задом наперёд. При сканировании я поддерживаю в актуальном состоянии баланс скобок. Если я внутри скобок, реагирую только на скобки. Если не внутри скобок, реагирую на нужные мне символы.

Задом наперёд — потому что 2 - 2 - 2 = (2 - 2) - 2, то есть, на правый минус нужно натолкнуться раньше, чем на левый.

Сначала пытаюсь распознать строку как сумму. Если получилось, распознаю подстроки. Если не получилось, пытаюсь распознать как произведение. И т. д.

Исходники можно посмотреть здесь: http://sources.codenet.ru/download/3075/DIFF3_PAS.html
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 06.12.2010, 09:19   #20
ne4kin
Пользователь
 
Регистрация: 03.12.2010
Сообщений: 16
По умолчанию

ну а ввод строки как производить? если не через read, то через что ?
ne4kin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор на паскале Buratino Помощь студентам 14 10.10.2010 13:18
Калькулятор на паскале, продолжение действия tabber Помощь студентам 1 28.09.2010 18:33
Калькулятор на паскале Nastya55555 Помощь студентам 1 05.05.2010 22:37
Калькулятор на C++ stox11 Помощь студентам 2 09.02.2010 07:31
Калькулятор ViNcHeStEr Помощь студентам 5 23.11.2008 15:39