Множества Set
У меня задачка, помогите решить плиз.
Дана непустая последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все гласные буквы, которые входят в два последних слова.
нЕ понял объясни... расстолкуй
Ну что, никто не подскажет что-ли:(
Ну что, никто не подскажет что-ли:(
Нужна функция чтоб виделять слова
Нужно два стринга для хранения 2 последних слов.
строчка1 = строчка2
строчка2 = функцияотделенияслов
и так пока не встретится точка.
Потом нужно 2 сета.
В первий вталкиваеш все гласные.
Потом идеш по строчка1 и строчка2 и вталкиваеш во второй сет все те символы из етих строчек которие попадаются в сете1
И наконец проходиш по свсем символам и виводиш те что есть в сете2.
Нужна функция чтоб виделять слова
Нужно два стринга для хранения 2 последних слов.
строчка1 = строчка2
строчка2 = функцияотделенияслов
и так пока не встретится точка.
Потом нужно 2 сета.
В первий вталкиваеш все гласные.
Потом идеш по строчка1 и строчка2 и вталкиваеш во второй сет все те символы из етих строчек которие попадаются в сете1
И наконец проходиш по свсем символам и виводиш те что есть в сете2.
Rebbit, а можно это как-нибудь в виде программы описать? Пожалуйста ...
Дома попробую написать, завтра кину...
Иш, какой шустрый :)
Дома попробую написать, завтра кину...
Franky
Спасибо что откликнулся :)
Franky
Спасибо что откликнулся :)
st1,st2:string;
ch1,ch2:char;
b1,b2:byte;
begin
write('‚ўҐ¤ЁвҐ бва®Єг:');
readln(st1);
b1:=0; {ЇаЁ§__Є 2-© §_Їпв®©}
b2:=length(st1); {¤«Ё___ бва®ЄЁ, Ўг¤Ґв гЎлў_вм}
while b1<2 do
begin
ch1:=st1[b2];
if ch1=',' then inc(b1) else
if (ch1='_') or (ch1='Ґ') or (ch1='Ё') or (ch1='©') or (ch1='®')
or (ch1='г') or (ch1='л') or (ch1='н') or (ch1='о') or (ch1='п')
then st2:=ch1+st2; {१г«мв_в ўлЎ®аЄЁ}
dec(b2);
end;
writeln(st2);
{
}
end.
Блин, комментарии не подерживает, а я так старался... :\
извини, не успел дописать сортировку :( Обед коротковат :)
st1,st2:string;
ch1,ch2:char;
b1,b2:byte;
begin
write('‚ўҐ¤ЁвҐ бва®Єг:');
readln(st1);
b1:=0; {ЇаЁ§__Є 2-© §_Їпв®©}
b2:=length(st1); {¤«Ё___ бва®ЄЁ, Ўг¤Ґв гЎлў_вм}
while b1<2 do
begin
ch1:=st1[b2];
if ch1=',' then inc(b1) else
if (ch1='_') or (ch1='Ґ') or (ch1='Ё') or (ch1='©') or (ch1='®')
or (ch1='г') or (ch1='л') or (ch1='н') or (ch1='о') or (ch1='п')
then st2:=ch1+st2; {१г«мв_в ўлЎ®аЄЁ}
dec(b2);
end;
writeln(st2);
{
}
end.
Блин, комментарии не подерживает, а я так старался... :\
извини, не успел дописать сортировку :( Обед коротковат :)
Franky
Спасибо :)
Franky
Спасибо :)
Да особо не за что... сортировку я таки не сделал. Просто возьми строку как массив (st1[n] n-номер символа) и сделай сортировку пузырьком. Я уж забыл ее, посидел в вых - ничего толкового не вышло :(
Да особо не за что... сортировку я таки не сделал. Просто возьми строку как массив (st1[n] n-номер символа) и сделай сортировку пузырьком. Я уж забыл ее, посидел в вых - ничего толкового не вышло :(
Я вроде сам немного догнал ...
Короче переделал:
glasn = ['а', 'и', 'с', 'Ё', '®','г','л','н','о','п'];{короче здесь все русские гласные буквы описаны}
var
s:string;
p,i:byte;
my_set:set of char;
begin
write('s='); readln(s);
p:=length(s);
for i:=1 to 2 do begin
while (p > 1) and (s <> ',') do dec(p);
dec(p)
end;
for i:=p+1 to length(s) do
if s in glasn then include(my_set, s);
for i:=0 to 255 do
if chr(i) in my_set then write(chr(i):3);
end.