Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Подскажите в чем проблема (множества)

Автор: wary 13.12.2006 3:24

Задача: Осуществить ввод элементов заданного множества с клавиатуры.
Определить является ли множество {'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 13.12.2006 3:33

Цитата
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 13.12.2006 12:44

Цитата
FOR i:=1 to length(a) do new_mn := new_mn + [a[i]];

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

Автор: Lapp 13.12.2006 15:04

Цитата(wary @ 13.12.2006 9:44) *

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

Да.

Автор: wary 14.12.2006 0:42

огромное спасибо, наконецто с задачкой разобрался. smile.gif