![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.04.2011
Сообщений: 36
|
![]()
Всем привет. Так уж получилось, что я начал писать интерпретатор бейсико-подобного языка на PascalABC. Потом я захотел скомпилировать исходник, но такой функции не обнаружил. Погуглив, понял, что компилировать может только версия для Нет платфромы. Скачал, открыл исходник, запускаю и первая же ошибка - "iBasic.pas(51) : Нельзя изменять значение переменной цикла внутри этого цикла". Собственно, это и вся проблема. Не изменяя значение переменной в цикле, у меня будет некорректно работать процедуры для вычисления значения мат. выражения, на которые я потратил большую часть времени. Поможете?
Вот код, может что подскажете ) Код:
Последний раз редактировалось Stilet; 18.04.2011 в 20:42. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
я не знаю, что Вы там за ужас понаписали в коде (не разбирался).
Но формальный ответ на Ваш вопрос - компилятор АБСОЛЮТНО прав. Нельзя менять переменную цикла внутри цикла! Как выйти из этой ситуации? А ОЧЕНЬ просто! Меняйте цикл FOR на цикл с предусловием (или с постусловием - если так удобнее). например, вместо: Код:
Код:
Последний раз редактировалось Serge_Bliznykov; 16.04.2011 в 17:35. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 16.04.2011
Сообщений: 36
|
![]()
Этот "Ужас" и есть интерпретатор мат. выражений. Может он и хреновый, зато свой ) В любом случае, в будущем при накоплении опыта, я все поправлю ) Я вообще первокурсник, мы изучали только введение в специальность (((
Благодарю за код, идею понял, попробую реализовать ) |
![]() |
![]() |
![]() |
#4 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Поэтому прошу не рассматривать мои слова про "ужас" - как хулу на Ваш код! Цитата:
|
||
![]() |
![]() |
![]() |
#5 | ||
Пользователь
Регистрация: 16.04.2011
Сообщений: 36
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 16.04.2011
Сообщений: 36
|
![]()
Всем еще раз привет )
Сегодня у меня к вам 2 вопроса ) 1) Stack: string; Push - Stack += 'value'; Pop - Val = Stack[Length(Stack)]; Empty - Length(Stack); Вопрос - быстро ли такой стек работает? 2) Есть ли у вас хороший стек в виде юнита? Мой, который сейчас представляет собой строку работает нормально, но подходит не для всех операций ((( Нашел исходник другого стека, оформил для юнита и узнал, что он багованый ( Короче, нужен стек ) |
![]() |
![]() |
![]() |
#7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Строка для стека не годится. Хотя если написать Код:
Кстати: Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 16.04.2011
Сообщений: 36
|
![]()
Блин, медленно - плохо.
Цитата:
П.С. Я все еще желаю увидеть реализацию не багованного стека ) |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
PascalABC.Net Открытие html страниц | Poman | Помощь студентам | 1 | 05.02.2011 09:41 |
PascalABC.net | *stRong* | Помощь студентам | 2 | 10.06.2010 17:50 |
PascalABC.NET, windows.forms | *stRong* | Помощь студентам | 0 | 03.06.2010 21:47 |
Создание теста на PascalABC.NET | *stRong* | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 03.06.2010 19:41 |
Графика PascalABC.NET | Ученик. | Помощь студентам | 6 | 04.02.2010 15:24 |