Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебная практика Бадарламалау_каз.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
219.14 Кб
Скачать

Екі өлшемді массив.

Жұмыстың мақсаты: Екі өлшемді массивті қолдану арқылы есептерді шешу программасын үйрену.

Екі өлшемді массив төмендегі түрде беріледі:

TYPE <типтің аты>=ARRAY [<инд1_ тип>,< инд2 _тип>] OF <эл_тип>;

Одан кейін массив айнымалылар бөлімінде сипатталады:

TYPE mas2=ARRAY [1..5,1..5] OF INTEGER;

VAR A,B,C: mas2;

Массивтің айнымалылар типі программасын айнымалылар бөлімінде келесі түрде жазамыз:

VAR A,B,C: ARRAY [1..М,1..N] OF REAL;

Мұнда м, n - тұрақтылар, матрицаның тік жолымен жатық жолының индексін білдіреді.

Бұл практикалық жұмыста екі өлшемді массивтерді шешу есептері қарастырылған. Төменде екі өлшемді массивтерді енгізу және шығару көрсетілген:

{ A[N,N] массивін енгізу, мұнда N- тұрақты }

FOR I:=1 TO N DO

FOR J:=1 TO N DO

READ (A[I,J]);

{ A[N,N] массивін шығару }

FOR I:=1 TO N DO

BEGIN

FOR J:=1 TO N DO

WRITE (A[I,J]:4);

WRITELN;

END.

Жұмысты орындау мысалы: А(5,5) екі өлшемді массив элементтерін ең кіші элементтерін кему реті бойынша массив жолдарын шығару программасын құрыңыз.

Программа тексті:

program SORTMIN;

const N=5;

type mas=array[1..N,1..N] of integer;

var A : mas;

b : array[1..n] of integer;

i, j, l, s, v, min, c : integer;

begin

{ А массивін енгізу}

{ А массиві жолының ең кіші элементтерінен В массивін құру }

for i:=1 to n do begin

min : =a[i,1];

for j:=1 to n do

if a[i, j]<min then min : =a[i, j];

b[i]:=min;

end;

{ А массивінен құрылған В массивін сұрыптау }

for i:=1 to n-1 do

for l:=i+1 to n do

if b[i]<b[l] then begin

c :=b[i];b[i] :=b[l];b[l] :=c;

for j:=1 to n do begin с:=a[i, j]; a[i, j] :=a[l, j]; a[l, j] :=с;

end;

end;

{ А массивін шығару }

end.

6 практикалық жұмысқа тапсырма

Екі өлшемді массивтерді өңдеуге арналған есептерді шешу үшін алгоритмнің блок-схемасын және программасын құру керек.

Төмендегі тапсырмаларды орындау барысында әртүрлі қайталау опреаторларын қолдану керек.

