задача на множества, вывести слова, в которых нет букв первого слова |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
задача на множества, вывести слова, в которых нет букв первого слова |
DruiD |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Андрей Репутация: 0 |
Дан текст, который состоит из слов, между которыми стоит промежуток. Напечатать те слова, в которых отсутствуют буквы первого слова.
|
DruiD |
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Андрей Репутация: 0 |
Задачу решил через множества, но у неё есть небольшой недостаток: буквы слов, в которых отсутствуют буквы первого слова выводит в алфавитном порядке. Подскажите, если кто знает как это обойти, или как их вывести другим способом (в моём случае).
Вот программа: Код program smartlytaken; var s:string; D,mn1:set of char; f,p,j,y,i: byte; begin writeln ('vvedite stroku s'); readln (s); D:=[]; i:=1; while S[i]<>' ' do begin include (D,S[i]); i:=i+1; end; j:=i+1; for y:=i+1 to length(s) do if s[y]=' ' then begin mn1:=[]; for p:=j to y-1 do include (mn1,s[p]); j:=y+1; if D*mn1=[] then for f:=ord('a') to ord('z') do if chr(f) in mn1 then write(chr(f)); writeln; end; readln end. |
Текстовая версия | 3.05.2024 14:10 |