savedata
Сообщение
#76355 4.9.2011, 6:30
Дан файл 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
savedata
Сообщение
#76356 4.9.2011, 7:12
После перезагрузки компа ошибка исчезла. но теперь из файла считывается какая то ерунда:
3378
11530
3379
12554
3378
13322
3380
11530
12594
2573
13106
2573
13105
2573
12589
3381
14346
naibolshii modul komponent s necetnim nomerom - 14346
почему?
Борман
Сообщение
#76357 4.9.2011, 8:30
Переменная K не инициализирована... наверное.
savedata
Сообщение
#76358 4.9.2011, 11:22
Оказалось что я в файл 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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.