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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 00:12   #1
Malyshka
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 16
Восклицание Задача по обработке строк

Определить количество слов в заданном предложении, начинающихся заданной буквойОчередная задача...очередной большой вопрос...Подскажите, как сделать.....
Malyshka вне форума Ответить с цитированием
Старый 13.12.2010, 00:20   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

1. Идти по предложению с начала до конца .
2. Находить начало слова и проверять , если оно начинается с заданной буквы , что считать его .

Как определить начало слова : Это или начало предложения , или перед началом слова нужно проверить , есть один из символов разделителей , таких как пробел , запятая , точка или т.п. Русский язык в помощь
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---

Последний раз редактировалось andrewpalkin; 13.12.2010 в 00:24.
andrewpalkin вне форума Ответить с цитированием
Старый 13.12.2010, 00:51   #3
Diplomnik
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 13
По умолчанию

Function Check(S, bukva:string):integer;
var i:integer;
NumberOfWords:integer;
begin
if copy(S,0,1)=bukva then (NumberOfWords:=1)
else NumberOfWords:=0;
i:=1;
repeat
if (copy(S,i,2)=(' '+bukva)) then NumberOfWords:=NumberOfWords+1;
i:=i+1;
until (i=Lenght(S));
Chek:=NumberOfWords;
end;

Как-то так...

Последний раз редактировалось Diplomnik; 13.12.2010 в 01:09.
Diplomnik вне форума Ответить с цитированием
Старый 13.12.2010, 00:55   #4
Malyshka
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 16
По умолчанию

уффф.....Спасибо)))) А тебе не сложно будет словами объяснить. Чтоб если что, я смогла сама всё сделать...
Malyshka вне форума Ответить с цитированием
Старый 13.12.2010, 00:58   #5
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от Diplomnik Посмотреть сообщение
Код:
Function Check(S, bukva:string):integer;
var i:integer;
     NumberOfWords:integer;
begin
if copy(S,0,1)=bukva then (NumberOfWords:=1)
  else NumberOfWords:=1;
i:=1;
    repeat
       if (copy(S,i,2)=(' '+bukva)) then NumberOfWords:=NumberOfWords+1;
    until (i=Lenght(S));
Chek:=i;
end;
Как-то так...
Скажи , а зачем вот это :

Код:
if copy(S,0,1)=bukva then (NumberOfWords:=1)
else NumberOfWords:=1;
Если в обоих случаях , NumberOfWords будет равен 1 .

Я думаю , ты хотел сделать вот так :

Код:
if copy(S,0,1)=bukva then (NumberOfWords:=1)
else NumberOfWords:=0;
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 13.12.2010, 00:59   #6
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от Malyshka Посмотреть сообщение
уффф.....Спасибо)))) А тебе не сложно будет словами объяснить. Чтоб если что, я смогла сама всё сделать...
Словами , это то что я тебе написал Алгоритм так и работает .
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 13.12.2010, 01:02   #7
Malyshka
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 16
По умолчанию

Блиииин...как всё это сложно((((
Malyshka вне форума Ответить с цитированием
Старый 13.12.2010, 01:05   #8
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от Malyshka Посмотреть сообщение
Блиииин...как всё это сложно((((
Программирование вообще не простая вещь , но если начать разбираться , то все станет просто
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 13.12.2010, 01:06   #9
Diplomnik
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 13
По умолчанию

Function Check(S, bukva:string):integer; - задаем функцию, сразу после слова implementation.
S - твоя анализируемая строка, bukva - искомая буква, как ни странно)

var i:integer; - целая переменная для переборки строки по символам
NumberOfWords:integer; - целая переменная для счетчика слов, начинающихся с введенной буквы

if copy(S,0,1)=bukva then (NumberOfWords:=1) - проверяем первую букву - если она искомая, то первое слово идет в счетчик

в противном случае не идет -
else NumberOfWords:=0;
i:=1; - начинаем поиск уже не с первого символа (иначе i было бы=0 )

repeat - ищем слова по принципу:

if (copy(S,i,2)=(' '+bukva)) then NumberOfWords:=NumberOfWords+1;
если имеется 2 подряд идущих символа: ' '+bukva (т.е. твоя буква рядом с пробелом), то наращиваем счетчик.

until (i=Lenght(S)); и всё это, покуда не кончится строка
Chek:=NumberOfWords; - возвращаем функции значение числа слов
end;

при использовании будет так (Для буквы У)
N:=Check(S, 'у');

В тексте были ошибки, сейчас исправлю...
Diplomnik вне форума Ответить с цитированием
Старый 13.12.2010, 01:08   #10
Diplomnik
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 13
По умолчанию

andrewpalkin, я заметил =) Я тоже иногда лагаю...
Diplomnik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Затруднение при обработке строк GoodTimes Общие вопросы C/C++ 6 16.06.2010 18:00
Задача на обработку строк max1m9 Microsoft Office Excel 6 17.12.2009 10:19
Задача по замене строк motorway PHP 3 06.07.2009 23:58
Уведомление об обработке массива Иванов_ДМ Microsoft Office Excel 4 28.05.2009 17:33
задача на массив строк hijack Помощь студентам 0 26.11.2007 23:10