Таңдау операторы
Есеп: Ай нөмірін енгізіп, осы айдағы күндердің санын шығару.
Шығарылуы: Айдағы күндер саны
28 күн – 2 (ақпан)
30 күн – 4 (сәуір), 6 (маусым), 9 (қыркүйек), 11 (қараша)
31 күн – 1 (қаңтар), 3 (наурыз), 5 (мамыр), 7 (шілде),
8 (тамыз), 10 (қазан), 12 (желтоқсан)
Ерекшелігі: Екі нұсқаның емес, айдың нөміріне сәйкес бірнеше нұсқаның бірін таңдау.
Просмотр содержимого документа
«Таңдау операторы»
Паскаль тілінде программалау
Тақырып 6. Таңдау операторы
Таңдау операторы
Есеп: Ай нөмірін енгізіп, осы айдағы күндердің санын шығару.
Шығарылуы: Айдағы күндер саны
28 күн – 2 (ақпан)
30 күн – 4 (сәуір), 6 (маусым), 9 (қыркүйек), 11 (қараша)
31 күн – 1 (қаңтар), 3 (наурыз), 5 (мамыр), 7 (шілде), 8 (тамыз), 10 (қазан), 12 (желтоқсан)
Ерекшелігі: Екі нұсқаның емес, айдың нөміріне сәйкес бірнеше нұсқаның бірін таңдау.
?
Бұған дейінгі қолданған әдістермен шешуге бола ма?
2
Алгоритм
басы
енгізу M
иә
M = 1?
таңдау операторы
D := 31;
жоқ
иә
M = 2?
D := 28;
жоқ
иә
M = 12?
D := 31;
жоқ
шығару D
ешбір нұсқасы сәйкес келген жоқ
қате
соңы
2
2
0 then writeln(‘Бұл айда ', D, ' күн.') else writeln('Айдың нөмірі дұрыс емес'); end. case M of 2: begin D := 28; end; 4,6,9,11: begin D := 30; end; 1,3,5,7,8,10,12: D := 31; else D := -1; end; ешбір нұсқасы сәйкес келген жоқ 2 2 " width="640"
Программа
program qq;
var M, D: integer;
begin
writeln(‘Айдың нөмірін енгіз:');
read ( M );
case M of
2: begin D := 28; end;
4,6,9,11: begin D := 30; end;
1,3,5,7,8,10,12: D := 31;
else D := -1;
end;
if D 0 then
writeln(‘Бұл айда ', D, ' күн.')
else
writeln('Айдың нөмірі дұрыс емес');
end.
case M of
2: begin D := 28; end;
4,6,9,11: begin D := 30; end;
1,3,5,7,8,10,12: D := 31;
else D := -1;
end;
ешбір нұсқасы сәйкес келген жоқ
2
2
Таңдау операторы
Ерекшеліктері:
- case -тен кейін айнымалы атауы немесе бүтін типті ( integer ) арифметикалық өрнек
- case -тен кейін айнымалы атауы немесе бүтін типті ( integer ) арифметикалық өрнек
немесе символдық типті ( char ) арифметикалық өрнек
case i+3 of
1: begin a := b; end;
2: begin a := c; end;
end;
var c: char;
...
case c of
'а': writeln(‘Бөкен');
'б': writeln('Борсық');
else writeln(‘Білмеймін');
end;
болуы мүмкін
2
2
Таңдау операторы
Ерекшеліктері:
- егер бір ғана операторды орындау керек болса, begin мен end сөздерін жазбай кетуге болады бірдей екі мәнді қоюға болмайды
- егер бір ғана операторды орындау керек болса, begin мен end сөздерін жазбай кетуге болады
- бірдей екі мәнді қоюға болмайды
case i+3 of
1: a := b;
2: a := c;
end;
case i+3 of
1: a := b;
1: a := c;
end;
2
2
Таңдау операторы
Ерекшеліктері:
- бірдей әрекеттер орындалатын кезде қолданылатын мәндерді топтастыру қажет
- бірдей әрекеттер орындалатын кезде қолданылатын мәндерді топтастыру қажет
case i of
1: a := b;
2,4,6: a := c;
10..15: a := d;
20,21,25..30: a := e;
else writeln(‘Қате');
end;
тізбелеп санап шығу
диапазон
аралас
2
2
Қай жері дұрыс емес?
case a of
case a of
2: begin a := b;
2: a := b
4: a := c
4: a := c;
end;
end;
;
case a of
case a of
2..5: a := b;
0..2: a := b;
4: a := c;
6..3: a := c;
end;
end;
3..6:
begin
case a+c/2 of
2: a := b;
4: a := c;
end;
case a of
2: a := b; d := 0;
4: a := c;
end;
end;
2
2
Тапсырмалар (бұрыс енгізуден қорғаумен)
"4": Айдың нөмірін енгізе отырып, осы айдағы күндердің санын және енгізу кезінде жіберілген қателердің санын есептеп шығару.
Мысал:
Ай нөмірін енгіз: Ай нөмірін енгіз:
-2 2
Ай нөмірін енгіз: Бұл айда 28 күн бар.
11 Сіз 0 рет қате енгіздіңіз.
Бұл айда 30 күн бар.
Сіз 1 рет қате енгіздіңіз.
"5": Айдың нөмірі мен күннің нөмірін енгізіп, Жаңа жылға дейін қалған күндердің санын анықтау.
Мысал:
Ай н өмірін енгіз:
12
Күнді енгіз:
25
Жаңа жылға дейін 6 күн бар.
2
2