|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.11.2008, 11:14 | #1 |
Пользователь
Регистрация: 30.10.2008
Сообщений: 22
|
Строки
Дана строка символов. Группу символов, разделенных с одной или с обеих сторон одним или несколькими пробелами и не содержащую внутри себя пробелов, назовем словом.
Определить среднее число символов в словах четной длины. Если слов четной длины нет, то выдать соответствующее текстовое сообщение. Объясните, пожалуйста, алгоритм определения среднего числа символов в словах четной длины. Как это реализовать? |
02.11.2008, 11:45 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
проходите в цикле по строке, анализируйте символы,
накапливайте символы. если встретили пробел - значит в переменной у Вас слово. если длина слова чётная (Not Odd(Length(Slovo))) тогда его длину приплюсовывайте к суммарной длине чётных слов (перед циклом сумма должна быть нулевая) и увеличивайте счётчик чётных слов на единицу. После окончания цикла (когда дошли до конца строки символов) делим сумму на количество слов (не забудьте проверить, что количество слов > 0) и результат выдаёте на экран. При анализе строки не забудьте учесть, что: 1) в конце строки пробела может НЕ БЫТЬ (для борьбы с этим лучше всего без всяких проверок просто добавить перед циклом в конец строки пробел!) 2) пробел может быть вначале строки. 3) в начале/конце/между словами пробелов подряд может быть НЕСКОЛЬКО. удачи. p.s. алгоритмы разбора строки на слова здесь в форуме были неоднократно! ищите и обрящите. |
03.11.2008, 19:28 | #3 |
Пользователь
Регистрация: 30.10.2008
Сообщений: 22
|
что-то не получается. Вот я набрасал такой код, посмотрите что не так, и как лучше сделать
Код:
|
03.11.2008, 20:40 | #4 | |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Цитата:
Код:
|
|
03.11.2008, 21:36 | #5 | |
Пользователь
Регистрация: 30.10.2008
Сообщений: 22
|
Цитата:
|
|
03.11.2008, 22:17 | #6 | |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 500
|
Цитата:
Что то я не понял... length('slovo') - будет равен 5, вроде бы так .... или Slovo:string , length(slovo);
Skype : UASm1Le.
|
|
04.11.2008, 10:42 | #7 |
Пользователь
Регистрация: 30.10.2008
Сообщений: 22
|
Скажите пожалуйста, что в моем примере надо изменить, чтоб работало как надо? Я так понял в этом куске что-то не так:
Код:
|
04.11.2008, 11:21 | #8 | |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Цитата:
Код:
|
|
04.11.2008, 11:43 | #9 |
Пользователь
Регистрация: 30.10.2008
Сообщений: 22
|
Спасибо. Можете объяснить что имеено этот код делает,а то чет я не могк понять.
|
04.11.2008, 12:02 | #10 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
if (s[i]<>' ') and (i<=n) then//найдено начало слова на позиции i
begin for k := i to n do if s[k] = ' ' then break;//с этой позиции до конца //строки ищем пробел. Как только нашли, выходим из цикла //теперь в переменной к храниться позиция конца слова + 1 if k = n then k:=k+1; //если перебрали всю строку (k=n) значит пробела в конце возможно не было //k:=k+1 считаем что пробел якобы был в конце //теперь в переменной к храниться позиция конца слова + 1 if (not odd(length( copy(s,i,k-i) ))) then begin x:=x+length(copy(s,i,k-i)); l:=l+1; end //copy(s,i,k-i) - копируем из строки слово //где i - начало слова (см первую строку) //k-i - длина_слова = координаты_конца_слова +1 - координаты_начала_слова end; Последний раз редактировалось eoln; 04.11.2008 в 12:04. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
c++ строки | Abbatik | Помощь студентам | 1 | 14.05.2008 20:09 |
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй | gotex | Помощь студентам | 4 | 08.05.2008 02:27 |
Строки | Zenit10 | Помощь студентам | 10 | 18.01.2008 15:49 |
Строки | furian | Общие вопросы C/C++ | 15 | 19.12.2007 20:15 |
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. | vitalik007 | Помощь студентам | 1 | 25.09.2007 20:45 |