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

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

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

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


Новичок
*

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

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


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

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

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

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


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

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

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


Интересно, как иногда совсем несложный вопрос становится интересным предметом для обсуждения.. smile.gif

Во-первых, должен признать, что вот тут:
Цитата(Lapp @ 5.03.2011 11:43) *
(Добавлено: ) хотя, else я все же оставил бы..
- я снова ощибся. Если вносить чтение первого элемента в цикл, то ELSE применять нельзя. Извиняюсь. Но это наводит на другие мысли (см. ниже)..

Цитата(TarasBer @ 5.03.2011 12:18) *
Для целых чисел можно обойтись -MaxInt-1, а для вещественных или строк или ещё чего придётся уже делать иначе. Но выносить первый элемент наружу всё равно не надо.
first := true;
while not Eof(f) do begin
read(f, buf);

if (buf > Max) or first then begin
first := false;
Max:=buf;
Imax:=i;
end;

if (buf < Min) or first then begin
first := false;
Min:=buf;
Imin:=i;
end;

end;

А мне не нравится добавление новой (логической) переменной и проверка ее на каждом проходе цикла..

Короче, я повторюсь, что в первом моем фрагменте кода есть ошибка, и ее необходимо исправить. Предложено два варианта, но в обоих есть некоторый недостаток - трата времени в цикле. Если мой код подправить вот так:
  reset(f);
if not eof(f) then begin
read(f,min);
max:= min;
while not eof(f) do begin
read(f,a);
if a<min then min:=a else if a>max then max:=a
end;
{обработка результатов}
end
else writeln('файл пуст');

- то, может, с потерей элегантности, исполняться он будет более эффективно smile.gif. Лишний код - не всегда лишняя работа (компьютера) smile.gif. И не надо забывать, что после нахождения макс и мин все равно придется обрабатывать ситуацию с пустым файлом при обработке результатов (см. задание). А в этом варианте она обрабатывается за один раз..


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

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


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

 





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