Помощь - Поиск - Пользователи - Календарь
Полная версия: Подскажите в чем проблема (множества)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
wary
Задача: Осуществить ввод элементов заданного множества с клавиатуры.
Определить является ли множество {'T','h','j','k'} его подмножеством.

Алгоритм: 1. Вводим 1-е множество с клавиатуры (я представляю себе что это может быть либо массив либо строка)

2. Сравниваем 1-е и 2-е относительно условия.

Вот что у меня получилось ->

Код
Program qwerty;
uses CRT;
const
N=4;
type
SetChar=set of char;
var
mn2:SetChar=['T','h','j','k'];
a:string;
i,YES,NO:integer;
BEGIN
Begin
ClrScr;
end;
readln(a);
FOR i:=0 to N do
        if (A[i]>=mn2) then Inc(YES)
                       else Inc(NO);
if YES=4 then writeln('-OK-');
if NO=4 then writeln('-NO-');
readln;
end.


При компилировании выдает @Error 26:type mismatch@ на месте
Код
if (A[i]>=mn2)


Просьба помочь разобраться, почему идет несовместимоть типов????, ведь например, если я
Код
if (A[i]>=mn2)
заменю на
Код
if (A[i] in mn2)
, то все работает. Таже проблема возникает если переменную "а" обьявляю как массив. Может я чего-то не допонимаю dry.gif
volvo
Цитата
1. Вводим 1-е множество с клавиатуры (я представляю себе что это может быть либо массив либо строка)
Ты сам себе противоречишь: МНОЖЕСТВО это должно быть, и ничто другое...

uses CRT;
const
mn2 = ['T','h','j','k'];
type
SetChar=set of char;
var
new_mn: SetChar;
a:string;
i:integer;

BEGIN
ClrScr;
readln(a);
new_mn := [];
FOR i:=1 to length(a) do new_mn := new_mn + [a[i]];
if mn2 <= new_mn then writeln('Yes') else writeln('no');
readln;
end.
(набирал прямо здесь, поэтому ногами сильно не пинать smile.gif )
wary
Цитата
FOR i:=1 to length(a) do new_mn := new_mn + [a[i]];

Это получается мы наполняем множество всеми элементами из строки ?
Lapp
Цитата(wary @ 13.12.2006 9:44) *

Это получается мы наполняем множество всеми элементами из строки ?

Да.
wary
огромное спасибо, наконецто с задачкой разобрался. smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.