Ужасно не могу решить такую лёгкую задачу (((
Помогите пожалуйста.
Даны 3 множества. Первое множество А заполнить символами латинского алфавита в интервале от a до g, второе множество В заполнить в интервале от c до m. Третье множество заполнить применив операцию пересечения двух множеств, т. е. A*B. Необходимо проверить в какое из множеств входит введенный с клавиатуры символ, а также узнать порядковый номер символа в таблице ASCII.
Теоретически понятно а вот с кодом что то туплю (((
Заполняем А
Заполняем B
Пересечение A*B
Проверяем символ, номер символа ASC II
Вот только могу символ вывести:
.
uses crt;
var n:integer;
x:char;
begin
clrscr;
writeln('Введите символ ->');
readln(x);
write(x);n:=ord(x); writeln('->',n);
readln(n);x:=chr(n);writeln('->',x);
end.
у меня получилось так:
typeразбирайся..
TL = set of 'a'..'z';
var
A, B, C : Tl;
i : integer;
ch : char;
begin
A := [];
B := [];
for i := ord('a') to ord('g') do
A := A + [chr(i)];
for i := ord('c') to ord('m') do
B := B+[chr(i)];
C := A*B;
{ print }
for i :=ord('a') to ord('z') do
if chr(i) in A then write(chr(i):3);
writeln;
for i := ord('a') to ord('z') do
if chr(i) in B then write(chr(i):3);
writeln;
for i := ord('a') to ord('z') do
if chr(i) in C then write(chr(i):3);
writeln;
{ /print }
readln(ch);
if ch in C then writeln('ch in A, B, C') else
if ch in A then writeln('ch in A') else
if ch in B then writeln('ch in B') else
writeln('ch doesn''t found');
end.
Спасибо огромное compiler!!! буду разбираться!!!
compiler,
не совсем корректно получается... Символ может присутствовать и в двух множествах одновременно, и даже во всех трех (скажем, символ 'd'), может не присутствовать ни в одном, а ты почему-то ограничиваешь его местонахождение каким-то множеством... Добавить бы "не присутствует нигде" надо...