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

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

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

> определение символов в строке, интересуют варианты
сообщение
Сообщение #1


Новичок
*

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

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


Доброго всем времени суток! В первых строках хотелось бы поблагодарить всех, кто помог мне сдать сессию за 1-ый семестр.
Теперь по сути.. Хотелось бы посмотреть возможные варианты выполнения вот этого задания:
Определить, имеются ли в тексте все буквы, входящие в слово «шина».

Вот мое очередное извращение)):

program stroki;
var
s: string;
i,a,b,c,d: byte;
begin
write ('введите текст ');
readln(s);
for i:= 1 to length(s) do
begin
if s[i]='ш' then a:= a+1;
if s[i]='и' then b:= b+1;
if s[i]='н' then c:= c+1;
if s[i]='а' then d:= d+1;
end;
if (a>=1) and (b>=1) and (c>=1) and (d>=1) then
writeln ('в тексте имеются все буквы слова "шина" ')
else
writeln ('в тексте НЕ имеются все буквы слова "шина" ');
readln;
end.


Понимаю что написано коряво, поэтому и предлагаю вам подсказать мне более правильное решение.

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


Гость






Это описание множества символов. Все символы, наличие которых в строке тебе нужно проверить, заносишь в это множество, а потом просто идешь по строке, и из множества извлекаешь все буквы строки, одну за другой (заметил там знак "-"? Вот это и есть извлечение очередной буквы). Причем, если во множестве символа нет, а ты пытаешься его изъять - ничего страшного. У тебя невозможно отнять то, чего нет; также и у множества - если оно не содержит символ - то и разговора нет, просто ничего не изменится.

А теперь подумай, если вот так изъяли все буквы, входящие в слово, а множество осталось НЕпустым - это что значит? Значит, какие-то из букв, которые были в mySet изначально, в строке отсутствуют. Что и надо было проверить. Если же в конце множество пустое (т.е., равняется []), то все буквы, которые ты занес в самом начале, были из него вышвырнуты => они все были в строке...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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