![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с задачей. [D7, XP]
Stasxxx © (2008-01-22 12:58:00)var
Form1: TForm1;
f1:textfile;
s1,s2,m:string;
k:longint;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,n:integer;
f2:textfile;
begin
assignFile(f1,'F:\chisla1.txt');
assignfile(f2,'F:\chisla2.txt');
{$I-}
reset(f1);
rewrite(f2);
{$I+}
if IOResult0 then
begin
Messagedlg('Îøèáêà äîñòïà ê ôàéëó',mterror,[mbok],0);
exit;
end;
While not (Eof(f1)) do
Begin
If (Eof(f1)) Then
begin
messagedlg('Ôàéë ïóñò',mterror,[mbok],0);
exit;
end;
ReadLn(f1,s1);
begin
for i:=1 To Length(s1) do
begin
n:=strtoint(s1[i]);
if (n mod 2)0
then
begin
m:=inttostr(n);
write(f2,m);
end;
Label1.Caption:='×èñëà â ôàéë çàïèñàíû...'+#13;
end;
end;
end;
Closefile(f1);
Closefile(f2);
assignfile(f2,'F:\chisla2.txt');
reset(f2);
readln(f2,s2);
k:=length(s2);
closefile(f2);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
f:file of integer;
buf1,buf2,m:integer;
n:longint;
ok:boolean;
begin
assignfile(f,'F:\chisla2.txt');
reset(f);
repeat
ok:=true;
for n:=0 to k-2 do
begin
seek(f,n);
read(f,buf1);
read(f,buf2);
if buf1>buf2 then
begin
seek(f,0);
write(f,buf2);
write(f,buf1);
ok:=false;
end;
end;
until ok;
closefile(f);
end;
end.
Вот код задачи, компиляция проходит, когда начинаешь сортировать, выходит ощибка, read beyond end of file, подскажите в чем проблема!
Stasxxx (2008-01-22 13:39:00) [61]У меня просто нет столько времени, мне сегодня еще экзамен по физике учить, и сдавать нужно эту задачу, если не сдам меня к эзамену не допустят, короче мне помощь нужна.
Плохиш (2008-01-22 13:38:00) [62]
> Stasxxx © (22.01.08 13:29) [11]
> Я же говорю авторов я незнаю. Списал и отдал учебник.
И в учебнике не написано из чего состоят строки и чем integer от этих составляющих отличается?
Сергей М. (2008-01-22 13:38:00) [63]
> Ты мне можешь код исправить?
Зачем ?
Чтобы ты не вникая сдал его преподу как свой собственный код ?
Ega23 (2008-01-22 13:35:00) [64]
> Надо вернуть позицию указателя на начало? т.е. еще рез seek
Начни со следующего:
1. Постановка задачи. Что ты хочешь сделать?
2. Исходные данные. Какие входные-выходные параметры должны быть у твоей программы.
3. Выбор модели. Какие технологии, алгоритмы, средства разработки ты собираешься использовать.
4. Реализация задачи. Подробное описание реализации, блок-схемы и т.п.
5. Тестирование. Тестирование возможных "подводных камней".
Смею тебя уверить, если ты будешь использовать такой метод разработки, то 95% вопросов у тебя отпадут сами-собой.
А "списал и отдал учебник" - это просто несерьёзно.
Stasxxx (2008-01-22 13:35:00) [65]А почему она тогда в консоли работает? Ты мне можешь код исправить? У меня не получается ничего!Я еще слаб в программировании.
Сергей М. (2008-01-22 13:33:00) [66]Списал-то зачем ?
Почему бы самому "с нуля" не попытаться ?
Stasxxx (2008-01-22 13:29:00) [67]Я же говорю авторов я незнаю. Списал и отдал учебник. Надо вернуть позицию указателя на начало? т.е. еще рез seek прописать?
Ega23 (2008-01-22 13:25:00) [68]
assignfile(f,'F:\chisla2.txt');
reset(f);
repeat
ok:=true;
for n:=0 to k-2 do
begin
seek(f,n);
read(f,buf1);
read(f,buf2);
if buf1>buf2 then
begin
seek(f,0);
write(f,buf2);
write(f,buf1);
ok:=false;
end;
end;
until ok;
closefile(f);
До сюда не досмотрел, но и не мудрено, что ошибка выскакивает.
Тебе не приходило в голову, что при втором чтении f ты уже вываливаешься за пределы файла?
Сергей М. (2008-01-22 13:24:00) [69]
> с учебника списал
Тебя и спрашивают - с какого ?
Stasxxx (2008-01-22 13:22:00) [70]Я на втором курсе, только разбираться стал в задачах, код сортировки с учебника списал, немного отредактировал, в консоле он работает, правда немного коряво. Авторов этой книги я незнаю.
Сергей М. (2008-01-22 13:20:00) [71]По какому букварю учишься, новичок ?
Stasxxx (2008-01-22 13:18:00) [72]Зря смеешся, я новичок, ты тоже не сразу научился!!!Я помощи прощу, а приколов!
Сергей М. (2008-01-22 13:16:00) [73]
> он ошибку не в этом месте выдает
Он еще и в другом месте выдаст, настоящие грабли еще только впереди)
Это что - код на зачет у препода или мазохизм ?
Stasxxx (2008-01-22 13:12:00) [74]Так он ошибку не в этом месте выдает! А вот здесь:
read(f,buf2);
Ega23 (2008-01-22 13:03:00) [75]В весь код не вникал, ибо страшен.
Но подозрение вот на это:
assignfile(f2,'F:\chisla2.txt');
reset(f2);
readln(f2,s2);
k:=length(s2);
closefile(f2);
2 автор: учись пользоваться механизмом отладки.
Сергей М. (2008-01-22 13:01:00) [76]
> в чем проблема
В попытке чтения за пределами конца файла
Skyle (2008-01-22 13:01:00) [77]А текст ошибки перевести на русский удалось?