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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2012, 19:32   #1
mimit
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 49
По умолчанию Дано предложение. Определить, сколько в нем одинаковых соседних букв.

Дано предложение. Определить, сколько в нем одинаковых соседних букв. Паскаль.
Код:
var
  MyString: string;
  i, j: integer;

begin
  writeln('Введите предложение');
  readln(MyString);
  for i := 1 to length(MyString) do
  for j := 1 to length(MyString) do
  if (i <> j) and (i < j) then
  if mystring[i] = mystring[j] then
  writeln('Есть одинаковые буквы ',mystring[j]);
  readln;
end.
Я написал программу чтобы находила одинаковые соседние буквы, а как посчитать их количество не могу додуматься.
mimit вне форума Ответить с цитированием
Старый 05.12.2012, 19:54   #2
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Код:
var c:char;
   i:byte;
......
......
i:=0;
For c:='A' to 'Z' do
    while pos(c+c,mystring)>0 do
       begin
          delete(mystring,pos(c+c,mystring),1);
          inc(i);
       end;
For c:='a' to 'z' do
    while pos(c+c,mystring)>0 do 
         begin
            delete(mystring,pos(c+c,mystring),1);
            inc(i);
         end;
writeln(i)
end.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 07.12.2012, 08:30   #3
mimit
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 49
По умолчанию

Цитата:
Сообщение от New man Посмотреть сообщение
Код:
var c:char;
   i:byte;
......
......
i:=0;
For c:='A' to 'Z' do
    while pos(c+c,mystring)>0 do
       begin
          delete(mystring,pos(c+c,mystring),1);
          inc(i);
       end;
For c:='a' to 'z' do
    while pos(c+c,mystring)>0 do 
         begin
            delete(mystring,pos(c+c,mystring),1);
            inc(i);
         end;
writeln(i)
end.
А проще не как не посчитать? просто только учусь в delphi работать.
mimit вне форума Ответить с цитированием
Старый 07.12.2012, 08:43   #4
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Код:
var
  MyString: string;
  i, j: integer;
begin
  writeln('Введите предложение');
  readln(MyString);
  while i<=length(MyString) do
  begin
    j:=i+1;
    while j<=length(MyString) do
    begin
      if mystring[i]<>mystring[j] then
        break;
      inc(j);
    end;
    if (j-i)>1 then
      writeln('Есть одинаковые соседние буквы ',mystring[i],' в колве ', (j-i));
    i:=j;
  end;
  readln;
end.
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 07.12.2012, 09:04   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
одинаковых соседних букв
Код:
count:=0;
for i:=1 to length(s)-1 do
if s[i]=s[i+1] then inc(count);
if count = 0 then writeln('нет тут одинаковых соседних букв')
else writeln('Количество:',count)
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 07.12.2012, 13:40   #6
mimit
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 49
По умолчанию

Код:
var
  s: string;
  i, j: integer;

begin
  writeln('Введите предложени');
  readln(s);
  j:=0;
  for i := 1 to length(s)-1 do
  if s[i]=s[i+1]
    then
      inc(j);
  if j=0
    then
      writeln('Нету одинаковых соседних букв')
    else
      writeln('Количество соседних букв: ',j);
  readln;
end.
Задача мне выводит когда я пишу например две буквы s, что количество одинаковых соседних букв 1 а должен выводить 2. Что не так?
mimit вне форума Ответить с цитированием
Старый 07.12.2012, 14:09   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

где ж 2 то если одна s одинакова с другой s
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 07.12.2012, 16:07   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

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

mimit, допустим, задана строчка:
SSSASSSAAAA
какой ответ Вы ожидаете получить? (какое количество одинаковых соседних букв)?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.12.2012, 20:07   #9
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

мой вариант
3 S
3 S
4 A
почти RLE кодирование
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 07.12.2012, 20:36   #10
mimit
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Mad_Cat, тут все совсем неоднозначно. я как ваше решение увидел, сразу хотел об этом сказать, но понадеялся, что автор темы согласится с такой трактовкой количества одинаковых букв, как Вы решили..

mimit, допустим, задана строчка:
SSSASSSAAAA
какой ответ Вы ожидаете получить? (какое количество одинаковых соседних букв)?
10 одинаковых соседних букв получаеться
mimit вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определите сколько слов заданного текста составлено из букв русского алфавита, а сколько из букв латинского алфавита. Слова, в кот potemos Паскаль, Turbo Pascal, PascalABC.NET 2 18.04.2012 13:14
Дано предложение. Добавить к нему в конце столько звездочек, сколько букв в этом предложении. pascal BBorr1 Помощь студентам 2 09.02.2012 16:58
Для созданного текста определить длину содержащейся в нем максимальной серии символов, отличных от букв. rusfin01 Помощь студентам 1 28.02.2011 10:25
Дано натуральное число n. Определить, сколько парных цифр в числе n. Чему равна сумма нечетных его цифр? pahanzona Microsoft Office Excel 4 27.02.2011 15:46
Определить, сколько букв в самой длинной фамилии списка. lunnamedl Помощь студентам 4 29.06.2009 11:33