|
|
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
Всем привет! Хотел попрсить помощи. Написал прогу, - не работает путем, собака. Прога простая. Однако, баг ну очень непонятный. Будет время - гдяньте пож. Текст проги. uses crt; var i:integer; str:string; key:byte; ch:char; begin repeat begin clrscr; readln(str); writeln('do you want to exit'); key:=0; repeat if keypressed then key:=ord(readkey); until (key=121) or (key=110); if key=121 then halt; end; until (str='exit'); end. Читает строку с экрана. Затем просит символ и если символ равен 'y', то выходит, а если 'n', то входит в цикл снова. Все длится до тех пор, пока строковая констаната, введенная с экрана, не примет значение 'exit'. Так вот баг в следующем. Если ввожу строку длиной меньше 3-х символов в текущем цикле и потом 'y', то в следующей итерации цикла при следующем вводе строки первые 2 символа ну никак не хотят высвечиваться на экране и только после ввода третьего символа высвечивается вся строка. Если же ввести строку из 3 символов в текущей итерации, то в след. итерации все ок. При этом если убрать очищение экрана в начале цикла, - все начинает работаь нормально. В чем батва, не пойму... Кто знает - помогите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 13:18 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
Хм, сессия в июле? Совсем замучили студентов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:06 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
И вот нет ведь, чтоб по существу ответить... По-моему если не знаешь - лучше просто промолчать. Кстати институт я 5 лет назад закончил с красным дипломом. Сейчас измерениями джиттера в сетях SDH занимаюсь, если интересно... Программа нужна для работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:29 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
эта программа - маленький кусочек более большого целого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:30 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
sergey_tarasovИ вот нет ведь, чтоб по существу ответить... По-моему если не знаешь - лучше просто промолчать. Кстати институт я 5 лет назад закончил с красным дипломом. Сейчас измерениями джиттера в сетях SDH занимаюсь, если интересно... Программа нужна для работы. И даже не нашли на форуме кнопку src, чтоб код был читабелен. В таком виде его смотреть невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:41 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
сложно понять, что требуется. по тому, что я только что прочитал, halt прерывает выполнение всей программы. следовательно, второй итерации цикла быть не может, или про halt не то написали. варианты: поиграться с различным положением write, ln, read, clrscr и т.д. форматированный код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:45 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
XDiaBLoИ даже не нашли на форуме кнопку src, чтоб код был читабелен. В таком виде его смотреть невозможно. uses crt; var i:integer; str:string; key:byte; begin repeat begin clrscr; readln(str); writeln('do you want to exit'); key:=0; repeat if keypressed then key:=ord(readkey); until (key=121) or (key=110); if key=121 then halt; end; until (str='exit'); end.[src][/src] первый раз знаете ли на таком форуме... вроде так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:48 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. или так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:49 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
Aklin Jсложно понять, что требуется. по тому, что я только что прочитал, halt прерывает выполнение всей программы. следовательно, второй итерации цикла быть не может, или про halt не то написали. варианты: поиграться с различным положением write, ln, read, clrscr и т.д. форматированный код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. однако, все танцы с бубном перепробованы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:50 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
Aklin Jсложно понять, что требуется. по тому, что я только что прочитал, halt прерывает выполнение всей программы. следовательно, второй итерации цикла быть не может, или про halt не то написали. варианты: поиграться с различным положением write, ln, read, clrscr и т.д. форматированный код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. halt прерывет, если после строки в ответ на 'do you want to exit' ввест 'y'. он все правильно делает. поясню. это нужно для того, чтобы если чел неправильно ввел переменную вернуть его обратно для ввода или по его желанию осуществить выход из программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:54 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
sergey_tarasovТак вот баг в следующем. Если ввожу строку длиной меньше 3-х символов в текущем цикле и потом 'y', то в следующей итерации цикла А откуда она взялась, следующая итерация, при ответе 'y'? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:55 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
474 sergey_tarasovТак вот баг в следующем. Если ввожу строку длиной меньше 3-х символов в текущем цикле и потом 'y', то в следующей итерации цикла А откуда она взялась, следующая итерация, при ответе 'y'? +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 15:14 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
Aklin J 474 sergey_tarasovТак вот баг в следующем. Если ввожу строку длиной меньше 3-х символов в текущем цикле и потом 'y', то в следующей итерации цикла А откуда она взялась, следующая итерация, при ответе 'y'? +1 пардон 'y' с 'n' перепутал :) в абзаце: Если ввожу строку длиной меньше 3-х символов в текущем цикле и потом 'y', то в следующей итерации цикла при следующем вводе строки первые 2 символа ну никак не хотят высвечиваться на экране и только после ввода третьего символа высвечивается вся строка. Если же ввести строку из 3 символов в текущей итерации, то в след. итерации все ок. в остальном все так как написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 15:20 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
sergey_tarasovВсем привет! Хотел попрсить помощи. Написал прогу, - не работает путем, собака. Прога простая. Однако, баг ну очень непонятный. Будет время - гдяньте пож. Текст проги. uses crt; var i:integer; str:string; key:byte; ch:char; begin repeat begin clrscr; readln(str); writeln('do you want to exit'); key:=0; repeat if keypressed then key:=ord(readkey); until (key=121) or (key=110); if key=121 then halt; end; until (str='exit'); end. Читает строку с экрана. Затем просит символ и если символ равен 'y', то выходит, а если 'n', то входит в цикл снова. Все длится до тех пор, пока строковая констаната, введенная с экрана, не примет значение 'exit'. Так вот баг в следующем. Если ввожу строку длиной меньше 3-х символов в текущем цикле и потом 'n', то в следующей итерации цикла при следующем вводе строки первые 2 символа ну никак не хотят высвечиваться на экране и только после ввода третьего символа высвечивается вся строка. Если же ввести строку из 3 символов в текущей итерации, то в след. итерации все ок. При этом если убрать очищение экрана в начале цикла, - все начинает работаь нормально. В чем батва, не пойму... Кто знает - помогите. Кстати, то же самое наблюдается при вводе любой другой переменной - символьной, целой, вещественной и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 15:30 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
Если не принципиально использование именно процедуры clrscr, используйте вместо нее textmode(c80). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 16:12 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
474Если не принципиально использование именно процедуры clrscr, используйте вместо нее textmode(c80). ОДНАКО!.. вот он специалист! Спасибо - все заработало! если не сложно, - педелитесь секретом? в чем была "фишка"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 16:26 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
sergey_tarasovесли не сложно, - педелитесь секретом? в чем была "фишка"? Это не фича, это баг. У crt багов много, по-моему в каком-то из SWAG'ов я даже перечень видел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2008, 09:37 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
474 sergey_tarasovесли не сложно, - педелитесь секретом? в чем была "фишка"? Это не фича, это баг. У crt багов много, по-моему в каком-то из SWAG'ов я даже перечень видел. ну я ж так и подозревал, что это баг (см. название темы). мои предположения оправдались. спасибо! кстати, это никак не лечится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2008, 12:04 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
sergey_tarasovИ вот нет ведь, чтоб по существу ответить... По-моему если не знаешь - лучше просто промолчать. Кстати институт я 5 лет назад закончил с красным дипломом. Сейчас измерениями джиттера в сетях SDH занимаюсь, если интересно... Программа нужна для работы. А C - слышали такой язык? ПС. Хотя бы для приличия FreePascal for DOS 2.0.4 поставили бы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2008, 21:06 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
Ынтырпрайс sergey_tarasovИ вот нет ведь, чтоб по существу ответить... По-моему если не знаешь - лучше просто промолчать. Кстати институт я 5 лет назад закончил с красным дипломом. Сейчас измерениями джиттера в сетях SDH занимаюсь, если интересно... Программа нужна для работы. А C - слышали такой язык? ПС. Хотя бы для приличия FreePascal for DOS 2.0.4 поставили бы С знаете ли для продвинутых программеров, а я так... только в паскале и умею. С мне нет надобности знать, - я свзист, а не программист. И вообще Паскаль - это уже неприлично что ли? :) Модератор: в высшей степени прилично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 09:19 |
|
||
|
непонятный баг турбо паскаля
|
|||
|---|---|---|---|
|
#18+
sergey_tarasov Ынтырпрайс sergey_tarasovИ вот нет ведь, чтоб по существу ответить... По-моему если не знаешь - лучше просто промолчать. Кстати институт я 5 лет назад закончил с красным дипломом. Сейчас измерениями джиттера в сетях SDH занимаюсь, если интересно... Программа нужна для работы. А C - слышали такой язык? ПС. Хотя бы для приличия FreePascal for DOS 2.0.4 поставили бы С знаете ли для продвинутых программеров, а я так... только в паскале и умею. С мне нет надобности знать, - я свзист, а не программист. И вообще Паскаль - это уже неприлично что ли? :) Это уже тема для нового холивара... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 10:11 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35437242&tid=1345145]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
165ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 480ms |

| 0 / 0 |
