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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.02.2009, 23:13   #1
KAPAHDAW
Новичок
Джуниор
 
Регистрация: 16.02.2009
Сообщений: 2
Сообщение Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов.

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

Код:
Program KR;
var s,sub:string;
    i,j,n:integer;
    a:array[1..100] of string;
    q:set of char;
    F : Text;
begin
Assign(F, 'D:\1.txt');
Reset(F);
i:=0;n:=0;
q:=[' ' , ',' , '-' , '!' , '?' , ';' , ':' , '.'];
While not EoF(F) do
begin
Readln(F,s);
repeat
inc(i);
if s[i] in q then begin
                  inc(n);
                  a[n]:=sub;
                  sub:='';
                  end
else if not (s[i] in q) then
                        sub:=sub+s[i];
until i=length(s);
end;
Close(F);
if sub <> ' ' then begin
                   inc(n);
                   a[n]:=sub;
                   end;
writeln;
for i:=1 to n-1 do
 for j:=n-1 downto i do
  if a[j]>a[j+1] then begin
                      sub:=a[j+1];
                      a[j+1]:=a[j];
                      a[j]:=sub;
                      end;
 for i:=1 to n do
  writeln(a[i]);
  Writeln;
  Write('Количество слов: ',n);
end.
Если у кого есть свободное время, посмотрите и подскажите пожалуйста, что не правильно и что нужно переписать.
KAPAHDAW вне форума
Старый 17.02.2009, 00:01   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
Program KR;
uses crt;
var s,sub:string;
    i,j,n:integer;
    a:array[1..100] of string;
    q:set of char;
    F : Text;
begin
clrscr;
Assign(F, 'C:\1.txt');
Reset(F);
n:=0;
q:=[' ' , ',' , '-' , '!' , '?' , ';' , ':' , '.'];
While not EoF(F) do
begin
Readln(F,s);
i:=0;
repeat
inc(i);
if (s[i] in q)and (sub<>'') then begin
                  inc(n);
                  a[n]:=sub;
                  sub:='';
                  end
else if not (s[i] in q) then sub:=sub+s[i];
until i=length(s);
end;
Close(F);
if sub <> '' then begin
                   inc(n);
                   a[n]:=sub;
                   end;
writeln;
for i:=1 to n-1 do
 for j:=n-1 downto i do
  if a[j]>a[j+1] then begin
                      sub:=a[j+1];
                      a[j+1]:=a[j];
                      a[j]:=sub;
                      end;
 for i:=1 to n do
  writeln(a[i]);
  Writeln;
  Write('Количество слов: ',n);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума
Старый 17.02.2009, 01:19   #3
KAPAHDAW
Новичок
Джуниор
 
Регистрация: 16.02.2009
Сообщений: 2
Сообщение

Примного благодарен. Протестировал программу и проанализаровал код. Все работает, как часы.
KAPAHDAW вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Количество разных слов в тексте) Если можно сразу код pascal1994 Помощь студентам 1 05.02.2009 10:06
Дан файл, содержащий текст на русском языке.Составить в алфавитном порядке список слов в файл. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2008 12:05
В PASCAL .Составить список слов начинающихся на конкретную букву Waia Помощь студентам 1 07.11.2008 18:20
Число перемен знака в массиве. Количество слов в тексте. Pascal. Cartman18 Помощь студентам 1 10.12.2007 12:58