Тапсырма варианттары:

  1. А[5,5] екі өлшемді массиві берілген. Массивтің тақ қатарларында орналасқан элементтердің ең кішісін анықта.

  2. А[5,5] екі өлшемді массиві берілген. Егер массив элементтерінің арасында В-ға теңі бар болса, онда Х айнымалысына элементтердің сол жағындағы оң сандардың қосындысын меншікте, әйтпесе Х-ке 0-ді меншікте.

  3. А[5,5] екі өлшемді массиві берілген. В(5) массивін мына шарт бойынша құрастыр: В(j)-ге А массивінің j-қатарындағы ең үлкен элементті меншікте.

  4. А[5,5] екі өлшемді массиві берілген. Бас диагоналдан жоғары орналасқан жұп оң элементтердің көбейтіндісі мен санын есепте.

  5. А[5,5] екі өлшемді массиві берілген. Қатарлардағы оң элементтердің қосындысын тап және оларды сәйкес қатардың жанама диагоналінің элементіне меншікте.

  6. А[5,5] екі өлшемді массиві берілген. В(5) массивін мына шарт бойынша құрастыр: егер i – қатарында кез-келген элемент теріс болса, онда В(i)-ға 1-ді меншікте, әйтпесе 0-ді меншікте.

  7. А[5,5] екі өлшемді массиві берілген. В(5) массивін кеслесі шарт бойынша құрастыр: егер А массивінің j-бағанында нөл емес элементтердің саны нол болған элемент санынан үлкен болса, В(j)-ға 1-ді меншікте, әйтпесе В(j)-ға 0-ді меншікте.

  8. А[5,5] екі өлшемді массиві берілген. Жанама диагональдік жоғарғы жағындағы элементтер арасынан максималын анықта. Қатар мен баған қиылысында максималді элементтер кездесетін қатар мен баған элементтерін орындарымен ауыстыр.

  9. А[6,6] екі өлшемді массиві берілген. В(7) массивін келесі шарт бойынша құрастыр: В(i)-ға 1-ді меншікте, егер i-қатарда элементтер өспелі орналасса, әйтпесе В(i)-ға 0-ді меншікте.

  10. А[6,6] екі өлшемді массиві берілген. В(6) массивін келесі шарт бойынша құрастыр: В(1)-ге бас диагоналдағы нөл элементтернің санын меншікте, В(2)-ге бас диагоналдан жоғары және параллель жатқан диагональдағы нөлдердің санын меншікте және с.с.

  11. А[6,6] екі өлшемді массиві берілген. Жанама диагоналға параллель диагональдардағы оң элементтердің минимал қосындысын анықтаңыз.

  12. А[6,6] екі өлшемді массиві берілген. Әр қатардан ең үлкен эелементті анықта, әр бағаннан ең кіші элементті анықта. Табылғанэлементтерді сәйкес баған мен қатардағы элементпен алмастыр.

  13. А[7,7] екі өлшемді массиві берілген. Массив элементтерін қатар бойынша реттеңіз.

  14. А[6,6] екі өлшемді массиві берілген. Бірреттен көп қайталанған элементтердің арасында ең үлкен элементті тап.

  15. А[6,6] екі өлшемді массиві берілген. Массивтің локальдік максимумдарының санын анықтаңыз.

  16. А[7,7] екі өлшемді массиві берілген. Әртүрлі элементпен жұптастырылып жасалынған бағандардың санын анықтаңыз.

  17. А[6,6] екі өлшемді массиві берілген. Өсу немесе кему ретімен реттелген қатарлардағы элементтер арасынан ең кішісін табыңыз.

  18. А[8,8] екі өлшемді массиві берілген. Қатардағы максимал элементтерді кему ретімен массив қатарына шығарыңыз.

  19. А[6,6] екі өлшемді массиві берілген. Бас диагоналға параллель диагоналдардың нөл емес элементтернің ең үлкен көбейтіндісін анықтаңыз.

А[6,6] екі өлшемді массиві берілген. Бас және жанама диагоналдағы ең үлкен элементті анықтыңыз және оны осы диагональдардың қиылысуында тұрған элементпен орын ауыстырыңыз.

7 практикалық жұмыс

Жол.

Жұмыстың мақсаты: Текстерді өңдеудің есептерін программалау.

Программалау тілдерінде көпетеген жағдайларда символдар тізбектерін қолдану қажет болады. Ол үшін CHAR типін пайдалану ыңғайсыз. Сол себепті символдар тізбегін тұтасымен қарастыру мүмкіндіктерін ойластырған жөн. Бұл жағдайда Паскаль тілінде STRING типі қолданылады.

Жол дегеніміз – белгілі бір символдар тізбегі.

Өрнектерді жол екі жағынан апострофқа алынып, жолдық тұрақты ретінде қарастырылады. Жолдың ұзындығы 0-ден 255-ке арылықта жатады.

Жазылуы:

TYPE <типтің аты> = STRING[жолдың ең үлкен ұзындығы];

VAR <айнымалы>: <типтің аты>;

немесе:

VAR<айнымалылар>:STRING [жолдың ең үлкен ұзындығы];

Жолда (+) біріктіру амалы және (=, < >, <=, >=, <, > ) қатынас амалдары қолданылады.

Ең негізгі жұмыс төмендегі стандартты функциялар мен процедуралардың көмегімен іске асады:

Функциялар:

LENGTH (ST)INTEGER типті функция, ST жолының ұзындығын анықтайды.

CONCAT (ST1, ST2, …, STK)STRING типті функция, ST1, ST2, …, STK жолдарын көрсетілген ретпен біріктіреді. Біріктірілген жолдың ұзындығы 255-тен аспауы қажет..

COPY (ST, M,N) STRING типті функция, ST жолынан M позициясынан бастап N символ бөліп алады.

POS (ST1, ST2)INTEGER типті функция, ST1 жолы ST2 жолында кездессе қай жерден басталатынын көрсетеді. ST1 жолында ST2 жолы кездеспесе нәтиже 0-ге тең.

Процедуралар:

