IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> строка
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


какая функция используется для нахождения буквы в последнем слове строки?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Сначала нужно разбить строку на слова
Разбиение на слова. Все способы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


разбил

function GetWords(s: string; var L: TWordList; delimiters: TDelimiter): Byte;
var i, p: Byte;
begin
for i := 1 to Length(s) do
if s[i] In delimiters then s[i] := #32;

далее что?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Я думаю, что речь идет о функции Pos . Хотя вопрос поставлен так, что может быть, что угодно..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Цитата(Lapp @ 6.01.2010 12:54) *

Я думаю, что речь идет о функции Pos . Хотя вопрос поставлен так, что может быть, что угодно..


задача вообще такова
Дана строка символов. Найти в данной строке последнее слово, начинающееся с
латинской буквы ‘a’.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(chel09 @ 6.01.2010 13:07) *

задача вообще такова
Дана строка символов. Найти в данной строке последнее слово, начинающееся с
латинской буквы ‘a’.

Вариант 1: бежать по строке из начала в конец и запоминать последнее вхождение двухсимвольной последовательности ' a'.
Вариант 2: бежать по строке из конца в начало до того, как встретим первое вхождение ' a'.
Примечание: если результат не найден, проверить, не начинается ли первое слово с 'a', если да - оно и есть искомое.
Примечание 2: можно сначала добавить в начало пробел и не делать в конце никаких проверок.
Т.е. уже, как минимум, 4 варианта решения - даже не разбивая строку на отдельные слова.

Сообщение отредактировано: andriano -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Цитата(andriano @ 6.01.2010 13:20) *

Вариант 1: бежать по строке из начала в конец и запоминать последнее вхождение двухсимвольной последовательности ' a'.
Вариант 2: бежать по строке из конца в начало до того, как встретим первое вхождение ' a'.
Примечание: если результат не найден, проверить, не начинается ли первое слово с 'a', если да - оно и есть искомое.


блин если бы я тебя ещё понел а так я вообще в этом несоображаю ты лучше бы пример привел
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(chel09 @ 6.01.2010 13:23) *

блин если бы я тебя ещё понел а так я вообще в этом несоображаю ты лучше бы пример привел

Нет, давай с другой стороны.
Представь, что перед тобой лежит листок бумаги с записанной строкой и тебе надо решить задачу, условие которой ты привел.
Попытайся подробно описать последовательность собсвенных действий для решения задачи.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата
Вариант 1: бежать по строке из начала в конец и запоминать последнее вхождение двухсимвольной последовательности ' a'.
Вариант 2: бежать по строке из конца в начало до того, как встретим первое вхождение ' a'.
Это все сработает только при условии, что слова разделяются пробелами и ничем больше, никаких знаков препинания. Если со знаками препинания (пример - 'xor,or,and,not operators') - то в этот алгоритм придется добавить еще один пункт...

 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Цитата(andriano @ 6.01.2010 14:14) *

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


короче я сделал то что посоветовали ранее разбил строку на слова
А как букву найти незнаю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(volvo @ 6.01.2010 14:16) *

Это все сработает только при условии, что слова разделяются пробелами и ничем больше, никаких знаков препинания. Если со знаками препинания (пример - 'xor,or,and,not operators') - то в этот алгоритм придется добавить еще один пункт...
Это было бы существенно, если бы речь шла о чем-то в конце слова.
В правильно записанном предложении после каждого разделителя следует пробел (номер ГОСТа не помню, но при желании можно посмотреть). Поэтому перед началом слова (кроме первого) всегда присутствует пробел.


Добавлено через 4 мин.
Цитата(chel09 @ 6.01.2010 14:44) *

короче я сделал то что посоветовали ранее разбил строку на слова
А как букву найти незнаю

"не" и "знаю" пишется раздельно. Аккуратность нужна, каким бы языком: русским или Паскалем, ты ни выражал свои мысли.

Ладно. Первый этап задачи - разбить строку на отдельные слова, у тебя сделан. Теперь перед тобой лист бумаги, на котором в столбик записаны слова. Нужно решить задачу (самому, без компьютера). Опиши подробно, как ты будешь это делать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Цитата
В правильно записанном предложении после каждого разделителя следует пробел (номер ГОСТа не помню, но при желании можно посмотреть). Поэтому перед началом слова (кроме первого) всегда присутствует пробел.
Плевать я хотел на "правильность по ГОСТу", я живу в другой стране, и пишу на ИНОСТРАННОМ языке, латиницей, между прочим. Это раз. А два - где-то в первом или последующих постах было сказано, что "дано предложение, соответствующее ГОСТу №..."? Не было. Не надо додумывать задачу, договорились? Как хочу, так и ввожу. Я - пользователь программы, и не надо мне ставить условия "Введи строку согласно ГОСТу". Задача программиста - сделать так, чтобы ЛЮБОЙ мой ввод был обработан корректно. Если что, я могу ввести и 255 символов, и обломаешься ты добавить первый пробел... Это так, на всякий случай.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(volvo @ 6.01.2010 16:22) *
Задача программиста - сделать так, чтобы ЛЮБОЙ мой ввод был обработан корректно.
Это задача невыполнима.
От программы можно лишь требовать, чтобы:
1. Любой корректный ввод был корректно обработан.
2. Любой некорректный ввод был обработан.
Во втором случае, естественно, возможно два варианта:
2а. При обработке некорректного ввода пользователю выдается сообщение о некорректности.
2б. Некорректный ввод обрабатывается "как получится".
Но гарантировать ВЕРНЫЙ ответ при НЕВЕРНЫХ исходных данных принципиально невозможно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(chel09 @ 6.01.2010 14:44) *
короче я сделал то что посоветовали ранее разбил строку на слова
А как букву найти незнаю
попробуй как-то так (без русских букв):
const
Letters: set of char=['A'..'Z']+['a'..'z'];
...
i:=Length(s);
w:='';
while (i>0)and(w='') do
if s[i]='a' then if (i=1)or not(s[i-1] in Letters) then
while (i<=Length(s))and(s[i] in Letters) do begin
w:=w+s[i];
Inc(i)
end
else Dec(i);


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.04.2024 4:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name