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

Паскаль программалау тілі презентация, предмет презентации: Информатика. Этот материал в формате pptx (PowerPoint) содержит 88 слайдов, для просмотра воспользуйтесь проигрывателем. Презентацию на заданную тему можно скачать внизу страницы, поделившись ссылкой в социальных сетях!

Слайды и текст этой презентации

Слайд 1
Текст слайда:

Паскаль тілінде бағдарламалау II Бөлім

Массивтер
Массивтің максималь элементі
Масситерді өңдеу
Массивтерді іріктеу
Массивтегі элементті іздеу

Символдық жолдар
Рекурсивті іріктеу
Матрицалар
Файлдар


Слайд 2
Текст слайда:

Паскаль тілінде бағдарламалау II Бөлім

Тақырып 1. Жиымдар


Слайд 3
Текст слайда:


Жиымдар

Массив – бұл бір атаумен белігілеп, біріктірілген біртекті реттелген элементер жиыны.
Ерекшеліктері:
барлық элементтерінің типі бірдей болады
жиымның бір атауы болады
жадыда барлық элементтері бірінен соң бірі реттеліп орналасады
Мысалдар:
сыныптағы оқушылар тізімі
үйдегі пәтерлер
қаладағы мектептер
Бір жылдағы ауа-райының температурасы туралы мәлімет


Слайд 4
Текст слайда:


Жиымдар


A

жиым

3

15

жиым элементінің НӨМЕРІ (ИНДЕКСІ)

A[1]

A[2]

A[3]

A[4]

A[5]

Жиым элементінің МӘНІ

A[2]

Жиым элементінің НӨМЕРІ (ИНДЕКСІ): 2

Жиым элементінің
МӘНІ : 10




Слайд 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: 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 15 3 10 14
орташа арифметикалық мәні: 9.200
"5": Пернетақтадан 5 элемент енгізіп, жиымның ең кіші элементін табыңдар.
Мысалы:
бес сан енгізіңдер :
4 15 3 10 14
минимальный элемент 3


Слайд 10
Текст слайда:

Паскаль тілінде бағдарламалау II Бөлім

2 тақырып. Жиымның максималь элементі


Слайд 11
Текст слайда:

Максималь элемент

Есеп: жиымның максималь элементін табу.
Алгоритм:





код:

{әзірше, максималь мән- бірінші элемент деп есептейік}
for i:=2 to N do
if a[i] > {максимальдан} then
{a[i] жаңа максималь элементті есте сақта}


Слайд 12
Текст слайда:

Максималь элемент

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: 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 -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 тақырып. Жиымды іріктеу


Слайд 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




Слайд 17
Текст слайда:

Элементердің орнын қалай ауыстырады?

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: 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] аралықтағы кездейсоқ сандармен толтырып және массивтің 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 емес?


Слайд 21
Текст слайда:

Программа

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 -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 Тақырып. Массивті іріктеу


Слайд 24
Текст слайда:

Іріктеу

Іріктеу – бұл массив элементтерін берілген рет бойынша орналастыру. (өсуі бойынша, кемуі бойынша, соңғы цифрі бойынша, еселіктерінің қосындысы бойынша, …).
Есеп: Массивтің элементтерін өсу реті бойынша орналастыру.
Алгоритмдер:
Қарапайым және түсінікті, бірақ үлкен масситер үшін эффективті емес.
Көпіршікті әдіс
Таңдау әдісі
Күрделі, бірақ эффективті
«шапшаң іріктеу" (Quick Sort)
«үйме» іріктеу (Heap Sort)
сортировка слиянием
пирамидалық іріктеу

қиындық O(N2)

қиындық O(N·logN)


Слайд 25
Текст слайда:

Көпіршікті әдіс

Идея –ауа көпіршігі стакандағы судың түбінен жоғары көтеріледі.
Массив үшін – ең кішкентай («жеңіл") элементі жоғары қарай жылжиды («қалқып шығады.").
.




Төменгі жағындағы екі көршілес элементтерді салыстырамыз; егер дұрыс тұрмаса онда олардың орындарын ауыстырамыз.
1 жүріс бойынша бір (ең кішкетай)



1-ші жүріс

2-ші жүріс

жүріс


N элементтен тұратын массив үшін N-1 жүріс қажет (N-1 элементті өз орнына орналастырса болғаны).


Слайд 26
Текст слайда:

Программа

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



Слайд 27
Текст слайда:

Программа

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;



Слайд 29
Текст слайда:

Жалаушалы көпіршік әдісі

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[2]) элементпен орын ауыстыру, т.с.с.








Слайд 31
Текст слайда:




Таңдау әдісі

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] аралықтағы кездейсоқ сандармен толтырып және соңғы цифрлары бойынша іріктеу.
Мысал:
Берілген массив:
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тақырып. Массивтегі іздеу


Слайд 34
Текст слайда:

Массив элементін іздеу

