Uses CRT;
type
TElem = string;
TStack = ^TElement;
TElement = record
info:TElem;
Next:TStack
end;
Procedure StackPush(var S:TStack; E:TElem);
Procedure print;
Procedure StackPush(var S:TStack; E:TElem);
var
z:TStack;
begin
new(z);
z^.next:=s;
Z^.INFO:=E;
s:=z;
end;
Procedure print (p:Tstack);
var i: integer;
begin
for i:=1 to length(p^.info) do
begin
Write(p^.info[i]);
end;
end;
const
gl: set of char = ['a', 'e', 'i', 'j', 'o', 'u', 'y'];
sogl: set of char = ['b', 'c', 'd', 'f', 'g', 'h', 'k', 'l', 'm', 'n', 'p', 'g', 'r', 's', 't', 'v', 'w', 'x', 'z'];
var
s: string;
stekgl: Tstack;
steksogl: Tstack;
i: byte;
begin
ClrScr;
writeln('vvedite tekst: ');
readln(s);
for i := 1 to length(s) do
begin
if s[i] in gl then begin StackPush(stekgl, s[i]) end
else
if s[i] In sogl Then
begin StackPush(steksogl, s[i]) end;
end;
ClrScr;
writeln;
writeln('tekst: ', s);
writeln;
writeln('glasnie iz teksta: ');
print(stekgl);
writeln('soglasnie iz teksta: ');
print(steksogl);
writeln;
ReadKey
end.
Задание – Последовательность символов, ограниченную точкой, занести в два стека, содержащих гласные и согласные буквы. Вывести текст и элементы из обоих стеков.