IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
Closed Topic Открыть новую тему 
> цикл While
сообщение
Сообщение #1


Гость






У меня значит такой вопрос: имеется последовательность целых чисел, введенных пользователем с клавиатуры(например: 123 4567 8989 43 54545 ...), мне надо считать каждое число(что я и делаю при помощи "read', который читает каждое последующее число в последовательности, забиваю его в оператор цикла while, но тут возникает одна загвоздка:как обьяснить машине, до каких пор она должна выполнять оператор "read", когда ей остановиться ) Тоесть у меня проблема с самим условием цикла: While ..... do (не знаю что нужно поставить заместо "...." ).
P.S это часть строго поставленной задачи, поэтому использование массивов и строк недопустимо(можно пользоваться тоько условными операторами(IF, CASE ) и циклами)
_____________ wacko.gif
ПОМОГИТЕ ПЛЗ
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
тут возникает одна загвоздка:как обьяснить машине, до каких пор она должна выполнять оператор "read"
Стоп... Загвоздка - не тут... Загвоздка - в том, что ты должен сначала решить для себя, как ТЫ хочешь прекращать ввод данных, и только потом будем пытаться объяснить это компьютеру... Либо при вводе какого-то строго оговоренного значения, либо определенное количество чисел?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






А нельзя допустим связать прекращешие ввода данных с нажатием клавиши enter?? (Ну допустим ввожу строку чисел 1232 43453 457457.... здесь он читает все введенные числа через цикл, доходит до конца строки, где стоит enter и прекращает цикл)

Какое для этого должно быть условие цикла?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Гость @ 28.10.2006 9:59) *

Какое для этого должно быть условие цикла?

Я думаю примерно таким:
 While not (eoln(input)) do ..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






(eoln(input))-Обьясни плз что это за фишка и как она работает
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Гость @ 28.10.2006 11:45) *

(eoln(input))-Обьясни плз что это за фишка и как она работает

Eoln (f) - проверка на конец строки в файле F.
Input - Стандартный файл ввода (клавиатура), можно было и без Input написать:
while not(eoln) do ..

Тоже работать будет.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Попробовал, че т не катит: последовательность читает, а вот цикл не пашет, вот код:

Код
var a:integer;
begin
  readln(a);                       //читает всю последовательность
repeat
  read(a);                         //читает каждый символ последовательности
  write(a)                          //выводит каждый символ последовательности
until (eoln(input));             //цикл работает до тех пор, пока не "встретит" "enter"
  readln;
end.


Все вродь логично, а не работает мож все дело в "(eoln(input))" иль я чего-то не понимаю??
или эт все из-зи дельфи(Console app)
_______________________________
Помогите разобраться плз blink.gif




 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






А что делает эта строка:
readln(a); //читает всю последовательность
Особо комментарий интересует, как ты собрался всю последовательность в одну переменную внести.
При таком раскладе ввод должен быть таким:
4 // для readln
1 2 3 4 5 6 //для read
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Milk: пасиб, это помогло, немного подработал и все получилось, включил этот алгоритм в более общую задачу и все получилось. Мне надо было из последовательности просуммировать те числа которые кратны 3, вот что получилось:

 ! 
Раздел - теоретический, программы будут удаляться... Не надо разводить на форуме бардак!



Зачем я вывожу этот код?
Может кому нить такое же задание в лабе попадется, а я вот например хз как используя только циклы и условные операторы обойтись без "(eoln(input))"
З.Ы спасибо всем, кто помог

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата
Зачем я вывожу этот код?
Вот именно, ЗАЧЕМ? Это пока означает только одно: Правила ты не читал, и делать этого не желаешь:
Цитата(Правила Раздела)
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ - для этого есть отдельный раздел!


Код, извини, удален. Тема закрыта... В следующий раз соизволь прочитать ХОТЯ БЫ то, что написано в рамочке наверху...
 К началу страницы 
+ Ответить 

Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.10.2024 15:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name