Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите с задачкой на файлы!

Автор: Svechka 12.01.2007 1:11

"В заданном тексте определить целое число, состоящее из наибольшего количества цифр."

то есть получается у меня текстовый файл будет состоять из чисел типа real ? и среди них надо будет искать например чсла 500.0 , 456.0 ... а как тогда для них считать количество цифр? Я сначала сделала вообще без количества цифр, типа у целого числа неважно какое наибольшее количество, надо лишь найти максимальное.. вот:

 Program Z1;
uses crt;
var
f:text;
name:string[20];
a,max:real;
i,k:integer;
begin
clrscr;
writeln ('Enter file name ');
readln (name);
max:=0;
assign(f,name);
{$I-}reset(f) {$I+};
If IOResult<>0 then begin
writeln ('Error');halt;end;
while not eof(f) do begin
read (f,a);
if frac(a)=0 then begin k:=k+1;
for i:=1 to k do
if a>max then max:=a;
end;
writeln(max:4:2);
close(f);
readln;
end.


но по-моему так неграмотно..

или все-таки файл будет из чисел типа integer ?

подскажите, пожалуйста!

Автор: мисс_граффити 12.01.2007 1:19

123.0 - это не целое число с точки зрения ЭВМ.
Странно задача сформулирована.... В файле могут быть только числа? Или, например, такое тоже допустимо:

Цитата
fjklf 1246dkjd; 123
?

Автор: volvo 12.01.2007 1:20

Ты сама себе противоречишь:

Цитата
"В заданном тексте определить целое число, состоящее из наибольшего количества цифр."
, при чем здесь Real?

Я бы разбивал текст на слова (можно прямо "на лету", хранить все слова совершенно необязательно), и КАЖДОЕ слово проверял, не является ли оно целым (через Val), и если является - то тогда уже проверять количество цифр, т запоминать то число, в котором цифр больше...

Прежде чем начать реализовывать - маленькое уточнение: что будет, если есть больше одного числа с одинаковым (и максимальным) количеством цифр? Какое из них будет ответом?

P.S. Кстати, "в заданном тексте" наводит на мысль, что файл все-же текстовый...

Автор: Svechka 12.01.2007 1:23

ладно, я поняла вою ошибку, спасибо всем) переделаю заново все..