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

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

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

 
 Ответить  Открыть новую тему 
> Задача на файл, Помогите, что здесь не так?
сообщение
Сообщение #1





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

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


 
{$N+}
program lab8;
uses crt;
type q=record
f:string [10];
p:string [10];
g:integer;
r:integer;end;
var w:file of q;
m:q;
i, r_max, s:integer;

Begin
assign(w,'t.txt');
rewrite(w);
for i:=1 to 10 do begin
writeln('familya');
readln (m.f);
writeln('pol');
readln (m.p);
writeln('god rojdeniya');
readln (m.g);
writeln('rost v cm');
readln (m.r);
write(w, m); end;
reset(w);
for i:=1 to 10 do begin
read(w,m);
write (m.f, m.p, m.g, m.r);
end;
s:=1;
seek(w,0);
for i:=1 to 10 do begin
if m.r>s then r_max:=m.r;
writeln(m.f, m.p, m.g, m.r);
writeln (r_max); end;
readln;
end.





Задача на файл, Помогите, что здесь не так?

Вот само задание: Запись имеет вид: фамилия, пол, год рождения, рост. Вывести данные о самом высоком спрорцмене.

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


?
***

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

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


Цитата
Задача на файл, Помогите, что здесь не так?

с чего ты решил что здесь что то не так, можеш поведать свою мисль
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Ну поппробуй ее запустить она компилиться, но нехрена неправельно работает=((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


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

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

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


Цитата(dae-woo @ 24.10.2009 21:49) *
Ну поппробуй ее запустить она компилиться, но нехрена неправельно работает=((
Чисто дружеский совет: ты гораздо быстрее и надежнее получишь помощь, если будешь точнее указывать основные симптомы неправильной работы программы. Ты пойми: что большинство (кто даже смог бы помочь), просто поленится скачивать, компилировать и запускать (как я, например), если не будет иметь зацепки.

В нижнем куске у тебя ошибка на ошибке.
Ты перематываешь файл на начало (хотя, лучше писать просто Reset(w) вместо Search(w,0) ), но ты его не читаешь больше никогда. Читай заново каждую запись в цикле (хотя, это можно было сделать и в предыдущем цикле, в котором ты выврдишь записи на печать).

Ты запутался в переменных s и r_max. Я полагаю, s - номер нужной записи в файле. Тебе надо сравнивать рост и запоминать его, но еще тебе нужен номер записи спортмена с макс ростом, чтоб потом ее прочитать и вывести.

Короче, примерно так (не проверял).. Этот код заменяет ОБА последних цикла. Я заменил for на while для большей гибкости.
  i:=0;
r_max:=0;
Reset(w);
while not EoF(w) with m do begin
Read(w,m);
if r>r_max then begin
r_max:=r;
s=i
end;
Inc(i);
writeln(i:3,' : ',f:20, p:10, g:10, r:10)
end;
Search(w,s);
Read(w,m);
with m do writeln('Max hight sportsmen is ',f:20, p:10, g:10, r:10);

И закрывай файл в конце..
Если что неясно - спрашивай smile.gif

Добавлено через 17 мин.
И еще вопрос: если макмимальный рост имеют ДВА (или больше) спортсмена - выводить только перврго или всех? Если всех, то нужен второй цикл. Счетчик записей тогда становится не нужен, и тот кусок будет выглядеть приметно так:
  r_max:=0;
Reset(w);
while not EoF(w) with m do begin
Read(w,m);
if r>r_max then r_max:=r;
writeln(f:20, p:10, g:10, r:10)
end;
Reset(w);
while not EoF(w) with m do begin
Read(w,m);
if r=r_max then writeln('Max hight sportsmen is ',f:20, p:10, g:10, r:10);
end;



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





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

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


ой что-то я непонял=((( куда это все лепить
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
куда это все лепить
dry.gif Лепить никуда ничего не надо в программировании. Надо разобраться, как работает предложенный код, и исправить свою программу соответствующим образом... Что именно непонятно по коду?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


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

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

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


Цитата(dae-woo @ 25.10.2009 11:26) *
ой что-то я непонял=((( куда это все лепить
Ну я же ясно выразился (см. выше): "Этот код заменяет ОБА последних цикла"!!
Читать умеешь? очки надень..


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





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

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


выдает ошибки на
этой строчки: while not EoF(w) with m do begin
и незнает команды Search или хрен его что он несет((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


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

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

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


Цитата(dae-woo @ 25.10.2009 13:53) *
этой строчки: while not EoF(w) with m do begin
и незнает команды Search или хрен его что он несет((

1. я пропустил do
2. спутал, надо seek
извиняюсь. Что ж ты, такие простые ошибки не можешь сам исправить?..


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





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

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


do вставил я тут загнал себя в угол=))

Добавлено через 8 мин.
спасиб народ!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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