Сабақтың тақырыбы: Жиымдар
Сабақтың тақырыбы: Жиымдар
Мақсаты: Оқушыларды жиыммен таныстыру; цикл мен массивпен жұмыс жасауды үйрету; Turbo Pascal да алгоритмді массивте көрсету.
Сабақтың барысы:
- Ұймбастыру бөлімі.
- Үй тапсырмасын тексеру.
- Жаңа сабақ түсіндіру.
Презентация.
- Жиым, индекс дегеніміз не? (слайд №2).
Жиым – ортақ атпен және типпен біріктірілген, нөмірлері бойынша реттелген мәндердің жиыны.
Индекс — жолдың жекелеген символдарына берілген символдың жолдағы нөмірі.
- Жиым түрінде корсетуге болатын мысалдар, неге олай екенін түсіндіру:
- Неге кітапты «жиым» деуге болады? Бұл жерде жиым мен индексті ажырату керек. (слайд №3).
Сұрақ: Жай кітапты жиым деп санауға болады. Неге?
Жауабы: (Суретімен)
Кітап көптеген бір типті элементтерден тұрады – беттерден, әр беттің нөмірі бар (индекс), барлық бетбір атпен біріктірілген (кітап).
- Неге үйді «жиым» деуге болады? Бұл жағдайда қасысы жиым элементі, қайсысы индекс болады? (слайд №4)
Жауабы: Зәулім үйдің суреті.
Зәулім үйге бір почталық адрес сәйкес келеді (қала, көше, нөмір).
Әр қайсысы нөмірленген (индекс) пәтерлерді осы үйдің элементтері деп санауға болады.
Неге шахмат тақтасын «жиым» дейміз. Бұл жағдайда қасысы жиым элементі, қайсысы индекс болады? (слайд №5)
Жауабы:Шахмат тақтасының суреті.
Шахмат тақтасы шаршыдан тұрады, әр шаршы әріппен және санмен белгіленеді (екіөлшемді индекс).
- Неге футбол командасын «жиым» дейміз? Бұл жағдайда қасысы жиым элементі, қайсысы индекс болады? (слайд №6)
Жауабы: Команда бірнеше адамдардан тұрады, әр адамда нөмір бар
(индекс).
- Turbo Pascal –да жиымды сипаттау ережелері (слайд №7).
Жиымдарды сипаттау.
Жиым құрғанда компьютер аты бірдей, бірінен кейін бірі орналасқан ұяшықтар тізбегін бөліп береді. Жиымның элементтері нөмірленеді. Элементтің нөмірі (индексі) элементтің жиымның басына қатысты орнын сипаттайды.
Pascal –да жиымдар айнымалыларды сипаттау бөлімінде array қызметтік сөзінің көмегімен сипатталады:
var жиымның аты: array [бас.индекс .. макс.индекс] of элемент типі
Мысалы , var а: array [1 .. 4] of byte.
Бұл жиымның элементтерінің бастапқы индексі 1 деп есептеледі.
Pascal array [1 .. 4] of byte операторын орындағанда жыимға 4 ұяшық бөліп береді.
а(1) а(2) а(3) а(4)
- Жиымдарды сипаттау мысалдары (слайд №8).
Мысалдар:
М: array [-5..5] of integer;
Бұл жиымда неше элемент бар? Қандай типті? Қалай нөмірленеді?
Z: array [-5..5] of integer;
Бұл жиымда неше элемент бар? Қандай типті? Қалай нөмірленеді?
Мass: array [-5..5] of integer;
Бұл жиымда неше элемент бар? Қандай типті? Қалай нөмірленеді?
- Программа ішінде жиым элементтерін қолдану (слайд№9).
Жиым элеметтерін қолдану.
Элементтерді қолдану үшін жиымның аты көрсетіледі және тік жақшаның ішінде элементтің индексі.
Мысалдар:
Read (A[1]);
A[3]:=(2*x+6) mod 4;
A[4]:=(A[1]+A[2]) div A[3];
- Жиыммен жұмыс кезінде циклдерді шынайы қолдану. (есептердің шешімдерін талдау, слайдтар №10, №11).
№10 . Жиымдарды қолдану.
Мысал. Үйдің 1 ден 100 ге дейін нөмірленген пәтерлеріне жаңа газет басылымдарын тарату алгоритмін құру.
басы |
№11 .
Бірінші пәтерден бастаймыз N=1 |
Газетті N=1 пәтеріне жеткіземіз |
Келесі пәтерге көшеміз (N –ді 1-ге көбейтеміз) |
Осындай пәтер бар ма? (N < = 100)
|
ия
соңы |
Жиымды енгізу (слайд №13,14,15)
Жиымның сипатталуы мынадай болса:
A: array [1..10] of real;
Онда жиымды енгізу үшін мына циклді пайдалануға болады:
For i:=1 to 10 do read (A [i]);
Сұрақ: Неге repeat немесе while емес?
Сұрақ: Жиымның барлық элементтерін шығару қалай жазылады?
Сұрақ: Жиымның енгізілуі қалай өзгереді, егер сипатталуы мынадай болса?
A: array [-8..8] of integer;
Есеп: 5 бүтін сан берілген. Үлкен санды табу алгоритмін және программасын құр. |
Жиымды қолданбай программа құру мысалы:
program Maximum;
var a,b,c,d,e : integer;
begin
read (a,b,c,d,e);
if (a>=b) and (a>=c) and (a>=d) and (a>=e) then write (a);
if (a>=a) and (a>=c) and (a>=d) and (a>=e) then write (b);
if (a>=a) and (a>=b) and (a>=d) and (a>=e) then write (a);
if (a>=a) and (a>=b) and (a>=c) and (a>=e) then write (a);
if (a>=a) and (a>=b) and (a>=c) and (a>=d) then write (a);
end.
Сұрақ: Егер сан 10 болса, программа қалай өзгереді?
Сұрақ: Егер сан 1000 болса, программа қалай өзгереді?
Жиымды қолданып программа құру мысалы:
program Maximum;
var A: array [1..5 ] of integer;
I, max: integer;
begin
for i:= to 5 do read (A[i]);
max:= A [1];
for i:=2 to 5 do if A[i]> max then max:=A[i];
write (max);
end.
Сұрақ: Егер сан 10 болса, программа қалай өзгереді?
Сұрақ: Егер сан 1000 болса, программа қалай өзгереді?
Сұрақ: Программа қалай өзгереді, егер сандар нақты болса ?
Бағалау.
Үйге тапсырма беру.