Таңдау операторы

Сабақтың тақырыбы: Таңдау операторы

Сабақтың мақсаты:

  1. Білімділік: Таңдау операторларының жазылу тәртібімен таныстыру,
  2. Дамытушылық: Тармақтаушы алгоритмдерге программа жазу жолдарын көрсету; программалау ұғымын дамыту;
  3. Тәрбиелік: Оқушыны ойлау, жоспарлау және әрекет ету жүйесіне тәрбиелеу.

Сабақтың түрі: дәстүрлі

Сабақтың типі: жаңа сабақ

Сабақтың көрнекіліктері: Компьютер,деңгейлік тапсырмалар,оқулық

Пәнаралық байланыс: математика, геометрия, физика.

Сабақтың жоспары:

І. Ұйымдастыру

а) Оқушылармен амандасу.

ә) Оқушыларды түгендеу         (2 мин)

 

ІІ. Жаңа сабақ                           (20 мин)

Шартты операторда, егер шарт ақиқат болса, 1-жағдай, әйтпесе 2-жағдай орындалады. Бірақ көбінесе, мүмкін болатын жағдай екеу емес, одан да көп бола береді, яғни процесс көп тармақты болады. Мұндай жағдайларда шартты операторды пайдалану қолайсыз, себебі, ол программаның көлемін ұлғайтып жібереді.

Таңдау операторы (case) бірнеше операторлардың ішінен таңдау жолымен көп тарамды тармақталуды ұйымдастырады. Тармақталу берілген логикалық мәнге ие болатын өрнек түріндегі шартты тексеруден басталады, өрнек мәндері таңдап алынған типтердің бірі болатын бүтін, символдық, логикалық типтердің бірінде жазылады. Бұл өрнек оператор орындалар кезде белгілі мәнге ие болуы тиіс. Егер өрнектің есептелген мәні көрсетілген мәннің біріне сәйкес келсе, сол қатардың операторы орындалады.

CASE таңдау операторы көп тармақты алгоритмдерді барынша қарапайым және көрнекі түрде жазуға мүмкіндік береді. Оның құрамында селектор (selector — таңдау) деп аталатын өрнек және параметрлер тізімі болуы тиіс, әрбір параметрге сәйкес таңдау тұрақтылары болуы қажет. Таңдау операторының жазылуы пішімі:

 

Таңдау командасы былай орындалады. Алдымен, селектор-өрнек мәні есептеледі де, ол тұрақтылармен салыстырылады. Егер өрнектің мәні 1-тұрақтыға тең болса, онда 1-оператор орындалады, ал өрнектің мәні 2-тұрақтыға тең болса, онда 2-оператор, 3-тұрақтыға тең болса, онда 3-оператор т.б. тізімдегі тек бір ғана оператор орындалады да, таңдау командасы осымен аяқталады. Егер селектор-өрнектің мәні ешбір тұрақты мәніне тұрақты мәніне сәйкес келмесе, онда else сөзінен кейін тұрған оператор орындалады. Кейде оператор құрамында else қатары болмайды, ондайда end сөзінен кейінгі тұрған жол орындалады.

CASE операторын қолданғанда, келесі ережелерді ұстанған жөн:

 

 

 

CASE сөзінен кейінгі өрнек мәні дискретті типке жатуы тиіс; бүтін санды тип үшін ол integer болады;

Операторлар алдындағы тұрақтылар типі селектор-өрнек типімен бірдей болуы керек.

Тұрақтылар мәндері бір-бірінен айрықша болып, қайталанбауы тиіс, олардың мәні диапазонға сәйкес келгенде де, бір-бірімен қиылыспай өз аралықтарын ғана қамтуы қажет.

 

 

Мысал: Айдың нөмері бойынша сәйкес жыл уақытын анықтау керек.

program a1;

var n:byte;

begin

readln(n);

case n of

 1,2,12: writeln(‘қыс’);

 3..5: writeln(‘көктем’);

 6..8: writeln(‘жаз’);

 else writeln(‘күз’);

 end;

 end.

 

ІІІ. Сабақты бекіту: ( 20 мин)

 

1 есеп. Бағдаршамның көрсетуі бойынша көшеден өту программасын құру керек.

program a1;

var x:char;

begin

write(‘бағдаршам түсі’); readln(x);

case x of

 ‘к’: writeln(‘тоқта’);

 ‘з’: writeln(‘жүр’);

 ‘ж’: writeln(‘күт’);

 end;

 end.

 

2 есеп.   Кез келген жыл мерзімін енгізіп, сол жылдың шығыс күнтізбесі бойынша қай жануардың атына сәйкес келетінін анықтау программасы. Алгоритм негізіне 12-ге қалдықсыз бөлінетін жыл мешін жылы болатыны алынған.

Program gyl1;                                     

Var gyl: integer;                                

Begin                                                   

        Write (‘Керекті жылды енгізіңдер:’);

        Readln(gyl);                               

        Write(gyl:4, ‘жыл’);     

Case (gyl mod 12) of                          

0:  write(‘мешін’);                

1:  write(‘тауық’);

2:  write(‘ит’);

3:  write(‘доңыз’);

4:  write(‘тышқан);

5:  write(‘сиыр’);

6:  write(‘барыс’);

7:  write(‘қоян’);

8:  write(‘ұлу’);

9:  write(‘жылан’);

10:  write(‘жылқы’);

11:  write(‘қой’);

End;                                                     

Writeln(‘жылы болады’);

END.                                                 

 

3 есеп. Мектептегі баға цифрмен белгіленеді және оның аты болады. Бағаның цифрмен жазылған мәні бойынша атын анықтайтын программа құрыңдар.

 

program a3;

var n:integer;

begin

write(‘Бағаны енгіз’); readln(n);

case n of

 1: writeln(‘Жаман’);

 2: writeln(‘Қанағаттанғысыз’);

 3: writeln(‘Қанағаттанарлық’);

 4: writeln(‘Жақсы’);

 5: writeln(‘Өте жақсы’);

 else writeln(‘Мұндай баға жоқ’);

 end;

 end.

 

Оқушыларды бағалау. (1 мин)

 

Үйге тапсырма. (2 мин)

Айдың нөмірі N – 1-ден 12-ге дейін бүтін сан; А бүтін саны кәбиса (толық) жыл үшін 1 – ге тең, қарсы жағдайда 0 – ге тең екені берілген болса, айдағы күндер санын табу алгоритмін құру керек.

 

program a5;

var n,a,k:byte;

begin

 readln(n, a);

case n of

 4,6,9,11: k:=30;

 2:if a=0 then k:=28 else k:=29

 else k:=31;

 end;

 writeln(k);

 end.