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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2009, 21:14   #1
qwertytol
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 17
По умолчанию Определить процедуру нахождения количества слов

Буду очень благодарен, если кто-нибудь поможет сделать.

Задан символьный файл. Определить процедуру нахождения количества слов, в которые входит данная буква, и применить ее для определения букв, которые входят в наименьшее количество слов.

Код:
Uses Crt; 
Var h: text; 
s,k:string; 
i,j,n,r,min,l:integer; 
f,t:boolean; 
a:array[33..175] of integer; 

Procedure Poisk(q:integer); 
begin 
Assign (h,'text.txt'); 
Reset (h); 
n:=0; 
t:=false; 
While Eof (h) = false do 
begin 
Readln(h,s); 
k:=''; 
f:=false; 
for i:=1 to length(s) do begin 
if (s[i]=' ') or (i=length(s)) then f:=true 
else f:=false; 
if f=false or (i=length(s)) then k:=k+s[i]; 
if f then begin 
for j:=1 to length(k) do 
if k[j]=chr(q) then t:=true; 
k:=''; 
if t then n:=n+1; 
t:=false; 
end; 
end; 
end; 
Close(h); 
a[q]:=n; 
end; 

begin
Clrscr;
for r:=33 to 175 do begin
poisk(r);
if a[r]>0 then begin
min:=a[r];
l:=r;
end;
writeln(chr(r),' ',a[r]);
end;
for r:=33 to 175 do begin
if (min>a[r]) and (a[r]>0) then begin
min:=a[r];
l:=r;
end;
end;
writeln('Следующие символы входит в наименьшее количество слов:');
for r:=33 to 175 do if a[r]=min then write('  ',chr(r));
write('Нажмите Enter'); 
readln 
end.
Мои нароботки
qwertytol вне форума Ответить с цитированием
Старый 08.12.2009, 21:54   #2
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Таких тем рассматривалось море. Там вприципе всё понятно, но если не разберёшься, спрашивай.
dr.Chas вне форума Ответить с цитированием
Старый 08.12.2009, 22:29   #3
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
Смех

ну я думаю надо вначале распаковку текста сделать, а потом уже в массиве искать...

процедура распаковки текста:

Код:
const 
  Len = 100;

type TWords = Array[1..Len] of String;

procedure Unpack(S: String; var Words: TWords; var N: Integer);
const
  Alphabet = ['A'..'Z', 'a'..'z'];
var
  I: Integer;
begin
  N := 0;
  I := 1;
  while I <= Length(S) do
  begin
    if S[I] in Alphabet then
    begin
      Inc(N);
      while (S[I] in Alphabet) and (I <= Length(S)) do
      begin
        Words[N] := Words[N] + S[I];
        Inc(I);
      end;
    end;
    Inc(I);
  end;
end;
Передаешь в эту процедуру строку текста, а она тебе разложит все слова из текста в массив Words и вернет число N - количество слов.
Words описывай как тип TWords.

ну для определения количества слов с данной буквой, проходишься циклом от 1 до N по массиву и проверяешь через функцию Pos() есть ли в слове буква эта или нет.
Alex_FF вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Определение количества слов в тексте. Evgesha Помощь студентам 17 12.04.2011 18:58
КАК составить программу для нахождения самых длинных слов из текста DJONIK93 Общие вопросы C/C++ 5 28.10.2009 21:34
Macros для нахождения и удаления слов конгер Microsoft Office Word 1 13.10.2009 18:14
Определить из наибольший общий делитель, используя функцию нахождения общего делителя. Igomax Помощь студентам 6 23.05.2009 19:41
Подсчет количества слов предложении Милашка000 Общие вопросы C/C++ 2 24.04.2009 20:02