IPB

Здравствуйте, гость ( Вход | Регистрация )

> Как устранить ошибку?, Возникает ошибка чтения после конца файла. 100.Disk read error.
savedata
сообщение 4.9.2011, 6:30
Сообщение #1


Студент
**

Группа: Продвинутые
Сообщений: 64
Регистрация: 8.1.2011
Из: Красноярск
Город: Krasnoyarsk
Учебное заведение: СибГТУ
Вы: студент



Дан файл f, компоненты которого являются действительными числами. Найти наибольшее из значений модулей компонент с нечетными номерами.

Program z472v;
Uses crt;
Var f:file of integer;
v,k,max:integer;
Begin
clrscr;
Assign(f,'execute.dat');
Reset(f);
max:=0;

while not eof(f) do
begin
read(f,v);
writeln(v:0);
k:=k+1;
if (k mod 2<>0) and (abs(v)>max) then max:=abs(v);
end;
close(f);
writeln('naibolshii modul komponent s necetnim nomerom - ',max:0);
readln;
end.

Содержание файла execute.dat:

2
-3
12
44
-21
23
13
-15
8
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов(1 - 3)
savedata
сообщение 4.9.2011, 7:12
Сообщение #2


Студент
**

Группа: Продвинутые
Сообщений: 64
Регистрация: 8.1.2011
Из: Красноярск
Город: Krasnoyarsk
Учебное заведение: СибГТУ
Вы: студент



После перезагрузки компа ошибка исчезла. но теперь из файла считывается какая то ерунда:

3378
11530
3379
12554
3378
13322
3380
11530
12594
2573
13106
2573
13105
2573
12589
3381
14346
naibolshii modul komponent s necetnim nomerom - 14346

почему?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Борман
сообщение 4.9.2011, 8:30
Сообщение #3


Школьник
*

Группа: Продвинутые
Сообщений: 14
Регистрация: 14.7.2010
Город: Нижний Новгрод



Переменная K не инициализирована... наверное.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
savedata
сообщение 4.9.2011, 11:22
Сообщение #4


Студент
**

Группа: Продвинутые
Сообщений: 64
Регистрация: 8.1.2011
Из: Красноярск
Город: Krasnoyarsk
Учебное заведение: СибГТУ
Вы: студент



Оказалось что я в файл execute.dat просто через блокнот ввел данные) а нужно интерпретировать чтобы pascal понял)

Я осуществил ввод через программу и все заработало:

Program z472v;
Uses crt;
Var f:file of integer;
i,n,v,k,max:integer;
s:string;
Begin
clrscr;
Assign(f,'execute.dat');

write('create[C] a new or use(any key) an existing file? - ');
readln(s);

if (s='c') or (s='C') then
begin
Rewrite(f);

Write('enter n - ');
Readln(n);

for i:=1 to n do
begin
readln(v);
write(f,v);
end;

end;


Reset(f);
max:=0;

while not eof(f) do
begin
read(f,v);
writeln(v:0);
k:=k+1;
if (k mod 2<>0) and (abs(v)>max) then max:=abs(v);
end;
close(f);
writeln('naibolshii modul komponent s necetnim nomerom - ',max:0);
readln;
end.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 



- Текстовая версия Сейчас: 25.5.2025, 19:31

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru