Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Екі өлшемді массивтер
Turbo Pascal программалау тілі бір өлшемді массивтермен қатар екі өлшемді және көп өлшемді массивтерді қолдануға мүмкіндік береді. Егер массивте екі индекс болса, онда оны екі өлшемді массив деп атайды және екі өлшемді массив матрица деп те аталады. Екі өлшемді массивтерде жол мен бағанның қиылысуында орналасқан әрбірэлементтіңорнысолжолжәне баған номеріменанықталады. Сондықтан екі өлшемді массивті сипаттау үшін екі индекс қолданылады. Массивтің элементін жазу кезінде индекстер массивтің атынан соң тік жақша ішіне жазылады және олардың арасына үтір қойылады. Екі өлшемді немесе көп өлшемді массивтермен жұмыс істеу үшін, олар сипаттау бөлімінде көрсетілуі тиіс. Екі өлшемді массивті var бөлімінде сипаттаудың жалпы түрі: Var массив атауы: массив типінің атауы; Екі өлшемді миассивті type бөлімінде сипаттаудың жалпы түрі: type Массив типінің атауы = array \аІ..ап bl..bn. \ of элемент muпі; Мұндағы, al..an,bl..bn - екі өлшемді массивтің көлемі; а1 және ап массив қатарының алғашқы және соңғы мәні; b1 және bn - массив бағанының алғашқы және соңғы мәні.A [n,m] - массивін сипаттау жолы. Мысалы, натурал сандардан тұратын, өлшемі N x M болатын екі өлшемді массивті сипаттау былай орындалады: Var Mas: Array [1…N] of integer;
Мысал №1: Натурал сандардан тұратын, өлшемі N x M матрица берілген. Ең кіші элементті және оның орнын табыңдар. Егер мұндай элемент бірнешеу болса, онда экранға олардың әрқайсысының орнын шығарыңдар. Есепті шешу кезінде екі реи көруді ұйымдастырамыз. Алғашқы көру кезінде ең кіші элементті табамыз. Егер ең кіші элемент бірнешеу болса, онда екінші көру кезінде олардың орнын анықтаймыз.
Program Prog_1; Const T = 100; S = 100; Var Array [1..T, 1..S] of integer; N, M, IM, JM, I, J, Min, K: integer; Begin Write (‘ жолдардың санын енгізіңдер N = ’); Readln (N); Write (‘Бағандардың санын енгізіңдер M = ’); Readln (M); For I: = 1 to N do Begin Writeln (‘ Бос орын арқылы ‘, M,’ сан енгіз’); For J: = 1 to M do Read (A [I, J]) End; Min: = A [1, 1]; IM: = 1; JM: = 1; K: = 0; For I: = 1 to N do For J: = 1 to M do If Min > A [I, J] then Begin K: = 1; IM: = I; JM: = J; Min: = A[I, J] End Else if Min = A [I, J] then K: = K+1; If K = 1 then Begin Writeln (‘Матрицада ең кіші элемент жалғыз Min = ‘, Min’); Writeln (IM, ‘жолдың’, JM,’бағанында’) End Else Begin Writeln (K, ‘Матрицасында ең кіші элемент Min = ‘, Min’); For I: = IM to N do For J: = 1 to M do If Min = A [I, J] then writeln (I, ‘жолдың’, J, ‘бағанында’) End End.
Есепті шешу алгоритмі:
Айнымалылар: A – екі өлшемді массив; N, M – массивтің жолдары мен бағандарының саны; I, J – цикл айнымалылары; K – ең кіші элементтерінің саны; IM, JM – ең кіші элементтерінің жолы мен бағаны; Min – осы ағымдағы кіші элемент. Мысал №2: Латын әріптерінен тұратын N x M өлшемді матрица берілген. Осы массивтегі әрбір жолды алфавиттік рет бойынша сорттаңдар. Program Prog_2; Const T = 100; S = 100; Var A: Array [1..T, 1..S] of char; N, M, I, J, K: Integer; Temp: Char; Begin Write (‘Жолдардың санын енгізіңдер N = ’); Readln (N); Write (‘Бағандардың санын енгізіңдер M = ’); Readln (M); Writeln (M * N, ‘ әріп енгізіңдер’); For I: = 1 to N do For J: = 1 to M do Read (A [I, J]); For I: = 1 to N do Begin For K: = 1 to M – 1 do For J: = K to M do If A [I, K] > A [I, J] then Begin Temp: = A [I, K]; A [I, K]: = A [I, J]; A [I, J]: = Temp; End; End; For I: = 1 to N do Begin For J: = 1 to M do Write (A [I, J]); Writeln End; End. Есепті шешу алгоритмі:
Айнымалылар: A – екі өлшемді массив; N, M – массивтің жолдары мен бағандарының саны; I, J, K – цикл айнымалылары; Temp – ағымдағы кіші элемент (әріп).
Мысал №3: Нақты сандардан тұратын, өлшемдері 2 х 3, 3 х 3, екі А және В матрицаның көбейтіндісін табыңдар. С матрицаның элементтері (өлшемі 2 х 3) мына формуламен анықталады: m C = ∑ a b , i = 1, 2,…, n; j = 1, 2,…p. K = 1
Мұндағы, n – А – ның жолдарының саны; m – А – ның бағандарының және В – ның жолдарының саны; p – В – ның бағандарының саны; С матрицасы n жолдан, p бағаннан тұрады. С – ның элементтерін есептеу үшін қосындыны жинайтын ішкі цикл құрылады, ол циклдің параметрін К деп белгілейік.
Program Prog_3; Var A, C:Array [1..2, 1..3] of real; B: Array [1..3, 1..3] of real; I, J, K: integer; Begin Writeln (‘ A массивін енгізіңдер’); For I: = 1 to 2 do For J: = 1 to 3 do Read (A [I, J]); Writeln (‘B массивін енгізіңдер’) For I: = 1 to 3 do For J: = 1 to 3 do Read (B [I, J]); {Матрицаны көбейту} For I: = 1 to 2 do For J: = 1 to 3 do Begin C [I, J]: = 0; For K: = 1 to 3 do C [I, J]: = C [I, J] + A [I, K] * B [K, J] End; {С массивін экранға шығару} Writeln (‘ C массиві’); For I: = 1 to 2 do Begin Writeln; For J: = 1 to 3 do Write (C [I, J]: 12:5) End; End.
Есепті шешу алгоритмі:
Айнымалылар: A – екі өлшемді массив, B – екі өлшемді массив; C – екі өлшемді массив; I, J, K – цикл айнымалылары; Бақылау сұрақтары: 1. Массив дегеніміз не? 2. Массивтің қандай түрлері бар? 3. Массивтерді сипаттаудың қандай ерекшеліктері бар? 4. Массив элементтерiн цикл арқылы қалай енгiзедi және шығарады? 6.FOR және NEXT операторлары қандай блоктармен өрнектеледi?
|