ТАҢДАУ ОПЕРАТОРЫ Жоғарыда біз тармақталу командасында (операторында) белгілі бір шарттың орындалу немесе орындалмауына байланысты алгоритмнің 1-операторы немесе 2-операторы орындалатынын қарастырдық. Алайда, көбінесе мүмкін болатын жағдай екеу емес, одан да көп бола береді, яғни процесс көп тармақты болады. Таңдау командасы былай орындалады. Алдымен, селектор-өрнек мәні есептеледі де, ол тұрақтылармен салыстырылады. Егер өрнектің мәні 1-тұрақтыға тең болса, онда 1-оператор орындалады, ал өрнектің мәні 2-тұрақтыға тең болса, онда 2-оператор, 3-тұрақтыға тең болса, онда 3-оператор т.б. тізімдегі тек бір ғана оператор орындалады да, таңдау командасы осымен аяқталады. Егер селектор-өрнектің мәні ешбір тұрақты мәніне сәйкес келмесе, онда else сөзінен кейін тұрған оператор орындалады. Кейде оператор құрамында else қатары болмайды, ондайда end сөзінен кейін тұрған жол орындалады. Сонымен, таңдау командасында селектор-өрнектің мәні ешбір тұрақты мәніне сәйкес келмеген кезде else тармағы болмаса (ол команданың қысқартылған түрінде болмайды), онда таңдау командасының бірде-бір операторы орындалмайды.
Өрнектің және тұрақтылардың мәндері бір типке жатып, олар бүтін саңдық (-32768...32767 аралығында), логикалық немесе символдық (литерлік) типтердің бірі болуы тиіс.
Сонымен, тандау операторы селектор мен тұрақты мәндерінің сәйкес келуіне байланысты бір ғана операторды орындауы тиіс. Кейде өрнектің мәні тұрақтының көрсетілген мәндерінің аралығында болуы ықтимал, мұндайда тұрақтының мәні кесінді тәрізді сандар бірлігін қамтиды.
Әрбір тұрақты үшін бір ғана оператор орындалады, бірақ қажет болған жағдайда бірнеше операторды біріктіріп, кұрама оператор ретінде де орындауға болады. ELSE сөзінен кейін де нүктелі үтірмен бөлінген бірнеше оператор орналастырып, селектор-өрнек мәні тұрақтыға тең болмаған жағдайда да операторлардың бірнешеуін атқаруға мүмкіндік бар. CASE операторын қолданғанда, келесі ережелерді есте ұстаған жөн:
Case сөзінен кейінгі өрнек мәні дискретті типке (лат. discretus — үзікті, өсуі не кемуі бойынша бөліп алуға болатын) жатуы тиіс; бүтін санды тип үшін ол integer болады;
Операторлар алдындағы тұрақтылар типі селектор-өрнек типімен бірдей болуы керек;
Тұрақтылар мәндері бір-бірінен айрықша болып, қайталанбауы тиіс, олардың мәні диапазонға сәйкес келгенде де, бір-бірімен қиылыспай өз аралықтарын ғана қамтуы қажет.
Мысал:
case x of
1: Write(‘дүйсенбі’);
2: Write(‘сейсенбі’);
3: Write(‘сәрсенбі’);
4: Write(‘бейсенбі’);
5: Write(‘жұма’);
6: Write(‘сенбі’);
7: Write(‘жексенбі’);
end;