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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2008, 16:05   #1
gorez
 
Регистрация: 06.04.2008
Сообщений: 4
Сообщение помогите решить задачку

Подсчитать сколько слов в тексте имеют удвоенные сочетания букв и вывести данные слова на экран. Спасибо. (Паскаль)
gorez вне форума Ответить с цитированием
Старый 07.04.2008, 20:23   #2
gorez
 
Регистрация: 06.04.2008
Сообщений: 4
По умолчанию

неужели никто не может помочь?
gorez вне форума Ответить с цитированием
Старый 07.04.2008, 20:36   #3
Xardas
Сисадмин
Форумчанин
 
Аватар для Xardas
 
Регистрация: 28.12.2007
Сообщений: 320
По умолчанию

Помочь сделать или сделать за Вас??? Давайте не будем стесняться и поделимся своими мыслями по поводу того, как решать задачу; в чем загвоздка вышла, покажите Ваш нерабочий код, который я с удовольствием постараюсь превратить в рабочую версию...
Xardas вне форума Ответить с цитированием
Старый 07.04.2008, 20:37   #4
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Каких результатов вы уже добились?

Вот например пример программы которая считает колво слов в строке.

Код:
var i, k : integer;
      S : String;

begin
k := 0;
Readln (S);
if S[1] <> ' ' Then k := k + 1;
For i := 1 To Length(S) Do
  Begin
    if i = Length(S) Then Break;
    if (S[i] = ' ') And (S[i + 1] <> ' ') Then k := k + 1;
  End;
Writeln (k);
Readln;
end.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 07.04.2008, 20:39   #5
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Вы расшифруйте, что такое "удвоенные сочетания букв", может кто и поможет...
_Dmitry вне форума Ответить с цитированием
Старый 07.04.2008, 21:13   #6
gorez
 
Регистрация: 06.04.2008
Сообщений: 4
По умолчанию

Заочник технического вуза. Задание приведено дословно. Удвоенные сочетания букв - я думаю, что удвоенные согласные в словах, например: класс, Алла, осенний и т.д. Полагаю надо в произвольном тексте (Алла и Анна учатся в десятом классе. Они решили организовать поход всем классом в осенний лес.) перебором найти все эти слова и вывести на экран.
gorez вне форума Ответить с цитированием
Старый 08.04.2008, 13:03   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Программу сделал так, как приведен образец, т.е слова и предложения разделены одним пробелом, предложения отделены точками. Если в тексте будут другие разделители их надо будет добавить в программу.
Код:
program dve_buk;
uses crt;
var s:string;   //исходный текст
    s1:array[1..50]of string; //массив слов
    i,j,k,p,kol:integer;
begin
clrscr;
write('s: ');readln(s);
for i:=1 to length(s) do
if s[i]='.'then delete(s,i,1);  //удаляем точки(также и другие разделители)
k:=1;
for i:=length(s) downto 1 do {massiv slov}
if s[i]=' 'then
   begin
     s1[k]:=copy(s,1,(pos(' ',s)-1));//создаем из строки массив слов
     delete(s,1,pos(' ',s));
     k:=k+1;     //считаем слова
   end;
s1[k]:=s;
kol:=0;
for i:=1 to k do
  begin
    p:=0;
    for j:=1 to length(s1[i])-1 do
    if s1[i][j]=s1[i][j+1] then         //если сдвоенные буквы
       begin
         p:=p+1;                    //увеличиваем счетчик
       end;
    if p>0 then    //если совпадения есть
       begin
         kol:=kol+1;   //считаем нужные слова
         write(s1[i],' ');  //выводим их на экран
       end;
 end;
writeln;
writeln('kol=',kol);//выводим количество нужных слов
readln
end.
puporev вне форума Ответить с цитированием
Старый 08.04.2008, 13:27   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хы, а вот еще альтернативное решение, как мне кажется пошустрее решения Пупорева (sorry)
Код:
var k,e,s:string; i:integer;b:boolean;
begin
s:='Алла и Анна учатся кататься ';e:='';
//********* FOR ******************
i :=1 ;   b:=false;
while i<=length(s)  do
begin
 if byte(s[i])-byte(s[i+1])=0 then b:=true;
 if s[i]<>' ' then  k:=k+s[i]
 else begin
  if b then begin e:=e+' '+k; b:=not b;end;
  k:='';
 end;
inc(i);
end;
caption:=e;
//******* END FOR ****************{}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.04.2008, 13:38   #9
madmot
Форумчанин
 
Регистрация: 04.09.2007
Сообщений: 155
По умолчанию

stilet, сорри за оффтоп, красивый код.
madmot вне форума Ответить с цитированием
Старый 08.04.2008, 13:45   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ничего, я тут не модератор, так что не забаню
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачку. [Pr1_Zr4k] Помощь студентам 4 10.10.2009 17:52
Помогите решить задачку rainbow1 Паскаль, Turbo Pascal, PascalABC.NET 1 28.08.2008 16:59
Помогите решить эту задачку Magic Blood Microsoft Office Excel 1 16.05.2007 18:17
Помогите решить задачку New БД в Delphi 3 12.12.2006 19:46