Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2012, 00:19   #1
Ebon
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 26
По умолчанию Паскаль, работа с файлами.

Вывести на экран строки с наибольшим количеством слов из файла:
Сделал, чтобы выводилась только 1 максимальная строка, а как сделать чтобы выводились все максимальные.
Код:
uses crt;
var f: text;
s,smax: string;
i,k,kmax:integer;
Begin
assign (f,'C:\in.txt');
reset(f);
kmax:=0;
while not(eof(f)) do
      begin
      k:=0;
      readln(f,s);
      for i:=1 to length(s) do
          if s[i]=' ' then inc(k);
      inc(k);
      if k>kmax then
         begin
         kmax:=k;
         smax:=s;
         end;
      end;
close(f);
writeln('',kmax);
writeln(smax);
readln;
end.
Ebon вне форума Ответить с цитированием
Старый 13.03.2012, 00:35   #2
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Что вы понимаете под "все максимальные"?
В том смысле, что если попались одинаковые строки по количеству слов? Или как?
Базиля вне форума Ответить с цитированием
Старый 13.03.2012, 08:41   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Что вы понимаете под "все максимальные"?
очевидно, что максимальная это
Цитата:
с наибольшим количеством слов
Ebon, во-первых, у Вас не очень корректно считаются слова.
мало того, что разделителем слов у вас выступает только пробел (ну это ещё ладно, раз ничего в задании не сказано, то можно допустить), но почему Вы считаете слова по пробелам?!
введите такую строчку
Код:
"   a     b    "
(обратите внимание, что пробелов больше одного и они есть вначале и сзади..)

во-вторых, по сути проблемы, нужно либо сохранять где-то (в массиве, например) строчки с максимальной длиной,
либо, банально сделать ДВА прохода по файлу.
1-й проход - (ваш код из пост #1) ищем максимальное значение слов в строке, 2-й проход по файлу - печатаем всё строки, где количество слов равно максимальному. всё.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.03.2012, 21:49   #4
Ebon
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 26
По умолчанию

Ну вот:
Код:
Program qwerty;
uses crt;
var f: text;
s: string;
i,k,kmax:integer;
Begin
assign (f,'D:\file.txt');
reset(f);
kmax:=0;
while not(eof(f)) do
      begin
      k:=0;
      readln(f,s);
      for i:=1 to length(s) do
          if s[i]=' ' then inc(k);
      inc(k);
      if k>kmax then
         kmax:=k;
      end;
writeln('maximalnoe kolvo slov ',kmax,' v:');
reset(f);
while not(eof(f)) do
      begin
      k:=0;
      readln(f,s);
      for i:=1 to length(s) do
          if s[i]=' ' then inc(k);
      inc(k);
      if k=kmax then
         writeln(s);
      end;
close(f);
readln;
end.
А как сделать чтобы программа слова считала не по пробелам?

Последний раз редактировалось Ebon; 19.03.2012 в 22:07.
Ebon вне форума Ответить с цитированием
Старый 19.03.2012, 22:01   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
А как сделать чтобы программа слова считала не по пробелам?
А как же ещё считать слова, если не по разделительным знакам?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 19.03.2012, 22:05   #6
Ebon
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 26
По умолчанию

Например, у меня строка состоит из слов, которые разделены пятью пробелами. В этом случае программа работать не будет.
Ebon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с Файлами (паскаль) Anny_Apple Помощь студентам 1 29.05.2011 14:05
Работа с файлами (паскаль) patisson74 Помощь студентам 1 15.04.2010 01:18
Паскаль, работа с файлами. Alexey_HvaranG Помощь студентам 5 07.12.2009 22:39