Тапсырма –массивте х –ке тең элемент бар немесе жоқтығын анықтау.
Шешуі: массив үшін: сызықтық іздеу (іріктеу)
кемшілігі: жылдамдығы төмен
Қалай тездетуге болады? – алдын-ала іздейтін массивті әзірлеу
Қалай әзірлейміз?
«әзірленген массивті" қалай пайдаланамыз?


Слайд 35
Текст слайда:

Сызықтық іздеу

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 = A[c], табылды (шығу).
Егер X < A[c], келесі жартысынан іздеу.
Егер X > A[c], екінші жартысынан табу.


Слайд 37
Текст слайда:

Екілік іздеу

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;

табылды

Цикл аяқталды

Шекараны жылжытамыз


Слайд 38
Текст слайда:

Іздеу әдістерін салыстыру


Слайд 39
Текст слайда:


Тапсырма

"4": X-ке тең элементтерді табатын программа құру керек. (бұл сан пернетақтадан енгізілуі керек). Екілік санды іздеу.

"5": [0,100] аралығында 32 элементтен тұратын массивтен екілік іздеудегі қадамның орташа мәнін есептейтін программа құрыңдар. Іздеу үшін осы аралықтағы 1000 кездейсоқ сандарды пайдалану керек.


Слайд 40
Текст слайда:

Паскаль тілінде бағдарламалау II Бөлім

6 тақырып. Символдық жолдар


Слайд 41
Текст слайда:

Символдық массивпен жұмыстың қиындығы қандай?

var B: array[1..N] of char;

Символдық массив:

Әрбір символ – бөлек нысан;
Сипаттау бөлімінде көрсетілген
массивтің ұзындығы N—ға тең

Не қажет:
Символдар тізбегін біртұтас түрде қарастырылуы
Жолдың ұзындығы айнымалы болуы


Слайд 42
Текст слайда:

Символьдық жолдар

Жол ұзындығы

Жұмыс аймағы

s[1]

s[2]

s[3]

s[4]

var s: string;

var s: string[20];

Жолдың ұзындығы:

n := length ( s );

var i: integer;



Слайд 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": Символдық жолды енгізіп, барлық "а" әріпін "б" әріпіне және кересінше алмастыру керек.
Мысал:
Жолды енгізіңіз:
ааббссААББСС
Нәтиже:
ббаассББААСС
"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 := '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 );
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 );
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('Введите имя, отчество и фамилию');
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": Файлдың атын енгізу (кеңейтілімін жазбауға болады) және кеңейтілімін ".exe“ деп өзгерту.
Мысал:
Файл атын енгізіңіз: Файлдфң атын енгізіңіз:
qqq qqq.com
Нәтиже: Нәтиже:
qqq.exe qqq.exe
"5": Файлға бару жолын енгізу және әр бір қапшықты жаңа жолдан бастап ашып көресету
Пример:
Файлға бару жолын енгізіңіз:
C:\Мои документы\1-Б\Акан\qq.exe
Нәтиже:
C:
Мои документы
1-Б
Акан
qq.exe


Слайд 52
Текст слайда:

Паскаль тілінде бағдарламалау II Бөлім

Тақырып 7. Рекурсивті іріктеу


Слайд 53
Текст слайда:

Рекурсивті іріктеу

Есеп: «Тумба-юмба« тілінің алфавиті Ы, Ц, Щ және О. К әріптен тұратын барлық сөздерді экранға шығарып, олардың санын табыңыз. K саны пернетақтадан енгізіледі.

1

K

Әр ұяшықта 4 әріптің кез-келгені болуы мүмкін

4 нұсқа

4 нұсқа

4 нұсқа

4 нұсқа

Нұсқалар саны:


Слайд 54
Текст слайда:

Рекурсивті іріктеу

1

K

Рекурсия: К Рәріптен тұратын сөздер үшін K-1 әріптен тұратын 4 мақсатты шешу.

1

K

1

K

1

K


Барлық нұсқаларды


Барлық нұсқаларды


Барлық нұсқаларды


Барлық нұсқаларды


Слайд 55
Текст слайда:




Процедура

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;
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(‘сөздің ұзындығын енгіз:');
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 саны пернетақтадан енгізіледі.

"4": К әріптен тұратын Ы әріпі 1 реттен артық кездеспейтін барлық сөздерді экранға шығарып, және олардың санын санау қажет.
"5": Қатар тұрған бірдей әріптері бар К әріптен тұратын барлық сөздерді экранға шығарып, (мысал, ЫЩЩО) және олардың санын санау керек.


Слайд 59
Текст слайда:

Паскаль тілінде бағдарламалау II Бөлім

Тақырып 8. Матрицалар


Слайд 60
Текст слайда:

Матрицалар

Есеп: Шахмат тақтасындағы фигуралардың орнын естеріңе сақтаңдар.

1

2

3

4

5

6


c6

A[6,3]


Слайд 61
Текст слайда:

Матрицалар

Матрица – бұл, тікбұрышты сандар кестесі.
Матрица – бұл әрбір элементі екі индекстен тұратын массив. (жол нөмірі және баған номері).

A

баған 2

баған 3

ұяшық A[3,4]


Слайд 62
Текст слайда:

Матрицалар

Сипаттау:

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,j] := random(25) - 10;

