|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.04.2014, 14:41 | #1 |
Пользователь
Регистрация: 09.04.2014
Сообщений: 12
|
Проблема с циклом repeat.
Суть задания такова, вводим число в 16-ной СС нужно перевести в 10-ную СС и должен быть применен цикл repeat, чтобы можно было вводить и переводить числа до тех пор пока не нажмем esc например. У меня все реализовано, но чтобы второе число после расчета первого, нужно дважды нажать enter, из-за чего работа не принимается. Есть предположение, что вся проблема в том, что я когда считываю число для перевода read(a,b) т.е "а" у меня десятки, а "b" еденицы. Потому что если ввести одноразрядное число, то такой проблемы нет. Что можно придумать по этому поводу?
Если нужно могу скинуть код программы. |
09.04.2014, 14:57 | #2 | |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Цитата:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
|
09.04.2014, 15:05 | #3 |
Пользователь
Регистрация: 09.04.2014
Сообщений: 12
|
Код:
P.S Да я знаю код новичковский и т.д, но программа работает идеально кроме цикла repeat, т.е два раза нужно жмакнуть кнопку, чтобы ввести след. число. ___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (кнопочка на панели форматирования с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 09.04.2014 в 15:17. |
09.04.2014, 16:20 | #4 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Ну... Вы знаете, что именно делает read(a,b)? Думаю что нет. А делает она вот что: считывает 2 числа, разделенные пробелом. Т.е. "12" будет считано как А, после чего программа продолжит ждать ввод В. А вот "1 2" будет считано как А=1, В=2.
Дерзайте.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
09.04.2014, 16:23 | #5 |
Пользователь
Регистрация: 09.04.2014
Сообщений: 12
|
хм.. но если смотреть пошагово и проверить раздел локальных переменных, то А=1 и В=2 даже если вводить слитно
|
09.04.2014, 16:58 | #6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
|
|
10.04.2014, 06:33 | #7 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Упс, не прав.
По поводу двойного нажатия - попробуйте readkey вынести из условия внутрь repeat`a с сохранением в новую переменную. И в условии сравнивать не readkey, а полученную переменную.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
10.04.2014, 08:33 | #8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
axpehuct123, меня насторожила надпись:
Цитата:
Вы программу в каком компиляторе Паскаля запускаете?! Ну могу сказать, что проблема у Вас в том, что Вы смешиваете чтение с консоли с помощью read и с помощью readkey... Как это можно поправить можно будет сказать только когда Вы огласите используемый Вами компилятор паскаля... Просто в качестве пробы. Попробуйте поставить ReadLn внутрь цикла. Например, Код:
p.s. ну и Вы правы. Код у Вас очень "индусский". Последний раз редактировалось Serge_Bliznykov; 10.04.2014 в 08:40. |
|
10.04.2014, 08:34 | #9 |
Пользователь
Регистрация: 09.04.2014
Сообщений: 12
|
Все я проблему решил. Оказывается нужно было в самом конце добавить READLN только я не понял сути исправления. Может кто объяснить теперь? Единственное, что я знаю про него это то что оператор чтения информации, но что такого существенного он внес тут, что избавил от двойного нажатия?
|
10.04.2014, 08:36 | #10 |
Пользователь
Регистрация: 09.04.2014
Сообщений: 12
|
Дважды нажимается потому что в abc паскале делаю, ибо он автоматически задерживает программу. Т.е один раз нажал esc тебе вывело Программа завершена нажмите любую клавишу... И потом второй раз esc окно закрывается.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переделать код с циклом while-do на repeat-until(Pascal) | Sting95 | Помощь студентам | 2 | 31.03.2014 17:21 |
помогите,пожалуйста решить с циклом repeat и while | Жаннулька | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 09.01.2014 23:22 |
Проблема repeat-y в Mozilla (22.0) | PsiMagistr | HTML и CSS | 3 | 06.08.2013 14:28 |
Проблема с циклом For | Mad_Homa | Общие вопросы C/C++ | 2 | 20.05.2013 00:57 |
проблема с repeat и until | dimass68 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 21.04.2012 10:35 |