Форум «Всё о Паскале» _ Теоретические вопросы _ цикл While
Автор: ~PALERMO~ 28.10.2006 3:46
У меня значит такой вопрос: имеется последовательность целых чисел, введенных пользователем с клавиатуры(например: 123 4567 8989 43 54545 ...), мне надо считать каждое число(что я и делаю при помощи "read', который читает каждое последующее число в последовательности, забиваю его в оператор цикла while, но тут возникает одна загвоздка:как обьяснить машине, до каких пор она должна выполнять оператор "read", когда ей остановиться ) Тоесть у меня проблема с самим условием цикла: While ..... do (не знаю что нужно поставить заместо "...." ). P.S это часть строго поставленной задачи, поэтому использование массивов и строк недопустимо(можно пользоваться тоько условными операторами(IF, CASE ) и циклами) _____________ ПОМОГИТЕ ПЛЗ
Автор: volvo 28.10.2006 3:55
Цитата
тут возникает одна загвоздка:как обьяснить машине, до каких пор она должна выполнять оператор "read"
Стоп... Загвоздка - не тут... Загвоздка - в том, что ты должен сначала решить для себя, как ТЫ хочешь прекращать ввод данных, и только потом будем пытаться объяснить это компьютеру... Либо при вводе какого-то строго оговоренного значения, либо определенное количество чисел?
Автор: Гость 28.10.2006 13:59
А нельзя допустим связать прекращешие ввода данных с нажатием клавиши enter?? (Ну допустим ввожу строку чисел 1232 43453 457457.... здесь он читает все введенные числа через цикл, доходит до конца строки, где стоит enter и прекращает цикл)
Какое для этого должно быть условие цикла?
Автор: Malice 28.10.2006 14:25
Цитата(Гость @ 28.10.2006 9:59)
Какое для этого должно быть условие цикла?
Я думаю примерно таким:
While not (eoln(input)) do ..
Автор: Гость 28.10.2006 14:45
(eoln(input))-Обьясни плз что это за фишка и как она работает
Автор: Malice 28.10.2006 15:28
Цитата(Гость @ 28.10.2006 11:45)
(eoln(input))-Обьясни плз что это за фишка и как она работает
Eoln (f) - проверка на конец строки в файле F. Input - Стандартный файл ввода (клавиатура), можно было и без Input написать:
while not(eoln) do ..
Тоже работать будет.
Автор: ~PALERMO~ 29.10.2006 2:20
Попробовал, че т не катит: последовательность читает, а вот цикл не пашет, вот код:
Код
var a:integer; begin readln(a); //читает всю последовательность repeat read(a); //читает каждый символ последовательности write(a) //выводит каждый символ последовательности until (eoln(input)); //цикл работает до тех пор, пока не "встретит" "enter" readln; end.
Все вродь логично, а не работает мож все дело в "(eoln(input))" иль я чего-то не понимаю?? или эт все из-зи дельфи(Console app) _______________________________ Помогите разобраться плз
Автор: Mlc 29.10.2006 13:04
А что делает эта строка: readln(a); //читает всю последовательность Особо комментарий интересует, как ты собрался всю последовательность в одну переменную внести. При таком раскладе ввод должен быть таким: 4 // для readln 1 2 3 4 5 6 //для read
Автор: ~PALERMO~ 29.10.2006 15:19
Milk: пасиб, это помогло, немного подработал и все получилось, включил этот алгоритм в более общую задачу и все получилось. Мне надо было из последовательности просуммировать те числа которые кратны 3, вот что получилось:
!
Раздел - теоретический, программы будут удаляться... Не надо разводить на форуме бардак!
Зачем я вывожу этот код? Может кому нить такое же задание в лабе попадется, а я вот например хз как используя только циклы и условные операторы обойтись без "(eoln(input))" З.Ы спасибо всем, кто помог
Автор: volvo 29.10.2006 15:23
Цитата
Зачем я вывожу этот код?
Вот именно, ЗАЧЕМ? Это пока означает только одно: Правила ты не читал, и делать этого не желаешь:
Цитата(Правила Раздела)
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ - для этого есть отдельный раздел!
Код, извини, удален. Тема закрыта... В следующий раз соизволь прочитать ХОТЯ БЫ то, что написано в рамочке наверху...