Жол бойынша цикл

Баған бойынша цикл

Экранға шығару

for i:=1 to N do begin


writeln;
end;

Жаңа жолға өту

for j:=1 to M do
write ( A[i,j]:5 );

Жолды шығару


Сол жолда


Слайд 64
Текст слайда:

Матрицаның элементтерін өңдеу

Есеп: 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 бағаннан тұратын матрицаны толтырып экранға шығару керек.

"4": Матрицаның минималь және максималь элементтерін және олардың нөмірлерін табу керек.
Шығару пішіні:
Минималь элемент A[3,4]=-6
Максималь элемент A[2,2]=10
"5": Элементтерінің қосындысы максималь болатын жолды экранға шығару керек.
Шығару пішіні:
Жол 2: 3 5 8 9 8


Слайд 66
Текст слайда:

Матрицамен орындалатын әрекеттер

Есеп 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. Бас диагоналда орналасқан элементтердің қосындысы

жол 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. Жолдың немесе бағандардың орнын ауыстыру. 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];


Слайд 69
Текст слайда:


Тапсырма

7 жол және 7 баған тұратын матрицаны [-10,10] аралығындағы кездейсоқ сандармен толтырып, экранға шығару. Жаслы түспен ерекшеленген аймақтағы элементерді нөлге айналдырып экранға шығару.

"4": "5":


Слайд 70
Текст слайда:

Паскаль тілінде бағдарламалау 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 айнымалыны файлмен байланыстыру
Файлды ашу (оны белсенді жасап жұмысқа әзірлеу)


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 командасында ғана айтылады, файлды шақыру файлдық айнымалы арқылы жүреді
оқығанда ашылатын файл бар болуы керек
жазу үшін ашылатын файл бар болса, ескі мазмұны өшіріледі
мәліметтер файлға мәтін түрін жазылады
программа аяқталғанда барлық файлдар авторматты түрде жабылады.
файл жабылған соң 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 );
reset ( f ); { басынан бастау }

readln ( f, x );

12 5 45¤ 36 67¤ 56●

конец строки
(end of line, EOL)










Слайд 76
Текст слайда:


Мысал

Есеп: 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');
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": output.txt файлына барлық сандардың орташа арифметикалық мәндерін жазу керек.
"5": output.txt файлына максималь және минималь сандарды тауып жазыңдар.


Слайд 79
Текст слайда:

Массивтерді өңдеу

Есеп: input.txt файлында сандар жазылған (бағандап), саны – белгісіз, бірақ 100-ден артық емес. Өсуі бойынша output.txt. файлында жазу керек
Қиындықтар:
Іреіктеу үшін барлық сандарды жадыда массив түрінде ұстау керек;
Қанша сан екені белгісіз.
Шешімі:
100 элементі бар массивке жадыдан орын әзірлейміз;
Оқылған сандарды массив түрінде жазып және олардың санын N айнымалысы арқылы санаймыз;
массивтің алғашқы N элементін сорттаймыз;
файлға жазамыз.


Слайд 80
Текст слайда:

Массивтен берілгендерді оқу

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;
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 артық емес екені белгілі.

"4": Кемуі бойынша массивті іріктеп және оны output.txt. файлына жазу керек
"5": Массивті цифрларының қосындысының өсуі бойынша сорттап және оны output.txt. файлына жазу керек


Слайд 83
Текст слайда:

Мәтіндік мәліметтерді өңдеу

Есеп: input.txt файлында жолдар жазылған, олардың арасында «қысқаша» деген қыстырма-сөз бар. Мәтінді тазартып output.txt. файлына жазу керек.
input.txt файлы :
қысқасы, кеше, қысқасы, мамам, қысқасы, үй, қысқасы тазалады.
Шеше қысқасы кеше қысқасы неше қысқасы кесе қысқасы сынды
Роза қысқасы тікенді қысқасы гүл.

Нәтиже - output.txt файлында :
Кеше мамам үй тазалады.
Шеше кеше неше кесе сынды
Роза тікенді гүл.


Слайд 84
Текст слайда:


Мәтіндік мәліметтерді өңдеу

Алгоритм:
файлдан (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;
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);
writeln(fOut, s);
end;

repeat
i := Pos(', короче,', s);
if i <> 0 then
Delete(s, i, 9);
until i = 0;

Әзірше файлдың соңы емес

Жолды өңдеу

«тазарған" жолды жазу


Слайд 87
Текст слайда:


Тапсырма

input.txt файлында жолдар жазылған, саны– белгісіз.

"4": «қысқасы" сөзін «жалпы» сөздеріне ауыстырып, және output.txt. файлына жазу керек.
"5": output.txt файлына 5 сөз артық жолдарды шығару (сөздер бір бос орынмен бөлінген).


Слайд 88
Текст слайда:

Конец фильма


Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть