![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
shyrik |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
опять у меня есть вопрос
Задание Дан текст на русском языке. Напечатать в алфавитном порядке все гласные буквы, которые входят в каждое слово; все согласные, которые не входят хотя бы в одно слово. я правильно начинаю прогу??и веду подсчёт гласных букв?? Цитата Program bukvi; const r=ord('а')-ord('А'); var m:set of 'а'..'я'; sl:array[1..50] of string; s:string; i,k,l:integer; c:char; begin m:=['а','е','ё','и','о','у','ы','э','ю','я'] write('введите текст на русском языке:'); readln(s); writeln('Вот эти буквы:'); for c:='а' to 'я' do if c in m then write( с ); writeln Сообщение отредактировано: shyrik - 13.01.2005 22:44 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
shyrik
А почему бы вместо Код var m:set of 'а'..'я'; не сделать ... m:=['а','е','ё','и','о','у','ы','э','ю','я']; Код const m:set of 'а'..'я' = ['а','е','ё','и','о','у','ы','э','ю','я']; Цитата веду подсчёт согласных букв Я не увидел в программе никакого "подсчета" - только распечатка всех гласных букв...Сообщение отредактировано: volvo - 13.01.2005 22:55 |
shyrik |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 13.01.05 22:52) Я не увидел в программе никакого "подсчета" - только распечатка всех гласных букв... я это ещё не написал, у меня там была ошибка которую я ещё не исправил, ща подумаю, напишу. |
shyrik |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
вот опять вернулся к этой проге и окончательно запутался, что тут не то?
подсчёт гласных букв которые входят в каждое слово. Цитата program lr_9; uses Crt; var text: string; MySet: set of char; i,j,k, StCh,EndCh: integer; test:boolean; res: array [-1..1] of byte; begin MySet := ['а','е', 'ё', 'и', 'й', 'о','у','ы','э','ю','я']; writeln('You must wirte some text. End of text is point'); readln(text); StCh := 1; EndCh:=-1; for i := 1 to length(text) do begin if (text[i]=' ')or(text[i]='.') then begin if text[i] in MySet then inc(res[i]); end; for k := i+1 to EndCh do writeln(text[k]); end; readln; end. Сообщение отредактировано: shyrik - 24.01.2005 15:28 |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
shyrik
Вот правильный вариант: Код const all_vowels: set of char = ['а', 'е', 'ё', 'и', 'й', 'о', 'у', 'ы', 'э', 'ю', 'я']; word_ch: set of char = []; var s: string; i: byte; in_all: set of char; begin in_all := all_vowels; readln(s); for i := 1 to length(s) do begin if s[i] in [' ', '.'] then begin in_all := in_all * word_ch; word_ch := []; end else if s[i] In all_vowels Then word_ch := word_ch + [ s[i] ]; end; for i := 0 to 255 Do If chr(i) in in_all Then write(chr(i):3); writeln end. Эта программа считает также все гласные, которые не входят хотя бы в одно слово: Код const all_vowels: set of char = ['а', 'е', 'ё', 'и', 'й', 'о', 'у', 'ы', 'э', 'ю', 'я']; word_ch: set of char = []; var s: string; i: byte; in_all, in_one: set of char; begin in_all := all_vowels; in_one := all_vowels; readln(s); for i := 1 to length(s) do begin if s[i] in [' ', '.'] then begin in_all := in_all * word_ch; in_one := in_one - word_ch; word_ch := []; end else if s[i] In all_vowels Then word_ch := word_ch + [ s[i] ]; end; writeLn('В каждом слове: '); for i := 0 to 255 Do If chr(i) in in_all Then write(chr(i):3); writeln; writeLn('Ни в одном слове: '); for i := 0 to 255 Do If chr(i) in in_one Then write(chr(i):3); writeln end. Сообщение отредактировано: volvo - 26.01.2005 22:38 |
Romtek |
![]()
Сообщение
#6
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: ![]() ![]() ![]() |
При работе со множествами лучше использовать
Include Exclude Пример: Код Include (ChSet, 'a'); { <=> ChSet := ChSet + ['a'] } -------------------- Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
|
shyrik |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
а чтобы вывести буквы которые входят в каждое слово надо из заданных букв вычесть получившейся результат?тогда у меня не выходит. я добовляю эту строку
Код s[i]:=s[i]-chr(i) writeln ('',s[i]); или можно раньше это подсчитать?исправив в этой строке плюс на минус: Код word_ch := word_ch + [ s[i] ]; тогда он вообще ничего хорошего не получается. |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
shyrik
Я же привел программу, которая считает все, что нужно. Почему надо не проверив обязательно что-то менять? Этот фрагмент, по Вашему, что делает? Код for i := 0 to 255 Do If chr(i) in in_all Then write(chr(i):3); |
shyrik |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
я и вправду сначала не обратил особого внимания на этот фрагмент.
Если я ставлю not то у меня выводятся все знаки, как от этого избавиться? |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
shyrik
Можете мне объяснить, что требуется выводить вообще? По условию задачи надо было Цитата Напечатать в алфавитном порядке все гласные буквы, которые входят в каждое слово Что моя программа и делает. |
shyrik |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
верно, но мне надо ещё сделать:вывести гласные которые не входят хотя бы в одно слово.
если я ввожу Код if not (chr(i) in in_all)_ Then write(chr(i):3); то у меня получается что всё работает тока много лишних знаков,как от них избавиться и оставить нужное?? |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
shyrik
Смотри первый ответ: множества ... Я добавил еще кое-что... :yes: |
shyrik |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
оп-па, большое спасибо за помощь.
|
Guest |
![]()
Сообщение
#14
|
Гость ![]() |
Люди Помогите!!!!!!!!!!! Дан текст, за которым следует точка. В алфавитном порядке напечатать (по разу) все строчные русские гласные буквы, входящие в этот текст.
|
klem4 |
![]()
Сообщение
#15
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Во первых, зачем задавать свои вопросы в чужих темах, во вторых в чем проблема ?проходишь по строке, если буква строчная и русская и ее нету в множестве, то выводишь ее на экран и доюавляешь в множество ...
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
CrAzY99999 |
![]() ![]()
Сообщение
#16
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Кирилл Репутация: ![]() ![]() ![]() |
Помогите появились ошибки не знаю что делать. Завтра защита, а я ещё одну должен сделать PLEASE HELP SOS
Пусть дана непустая последовательность слов из строчных русских букв. Между соседними словами присутствует запятая, за последним точка. Напечатайте в алфавитном порядке гласные буквы, которые входят в каждое слово. My program ___CrAzY___; {Название программы} uses WinCRT; {Включение библиотеки} type letters=set of char; mass=array[1..33] of string; const empty:letters=[]; var Deafs,setX:letters; str:string; M:mass; F_InTen,F_NoTest:boolean; k,kol_slov:byte; procedure Init(s:string;var X:mass;var c:byte); var i,l:integer; begin l:=length(s); c:=1; for i:=1 to l-1 do if (s[i]<>',') and (s[i]<>'.') then X[c]:=X[c]+s[i] else begin inc©; X[c]:=''; end; end; function Set_Letters(slovo:string):letters; var i:byte; tmp:letters; begin for i:=1 to length(slovo) do include(tmp,slovo[i]); Set_Letters:=tmp; end; procedure Output; var i:byte; begin setX:=Deafs; write('['); for i:=1 to length(str) do if (str[i] in Deafs) and (str[i] in setX) then begin exclude(setX,str[i]); if setX=[] then write(str[i],']') else write(str[i],','); end; end; begin clrscr; writeln('Please, input the text: '); readln(str); Init(str,M,kol_slov); F_InTen:=true; F_NoTest:=false; Deafs:=['а','е','ё','и','й','о','у','э','ю','я']; for k:=1 to kol_slov do begin if odd(k) and (Deafs*Set_Letters(M[k])=empty) then F_InTen:=false else Deafs:=Deafs*Set_Letters(M[k]); if not odd(k) and (Deafs*Set_Letters(M[k])<>empty) then F_NoTest:=true; end; if F_InTen and F_NoTest then Output else writeln('Таких гласных нет!'); readkey; end. |
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
Выше было приведено решение задачи (если ты собираешься делать по-своему, зачем спрашиваешь? Делай... За тебя никто ничего делать не будет...)... А ссылку я тебе дал не для того, чтоб ты зафлудил и эту тему, а для того чтоб ты ее просто ПРОЧЕЛ.
![]() |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 9:50 |