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

> Прочтите прежде чем задавать вопрос!

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

> Типизированные файлы
mfractus
сообщение 4.03.2011 22:42
Сообщение #1


Новичок
*

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

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


Доброго времени суток! Прошу помощи в решении задачи. Заранее спасибо!

Текст задачи.

Сформировать файл G. Определить сумму и произведение наибольшего и наименьшего из значений компонент. Заменить значением суммы первую и последнюю компоненты, а на значение произведения – увеличить каждую третью компоненту файла. Файл вывести до и после преобразования.

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


Гость






Цитата
Возник вопрос, read(F,buf); тоже стоит после while not EOF(F) do, тем не менее программа исправно работает. В чем тут дело не пойму.
При чем тут, где стоит Read? Как только дойдешь до конца файла, цикл While тут же завершится, то есть если сейчас ты прочел последнюю запись, то следующая итерация начнется с проверки EOF(f). Проверка вернет "ложь", и цикл прекратит выполняться, ты сразу перейдешь к строке, печатающей результаты.

А ты в приведенном выше фрагменте нигде на EOF не проверял, отсюда и ошибка. Да, да... Даже если тебе и кажется, что ее там нет: твои ощущения - очень ненадежная штука; оставь заботу о том, чтоб не читать за концом файла, компилятору. У него это получится лучше.

И, наконец, пользуйся комбобоксом CODE, неужели ты действительно не видишь разницы, как выглядит код с подветкой, а как - без нее?

Добавлено через 8 мин.
И потом. Почему вы так любите делать ненужную работу? Первая компонента файла отличается от всех остальных? За что ей такая честь, быть прочитанной отдельно, вне цикла? Если я сделаю цикл:

Min := maxint; Imin := -1;
Max := -maxint; Imax := -1;

while not Eof(f) do
begin
read(f, buf);

if buf > Max then
begin
Max:=buf; Imax:=i;
end;
if buf < Min then
begin
Min:=buf; Imin:=i;
end;
end;
, я что-то упущу? Нет, мой код будет выполняться ровно так, как и должен. Зато ошибки не будет.
 К началу страницы 
+ Ответить 
Lapp
сообщение 5.03.2011 11:43
Сообщение #3


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

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

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


Цитата(volvo @ 5.03.2011 11:13) *
Зато ошибки не будет.

Совершенно согласен, +1.
Сглупил я, однако )).

(Добавлено: ) хотя, else я все же оставил бы..


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

Сообщений в этой теме
mfractus   Типизированные файлы   4.03.2011 22:42
volvo   "Помощь" и "Получение готового кода...   4.03.2011 22:47
mfractus   "Помощь" и "Получение готового код...   4.03.2011 22:53
mfractus   Вот что еще написал. read(F,Min); write...   4.03.2011 23:37
Lapp   Просьба использовать теги! Правила Форума, п.5...   5.03.2011 6:34
mfractus   Спасибо за ответ! Да, два куска соединить. Вот...   5.03.2011 11:03
volvo   При чем тут, где стоит Read? Как только дойдешь до...   5.03.2011 11:13
Lapp   Зато ошибки не будет. Совершенно согласен, +1. Сгл...   5.03.2011 11:43
TarasBer   > Возник вопрос, read(F,buf); тоже стоит после ...   5.03.2011 11:43
TarasBer   > За что ей такая честь, быть прочитанной отдел...   5.03.2011 12:18
Lapp   Интересно, как иногда совсем несложный вопрос стан...   5.03.2011 13:57
TarasBer   > - то, может, с потерей элегантности, исполнят...   5.03.2011 14:16
mfractus   Спасибо всем, кто принял участие в дискуссии! ...   5.03.2011 16:51
mfractus   Вот что получилось, но где то ошибка, точнее код -...   5.03.2011 19:08


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

 



- Текстовая версия 14.07.2025 19:00
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"