DELETE (ST, M, N) – процедура, ST жолының М орнынан бастап N символын өшіреді.

INSERT ( ST1, ST2, М) – процедура, ST жолын ST2 тізбегіне М орнынан бастап сыналап қосады.

STR (X, ST) – процедура, X айнымалысының сандық мәнін жолға айналдырып, STRING типті ST айнымалысына меншіктейді.

Жұмысты орындау мысалы: S жолында символ ұзындығын есептеу қажет және «+» -ті «-»-қа ауыстыру қажет.

Программа тексті:

PROGRAM SL;

VAR S: STRING;

I, K: INTEGER;

BEGIN

WRITELN (‘Тексті енгізіңіз’); READLN (S);

FOR I:=1 TO LENGTH(S) DO IF S[I]=’+’ THEN T[I]=’-‘

WRITELN(S);

END.

7 практикалық жұмысқа тапсырма

Символдар жолын қолданып есептерді шешудің программасын және алгоритмін құру. Программаны құру кезінде жоғарыда келтірілген жолдық символдарды өңдеудің стандартты процедуралары мен функцияларын қолдану қажет.

Тапсырмалар варианттары:

  1. Символдар жолы берілген. “а” әрпінен басталатын сөздердің санын анықтап , “а” әрпінен басталатын ең ұзын сөзді баспаға шығару.

  2. Символдар жолы берілген. Ауыстырулар арқылы жолды түрлендіру қажет:

а ) барлық леп белгілерін нүктелермен

б) әр нүктені үш нүктелермен ауыстыру қажет.

  1. Символдар жолы берілген. “*” символынан бөлек әр символды қайталай отырып және “*” символын көшіре отырып жолдық символдарды түрлендіру керек.

  2. Символдар жолы берілген. Жолдағы келесі әріптердің санын анықтау қажет: а ) abc б) aba

  3. Символдар жолы берілген. Бірінші және соңғы символдары өзара сәйкес келетін сөздердің санын анықтау.

  4. Арасында ең болмағанда бір нүкте болатындай символдар жолы берілген. Бірінші нүкте кездескенге дейінгі барлық үтірлерді өшіріп және бірінші нүкте кездескеннен кейінгі барлық “5” сандарын “+” таңбасымен ауыстыру керек.

  5. Символдар жолы берілген. “я” әрпінен басталатын ең ұзын сөзді табу керек және оны керісінше орналастыру керек.

  6. Символдар жолы берілген. Дауыссыз әріптен басталатын ең ұзын сөзді табу керек және оны жолдың ең соңғы сөзімен ауыстыру керек.

  7. Символдар жолы берілген. “а” әрпінен басталатын ең қысқа сөзді табу керек және оны жолдың бірінші сөзімен ауыстыру керек.

  8. Символдар жолы берілген. Жолдағы әріптен тұрмайтын барлық символдарды өшіріп және барлық кіші әріптерді бірдей үлкен әріптермен ауыстыру қажет.

  9. Текст берілген. Ең көп дауысты латын (a,e,i, o,u) әріптерінен тұратын барлық сөздерді табу керек.

  10. Текст берілген. Ең ұзын сандар тобын табу керек және оны топтың ең соңғы санымен ауыстыру керек.

  11. Текст берілген. “а”, “в” әріптері көп кездесетін барлық сөздерді табу керек және осы сөзді текстен алып тастау керек.

  12. Текст берілген. “а” әрпі екіден артық кездеспейтін барлық сөздерді табу керек.

  13. Текст берілген. “9” санынан тұратын ең ұзын сандар тобын табу керек.

  14. Бос орынмен бөлінген сөздерден тұратын текст берілген. “я” әрпінен басталатын және аяқталатын сөзді текстен өшіру керек.

  15. Бос орынмен бөлінген сөздерден тұратын текст берілген. “т”әрпінен басталатын және аяқталатын ең ұзын сөзді табу керек.

  16. Бос орынмен бөлінген сөздерден тұратын текст берілген. “1” санынан басталатын және аяқталатын ең ұзын сандар тобын табу керек және топтың ең бірінші санымен ауыстыру керек.

  17. Текст берілген. Текстің ең бірінші үш сөзіне кіретін “р” әрпінің санын табу керек.

  18. Текст берілген. Егер тексте “*” символы болмаса, онда осы тексті өзгеріссіз қалдыру керек, кері жағдайда “*”-ны “5”санымен ауыстыру керек.