Файл қосу

Паскаль тіліндегі көпөлшемді жиымдар

Пән: Әртүрлі
Сабақтың тақырыбы: Паскаль тіліндегі көпөлшемді жиымдар
Сабақтың мақсаты: Білімділік:
Оқушыларға көпөлшемді жиымдар туралы түсінік беру, Паскал тілінде
көпөлшемді жиымдарға программа құрулы үйрету.
Дамытушылық:
Оқушылардың ойлау қабілеттерін, есте сақтауларын дамытып, жетілдіру.
Тәрбиелік:
Оқушыларды шығармашылыққа, шапшаңдыққа, шешім қабылдағыштыққа
тәрбиелеу.
Сабақтың типі: Практикалық элементтері бар демонстрацияны көрсету –
түсіндіру.
Сабақтың жоспары: 1. Ұйымдастыру
2. Үй тапсырмасын сұрау
3. Ж.Б.Н.И
а) дәптермен жұмыс
4. Практикалық жұмыс
5. Қорытынды. Бағалау. Үйге тапсырма.
Сабақтың барысы: Оқушыларды сабаққа бағыттап, үй тапсырмасын сұрау.

Егер жиым атауында бір ғана индекс болса, онда ол жиымды бірөлшемді,
ал екі индекс болса — екіөлшемді және т.с.с. п индекс болса, n-өлшемді жиым
дейді. Бірөлшемді жиым вектор элементтері, екіөлшемді жиым матрица болып
табылады.
Осы айтылғандарға сәйкес жиым элементтері былай белгіленеді: A[i], B[i,j],
C[I,j,k] және т.с.с, көпөлшемді жиым элементтерін басқаша да белгілеуге
болады, мысалы, В[і] [j] Мұндағы А[і] бірөлшемді жиымның і-ші элементі, оны
математикада aі түрінде белгілейді, В[і,j] — екіөлшемді жиымның (кестенің)
і-жолы мен бағанасының қиылысында орналасқан элементінің белгіленуді;
ал C[i,j,k] үшөлшемді жиым, оның элементін кеңістікте нүкте координаталары
(i,j,k) деп қарауға болады.
Типтер бөлігінде екіөлшемді жиым былай сипатталады:
TYPE atau = array [1..n, 1..m] of <элементтер типі>;
Айнымалылар бөлігінде осы типке жататын жиымдар көрсетіледі
VAR A,B:atau;
Мысалы,
type T = array[1..4, 1..3] of real;

var С, D: Т;
Мұнда индекстер әр типте сипатталып, одан соң жиым элементтерінің
базалық типі көрсетілген. Сипаттаудың мынадай да жолдары бар:
TYPE atau = array [l..n] of array [l..m] of элементтер типі>;
мысалы,
type T = array [1..4] of array [ 1..3] of real;
var В: T;
Мұнда алдымен жол индекстерінің [1..n] типі, одан соң күрделі базалық
тип көрсетілген:
array [l..m] of элементтер типі>;
Егер көпөлшемді жиым қүратын кезде базалық тип ретінде басқа жиым
алынса, онда сипаттау бөлігі былай жазылады:
type vector = array[1..4] of integer;
massiv = array[1..4] of vector;
var matr : massiv;
Мұнда massiv және matr жиымдары екіөлшемді, яғни massiv[4,4], matr[4,4] —
олар 4 жол және 4 бағанадан тұратын кесте элементтерін бейнелейді.
Егер программада жиымның бағанасы мен жолын бөліп жазу қажет болса, онда
оны былай сипаттау қолайлы:
TYPE Tl= array[l..M] of элемент типі>;
Т= array [l..N] of T1;
VAR В:Т; А:Т1;
Мұнда алдымен бағана типі Т1 көрсетіледі де, одан соң ол жолдың типі арқылы
матрицаның типі Т көрсетіледі. Айнымалылар бөлігінде екіөлшемді жиым — В
және бірөлшемді жиым — А көрсетілген.
Екіөлшемді жиымды көбінесе айнымалы бөлігінде сипаттау жиі
колданылады:
VAR В: array [l..N, 1..M] of <элементтер типі>;
Индекс типіне REAL, integer стандартты типтерден езге типтердің барлығын
пайдалануға болады, ал элементтер типі үшін Паскаль тіліндегі барлық
типтерді қолдану мүмкіндігі бар.
Мысалы, T
ype
den = (mo, tue, wed, th, fr, sat, sum);
Rden = mo..fr;
Zadan = array [1..25, rden] of integer;
VAR
A:array [den] of array [1..25] of char;
B:zadan;
C:array [1..365] of zadan;
Көпөлшемді жиымдармен жұмыс атқарғанда бір цикл операторының
ішінде бірнеше цикл операторлары болуы мүмкін. Мысалы, жиым екіөлшемді
болса, онда қайталау екі рет, ал үшөлшемді болса кайталау үш рет
және т.сс. орындалады. Демек, жиым элементтерін енгізу немесе экранға
шығару үшін цикл операторларын мынадай түрде пайдалануға болады:
for i:= 1 to n do
for j:=1 to m do
read(B[,j]);
немесе экранға мөлімет шығару үшін:
for і= 1 to n do
begin
writeln;
for j:= 1 to m do
write (B [i, j ]:8:3 );
end.
Индекстері мен элементтерінің типтері бірдей жиымдардың бірінің мәндерін
екіншісіне көшіру үшін, мысалы A:=D; меншіктеу операторын немесе цикл
операторы арқылы былай орындау мүмкіндігі бар:
For i:= 1 to 4 do
А[і]:= D[i];
Жиым элементтері компьютер жадында тізбектеле орналасады. Төменгі индексті
жиым элементі кіші адрестерде, жоғарғы индекстердегі элементтер жоғарғы
адрестерде сакталады. Көпөлшемді жиымдардың оң жақ шеткі индекстері
бірінші болып өсіп отырады. Мысалы, А: аггау[1..5,1„5] of integer жиымы
берілсе, ол компьютер жадында адрестерінң өсуі бойынша былай
орналасады:
A[1,1]
A[1,2]

