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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2012, 20:00   #1
Vlad0n
Пользователь
 
Регистрация: 15.09.2012
Сообщений: 26
По умолчанию String код.

Здравствуйте, помогите решить задачу: Дана строка, состоящая из слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими).
Найти количество слов, которые начинаются и заканчиваются одной и той же буквой.

Я вот попробовал написать код
Код:
program problem;



var
  stroka, Slovo,x: string;
  i, k : integer;




begin
  Write('STROKA: ');
  Readln(stroka);
  k := 0;
  for i := 1 to length(stroka) do
    if stroka[i] <> ' ' then
      Slovo := Slovo + stroka[i]
    else
x:=stroka[i-1];

        begin
          if slovo[1] = x then
            inc(k);
          Slovo := '';
        end;
  write(k);
  Readln;
end.
не знаю как очистить строку, а то она в следующем цикле становится пробелом
заранее спасибо

Последний раз редактировалось Vlad0n; 18.11.2012 в 03:01.
Vlad0n вне форума Ответить с цитированием
Старый 18.11.2012, 01:38   #2
Vlad0n
Пользователь
 
Регистрация: 15.09.2012
Сообщений: 26
По умолчанию

Помогите пожалуйста!
Vlad0n вне форума Ответить с цитированием
Старый 18.11.2012, 02:28   #3
S1av0k
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 87
По умолчанию

Как-то так

Код:
program problem;
var
  stroka, Slovo,x: string;
  i, k : integer;

begin
  Write('STROKA: ');
  Readln(stroka);
  k := 0;

  for i := 1 to length(stroka) do
    if stroka[i] <> ' ' then
       Begin
             Slovo := Slovo + stroka[i];
             WriteLn(Slovo);
       End
    else
        Begin
             x:=stroka[i-1];
             if slovo[1] = x then
             k:=k + 1;
             Slovo := '';
        end;
    if Slovo[1] = Stroka[length(stroka)] then
       k := k + 1;
  write(k);
  Readln;
end.
Помог - жми весы
S1av0k вне форума Ответить с цитированием
Старый 18.11.2012, 02:29   #4
S1av0k
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 87
По умолчанию

Только, согласно заданию, необходимо обеспечить ввод строки только буквами, да ещё и заглавными. Не забудь это учесть.
Помог - жми весы
S1av0k вне форума Ответить с цитированием
Старый 18.11.2012, 02:54   #5
Vlad0n
Пользователь
 
Регистрация: 15.09.2012
Сообщений: 26
По умолчанию

Спасибо большое, мне грубо говоря, только не хватало этого
Код:
 (if Slovo[1] = Stroka[length(stroka)] )
условия. Извините за тупость, но что-то я его не до конца понимаю) не могли бы вы пояснить в кратце?
спасибо

Последний раз редактировалось Vlad0n; 18.11.2012 в 03:03.
Vlad0n вне форума Ответить с цитированием
Старый 18.11.2012, 03:05   #6
Vlad0n
Пользователь
 
Регистрация: 15.09.2012
Сообщений: 26
По умолчанию

Цитата:
Сообщение от S1av0k Посмотреть сообщение
Только, согласно заданию, необходимо обеспечить ввод строки только буквами, да ещё и заглавными. Не забудь это учесть.
спасибо, учту)
Vlad0n вне форума Ответить с цитированием
Старый 18.11.2012, 11:48   #7
S1av0k
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 87
По умолчанию

Без этого условия последнее слово у тебя никогда не будет обработано, потому что после него нет пробела. А так ты проверяешь, не подходит ли последнее слово под условие, т.е. не равно ли значение в Slovo[1] последнему символу строки Stroka(Length(Stroka)).
Помог - жми весы
S1av0k вне форума Ответить с цитированием
Старый 18.11.2012, 13:13   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

S1av0k, а зачем сравнивать первый символ слова с последним символом строки?
Нужно же посчитать, сколько слов начинается и заканчивается на одну и ту же букву..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.11.2012, 15:46   #9
Vlad0n
Пользователь
 
Регистрация: 15.09.2012
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
S1av0k, а зачем сравнивать первый символ слова с последним символом строки?
Нужно же посчитать, сколько слов начинается и заканчивается на одну и ту же букву..
насколько я понимаю, сравнивается первая буква слова с последней буквой строки в последнем цикле

Последний раз редактировалось Vlad0n; 18.11.2012 в 16:04.
Vlad0n вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
string-char-wchar_t-char-string чето потерял magog7 Общие вопросы C/C++ 0 08.08.2011 20:21
Доп.код,обратный код,прямой код вычисления Lukas077 Помощь студентам 0 20.03.2011 12:07
Код написал код, но ответ постоянно один и тот же SkuLLL Помощь студентам 4 14.12.2010 19:25
String большого размера, более 255 String[255] bitSoft Общие вопросы Delphi 9 28.03.2010 19:45
Как получить адрес String строки или преобразовать String madboy4ik Общие вопросы по Java, Java SE, Kotlin 6 15.01.2010 11:57