![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Denwer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.6.2007 Где: Харьков Репутация: нет Всего: нет |
Помогите плиз с задачкой на строки,
Нужно вывести слово в котором первая буква ходит в него только ОДИН раз, если больше, то слово не выводиться. Пример: тетрадь - выводиться; анапа - не выводиться; Задачку то я решил, но у меня выводяться слова даже если первая буква входит в него больше двух раз. Function TwoWord (var word: string) : boolean; var i: integer; first: string; begin Result := False; first := word[1]; for i:=2 to Length(Word) do if (Word[i] = first) then Result := True; end; Вот моя функця. Подправьте плиз |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
Для домашних заданий, курсовых, существует "Центр Помощи".
Тема перенесена! -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 1 Всего: 12 |
Тебе нужен счетчик вхождения букв в слово:
Это сообщение отредактировал(а) ivan219 - 27.11.2007, 01:22 |
|||
|
||||
| Denwer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.6.2007 Где: Харьков Репутация: нет Всего: нет |
Спасибо, всё работает !!!
|
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 30 Всего: 372 |
Я бы ещё Length(Word) вынес бы в отдельную переменную
|
|||
|
||||
| Denwer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.6.2007 Где: Харьков Репутация: нет Всего: нет |
Не подскажете, например та же самая задача, только вторая буква не первая?
это типа так (if Word[I] = Word[2] then Inc(I1);)??? |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 16 Всего: 128 |
Denwer, именно.
|
|||
|
||||
| ivan219 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 1 Всего: 12 |
Любая позиция буквы:
На все случаи
|
||||
|
|||||
| Denwer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.6.2007 Где: Харьков Репутация: нет Всего: нет |
Спасибо, все понял, но ещё один вопрос.
1. Функция ведь должна возвращать и вот такое слово, например (vvcccccc), так как вторая буква входит в слово ещё раз. Можно было бы конечно добавить типа того: for I := PosC to LengthW do if (Word[I] = Word[PosChar]) then Inc(I1); if (I1 = 1) or (Word[1] = Word[2]) then Result := True; но тогда она будет и возвращать и (vvcccccvv), к примеру. Вот как тут быть? |
|||
|
||||
| ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 1 Всего: 12 |
Denwer, что-то я не соображу что тебе надо
Да если позиция будет 1 а число вхождений то же 1 иначе False Вобщем разясни что тебе нужно поконкретнее!!! |
|||
|
||||
| Denwer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.6.2007 Где: Харьков Репутация: нет Всего: нет |
Я точно узнаю условие, и тогда если что обращусь.
Ещё одно, у меня здесь есть процедура которая бежит по Memo и находит самое короткое слово. Но к сожалению выводит только одно слово. А надо чтоб выводило все самые коротке слова одинаковой длины. Вот код. procedure TForm1.btnFindClick(Sender: TObject); var i: integer; word: string; begin if (Memo1.Lines.Count >= 2) and (Memo1.Lines.Count < 50) then begin for i := 0 to Memo1.Lines.Count - 1 do begin if i = 0 then word := Memo1.Lines[0] else if Length(Memo1.Lines[i]) < Length(word) then word := Memo1.Lines[i]; end; end; Memo2.Lines.Add(word); end; Может подправите...? |
|||
|
||||
| ivan219 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 1 Всего: 12 |
Но вобщето эта процедура всё правильно делает, не много подправил:
А найти все короткие можно так:
Конечно алгоритм не ахти и написан на коленках но должен работать. P.S. Используй подсветку синтаксиса кнопка Код Это сообщение отредактировал(а) ivan219 - 6.12.2007, 02:27 |
||||
|
|||||
| Denwer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.6.2007 Где: Харьков Репутация: нет Всего: нет |
Спасибо, с меня пиво...
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |