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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2011, 20:11   #1
snusmumr
 
Регистрация: 03.06.2011
Сообщений: 7
Вопрос Работа со строками. Подсчитать количество четных/нечетных букв в слове.

Помощи ну или хотя бы волшебного пинка
Вот задача:

Дана строка(текст). Сообщите, каких слов больше - с четным количеством букв или с нечетным.
решить нужно на Turbo Pascal по простому - со строковыми функциями.

Я примерно понимаю, что нужно строку просчитать на отдельные слова, а затем в цикле у каждого слова определить количество символов (length(slovo)) и разделить на 2 без остатка для проверки четности (mod 2= 0).
Но! Моей соображалки не хватает на написание тела цикла >_<
вот примерное начало

Код:
uses crt;
var s: string;
      i, k: integer;
begin
clrscr;
writeln('введите текст');
readln(s);
k:=1;
  if (s='') or (s=' ') then writeln ('неверный ввод')
    else 
      begin
      for i:=1 to length(s)-1 do
      if (s[i]=' ') and (s[i+1] <> ' ') then k:=k+1;
      end; 

      {здесь мы нашли сколько слов в тексте. я в курсе, что это не надо, но хоть что-то:o}

   if (length(s) mod 2=0) then writeln ('четное кол-во букв') else writeln ('нечетное кол-во букв'); 
      
      {но загвоздка в том, что он считает нечетность всего текста, а не каждого слова:(}

readln;
end.
уже всякие форумы перерыла - нигде нет хотя бы похожей. помогите кто чем может

Последний раз редактировалось Stilet; 04.06.2011 в 21:02.
snusmumr вне форума Ответить с цитированием
Старый 03.06.2011, 21:47   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Разбирайтесь
Код:
Var
  st,buf:String;
  i,chet,nechet:Byte;
begin
  Readln(st);
  buf:='';
  chet:=0;
  nechet:=0;
  For i:=1 to Length(st) do
  Begin
    If (St[i] <> ' ') and (i <= Length(st)) then buf:=Buf+St[i];
    If (St[i] = ' ') or (i = Length(St)) then
    Begin
      If buf <> '' then
      Begin
        If Length(buf) mod 2 = 0 then inc(chet)
                                 else inc(nechet);
        buf:=''
    End;
    End;
  End;
  If Chet > Nechet then Writeln('Bolshe chetnyh')
  else
  If Chet < Nechet then Writeln('Bolshe nechetnyh')
  Else
  Writeln('Ravnoe kolichestvo');
  Readln
End.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 03.06.2011, 23:10   #3
snusmumr
 
Регистрация: 03.06.2011
Сообщений: 7
По умолчанию

Огромнейшее спасибо! Очень выручили!
только есть вопрос -
что значит присвоение переменой buf:='' ?
что-то вроде буфера обмена, где накапливается количество символов каждого слова?
snusmumr вне форума Ответить с цитированием
Старый 04.06.2011, 10:44   #4
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
что значит присвоение переменой buf:='' ?
Это значит, что переменная buf - пустая строка. В программе она используется для выделения отдельного слова из строки. То есть, пока не встретился пробел или не дошли до последнего символа, считаем что полученные символы принадлежат одному слову.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 04.06.2011, 18:52   #5
snusmumr
 
Регистрация: 03.06.2011
Сообщений: 7
По умолчанию

О, теперь понятно.
Благодарю!
snusmumr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчитать количество введенных букв WebbMan Паскаль, Turbo Pascal, PascalABC.NET 10 01.04.2011 17:20
Подсчитать количество букв "А" в предложении и общее количество букв.В тексте из файла несколько строк. kvas91 Общие вопросы C/C++ 3 14.11.2010 16:51
Подсчитать количество слов и количество букв MDSIQ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.11.2010 16:57
Перестановка элементов четных и нечетных строк Юлия19 Помощь студентам 3 14.06.2009 18:33