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

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

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

> Где результат?, Вопрос чисто конкретный.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской
Реальное имя: Александр

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


М
Пользуемся тегами


Пишу пргу:
program sum;
var
x,y,s:integer;
write('введите 1е сагаемое);
read(x);
write('введите 2е слагаемое');
read(y);
s:=x+y;
write('сумма равна',s);
end.

Компилирую, запускаю, ввожу 1е нажимаю ввод, ввожу 2е нажимаю ввод и wacko.gif .
А где результат?

Сообщение отредактировано: klem4 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

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

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


Верное замечание, впредь буду компилить под стандартным, ситуацию спасают 2 readln, но почему, не понял =) Можно объяснить ?


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Tan @ 2.05.2007 19:22) *

Можно объяснить ?

Извиняюсь за вторжение.. не могу удержаться - вопрос уж очень приятный smile.gif

Это плата за простоту идеологии ввода, используемой в Read и ReadLn (Read имеется в виду для файлов типа text!). В простых случаях все работает, как ожидается, но в некоторых случаях возможны накладки..
Твой первый ReadLn уходит на съедение Enter'а, завершающего ввод y.
Ситуацию легко исправить, если использовать для ввода х и у не Read, а ReadLn. Собственно, это и есть тот способ ввода, который предполагается при работе с текстовыми файлами (упрощенно выражаясь smile.gif). Отдельная операция ввода - это всегда ввод строки (в которой может быть несколько чисел). И если эта строка вводилась Read'ом, то завершающий ее Enter обычно просто как бы игнорируется - если не поставить за ним ReadLn, что ты и сделал smile.gif. ReadLn же без параметров просто переходит к новой строке, пропуская конец текущей.
Первый ReadLn очистил буфер, второй выполнил задержку.

PS
Н-да, простого объяснения не вышло.. wacko.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Balhash   Где результат?   2.05.2007 21:48
volvo   Жмешь Alt+F5 и смотришь на результат ...   2.05.2007 21:58
Tan   program sum; var x,y,s:integer; begin {<----} w…   2.05.2007 22:01
volvo   Tan, и что? :) Не заметил, что в программе 2 раза…   2.05.2007 22:03
Tan   Я наверно не тем голову забил, но кроме ковычки в …   2.05.2007 22:10
volvo   Ты проверял, КАК твой код работает? Вот попробуй е…   2.05.2007 22:12
Tan   не знаю как в БП7, я компилировал на Pascal ABC, у…   2.05.2007 22:15
volvo   Я не знаю, что это Pascal ABC - этот раздел не для…   2.05.2007 22:19
Tan   Верное замечание, впредь буду компилить под станда…   2.05.2007 22:22
Lapp   Можно объяснить ? Извиняюсь за вторжение.. не м…   3.05.2007 0:16
Tan   Спасибо Lapp, для меня ты вполне доступно объяснил…   3.05.2007 0:29
Cherynka   Проблема решается добавлением вместо Readln в конц…   9.05.2007 23:38
volvo   Резонно возникает вопрос - а чем ЭТО лучше чем Rea…   9.05.2007 23:48
Cherynka   Я не говорю про преимущества, я говорю про альтерн…   9.05.2007 23:57
volvo   Максимум 2... Объяснить?   9.05.2007 23:59
Cherynka   Видимо да. Хотя я сама с такой ситуацией не сталки…   10.05.2007 0:11
Sto   Как альтернатива, можно вот так ... readln(y); s:=…   10.05.2007 1:09
Cherynka   Логично. Вот только не пойму, почему вы так катего…   10.05.2007 1:25
Tan   Просто вышеперечисленная дискуссия к которой вы пр…   10.05.2007 1:36


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

 





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