Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Возможна ошибка в программе
Проверьте пожалуйста мою программу,правильно ли сделана?Очень нужно,умоляю.Условие такое:Дана последовательность,содержащая от 1 до 30 слов,в каждом из которых от 1 до 5 строчных латинских букв,между соседними словами-запятая,за последними словами-точка.Напечатать все различные слова,встречающиеся в последовательности более двух раз.Заранее огромное спасибо.Вот она:

var base:array[1..30] of string;
i,j,n,m,count:integer;
s,buf:string;
f:text;
begin
writeln('s: ');
Readln(S);
m:=0;
j:=1;
for i:=1 to length(s) do // разбиваем строку на массивы
begin
if not (s[i] in['.',',']) then
Base[j]:=Base[j]+S[i];
if s[i] in['.',','] then
Begin
Inc(m);
Inc(j)
End;
End;
For i:=1 to m do // удаляем лишние пробелы из строк массива
Begin
While Pos(' ',Base[i]) > 0 do
Delete(Base[i],Pos(' ',Base[i]),1)
end;
buf:='';
For i:=1 to m-1 do //ищем слова, чье количество больше двух
Begin
count:=0;
For j:=i to m do

If Base[i]=Base[j] then Inc(Count);
If (Count > 2) and (Pos(Base[i],buf) = 0) then buf:=Buf+' '+Base[i]
End;
Writeln(Buf);
readln
End.

1 | Автор: Татьяна12678 | 2011-05-22, 21:15 | Изменено: Татьяна12678 - Вс, 2011-05-22, 21:24   |  Репутация: [ + 0 ]
1 | Автор: Татьяна12678 | 2011-05-22, 21:15 | Изменено: Татьяна12678 - Вс, 2011-05-22, 21:24   |  Репутация: [ + 0 ]
Что-то ты намудрила:)

var
a,b:string;
c:byte;
begin
readln(a);
repeat begin
c:=pos(',',a);
b:=copy(a,1,c-1);
delete(a,1,c);
if pos(b,a)<>0 then write(b,' ');end;
until c=0;
end.

"Спасибо" принимается повышением репутации ( Зелёный плюсик:) ). Спасибо


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
2 | Автор: Berestovskiy | 2011-05-22, 21:31   |  Репутация: [ + 211 ]
Berestovskiy, что-то мне подсказывает что у тебя тоже не правильный код.
Quote (Татьяна12678)
встречающиеся в последовательности более двух

а у тебя если встречается два раза уже выводит, а если встречается более двух раз то выводит два и более раз одно и тоже слово.
3 | Автор: HWOARANG | 2011-05-23, 19:03   |  Репутация: [ + 20 ]
  • Страница 1 из 1
  • 1
Поиск: