И-9. Бірөлшемді жиымдар.
Мектеп атауы: Павлодар қаласының №40 жалпы білім беру мектебі Ислямова Дариха Мухамед-Қанапьяқызы информатика мұғалімі
Мақсаты: «Бірөлшемді жиым ұғымымен танысу, жиымды енгігуді түсіндіру, әр түрлі әдістермен жиымды толтыруды үйрету; Паскаль программалау ортасында есептер шығару дағдыларын қалыптастыру».
Міндеттері:
1. Білімдік
1. Оқушыларда бірөлшемді жиым түсінігін қалыптастыру.
2. «Жиым», «бірөлшемді жиым»; түсініктерін қабылдау және мәнін түсіну бойынша оқушылардың әрекетін ұйымдастыру: бірөлшемді жиыды енгізу және шығаруды іске асыру;
2. Тәрбиелік
1. Информатиканы оқу пәні ретінде, қызығушылықтарын арттыруды тәрбиелеу.
2. Ұқыптылық, нақтылықты тәрбиелеу.
3. Дамытушылық
1. Паскаль программалау тілі жайлы ұсыныстарды дамыту.
2. Сабақта түрлі әдістерді қолдану арқылы, оқушылардың келесі психологиялық процестерін дамыту,олар зейін, ойлау, есте сақтау (ерікті есте қалдыру, есту қабілеті, көру есі).
Көрнекілігі:
1. Презентация «Бірөлшемді жиым», мультимедиялық проектор, Turbo Pascal 7.0. интеграцияланған құралдар бағдарламасы.
2. Тапсырмалары бар үлестірмелі крточкалар, есептердің блок-схемалары, шаблондар.
3. Көрнекіліктер: Программалау тіліндегі блок-схема түрінде берілген бірөлшемді жиымдарды енгізу және шығару.
Сабақ жоспары:
I. Ұйымдастыру кезеңі
II. Үй тапсырмасын тексеру.
III. Жаңа тақырып меңгерту. Презентацияларды көру мұғалімінің түсіндіруімен.
1. Бірөлшемді жиым ұғымы.
2. Жиымды сипаттау.
3. Бірөлшемді жиымдарды толтыру.
4. Жиым элементтерінің мәнін шығару.
5. Есептердің түрлері
6. Жиым элементінің максималды мәнін іздеу.
IV. Бекіту.
V. Есептерді өздігінен шығару (Қосымша 1).
VI. Қорытындылау.
VII. Үй тапсырмасы. (Қосымша 2)
Сабақ барысы
I. Ұйымдастыру кезеңі.
II. Үй тапсырмасын тексеру.
III. Жаңа тақырып меңгерту.
1. Бірөлшемді жиым ұғымы. (слайд 1)
Бүгінгі сабағымыздың тақырыбы «Бірөлшемді жиымдыр». Паскаль тілінде программалау. Бүгінгі сабақта келесі сұрақтарды қарастырамыз:
• Бірөлшемді жиым ұғымы.
• Жиым сипаттамасы
• Бірөлшемді жиымдарды толтыру.
• Жиым элементтерінің мәнін шығару.
• Есептердің түрлері.
• Жиым элементініңң максималды мәнін іздеу.
Мұғалімнің сөзі.
Өмірде біз көптеген объектілермен кездесеміз, олар нақты белгілермен бірктірілген.
Мысалы:
• Көбелектер…
• Гүлді алқап…
• Аптаға арналған температура кестесі.
Мұндай кестені сызықтық деп атайды. Программалауда сызықтық кесте бірөлшемді жиым деп аталады. Жиым- ортақ атпен және типпен біріктірілген, нөмірлері бойынша реттелген мәндердің жиыны. Жиым құрғанда компьютер аты бірдей, бірінен кейін бірі орналасқан ұяшықтар тізбегін бөліп береді. Жиым өлшемі - бұл оның элементтерінің саны.Жиым нақты элементін белгілеу үшін, жиымның атын және элементтің индексін төтрбұрышты жақшаға алу керек: A[I].
Мысалы: А жиымын қарастырайық.
Жиым бес бүтін саннан құралған: 5, 10, 15, 20, 25.
Жиым элементтері нөмірленген. Кезек номері оның индексі деп аталады. Мысалы, 3 – жиым элементінің номері, басқаша айтқанда индекс. 15 – жиым элементінің мәні.
Жиым элементтері төртбұрышты жақшада белгіленеді, А[2], А[3], А[4], А[5].
Мысалы, А [2]=10.
2 – жиым элементінің номер . 10 – жиым элементінің мәні.
2. Жиымның сипаттамасы. (слайд 8)
Паскальда жиымның сипаттамасын қарастырайық. Аrray сөзі жиым деп аударылады.
А жиым аты. 1 – бастапқы индекс. 5 – соңғы индекс. integer – элемент түрі – бүтін. Индекс шекаралары кез-келгн бүтін сан болуы мүмкін. Төменгі шекарасы жоғарғыдан кем болуы, міндетті . Сипаттаманы константа арқылы қарастырайық:
Const – бұл тұрақтыларды сипаттайтын бөлім, тұрақты шамалар, олар басынан белгіленіп бағдарламаны орындау барысында өзгертілмейді. I – айнымалысына қатысты, жиым элементінің индексін сақтаушы.
3. Бірөлшемді жиымды толтыру.
Жиымды толтыруды қарастырайық. Жиымды толтурудың бірнеше әдәсі бар.
Біз оның үш түрін қарастырамыз:
• пернетақтадан;
• кездейсоқ сан датчигінің көмегімен;
• формуланың көмегімен.
1. Жиымды пернетақтаның көмегімен толтыру.
А жиымын пернетақта арқылы бес бүтін санмен толтыруды қарастырайық.
Жиымға берілгендерді енгізуді ұйымдастыру үшін, циклді қолдану керек.
Begin –жыимға элементтерді енгізудегі циклдің басы.
Индексі бір болатын элементті енгіземіз.
А жиымының бірінші элементіне қараймыз.
13 санын есімізде сақтаймыз.
End – жыимға элементтерді енгізудегі циклдің соңы.
Дәл осылай қалған 4 санды есімізге сақтаймыз.
2. кездейсоқ сандармен жымды толтыру .
Жиым элементтерінің мәнін кез-келген сан арқылы толтыруды қарастырайық. [0, М-1] берілген интервал аралығында кез-келген санда алу функциясы, осы аралықтағы бүтін сандарды шығарады: random (М). Аргументтерін көрсетпеу арқылы да кез-келген сандарды алу функциясын қоддануға болады. Random кез-келген 0-ден 1-ге дейінгі айқын сандарды көрсетеді
[А, В] аралығындағы кез-келген сандарды алу функциясы келесі түрде бейнеленген random (b-a+1)+a
[1,100] интнрвал аралығын он бүтін сандармен жиымды толтырайық, бағдарламаның үзіндісін жазайық:
for i:=1 to 10 do
begin
a[i]:=random(101); {1 ден 100-ге дейінгі сандар}
3. Жиымды формула арқылы толтыру
b[i]:=i*3 формуласы бойынша жиымды 10 санмен толтырайық.
Мұнда 10 бүтін саннан тұратын жиым элементтерінің индекстері 3-ке көбейтіліп жазылады.
4. Жиым элементтерінің мәнін шығару
Үш бүтін саннан жиым шығаруды қарастырайық. Мұндағы 4 айқындама санын білдіреді. а [i], айнымалысының мәні, а[i] экранға төрт символды айнымалы бүтін сан ретінде шығарылады. Жиымды шығару нәтижесі:
Жиым А: 4 5 7
5. Есептердің түрлері
Жиымды өңдеуге байланысты есептер, жиым элементтерін іріктеумен байланысты. Мұндай іріктеу циклде жүзеге асады, ондағы индекс мәндері бастапқыдан соңғы шамаларға дейінөзгертіледі. Практикада жиымдарды іріктеуде бірнеше есептер кездесуі мүмкін.Олар келесі түрлермен ерекшеленеді:
• элементтердің қосындысын (немесе көбейтіндісін) табу.
• элементтердің максималды (минималды) мәнін табу;
• берілген қасиетке байланысты, элемент номерін анықтау.
• берілген қасиетке байланысты, элемент санын анықтау.
• жиым элементтерін алмастыру.
• бірөлшемді жиымның элементтерін жою.
• элементтерді қою.
• кейбір элементтердің мәнін өзгерту.
• жиымдарды құру.
Біз тек қана бірөлшемді жиымның максималды элементін табуда қарастырамыз
6. Жиымның максималды элементін табу
Үлкен көлемді берілген сандар арасынан максимальды мәнді табу жеңіл тапсырма.
Мысалы, ең үлкен элементті табу керек.
Бірінші элементті максимал деп санаймыз.
Екінші элементті біріншімен салыстырамыз. Егер екіншісі біріншісінен үлкен болса, онда жаңа максималды элементті еске сақтаймыз. Солай соңғысына дейін салыстырып шығамыз
{бірінші элемент – максималды деп санаймыз}
for i:=2 to N do
if a[i] > {максималды} then
{жаңа максималды элементті есте сақта a[i]}
Максималды элементтің номері
Максималды элементтің номерін табуды қарастырайық. Бірінші элемент максималды деп есептейік. Бірінші элементтің индексі бірге тең.
Қалған барлық элементтерді соңғысына дейін салыстырып шығамыз.. егер жаңа максималды элемент табылса, онда осы элементті және индексін еске сақтаймыз.
max := a[1]; { бірінші элемент – максималды деп санаймыз }
iMax := 1;
for i:=2 to N do {қалғандпрын тексереміз}
if a[i] > max then {жаңа максималды элемент таптық}
begin
max := a[i]; {есіңде сақта a[i]}
iMax := i; {есіңде сақта i}
end;
бірінші элемент бойынша i_максимум оның мәнін табуға болады А[i_максимум]. Сондықтанбарлық жерде максимумдыа А[ i_максимум] ауыстырып, максимум айнымалысын алап тастаймыз.
iMax := 1;
for i:=2 to N do { қалғандпрын тексереміз }
if a[i] > a[iMax] then {жаңа максималды табылды}
begin
iMax := i; {есте сақта i}
end;
Бағдарлама
А жиымын 5 бүтін санмен сипаттаймыз, i айнымалысын,жиым элементінің индексін.
[50, 150) интервал аралығындағы кез-келген сандармен жиымды толтырамыз.
Бірінші элемент максимал деп есептейік. Қалған элементтерді тексеріп шығамыз.
Жаңа максималды элемент табамыз. Индексін еске сақтаймыз. Индекс бойынша максималды элементтің мәнін табамыз.
const N = 5;
var a: array [1..N] of integer;
i, iMax: integer;
begin
writeln(‘Алғашқы жиым:’);
for i:=1 to N do begin
a[i] := random(100) + 50;
write(a[i]:4);
end;
iMax := 1; { бірінші элемент – максималды деп санаймыз }
for i:=2 to N do { қалғандпрын тексереміз }
if a[i] > a[iMax] then {жаңа максималды}
iMax := i; {естес ақта i}
writeln; {келесі жолға көшу}
writeln(‘Максималды элемент a[', iMax, ']=’, a[iMax]);
end.
7. Есеп шығару үлгісі.
Pascal программалау тілінде берілген бүтін сандар жиымы көлемі 30 элемент болатын, басқа жиымнан, оның элементтерінің мәні бірінші жиымның мәндерінің модульдері болған жағдайдағы алгоритм құру.
Мұна есепті арнайыснның модулін есептейтін функцияны қолданбай шығару керек.
Алгоритм:
Жаңа бүтінсанды А жиымын бастаймыз, бес бүтін саннан: 5, -10, -5, 20, -25. Циклдегі бірінші элементтен соңғысына дейін жиым элементтерін 0-мен салыстырамыз және теріс сандардың белгілерін ауыстырамыз.
Екінші жиымның элементтерін сол номермен толтырамыз. 5, 10, 5, 20, 25.
Бағдарлама (слайд 22, 23)
Көлемі 30 саннан құралған екі жиымды сипаттаймыз. Пернетақтадан 30 сан енгіземіз. Теріс элементтерді щңға ауыстырып, мәндерін В жиымына сол номерлерге жазамыз. В жимыны пробел арқылы жолға шығарамыз. Олар бір-бірімен жабыс қалмасын деп жиым элементтерінің әр қайсысына 4 позициялық жол беріледі.
Writeln – бұл «бос» шығару операторы, ол жұмысты аяқтау үшін тек бір рет қана курсорды келесі жолға ауыстырады.
var a, b: array [1..30] of integer;
i:integer;
begin
for i:=1 to 30 do begin
write(‘a[',i,']=’); read(a[i]);
end;
for i:=1 to 30 do
if a[i]<0 then b[i]:=-a[i] else b[i]:=a[i];
readln;
for i:=1 to 30 do write(b[i]:4);
Writeln; readln;
end.
IV. Өткенді бекіту.
(слайд 24)
Бірөлшемді жиым (жалпы көрінісі)
Сонымен, бірөлшемді жиымның жалпы көрінісі
бірөлшемді жиымның жалпы көрінісі
Алдымен жиымды сипаттаймыз.
Содан кейін жиым элементтерін кез-келген әдіспен енгіземіз.
Циклдегі әр элементтің операциясын орындаймыз.
Жиым элементтерін экранға шығарамыз.
Сипаттамасы:
const N = 5;
var a: array[1..N] of integer;
i: integer;
Пернетақтадан енгізу:
for i:=1 to N do begin
write(‘a[', i, ']=’); read ( a[i] );
end;
Әр элементтік операция:
for i:=1 to N do a[i]:=a[i]*2;
Экранға шығару:
writeln(‘Массив A:’);
for i:=1 to N do write(a[i]:4);
V. Өздігінен есептер шығару
(Қосымша 1)
VI. Қорытындылау.
VII. Үй тапсырмасы.
Бірөлшемді жиымдарды шығару және енгізуді қайталап келу.
Есепті шығару.
16 саннан В жиымын құрып, оны жолға шығару.
Ұқсас тақырыптар:
- Паскалдан жиі қолданыстағы тақырыптық есептер (40 есеп+шешуі).
- Pascal-да программалар: 2-лік->10 сан, 10-дық->2 сан, 4 амал, Қазақша жыл.
- Информатикадан мектеп олимпиадасы 2011-2012
- Паскаль. «Бақытты билет», Бүтін санды жай көбейтінділерге бөлшектеу, ASCII таблицасын шығару, Фамилияларды сұрыптау, Хоар процедурасы
- Информатика пәні бойынша облыстық олимпиада тапсырмалары. (Маңғыстау облысы, 2011-2012 о.ж.)
- Информатика-9. “Жиымдар. Бірөлшемді жиым (массив)”.
- Информатика 2010-2011. Олимпиада есептері шығарылуымен.
- Паскаль. Сызықтық программалар.
- 21-22.12.2012. Информатикадан аудандық олимпиада есептері шығаруларымен. 10-11сынып. І-ІІ тур.
- Инф-9. Паскалда есеп шығару.