You are on page 1of 12

Структура избор од

повеќе можности
Повторување
 Кои се двата типа на структурата ИЗБОР?
◦ Избор од две можности IF-THEN-ELSE
◦ Избор од повеќе можности CASE-OF
 Со која наредба се реализира контролната
структура избор од две можности во Паскал?
◦ Со наредбата IF-THEN-ELSE
 Што се користи најчесто како услов во
наредбата за избор од две можности?
◦ Најчесто се користат логички вредности, односно
точно и неточно
Избор од повеќе можности
 Избор од повеќе можности се користи кога
постојат повеќе можности за продолжување на
дејствотот на алгоритмот, односно повеќе
избори. Изборот на една од можностите се врши
во зависност од вредноста на некој податок или
на некој израз.
 Со оваа контрола на случај израз
избор се врши избор на a,s,y: чекор-А;
b,f: чекор-Б;
еден од повеќе можни
...
случаи. Затоа таа се k,g,f: чекор-К;
нарекува избор во инаку чекор-Х
случај или накратко крај_случај(израз)
случај. Структурата во
текстуална форма се се
запишува:
случај израз
а:чекор-А;
b:чекор-Б;
...
k:чекор-К;
инаку чекор-Х
 Алгоритмот за испишување 2: печати: ‘Доволен’;
на општиот успех кога е 1: печати: ‘Недоволен’;
инаку
даден бројниот успех на
печати ‘Грешка’;
ученикот со користење на крај_случај {n};
структурата случај е крај {Успех}
следниот:
алгоритам Успех;
почеток
читај n;
случај n;
5: печати: ‘Одличен’;
4: печати: ‘Мн.добар’;
3: печати: ‘Добар’;
 Пример 1. Следниве два алгоритамски сегменти со структурата случај
даваат исти решенија:
случај a>b случај a>b true:p←a; true:p←a;
false:p←b; инаку:p←b;
крај_случај{a>b} крај_случај{a>b}
печати р; печати р;

 Пример 2. Нека еден месец е зададен по неговиот реден број m, во


годината(непрестапна). Со помош на структурата случај може да се
одреди колку дена има тој месец.

случај m
1,3,5,7,8,10,12:den←31;
4,6,9,11←30;
2←28;
крај_случај{m};
печати den;
Наредба за структурата избор од повеќе
можности CASE OF
 Конторлната структура избор од повеќе можности
во Pascal е реализирана со наредбата CASE-OF,
чија синтакса е:
CASE израз OF
едни константи:една наредба;
други константи:друга наредба;
...
n-ти константи:n-та наредба;
ELSE
наредба;
END;
Пример 1.
CASE A<B OF
true:WriteLn(A,’ < ’,B);
false:WriteLn(A,’ > ’,B);
END;
 Пример 2. Напиши програма која за број помал од 10 внесен
од тастатура ќе каже дали бројот е парен или непарен.
PROGRAM ParniNeparni;
Var n:integer;
Write(‘Vnesi broj pomal od 10:’);
Readln(n)
CASE n OF
1,3,5,7,9:WriteLn(‘Vnesen e neparen broj’);
2,4,6,8:WriteLn(‘Vnesen e paren broj’);
END;
 Пример 3. Напиши програма за печатење на општиот успех
кога е позната бројната оцена.
PROGRAM Uspeh;
VAR a:integer;
BEGIN
WriteLn(‘So koja ocena ja zavrsi minatata godina?’);
ReadLn(a);
CASE a OF
5:WriteLn(‘Vie ste odlicen ucenik’);
4:WriteLn(‘Vie ste mnogu dobar ucenik’) 3:WriteLn(‘Vie
ste dobar ucenik’); 2:WriteLn(‘Vie ste dovolen
ucenik’); 1:WriteLn(‘Vie ste povtoruvac’);
ELSE
WriteLn(‘Greska’);
END;
END.
 Пример 4. Напиши програма која ќе одредува дали преку
тастатура е внесена мала или голема буква.
PROGRAM Bukvi;
VAR Bukva:char;
BEGIN
Write(‘Napisete edna bukva:’);
Readln(bukva);
CASE bukva OF
‘A’..’Z’:Writeln(‘Ja napisavte golemata bukva ’,
Bukva);
‘a’..’z’:Writeln(‘Ja napisavte malata bukva ’,
Bukva);
ELSE
Writeln(‘Ne vnesovte bukva!’);
END;
END.
 Пример 5. Напиши програма која за број помал од 100 внесен од
тастатура ќе каже со која бројка започнува.
PROGRAM Broevi;
Var Broj:integer;
Write(‘Vnesete broj pomal ili ednakov na 100: ’);
ReadLn(Broj);
CASE Broj OF
1,10..19,100:WriteLn(‘Brojot pocnuva so edinica’);
2,20..29:WriteLn(‘Brojot pocnuva so dvojka’);
3,30..39:WriteLn(‘Brojot pocnuva so trojka’);
4,40..49:WriteLn(‘Brojot pocnuva so chetvorka’);
5,50..59:WriteLn(‘Brojot pocnuva so petka’);
6,60..69:WriteLn(‘Brojot pocnuva so shestka’);
7,70..79:WriteLn(‘Brojot pocnuva so sedmica’);
8,80..89:WriteLn(‘Brojot pocnuva so osmica’);
9,90..99:WriteLn(‘Brojot pocnuva so devetka’);
ELSE WriteLn(‘Brojot e 0’);
END;
 Пример . Напиши програма што ќе ги прикаже особините на броевите од 2 до 10
(со кои /броеви е делив или дали е прост).

PROGRAM Broevi;
VAR a;
BEGIN
Write(‘Vnesete broj od 2 do 10’);
Readln(a);
CASE a OF
2,3,5,7 BEGIN
Writeln(‘Brojot ‘,a,‘ e prost broj’);
Writeln(‘Prost broj e onoj broj koj e deliv samo so 1 i so
samiot sebe’);
Writeln(‘Brojot 1 ne e prost broj po definicija’);
END;
4,8:Writeln(‘Prost delitel na ‘,a,’ e 2’);
9:Writeln(‘Prost delitel na ’,a,’ e brojot 3’);
6:Writeln(‘Prosti deliteli na brojot ’,a,’ se broevite 2 i
3’);
END.

You might also like