Помощь - Поиск - Пользователи - Календарь
Полная версия: До сессии 1 день
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
CrAzY99999

Помогите плииииииз.
Есть мой вариант, но боюсь вы меня осудите!
Мой вариант:
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.

Условие:
Пусть дана непустая последовательность слов из строчных русских букв.
Между соседними словами присутствует запятая, за последним точка.
Напечатайте в алфавитном порядке гласные буквы, которые входят в каждое слово.
[i][u][/u][b]
volvo
Цитата
До сессии 1 день, а практика ещё не защищена!
Это дает тебе право нарушать сразу 4 правила форума? mad.gif

Здесь смотри: множества
CrAzY99999
Sorry and Thank
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.