A[1,5]
A[2,1]
A[2,2]

A[5,5]
Күнделікті тұрмыста екі-үш өлшемді жиымдар жиі
қолданылады. Алгоритмдік тілдерде жиым өлшеміне шек қойылмайды. Жоғарыда
айтылғандай жиым бір, екі, үш, төрт, тіпті одан да көпөлшемді болуы
мүмкін. Бірөлшемді жиымдарды сызықты жиымдар десек, екіөлшемді
жиымдарды математикада матрица немесе кесте деп атайды. Біз мұнда
екіөлшемді жиымдарды қарастырамыз. Екіөлшемді жиымға мысал ретіңде
оқушылардың, әр сабақтан алған бағалары толтырылған кестені алуға болады
Мәселен, мектепте 9-сыныптан үш топ бар екен делік: 9а, 9б және 9в топтары.
Топ окушыларының бес сабақтан алған орташа бағалары төмендегі кесте түрінде
көрсетілген.
| |Пәндер |1-топ |2-топ |3-топ |
|1 |Информатика |4,1 |4,7 |4,2 |
|2 |Алгебра |4,4 |4,3 |4,0 |
|3 |Геометрия |4,5 |4,6 |4,7 |
|4 |Казак тілі |4,2 |4,0 |3,9 |
|5 |Орыс тілі |4,3 |4,5 |4,6 |

Егер карастырылатын жиым атауы В болса, онда оны былай жазады:
мұндағы цифрлар В жиымының құраушылары немесе элементтері, олар да сол
атаумен белгіленіп, оның төменгі шетіне элементтің орналасқан орындары
көрсетіледі:

жалпы түрде жиым элементтері bi.j. деп белгіленсе, мұндағы і-жол, j-бағана
нөмірлері, онда
і = 1,2,3,4,5; j = 1,2,3 деген мәндердің бірін кабылдайды.
Жиым элементтерінің мәнін жол және бағана нөмірлері арқылы анықтайды.
Біздің мысалда В2,3 = 4,0; В3,2 == 4,6 және т.с.с.
1-мысал. Жоғарыда берілген кестені пайдаланып, бес пән бойынша қай топтың
орташа бағасы жоғары екенін және оның шамасын анықтайтын программа құру
керек.
Program baga;
const n = 5; m = 3;
var k, i, j: integer;
s: real;
b: array [l..n, l.. m] of real;
a: array [l..m] of real;
begin s:=0;
writeln ('Жиым элементтерін бос орын арқылы енгізіндер');
for i:= 1 to n do
for j:= 1 to m do read (b[i,j]); {Жиым элементтерін енгізу}
for j := 1 to m do
begin
for i:= 1 to n do s:= s + b[i,j] {Бағана элементтерін қосу}
a[j]:=s/n; s:= 0; writeln;
write (‘ ‘:4, a[j]); writeln
end;
k:=1; s:=a[1];
for j:= 2 to m do
if a[j]>s then begin
s:=a[j]; k:=j
end;
writeln (‘ ‘:4, k,’-топтың бағасы жоғары, ол ‘,s:4:3’-ге тең’)
end.

