7

Паскаль программалау тілі презентация

Автор публикации:
Дата публикации:
Краткое описание:

1
Паскаль тілінде бағдарламалау II Бөлім Массивтер Массивтің максималь элементі...
Паскаль тілінде бағдарламалау II Бөлім Массивтер Массивтің максималь элементі Масситерді өңдеу Массивтерді іріктеу Массивтегі элементті іздеу Символдық жолдар Рекурсивті іріктеу Матрицалар Файлдар
2
Паскаль тілінде бағдарламалау II Бөлім Тақырып 1. Жиымдар
Паскаль тілінде бағдарламалау II Бөлім Тақырып 1. Жиымдар
0
 
Благодаря этой рекламе сайт может продолжать свое существование, спасибо за просмотр.
3
Жиымдар Массив – бұл бір атаумен белігілеп, біріктірілген біртекті реттелген...
Жиымдар Массив – бұл бір атаумен белігілеп, біріктірілген біртекті реттелген элементер жиыны. Ерекшеліктері: барлық элементтерінің типі бірдей болады жиымның бір атауы болады жадыда барлық элементтері бірінен соң бірі реттеліп орналасады Мысалдар: сыныптағы оқушылар тізімі үйдегі пәтерлер қаладағы мектептер Бір жылдағы ауа-райының температурасы туралы мәлімет
4
Жиымдар A жиым 3 15 жиым элементінің НӨМЕРІ (ИНДЕКСІ) A[1] A[2] A[3] A[4] A[5...
Жиымдар A жиым 3 15 жиым элементінің НӨМЕРІ (ИНДЕКСІ) A[1] A[2] A[3] A[4] A[5] Жиым элементінің МӘНІ A[2] Жиым элементінің НӨМЕРІ (ИНДЕКСІ): 2 Жиым элементінің МӘНІ : 10 5 10 15 20 25 1 2 3 4 5
5
Жиымды ұйымдастыру Неге ұйымдастырамыз? жиымның атын анықтау үшін жиымның тип...
Жиымды ұйымдастыру Неге ұйымдастырамыз? жиымның атын анықтау үшін жиымның типін анықтау үшін элементтерінің санын анықтау үшін жадыдан орын бөлу үшін Бүтін сандардың жиымы: Констант арқылы өлшемін көрсету: аты бастапқы индексі соңғы индексі Элементтер тип var A: array[1.. ] of integer, const N=5, N var A : array[ 1 .. 5 ] of integer ,
6
Жиымды ұйымдастыру Жиымның басқа типтері: Индекстердің басқа диапозоны: Индек...
Жиымды ұйымдастыру Жиымның басқа типтері: Индекстердің басқа диапозоны: Индекстердің басқа типтері: var X, Y: array [1..10] of real, C: array [1..20] of char, var Q: array [0..9] of real, C: array [-5..13] of char, var A: array [A..Z] of real, B: array [False..True] of integer, ... A[C] := 3.14259*A[B], B[False] := B[False] + 1,
7
Не дұрыс емес? var a: array[10..1] of integer; ... A[5] := 4.5; [1..10] var a...
Не дұрыс емес? var a: array[10..1] of integer, ... A[5] := 4.5, [1..10] var a: array [z..a] of integer, ... A[B] := 15, A[b] [a..z] var a: array [0..9] of integer, ... A[10] := X,
8
жиымдар Ұйымдастыру: Пернетақтадан енгізу: Элементермен орындалатын әрекеттер...
жиымдар Ұйымдастыру: Пернетақтадан енгізу: Элементермен орындалатын әрекеттер: Экранға шығару: 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, a[1] = a[2] = a[3] = a[4] = a[5] = 5 12 34 56 13 for i:=1 to N do a[i]:=a[i]*2, writeln( A жиымы:), for i:=1 to N do write(a[i]:4), A жиымы : 10 24 68 112 26
9
Тапсырмалар "4": Перентақта арқылы 5 элементтен тұратын элементерді енгізіп,...
Тапсырмалар 4: Перентақта арқылы 5 элементтен тұратын элементерді енгізіп, жиымның барлық элементердің орташа арифметикалық мәнін табыңдар. Мысалы: бес сан енгізіңдер: 4 15 3 10 14 орташа арифметикалық мәні: 9.200 5: Пернетақтадан 5 элемент енгізіп, жиымның ең кіші элементін табыңдар. Мысалы: бес сан енгізіңдер : 4 15 3 10 14 минимальный элемент 3
10
Паскаль тілінде бағдарламалау II Бөлім 2 тақырып. Жиымның максималь элементі
Паскаль тілінде бағдарламалау II Бөлім 2 тақырып. Жиымның максималь элементі
11
Максималь элемент Есеп: жиымның максималь элементін табу. Алгоритм: код: {әзі...
Максималь элемент Есеп: жиымның максималь элементін табу. Алгоритм: код: {әзірше, максималь мән- бірінші элемент деп есептейік} for i:=2 to N do if a[i] >, {максимальдан} then {a[i] жаңа максималь элементті есте сақта}
12
Максималь элемент max := a[1];{бірінші элемент – максималь деп есептейік} iMa...
Максималь элемент 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, Қосымша: максималь элементтің нөмерін табу? iMax элемент номері арқылы әрқашан оның мәнін a[iMax]-ті табуға болады. Сондықтан max-ті a[iMax]-пен алмастырамыз да max айнымалысын алып тастаймыз. a[iMax]
13
Программа program qq; const N = 5; var a: array [1..N] of integer; i, iMax: i...
Программа program qq, 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, 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-ді еске сақтау } [50,150) аралықтағы кез-келген сан Максимальді іздеу
14
Тапсырма "4": [-10..10] аралықтағы сандармен 10 элементтен тұратын жиымды тол...
Тапсырма 4: [-10..10] аралықтағы сандармен 10 элементтен тұратын жиымды толтыру және оның максималь және минималь элементтерін және нөмерін табыңдар. Мысалы: Берілген жиым: 4 -5 3 10 -4 -6 8 -10 1 0 максималь мәні a[4]=10 минималь мәні a[8]=-10 5: [-10..10] аралықтағы сандармен 10 элементтен тұратын жиымды толтыру және оның екі максималь мәні және нөмерлерін табыңдар. Мысалы: Берілген жиым: 4 -5 3 10 -4 -6 8 -10 1 0 максималь мәндер a[4]=10, a[7]=8
15
Паскаль тілінде бағдарламалау II Бөлім 3 тақырып. Жиымды іріктеу
Паскаль тілінде бағдарламалау II Бөлім 3 тақырып. Жиымды іріктеу
16
жиым реверс Есеп: жиымның элементерін кері ретпен орналастыру керек. Алгоритм...
жиым реверс Есеп: жиымның элементерін кері ретпен орналастыру керек. Алгоритм: Орындарын ауыстыру A[1] и A[N], A[2] и A[N-1], … код: for i:=1 to N do { орындарын ауыстыру A[i] и A[N+1-i] } N+1-индекстер қосындысы N div 2 do 3 5 … 9 7 7 9 … 5 3 1 2 … N-1 N 1 2 … N-1 N
17
Элементердің орнын қалай ауыстырады? 2 3 1 Есеп: екі кесе ішіндегілерінің орн...
Элементердің орнын қалай ауыстырады? 2 3 1 Есеп: екі кесе ішіндегілерінің орнын ауыстыру Есеп: жадының екі ұяшығының ішіндегілердің орнын ауыстыру керек. 4 6 ? 4 6 4 x y c c := x, x := y, y := c, x := y, y := x, 3 2 1
18
Программа program qq; const N = 10; var A: array[1..N] of integer; i, c: inte...
Программа program qq, const N = 10, var A: array[1..N] of integer, i, c: integer, begin { жиымды толтыру } { берілген жиымды енгізу } { жаңа жиымды шығару } end, for i:=1 to N div 2 do begin c:=A[i], A[i]:=A[N+1-i], A[N+1-i]:=c, end,
19
Тапсырма "4": 10 элементтен тұратын массивті [-10..10] аралықтағы кездейсоқ с...
Тапсырма 4: 10 элементтен тұратын массивті [-10..10] аралықтағы кездейсоқ сандармен толтырып және массивтің 1-ші және 2-ші жартысына бөлек-бөлек инверсиялаңдар. Мысал: Берілген массив: 4 -5 3 10 -4 -6 8 -10 1 0 Нәтиже: -4 10 3 -5 4 0 1 -10 8 -6 5: 12 элементен тұратын массивті [-10..10] аралықтағы кездейсоқ сандармен толтырып және массивтің әр бір үшінші бөлігін жартысына инверсиялаңдар. Мысалы: Берілген массив : 4 -5 3 10 -4 -6 8 -10 1 0 5 7 Нәтиже : 10 3 -5 4 -10 8 -6 -4 7 5 0 1
20
Циклдік ығысу Есеп: Массивтің бірінші элементі соңғы элементтің орнына ауысат...
Циклдік ығысу Есеп: Массивтің бірінші элементі соңғы элементтің орнына ауысатындай,элементтерді оңға қарай 1 ұяшыққа ығыстыру керек. Алгоритм: A[1]:=A[2], A[2]:=A[3],… A[N-1]:=A[N], Цикл: for i:=1 to N-1 do A[i]:=A[i+1], Неге N емес? 3 5 8 1 … 9 7 1 2 3 4 … N-1 N 5 8 1 … 9 7 3
21
Программа program qq; const N = 10; var A: array[1..N] of integer; i, c: inte...
Программа program qq, const N = 10, var A: array[1..N] of integer, i, c: integer, begin { массивті толтыру } {берілген массивті шығару } {жаңа массивті шығару } end, c := A[1], for i:=1 to N-1 do A[i]:=A[i+1], A[N] := c,
22
Тапсырмалар "4": 10 элементтен тұратын массивті [-10..10] аралықтағы кездейсо...
Тапсырмалар 4: 10 элементтен тұратын массивті [-10..10] аралықтағы кездейсоқ сандармен толтырып және оңға қарай циклдік ығысуды орындаңдар. Мысал: Берілген массив: 4 -5 3 10 -4 -6 8 -10 1 0 Нәтиже: 0 4 -5 3 10 -4 -6 8 -10 1 5: 12 элементтен тұратын массивті [-12..12] аралықтағы кездейсоқ сандармен толтырып және 4 элементке оңға қарай циклдік ығысуды орындаңдар. Мысал: Берілген массив: 4 -5 3 10 -4 -6 8 -10 1 0 5 7 Нәтиже: -4 -6 8 -10 1 0 5 7 4 -5 3 10
23
Паскаль тілінде бағдарламалау II Бөлім 4 Тақырып. Массивті іріктеу
Паскаль тілінде бағдарламалау II Бөлім 4 Тақырып. Массивті іріктеу
24
Іріктеу Іріктеу – бұл массив элементтерін берілген рет бойынша орналастыру. (...
Іріктеу Іріктеу – бұл массив элементтерін берілген рет бойынша орналастыру. (өсуі бойынша, кемуі бойынша, соңғы цифрі бойынша, еселіктерінің қосындысы бойынша, …). Есеп: Массивтің элементтерін өсу реті бойынша орналастыру. Алгоритмдер: Қарапайым және түсінікті, бірақ үлкен масситер үшін эффективті емес. Көпіршікті әдіс Таңдау әдісі Күрделі, бірақ эффективті «шапшаң іріктеу (Quick Sort) «үйме» іріктеу (Heap Sort) сортировка слиянием пирамидалық іріктеу қиындық O(N2) қиындық O(N·logN)
25
Көпіршікті әдіс Идея –ауа көпіршігі стакандағы судың түбінен жоғары көтерілед...
Көпіршікті әдіс Идея –ауа көпіршігі стакандағы судың түбінен жоғары көтеріледі. Массив үшін – ең кішкентай («жеңіл) элементі жоғары қарай жылжиды («қалқып шығады.). . Төменгі жағындағы екі көршілес элементтерді салыстырамыз, егер дұрыс тұрмаса онда олардың орындарын ауыстырамыз. 1 жүріс бойынша бір (ең кішкетай) 1-ші жүріс 2-ші жүріс жүріс N элементтен тұратын массив үшін N-1 жүріс қажет (N-1 элементті өз орнына орналастырса болғаны). 5 2 1 3 5 2 1 3 5 1 2 3 1 5 2 3 1 5 2 3 1 5 2 3 1 2 5 3 1 2 5 3 1 2 3 5
26
Программа 1-ші жүріс: Жұптар салыстырылады A[N-1] и A[N], A[N-2] и A[N-1] … A...
Программа 1-ші жүріс: Жұптар салыстырылады A[N-1] и A[N], A[N-2] и A[N-1] … A[1] и A[2] A[j] и A[j+1] 2-ші жүріс for j:=N-1 downto 2 do if A[j] >, A[j+1] then begin c:=A[j], A[j]:=A[j+1], A[j+1]:=c, end, 2 for j:=N-1 downto 1 do if A[j] >, A[j+1] then begin c:=A[j], A[j]:=A[j+1], A[j+1]:=c, end, 1 I-ші жүріс for j:=N-1 downto i do ... i 5 2 … 6 3 1 2 … N-1 N 1 5 … 3 6 1 2 … N-1 N
27
Программа program qq; const N = 10; var A: array[1..N] of integer; i, j, c: i...
Программа program qq, const N = 10, var A: array[1..N] of integer, i, j, c: integer, begin {массивті толтыру } {берілген массивті шығару } {жаңа массивті шығару } end, for i:=1 to N-1 do begin for j:=N-1 downto i do if A[j] >, A[j+1] then begin с := A[j], A[j] := A[j+1], A[j+1] := с, end, end, i A[i] –ден жоғары элемент
28
Жалаушалы көпіршік әдісі Идея – егер көпіршікті әдісте орын ауыстыру болмаса,...
Жалаушалы көпіршік әдісі Идея – егер көпіршікті әдісте орын ауыстыру болмаса, онда массив іріктелген және басқа жолдар керек емес. Іске асыру: орын ауыстыру туралы көрсетіп тұратын жалауша-айнымалы. repeat flag := False, { жалаушаны қосу } for j:=N-1 downto 1 do if A[j] >, A[j+1] then begin с := A[j], A[j] := A[j+1], A[j+1] := с, flag := True, { жалаушыны көтеру } end, until not flag, {flag=Falseб-да шығу } flag := False, flag := True, not flag, var flag: boolean, 2 1 4 3 1 2 3 4
29
Жалаушалы көпіршік әдісі i := 0; repeat i := i + 1; flag := False; {жалаушаны...
Жалаушалы көпіршік әдісі i := 0, repeat i := i + 1, flag := False, {жалаушаны тастау} for j:=N-1 downto 1 do if A[j] >, A[j+1] then begin с := A[j], A[j] := A[j+1], A[j+1] := с, flag := True, { жалаушаны көтеру } end, until not flag, {flag=False б-да шығу} i := 0, i i := i + 1,
30
Таңдау әдісі Идея: Ең кіші элементті тауып, бірінші орынға орналастыру. (A[1]...
Таңдау әдісі Идея: Ең кіші элементті тауып, бірінші орынға орналастыру. (A[1] элементпен орын ауыстыру) қалғандарынан ең кіші элементті тауып, екінші орынға орналастыру (A[2]) элементпен орын ауыстыру, т.с.с. 4 3 1 2 1 3 4 2 1 2 4 3 1 2 4 3
31
Таңдау әдісі for i := 1 to N-1 do begin nMin = i ; for j:= i+1 to N do if A[j...
Таңдау әдісі for i := 1 to N-1 do begin nMin = i , for j:= i+1 to N do if A[j] <, A[nMin] then nMin:=j, if nMin <,>, i then begin c:=A[i], A[i]:=A[nMin], A[nMin]:=c, end, end, N-1 N N-1 жүріс A[i] -ден A[N]-дейін минимальді іздеу Қажет болса, ауыстырамыз i+1 i
32
Тапсырмалар "4": 10 элементтен тұратын массивті [-10..10] аралықтағы кездейсо...
Тапсырмалар 4: 10 элементтен тұратын массивті [-10..10] аралықтағы кездейсоқ сандармен толтырып және соңғы цифрлары бойынша іріктеу. Мысал: Берілген массив: 14 25 13 30 76 58 32 11 41 97 Нәтиже: 30 11 41 32 13 14 25 76 97 58 5: 10 элементтен тұратын массивті [0..100] аралықтағы кездейсоқ сандармен толтырып және бірінші жартысын өсуі бойынша келесі жартысын кемуі бойынша іріктеу. Мысал: Берілген массив: 14 25 13 30 76 58 32 11 41 97 Нәтиже: 13 14 25 30 76 97 58 41 32 11
33
Паскаль тілінде бағдарламалау II Бөлім 5тақырып. Массивтегі іздеу
Паскаль тілінде бағдарламалау II Бөлім 5тақырып. Массивтегі іздеу
34
Массив элементін іздеу Тапсырма –массивте х –ке тең элемент бар немесе жоқтығ...
Массив элементін іздеу Тапсырма –массивте х –ке тең элемент бар немесе жоқтығын анықтау. Шешуі: массив үшін: сызықтық іздеу (іріктеу) кемшілігі: жылдамдығы төмен Қалай тездетуге болады? – алдын-ала іздейтін массивті әзірлеу Қалай әзірлейміз? «әзірленген массивті қалай пайдаланамыз?
35
Сызықтық іздеу nX := 0; for i:=1 to N do if A[i] = X then begin nX := i; brea...
Сызықтық іздеу nX := 0, for i:=1 to N do if A[i] = X then begin nX := i, break, {циклден шығу} end, nX := 0, { әзірше табылған жоқ ...} if nX <, 1 then writeln(‘табылған жоқ...) else writeln(A[, nX, ]=, X), nX – қажетті элемент нөмірі Жақсарту: X-ті тапқан соң, циклден шығамыз. for i:=1 to N do { цикл} if A[i] = X then { егер табылса, онда ... } nX := i, { ... Номерді еске сақтау} nX := 0, i := 1, while i <,= N do begin if A[i] = X then begin nX := i, i := N, end, i := i + 1, end, break, i := N,
36
Екілік іздеу X = 7 X < 8 8 4 X > 4 6 X > 6 A[c] орташа элементін тауып және X...
Екілік іздеу X = 7 X <, 8 8 4 X >, 4 6 X >, 6 A[c] орташа элементін тауып және X-пен салыстыру. Егер X = A[c], табылды (шығу). Егер X <, A[c], келесі жартысынан іздеу. Егер X >, A[c], екінші жартысынан табу. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
37
Екілік іздеу nX := 0; L := 1; R := N; {шекара: A[1]-ден A[N] дейін } if nX <...
Екілік іздеу nX := 0, L := 1, R := N, {шекара: A[1]-ден A[N] дейін } if nX <, 1 then writeln(‘табылған жоқ...) else writeln(A[, nX, ]=, X), while R >,= L do begin c := (R + L) div 2, if x <, A[c] then R := c - 1, if x >, A[c] then L := c + 1, end, орташа элементтің номері if X = A[c] then begin nX := c, R := L - 1, { break, } end, табылды Цикл аяқталды Шекараны жылжытамыз 1 L c R N
38
Іздеу әдістерін салыстыру 	Сызықтық	Екілік Әзірлік	жоқ	іріктеу 	Қадамдар саны...
Іздеу әдістерін салыстыру Сызықтық Екілік Әзірлік жоқ іріктеу Қадамдар саны N = 2 2 2 N = 16 16 5 N = 1024 1024 11 N= 1048576 1048576 21 N ≤ N ≤ log2N+1
39
Тапсырма "4": X-ке тең элементтерді табатын программа құру керек. (бұл сан пе...
Тапсырма 4: X-ке тең элементтерді табатын программа құру керек. (бұл сан пернетақтадан енгізілуі керек). Екілік санды іздеу. 5: [0,100] аралығында 32 элементтен тұратын массивтен екілік іздеудегі қадамның орташа мәнін есептейтін программа құрыңдар. Іздеу үшін осы аралықтағы 1000 кездейсоқ сандарды пайдалану керек.
40
Паскаль тілінде бағдарламалау II Бөлім 6 тақырып. Символдық жолдар
Паскаль тілінде бағдарламалау II Бөлім 6 тақырып. Символдық жолдар
41
Символдық массивпен жұмыстың қиындығы қандай? var B: array[1..N] of char; Сим...
Символдық массивпен жұмыстың қиындығы қандай? var B: array[1..N] of char, Символдық массив: Әрбір символ – бөлек нысан, Сипаттау бөлімінде көрсетілген массивтің ұзындығы N—ға тең Не қажет: Символдар тізбегін біртұтас түрде қарастырылуы Жолдың ұзындығы айнымалы болуы
42
Символьдық жолдар Жол ұзындығы Жұмыс аймағы s[1] s[2] s[3] s[4] var s: string...
Символьдық жолдар Жол ұзындығы Жұмыс аймағы s[1] s[2] s[3] s[4] var s: string, var s: string[20], Жолдың ұзындығы: n := length ( s ), var i: integer, П р и в е т ! ¤ ¤ ¤ … ¤ ¤ ¤ 6 1 255 20 1
43
Символдық жолдар Есеп: Символдық жолды пернетақтадан енгізіп, барлық "а" әріп...
Символдық жолдар Есеп: Символдық жолды пернетақтадан енгізіп, барлық а әріпін б әріпіне алмастыру керек. program qq, var s: string, i: integer, begin writeln(‘жолды енгізіңдер), readln(s), for i:=1 to Length(s) do if s[i] = а then s[i] := б, writeln(s), end. readln(s), writeln(s), Length(s) Жолды енгізу Жолдың ұзындығы Жолды шығару
44
Тапсырма "4": Символдық жолды енгізіп, барлық "а" әріпін "б" әріпіне және кер...
Тапсырма 4: Символдық жолды енгізіп, барлық а әріпін б әріпіне және кересінше алмастыру керек. Мысал: Жолды енгізіңіз: ааббссААББСС Нәтиже: ббаассББААСС 5: Символдық жолды енгізіп, оның палиндромды екенін анықтаңдар. Мысал: Мысал: Жолды енгізіңіз: Жолды енгізіңіз: АБВГДЕ ҚАЗАҚ Нәтиже: Нәтиже: палиндром емес. Палиндром.
45
Жолдармен орындалатын әрекеттер Біріктіру: Бір жолды келесі жолдық соңына бір...
Жолдармен орындалатын әрекеттер Біріктіру: Бір жолды келесі жолдық соңына біріктіру. Жаңа мәндерді жазу: var s, s1, s2: string, s := Вася, s1 := ‘Сәлем, s2 := ‘Марат, s := s1 + , + s2 + !, ‘Сәлем, Марат! Қиып алу: Бір жолда басқа жолды қиып алу s := 123456789, s1 := Copy ( s, 3, 6 ), s2 := Copy ( s1, 2, 3 ), 345678 456 3 ші символдан 6 дана
46
Өшіру және енгізу Жолдың бір бөлігін өшіріп тастау: Жолды енгізу: s := '12345...
Өшіру және енгізу Жолдың бір бөлігін өшіріп тастау: Жолды енгізу: s := 123456789, Delete ( s, 3, 6 ), 3-ші символдан 6 дана Жол өзгереді! 123456789 129 s := 123456789, Insert ( ABC, s, 3 ), Insert ( Q, s, 5 ), Қайда қоямыз Нені қоямыз? 3-ші символдан бастап 12ABC3456789 12ABQC3456789
47
Жол бөлігін іздеу Жол ішінен іздеу: s := ‘мектеп-гимназиясы'; n := Pos ( ‘к',...
Жол бөлігін іздеу Жол ішінен іздеу: s := ‘мектеп-гимназиясы, n := Pos ( ‘к, s ), if n >, 0 then writeln(Буква к – это s[, n, ]) else writeln(‘табылмады), n := Pos ( ‘мектеп, s ), s1 := Copy ( s, n, 6 ), s[3] 3 n = 1 Ерекшелігі: функция возвращает номер символа, с которого начинается образец в строке если слова нет, возвращается 0 поиск с начала (находится первое слово) var n: integer,
48
Мысалдар s := ‘Алуа Ақан Мырза'; n := Pos ( ‘Ақан', s ); Delete ( s, n, 4 );...
Мысалдар s := ‘Алуа Ақан Мырза, n := Pos ( ‘Ақан, s ), Delete ( s, n, 4 ), Insert ( ‘Ұлан, s, n ), ‘Алуа Ұлан Мырза s := Алуа Ақан Мырза, n := length ( s ), s1 := Copy ( s, 1, 4 ), s2 := Copy ( s, 11, 5 ), s3 := Copy ( s, 6, 4 ), s := s3 + s1 + s2, n := length ( s ), ‘Алуа Мырза 15 ‘Алуа ‘Мырза ‘Ақан АлуаАқанМырза 13 6
49
Есептерді шешу мысалдары Есеп: Атын, әкесінің атын және фамилиясын енгізу. «ф...
Есептерді шешу мысалдары Есеп: Атын, әкесінің атын және фамилиясын енгізу. «фамилия-инициалы» форматына түрлендіру. Мысал: Атынды, әкеңнің атын және фамилияңды енгіз: Алуа Данияровна Қуанова Нәтиже: Қуанова А.Д. Алгоритм: Бірінші бос орынды тауып, атын бөліп алу Негізгі жолдан атты бос орынмен бірге өшіру Бірінші бос орынды тауып алып әкесінің атын бөліп алу Әкесінің атын өшіріп тастау Фамилияны бірінші әріптермен біріктіру…
50
Программа program qq; var s, name, otch: string; n: integer; begin writeln('В...
Программа program qq, var s, name, otch: string, n: integer, begin writeln(Введите имя, отчество и фамилию), readln(s), n := Pos( , s), name := Copy(s, 1, n-1), { атты ерекшелеу } Delete(s, 1, n), n := Pos( , s), otch := Copy(s, 1, n-1), {әкесінің атын қиып алу} Delete(s, 1, n), {фамилия қалады } s := s + + name[1] + . + otch[1] + ., writeln(s), end.
51
Тапсырма "4": Файлдың атын енгізу (кеңейтілімін жазбауға болады) және кеңейті...
Тапсырма 4: Файлдың атын енгізу (кеңейтілімін жазбауға болады) және кеңейтілімін .exe“ деп өзгерту. Мысал: Файл атын енгізіңіз: Файлдфң атын енгізіңіз: qqq qqq.com Нәтиже: Нәтиже: qqq.exe qqq.exe 5: Файлға бару жолын енгізу және әр бір қапшықты жаңа жолдан бастап ашып көресету Пример: Файлға бару жолын енгізіңіз: C:\Мои документы\1-Б\Акан\qq.exe Нәтиже: C: Мои документы 1-Б Акан qq.exe
52
Паскаль тілінде бағдарламалау II Бөлім Тақырып 7. Рекурсивті іріктеу
Паскаль тілінде бағдарламалау II Бөлім Тақырып 7. Рекурсивті іріктеу
53
Рекурсивті іріктеу Есеп: «Тумба-юмба« тілінің алфавиті Ы, Ц, Щ және О. К әріп...
Рекурсивті іріктеу Есеп: «Тумба-юмба« тілінің алфавиті Ы, Ц, Щ және О. К әріптен тұратын барлық сөздерді экранға шығарып, олардың санын табыңыз. K саны пернетақтадан енгізіледі. 1 K Әр ұяшықта 4 әріптің кез-келгені болуы мүмкін 4 нұсқа 4 нұсқа 4 нұсқа 4 нұсқа Нұсқалар саны:
54
Рекурсивті іріктеу 1 K Рекурсия: К Рәріптен тұратын сөздер үшін K-1 әріптен т...
Рекурсивті іріктеу 1 K Рекурсия: К Рәріптен тұратын сөздер үшін K-1 әріптен тұратын 4 мақсатты шешу. 1 K 1 K 1 K Барлық нұсқаларды Барлық нұсқаларды Барлық нұсқаларды Барлық нұсқаларды Ы Щ О Ц
55
Процедура procedure Rec(p: integer); begin if p > K then begin writeln(s); co...
Процедура procedure Rec(p: integer), begin if p >, K then begin writeln(s), count := count+1, end else begin s[p]:=Ы, Rec ( p+1 ), s[p]:=Ц, Rec ( p+1 ), s[p]:=Щ, Rec ( p+1 ), s[p]:=О, Rec ( p+1 ), end, end, 1 K p s p+1 рекурсивті шақыртулар Рекурсия соңы Глобальды айнымалылар : var s: string, count, K: integer, ● ● ● ? ? ? ?
56
Процедура procedure Rec(p: integer); const letters = 'ЫЦЩО'; var i: integer;...
Процедура procedure Rec(p: integer), const letters = ЫЦЩО, var i: integer, begin if p >, k then begin writeln(s), count := count+1, end else begin for i:=1 to length(letters) do begin s[p] := letters[i], Rec(p+1), end, end, end, const letters = ЫЦЩО, for i:=1 to length(letters) do begin s[p] := letters[i], Rec(p+1), end, Барлық әріптер Барлық әріптер бойынша цикл Локальді айнымалы
57
Программа program qq; var s: string; K, i, count: integer; begin writeln(‘сөз...
Программа program qq, var s: string, K, i, count: integer, begin writeln(‘сөздің ұзындығын енгіз:), read ( K ), s := , for i:=1 to K do s := s + , count := 0, Rec ( 1 ), writeln(‘Барлығы , count, ‘сөз), end. procedure Rec(p: integer), ... end, процедура s := , for i:=1 to K do s := s + , K пробелден тұратын жол Глобальді айнымалылар
58
Тапсырма «Тумба-юмба» тілінің алфавиті Ы, Ц, Щ и О әріптерінен тұрады. K саны...
Тапсырма «Тумба-юмба» тілінің алфавиті Ы, Ц, Щ и О әріптерінен тұрады. K саны пернетақтадан енгізіледі. 4: К әріптен тұратын Ы әріпі 1 реттен артық кездеспейтін барлық сөздерді экранға шығарып, және олардың санын санау қажет. 5: Қатар тұрған бірдей әріптері бар К әріптен тұратын барлық сөздерді экранға шығарып, (мысал, ЫЩЩО) және олардың санын санау керек.
59
Паскаль тілінде бағдарламалау II Бөлім Тақырып 8. Матрицалар
Паскаль тілінде бағдарламалау II Бөлім Тақырып 8. Матрицалар
60
Матрицалар Есеп: Шахмат тақтасындағы фигуралардың орнын естеріңе сақтаңдар. 1...
Матрицалар Есеп: Шахмат тақтасындағы фигуралардың орнын естеріңе сақтаңдар. 1 2 3 4 5 6 c6 A[6,3] a b c d e f g h 8 7 6 5 4 3 2 1 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8
61
Матрицалар Матрица – бұл, тікбұрышты сандар кестесі. Матрица – бұл әрбір элем...
Матрицалар Матрица – бұл, тікбұрышты сандар кестесі. Матрица – бұл әрбір элементі екі индекстен тұратын массив. (жол нөмірі және баған номері). A баған 2 баған 3 ұяшық A[3,4] 1 4 7 3 6 2 -5 0 15 10 8 9 11 12 20 1 2 3 1 2 3 4 5 7 0 11 2 -5 0 15 10 12
62
Матрицалар Сипаттау: const N = 3; M = 4; var A: array[1..N,1..M] of integer;...
Матрицалар Сипаттау: const N = 3, M = 4, var A: array[1..N,1..M] of integer, B: array[-3..0,-8..M] of integer, Q: array[a..d,False..True] of real, Пернетақтадан енгізу: for i:=1 to N do for j:=1 to M do begin write(A[,i,,,j,]=), read ( A[i,j] ), end, A[1,1]= 25 A[1,2]= 14 A[1,3]= 14 ... A[3,4]= 54 i j for j:=1 to M do for i:=1 to N do begin
63
Матрицалар Кездейсоқ сандармен толтыру for i:=1 to N do for j:=1 to M do A[i,...
Матрицалар Кездейсоқ сандармен толтыру for i:=1 to N do for j:=1 to M do A[i,j] := random(25) - 10, Жол бойынша цикл Баған бойынша цикл Экранға шығару for i:=1 to N do begin writeln, end, Жаңа жолға өту for j:=1 to M do write ( A[i,j]:5 ), Жолды шығару Сол жолда 12 25 1 13 156 1 12 447 1 456 222 23
64
Матрицаның элементтерін өңдеу Есеп: 3 жолдан және 4 баған тұратын матрица кез...
Матрицаның элементтерін өңдеу Есеп: 3 жолдан және 4 баған тұратын матрица кездейсоқ сандармен толтырып, экранға шығару керек. Матрица элементтерінің қосындысын табыңыз. program qq, const N = 3, M = 4, var A: array[1..N,1..M] of integer, i, j, S: integer, begin {матрицаны толтырып,экранға шығару} S := 0, writeln(‘элементтердің қосындысы , S), end, for i:=1 to N do for j:=1 to M do S := S + A[i,j],
65
Тапсырма [-10,10] аралықтағы кез-келген сандармен 8 жолдан және 5 бағаннан тұ...
Тапсырма [-10,10] аралықтағы кез-келген сандармен 8 жолдан және 5 бағаннан тұратын матрицаны толтырып экранға шығару керек. 4: Матрицаның минималь және максималь элементтерін және олардың нөмірлерін табу керек. Шығару пішіні: Минималь элемент A[3,4]=-6 Максималь элемент A[2,2]=10 5: Элементтерінің қосындысы максималь болатын жолды экранға шығару керек. Шығару пішіні: Жол 2: 3 5 8 9 8
66
Матрицамен орындалатын әрекеттер Есеп 1. N жол және N бағаннан тұратын квадра...
Матрицамен орындалатын әрекеттер Есеп 1. N жол және N бағаннан тұратын квадрат матрицаның бас диагоналін басып шығару керек. A[1,N] A[2,2] A[3,3] A[N,N] for i:=1 to N do write ( A[i,i]:5 ), Есеп 2. Екінші диагоналді экранға шығару. A[N,1] A[N-1,2] A[2,N-1] for i:=1 to N do write ( A[i, ]:5 ), N+1-i жол мен баған нөмірінің қосындысы N+1 A[1,1]
67
Матрицалармен орындалатын әрекеттер Есеп 3. Бас диагоналда орналасқан элемент...
Матрицалармен орындалатын әрекеттер Есеп 3. Бас диагоналда орналасқан элементтердің қосындысы жол 1: A[1,1] жол 2: A[2,1]+A[2,2] ... жол N: A[N,1]+A[N,2]+...+A[N,N] S := 0, for i:= 1 to N do жол бойынша цикл for j:= 1 to i do S := S + A[i,j], I жолдың қажет элементерін қосу
68
Матрицамен орындалатын әрекеттер Есеп 4. Жолдың немесе бағандардың орнын ауыс...
Матрицамен орындалатын әрекеттер Есеп 4. Жолдың немесе бағандардың орнын ауыстыру. N жол мен M баған тұратын матрицаның 2-ші және 4-ші жолдарын ауыстыру. 2 4 j A[2,j] A[4,j] for j:=1 to M do begin c := A[2,j], A[2,j] := A[4,j], A[4,j] := c, end, Есеп 5. 3-ші бағанға алтыншыны қосу. for i:=1 to N do A[i,3] := A[i,3] + A[i,6], 1 2 5 2 1 7 3 1 3 7
69
Тапсырма 7 жол және 7 баған тұратын матрицаны [-10,10] аралығындағы кездейсоқ...
Тапсырма 7 жол және 7 баған тұратын матрицаны [-10,10] аралығындағы кездейсоқ сандармен толтырып, экранға шығару. Жаслы түспен ерекшеленген аймақтағы элементерді нөлге айналдырып экранға шығару. 4: 5:
70
Паскаль тілінде бағдарламалау II Бөлім Тақырып 9. Файлдар
Паскаль тілінде бағдарламалау II Бөлім Тақырып 9. Файлдар
71
Файлдар Файл – дискідегі аты бар аймақ. Файлдар Безенділімеген мәтін, басқару...
Файлдар Файл – дискідегі аты бар аймақ. Файлдар Безенділімеген мәтін, басқару символдары жоқ (кодтары <, 32) ACSII (1символ=1 байт) UNICODE (1символ =2 байт) *.txt, *.log, *.htm, *.html символы кодтық кестенің кез-келген символы *.doc, *.exe, *.bmp, *.jpg, *.wav, *.mp3, *.avi, *.mpg Мәтіндік Екілік Қапшықтар (каталог)
72
Сэндвичтің принципі I этап. Файл ашу : f айнымалыны файлмен байланыстыру Файл...
Сэндвичтің принципі I этап. Файл ашу : f айнымалыны файлмен байланыстыру Файлды ашу (оны белсенді жасап жұмысқа әзірлеу) assign(f, qq.dat), reset(f), {оқу үшін} rewrite(f), {жазу үшін} II этап: файлдармен жұмыс Айнымалы типі «мәтіндік файл: var f: text, III этап: файлды жабу close(f), read ( f, n ), {n-ді енгізу } write ( f, n ), {n-нің мәнін жазу } writeln ( f, n ),{жаңа жолға шығу }
73
Файлдармен жұмыс Ерекшеліктері: файл аты assign командасында ғана айтылады, ф...
Файлдармен жұмыс Ерекшеліктері: файл аты assign командасында ғана айтылады, файлды шақыру файлдық айнымалы арқылы жүреді оқығанда ашылатын файл бар болуы керек жазу үшін ашылатын файл бар болса, ескі мазмұны өшіріледі мәліметтер файлға мәтін түрін жазылады программа аяқталғанда барлық файлдар авторматты түрде жабылады. файл жабылған соң f айнымасын басқа файлмен жұмыс істеу үшін пайдалануға болады.
74
Тізбектелген Файл ашылғанда меңзер файл басында орналасады меңзер тұрған жерд...
Тізбектелген Файл ашылғанда меңзер файл басында орналасады меңзер тұрған жерден бастап оқылады оқыған соң меңзер келесі оқылмаған символға қарай қозғалады. 12 5 45 67 56● Файл соңы (end of file, EOF) 12 5 45 67 56● assign ( f, qq.dat ), reset ( f ), read ( f, x ),
75
Жол соңына дейін оқу Қалай кері қайтуға болады? Тізбектелген close ( f ); res...
Жол соңына дейін оқу Қалай кері қайтуға болады? Тізбектелген close ( f ), reset ( f ), { басынан бастау } readln ( f, x ), 12 5 45¤ 36 67¤ 56● конец строки (end of line, EOL)
76
Мысал Есеп: input.txt файлында сандар (бағанға) жазылған, нешеу екені белгісі...
Мысал Есеп: input.txt файлында сандар (бағанға) жазылған, нешеу екені белгісіз. output.txt файлына олардың қосындысын жазу керек. Алгоритм: Файлды ашу input.txt оқу үшін. S := 0, Егер сан қалмаса, 7 қадамға көшу. Келесі x айнымалыны оқу. S := S + x, 3 қадамға көшу. input.txt файлын жабу. Жазу үшін output.txt файлын ашу. S-тің мәнін файлға жазу. output.txt файлды жабу. цикл с условием пока есть данные
77
Программа program qq; var s, x: integer; f: text; begin assign(f, 'input.txt'...
Программа program qq, var s, x: integer, f: text, begin assign(f, input.txt), reset(f), s := 0, close(f), end. while not eof(f) do begin readln(f, x), s := s + x, end, f: text, eof(f) егер файлдың соңы болса логикалық функция, True болады, assign(f, output.txt), rewrite(f), writeln(f, Сумма чисел , s), close(f), output.txt файлына нәтижені жазу
78
Тапсырма input.txt файлында сандар жазылған, нешеу екені белгісіз. "4": outpu...
Тапсырма input.txt файлында сандар жазылған, нешеу екені белгісіз. 4: output.txt файлына барлық сандардың орташа арифметикалық мәндерін жазу керек. 5: output.txt файлына максималь және минималь сандарды тауып жазыңдар.
79
Массивтерді өңдеу Есеп: input.txt файлында сандар жазылған (бағандап), саны –...
Массивтерді өңдеу Есеп: input.txt файлында сандар жазылған (бағандап), саны – белгісіз, бірақ 100-ден артық емес. Өсуі бойынша output.txt. файлында жазу керек Қиындықтар: Іреіктеу үшін барлық сандарды жадыда массив түрінде ұстау керек, Қанша сан екені белгісіз. Шешімі: 100 элементі бар массивке жадыдан орын әзірлейміз, Оқылған сандарды массив түрінде жазып және олардың санын N айнымалысы арқылы санаймыз, массивтің алғашқы N элементін сорттаймыз, файлға жазамыз.
80
Массивтен берілгендерді оқу var A: array[1..100] of integer; f: text; functio...
Массивтен берілгендерді оқу var A: array[1..100] of integer, f: text, function ReadArray: integer, var i: integer, begin assign(f, input.txt), reset(f), i := 0, close(f), ReadArray := i, end, Ауқымды айнымалылар: Функция: массивті енгізу, элементтер санын шақырады while (not eof(f)) and (i <, 100) do begin i := i + 1, readln(f, A[i]), end, ReadArray := i, Егер файл соңына жеткенсек немесе100 сан оқылса, цикл аяқталады
81
Программа program qq; var A: array[1..100] of integer; f: text; N: integer; B...
Программа program qq, var A: array[1..100] of integer, f: text, N: integer, Begin N := ReadArray, { сортировка первых N элементов } end. function ReadArray: integer, ... end, assign(f, output.dat), rewrite(f), for i:=1 to N do writeln(f, A[i]), close(f), сортталған массивмассивті файлға жазып шығару
82
Тапсырма input.txt файлында сандар жазылған (бағанға),, саны 100 артық емес е...
Тапсырма input.txt файлында сандар жазылған (бағанға),, саны 100 артық емес екені белгілі. 4: Кемуі бойынша массивті іріктеп және оны output.txt. файлына жазу керек 5: Массивті цифрларының қосындысының өсуі бойынша сорттап және оны output.txt. файлына жазу керек
83
Мәтіндік мәліметтерді өңдеу Есеп: input.txt файлында жолдар жазылған, олардың...
Мәтіндік мәліметтерді өңдеу Есеп: input.txt файлында жолдар жазылған, олардың арасында «қысқаша» деген қыстырма-сөз бар. Мәтінді тазартып output.txt. файлына жазу керек. input.txt файлы : қысқасы, кеше, қысқасы, мамам, қысқасы, үй, қысқасы тазалады. Шеше қысқасы кеше қысқасы неше қысқасы кесе қысқасы сынды Роза қысқасы тікенді қысқасы гүл. Нәтиже - output.txt файлында : Кеше мамам үй тазалады. Шеше кеше неше кесе сынды Роза тікенді гүл.
84
Мәтіндік мәліметтерді өңдеу Алгоритм: файлдан (readln) жолды оқу. ", қысқасы,...
Мәтіндік мәліметтерді өңдеу Алгоритм: файлдан (readln) жолды оқу. , қысқасы, деген сөзді алып таста (Pos, Delete). 1-ші қадамға өту. s жолын өңдеу : Ерекшелігі: Бір уақытта екі файлдыда ашық қою. (оқу режимінде, екінші – жазу режимінде). мәліметтер аяқталған жоқ repeat i := Pos(, короче,, s), if i <,>, 0 then Delete(s, i, 9), until i = 0, , қысқасы,» іздеу 9 символды өшіру
85
Бір уақытта екі файлмен жұмыс істеу program qq; var s: string; i: integer; fI...
Бір уақытта екі файлмен жұмыс істеу program qq, var s: string, i: integer, fIn, fOut: text, begin assign(fIn, input.txt), reset(fIn), assign(fOut, output.txt), rewrite(fOut), {файлды өңдеу } close(fIn), close(fOut), end. fIn, fOut: text, Файлдық айнымалылар оқу файлын ашу жазу файлын ашу
86
Файлды өңдеудің толық циклі while not eof(fIn) do begin readln(fIn, s); write...
Файлды өңдеудің толық циклі while not eof(fIn) do begin readln(fIn, s), writeln(fOut, s), end, repeat i := Pos(, короче,, s), if i <,>, 0 then Delete(s, i, 9), until i = 0, Әзірше файлдың соңы емес Жолды өңдеу «тазарған жолды жазу
87
Тапсырма input.txt файлында жолдар жазылған, саны– белгісіз. "4": «қысқасы" с...
Тапсырма input.txt файлында жолдар жазылған, саны– белгісіз. 4: «қысқасы сөзін «жалпы» сөздеріне ауыстырып, және output.txt. файлына жазу керек. 5: output.txt файлына 5 сөз артық жолдарды шығару (сөздер бір бос орынмен бөлінген).
88
Конец фильма
Конец фильма
 
 
X

Чтобы скачать данную презентацию, порекомендуйте её своим друзьям в любой соц. сети.

После этого кнопка ЗАГРУЗКИ станет активной!

Кнопки рекомендации:

загрузить презентацию