№ 1 есеп: Оқушыларға бірінші мынандай есепті беремін: Үш берілген санның ең үлкенін табу. Тақтаға бірнеше үштік сандарды жазамын: мысалы, 568, 742,390.
Оқушылар олардың ішінен 742 атайды.
Енді мені сұрақ қоямын: «Осы санның үлкен екенін неліктен айтып отырсыңдар?»
Егер осы сұрақтарға жауап беруге қиналып отырса, онда мұғалім тарапынан көмектесу керек.
Сендер оны салыстырдыңдар ма?
Математика сабағынан сіздер олардың қалай салыстырар едіңдер:
Жауап: Олардың разрядына қарап, жүздік разрядтың ең үлкенін таңдаймыз. Егер жүздік разряд тең болған жағдайда ондық разрядты, т.с.с кете береді.
Шығатыны: Яғни, үлкен сан 742 болады.
Проблема: « Ал енді компьютер оларды қалай салыстырады?!
Оларды мынаған көңіл бөлгіземін, яғни ол машина тек қана екі санды салыстыра алатын ескертемін.
Олар әуелі екі санды салыстырып, сонда кейін үлкенімен үшінші салыстыруды айтады.
Мен оларға сол салыстырудың болк-схемасын дәптерлеріне салдыртамын. Осыдан кейін сол блок-схамаға қарап отырып, оларға программасын жаздыртамын. Олар өздіктерінен программа дайындайды.
Дайындаған программаларына берілген сандарды ендіртіп, программаның дұрыстығын тексертемін.
Проблема: Программа орындалу барысында А айнымалысының мәні өзгеруі мүмкін бе?
Ол қалай өзгереді? Жауаптарыңды түсіндіріңдер.
Шешуі:1. А және В сандарын салыстыру, одан олардан шыққан үлкенін С санымен салыстыру.
Program Max1;
Var A,B,C, max:real;
Begin
Writeln(‘A,B,C’); readln(A,B,C);
If AB then max:=A else max:=b;
If Cmax then max:=C;
Writeln(‘max=’,max);
End.
Мұғалім: Қалай ойласыңдар, осы есепті басқаша жолмен шешуге бола ма?
2 жолы: А саны үлкен бе екенін тексеріп, ол үлкен боламса В мен С салыстаруға бола ма?
If (AB) and (A
if BC then max:=B else max:=C;
3 жолы: Оларды пар-парымен салыстыруға бола ма?
If (ab) and (ac) then max:=a;
If (ba) and (bc) then max:=b;
If (ca) and (cb) tneh max:=c;
Жоғарыда берілген жолдардың барлығы дұрыс екенін тексеру үшін программасын орындап тексереміз. Барлық нұсқаларын қарастыру керек. Әр оқушы өзінше құруы мүмкін: ABC, ACB, BCA, CBA, BAC, CAB.
Проблема: Осы программаны берілген сандардың өсу немесе кему ретімен орналастыратындай етіп жазуға бола ма?
Оқушылар өздерінің нұсқаларын ұсынады.
Сандарды кему ретімен орналастыру:
If (ab) and (ac) and (bc) then writeln (a,’ ‘,b,’ ‘,c);
If (bc) and (ba) and (ac) then writeln (b,’ ‘,a,’ ‘,c);
If (ca) and (cb) and (ab) then writeln (c,’ ‘,a,’ ‘,b);
If (ab) and (ac) and (cb) then writeln (a,’ ‘,c,’ ‘,b);
If (bc) and (ba) and (ca) then writeln (b,’ ‘,c,’ ‘,a);
If (cb) and (ca) and (ba) then writeln (c,’ ‘,b,’ ‘,a);
Ең үлкенін , ең кішісін , орта санын шығару программасы:
If ab then max:=a else max:=b;
If Cmax then max:=c;
If a
If c
If (ab) and (a
If (ba) and (b
If (ca) and (c
If (ab) and (c
If (ba) and (c
If (ac) and (c
Writeln(‘max=’,max);
Writeln(‘min=’,min);
Writeln(‘sr=’,sr);
№ 2 есеп: Үш натурал сан берілген Олардың ортақ ең үлкен бөлгішін табыңдар.
Сұрақ: ЕҮОБтабудыңқандайәдістерібар?
сандарды жай сандардың көбейтіндісі түрінде жазу;
Евклид алгоритмі;
бүтін бөлу.
ЕҮОБ(48,36,24):
Оларды жай сандардың көбейтіндісі түрінде жазу:
48=2*2*2*2*3
36=2*2*3*3
24=2*2*2*3
Осыдан келіп ЕҮОБ(48,36,24)=2*2*3=12
x,y,z үш саны үшін қорытындылаңыз.
Проблема: ЕҮОБ алгоритмін табу үшін қандай білім мен білік керек?
Алгоритмді тұрғызу үшін, жасай білу керек:
берілген сандардың жай бөлгіштерінің бәрін білу керек.
Оларды сақтап, соларға қарау керек;
Барлық бөлгіштерін сақтау керек;
Олардың ішінен бірдейлерін шығару керек.
Осыдан талдау жасайық: Бұл жолды қолданып алгоритм құру қиын болып отыр.
Екінші әдіс – қайталанатын. Екі санның ЕҮОБ табудың Евклид алгоритмі.
Үшінші әдіс – бүтін бөлу.
Осыларды қолға ала отырып, есепті шешу алгоритмін жазайық:
х және у натурал сандарын енгізу
r – х-ті у-ке бөлгендегі қалдығы болсын;
r нолге тең болса , онда у табамыз.
Үйге тапсырмасын беру
Осы алгоритмдердің қайсысы ыңғайлы. Программасын дайындаңыздар.
Проблема: ЕҮОБ табу программасын қалай құрамыз?
Олар өздерінің құрған программаларының бірін көрсетейін: