Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать неотразимый комплимент Как противостоять манипуляциям мужчин? Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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.

 

Есепті шешу алгоритмі:

  1. Программа денесін айнымалыларды сипаттаудан бастаймыз.
  2. А массивінің өлшемін және оның элементтерінің мәндерін енгіземіз.
  3. Массив элементтерінің ең кіші мәнін іздейміз және индекстерінің мәнін сақтаймыз.
  4. Ең кіші элементтерді санаймыз.
  5. К мәніне байланысты не ең кіші не ең кіші элементтің жалғыздығы туралыхабар шығарамыз, не А массивін қайта тексеріп ондағы барлық ең кіші элементтер туралы мәлімет шығарамыз.

 

Айнымалылар:

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.

Есепті шешу алгоритмі:

  1. Программа денесін айнымалыларды сипаттаудан бастаймыз.
  2. А массивінің өлшемін және оның элементтерінің мәндерін енгіземіз.
  3. Массивтің жолдарын көреміз және реттейміз.
  4. Массивті экранға шығарамыз.

 

Айнымалылар:

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.

 

Есепті шешу алгоритмі:

  1. Программа денесін айнымалыларды сипаттаудан бастаймыз.
  2. А массивінің элементтерін енгіземіз.
  3. В массивінің элементтерін енгіземіз.
  4. Матрицаны көбейтуді жүзеге асырамыз.
  5. С массивін экранға шығарамыз.

 

Айнымалылар:

A – екі өлшемді массив,

B – екі өлшемді массив;

C – екі өлшемді массив;

I, J, K – цикл айнымалылары;

Бақылау сұрақтары:

1. Массив дегеніміз не ?

2. Массивтің қандай түрлері бар?

3. Массивтерді сипаттаудың қандай ерекшеліктері бар?

4. Массив элементтерiн цикл арқылы қалай енгiзедi және шығарады?

6.FOR және NEXT операторлары қандай блоктармен өрнектеледi?








Date: 2015-12-13; view: 776; Нарушение авторских прав

mydocx.ru - 2015-2017 year. (0.009 sec.) - Пожаловаться на публикацию