2-мысал. Көбейту кестесін толтыруға арналған программа құру керек.
PROGRAM KOBEITU;
Const n = 9;
Var i,j: integer;
К: array [2..n, l..n] of integer;
Begin
For i := 1 to n do
Begin
For j := 2 to n do
Begin
K[j,i]:=j*i;
Write(j,’;x’,i,’ =’ ,K[j,i]:3,’’:2);
end;
Writeln
End
End.
3-мысал. Өлшемі nхnа (n=4) нақты сандардан тұратын матрица . Матрицаның ең
үлкен элементі мен ең кіші элементін, олардың орналасқан орнын (бағанасы
мен жолын) тауып, сол ең үлкен элемент пен ең кіші элементің қосындысын
анықтау кажет.
PROGRAM MATRICA1;
Const n = 4;
Type mas = array[l..n, l..n] of real;
VAR
a: mas;
max, min, res: real;
i, j, ml, m2, kl, k2: integer;
Begin
Writeln (‘Maтрица элементтерін бос орын арқылы енгізіңдер:’);
For i := 1 to n do
Begin
For j := 1 to n do
Read(a[i,j]);
Writeln
End;
max:= a[l,l]; min:= а[1,1]; ml:= ; m.2: = ; k1:= 1; k2:= 1;
For i:= 1 to n do
For j := 1 to n do
Begin
If max < a[i, j] then
Begin
max:= a [i, j]; ml:= i; m2:=j
End;
If min > a[i, j] then
Begin
min:=a[i,j]; kl:= i; k2:= j
End
End;
Res:= max + min;
Writeln (‘eң; үлкен элемент = ‘ max : 6 : 2,’ ол’, ml : 2, ‘-жолда және’,
m2 :2, ‘-бағанада орналасқан’);
Writeln (‘ең кіші элемент = ‘, min:6:2, ‘ол’ kl : 2, ‘-жолда және’, k2 : 2,
‘-бағанада орналасқан’);
Writeln (‘олардьщ қосындысы =’, res:7:2)
END.
4-мысал. Екіөлшемді а және b матрицаларының косындысы болып табылатын s
матрицасын табу керек.
PROGRAM KOSU;
type ms = array [1..3, 1..3] of real;
var a, b, s: ms;
k, j: integer;
Begin
Writeln (‘a жиымы элементтерін бос орын арқылы енгізіңер:’);
For k:=l to 3 do
For j:= 1 to 3 do
Read (a[k,j]);
writeln;
Writeln (‘ жиымы элементтерін бос орын арқылы енгізіңдер:’);'
For k:= 1 to 3 do
For j:= 1 to 3 do
begin
Read(b[k,j]);
s[k,j]:=a[k,j]+b[k,j];
end;
writeln (‘қосынды жиымның элементтері:’);
For k= 1 to 3 do
Begin
For j:= 1 to 3 do
Write(s[k, j]: 5 : 2);
writeln
End
End.
Бақылау сұрақтары
1. Жиым деп нені айтады?
2. Паскаль тілінде жиымдар калай сипатталады? Олардың кұрамы қандай?
3. Жиым элементтерінің орны қалай анықталады?
4. Индекс дегеніміз не? Оларға кандай талап қойылады?
5. Жиымның керекті элементін қалай пайдаланамыз?
6. Жиым элементтері мен индекстерінің типтері кандай болуы мүмкін?
7. Жиым сипаттаура неге тұрақтыларды пайдаланган қолайлы?
8. Жиым элементтеріне кандай амал қолданылады? Оларга кандай
талап қойылады?
9. Жиымдарды программаға енгізу жөне нәтижелерді шығару
әрекеттері калай ұйымдастырылады?
10. Бірөлшемді, екіөлшемді жөне n-өлшемді жиымдардын кандай
ұқсастықтары мен айырмашылықтары бар?
11. Екіөлшемді жиым калай сипатталады? Олардың ерекшеліктері
қандай?
12. Жиым элементтері компьютер жадында қалай орналасады? Көпөлшемді
жиым элементтері ше?
13. Жиым элементтерін калай сұрыптайды? Оның ең үлкен жөне ең
кіші элементтері калай аныкталады?
Жаттығу
1. X жиымы элементтері ретінде бес бүтін сан енгізу керек. Сол сандарды
экранның бір жолына үтір аркылы бөліп жазып шығып, жиым элементтерінің
арифметикалық ортасын табыңдар.
2. Нақты сандардан түратын 3x3 матрицасы берілген, сол матрица элементтерін
экранға шығарыңдар. Осы матрицаның әрбір элементін 5-ке көбейтіп,
алынған матрицаны да экранға шығарыңдар.
3.Нақты n сандардан тұратын бірөлшемді ai (і = 1, 2,..., 5) жиымы берілген.
а) жиым элементтерін кері .жазып шығу қажет; в) bi = 1/аі формуласы аркылы
жаңа bi жиымын кұрьщдар.
4- Нақты п элементтен тұратын жиымньщ ең үлкен, ең кінгі элементтерін жөне
олардың реттік нөмірін табу программасын күрьщдар.
5. A = (ai,j ) екіөлшемді жиымы берілген, осы жиымның: а) элементтерінін
косындысы ең үлкен болатын жол нөмірін; ә) сол анықталған жол
элементтерінің қосындысын табатын программа кұрыңдар.
6. Сынып журналындағы 5-тік бағалардың санын есептендер.
7.Сынып журналындағы кандай нөмірлі оқушының бестік бағасы көп?



Ұқсас жұмыстар
Көп өлшемді жиымдар
Паскаль - программалау тілі
Паскаль тілі бойынша тест тапсырмалары
Жиымдар. Паскаль тіліндегі жиымдар (3 сағ)
Жиымдар. Бірөлшемді жиым (массив)
Программалау тiлi. тiлдiң алфавитi. программалау тiлiнде алгоритм жазу ережесi
Ақпаратты сығу программалары
Айнымалы типтер. 7 сынып, қмж
Шығару операторы
Екі өлшемді массив
Пәндер