Зертханалық жұмыс


- бір жолға; for i:=1 to 4 do



жүктеу 0,89 Mb.
бет3/3
Дата25.12.2017
өлшемі0,89 Mb.
#5907
1   2   3

- бір жолға;

for i:=1 to 4 do

write (ai:5); writeln;


4. Көшiру – бiр массивтiң әрбiр элементiн басқа массивтiң сәйкес элементiне меншiктеу.

for i:=1 to 4 do

ai:=di; {D массивi А массивiне көшiрiледi}

5. Iздеу – массивтегi белгiлi бiр шартты қанағаттандыратын элементтi iздеу.

Массивтегі нольге тең элементтердi санау мысалы:

k:=0; 0-ге тең элементтер k айнымалысында саналады

for i:=1 to 4 do

if ai=0 then k:=k+1;
6. Массив элементтерiнiң мәнiн ауыстыру. Ол үшiн типi массивтiң типiне сәйкес келетiн қосымша айнымалы қолданылады.

Мысал: А3;-2;4;7;0;8 массивiнiң бесiншi және үшiншi элементте-рiнiң мәндерiн ауыстыру керек.

Бағдарлама фрагментi мынадай болады:

v:=a[5]; a5:=a3]; a3:=v {v –қосымша айнымалы, a[5] мәнiн уақытша сақтайды}

Нәтижеде берiлген массив мынадай болады: А 3; -2; 0; 7; 4; 8.

34 мысал. Бiр өлшемдi С массивінің элементтерi индексiнiң квадратына тең болатын, ал К массивiнің элементтерi клавиатурадан енгізілетін және екі массивті экранға шығаратын бағдарлама құру:

Қолданылатын айнымалылар:

С1..10, К1..10 - массивтер.

і-циклдiң параметрiн және элементтiң индексiн бiлдiреді, бүтiн типтi.

Массивтiң элементi оның индексiнiң квадратына тең болатын формуламен толтырылады, яғни Сi=sqr(i). Массив элементiнiң мәнi клавиатурадан енгiзiледi, readln(Кi);

Массивте он элемент болғандықтан, а) және б) толтыру процестерi циклде жүргiзiледi. Массивтiң мәндерiн көру үшiн, әрбiр толтырудан соң оны экранға шығару керек.

program mas_tol;

var с, к: array 1..10 of real; i: integer;

begin

for i:=1 to 10 do



begin

сi := sqr(i); массивтi формуламен толтыру}


write ('массивтiң ', і ,'-шi элементiн енгiз');

readln (кi); {массивтi клавиатурадан енгiзу}

end;

writeln (' С массивi ', ' К массивi ');



for i:=1 to 10 do writeln (сi, кi:15 );

end.


35 мысал. Массивтi клавиатурадан толтырып, пайдаланушы енгiзген санға тең элементтердiң санын және ең бiрiншi тұрғанының номерiн табатын бағдарлама қөру.

Қолданылатын айнымалылар:

n – пайдаланушы енгiзген iзделетiн элементтiң мәнi;

а - массивтегі n-ге тең элементтердiң номерi;

b –массивтегi n-ге тең элементтердiң саны;

і – циклдiң параметрi және элементтiң индексi;

k – массивтегi элементтер саны, ол бағдарламаның тұрақты ша-маларды сипаттау бөлiмiнде жазылады. Себебi, егер элементтер саны өзгеретiн болса, оны тұрақтыны сипаттауда өзгертсе жеткiлiктi.

program elem_iz;

const k=10;

var n:real; a, b, i: byte; m: array [1..10] of real;

begin

for і = 1 to k do readln (m[i]);



a :=0; { мұндай элемент жоқ деп есептеймiз}

b :=0; { басқа элемент табылған жоқ}

write(‘массивтен iздейтiн элементтi енгiз’);

readln(n);

for i := 1 to do k

if m[i] = n then {массивтегi n-ге тең элементтердi iздеу}

begin

if b = 0



then a:= i; {n-ге тең бiрiншi элементтiң номерiн табу}

b := b+1; { элементтердiң санын бiрге арттыру}

end;

if b=0


then writeln (‘массивте мұндай элементтер жоқ‘)

else


begin

writeln(n, ’-ге тең элементтiң саны ‘ ,b);

writeln(‘бiрiншi элементтiң номерi ‘,a);

end; end.



10 зертханалық жұмыс. Жолдық функциялар мен процедураларды пайдалану

Теорялық бөлім
Жол дегеніміз – ұзындығы 255-тен артпайтын символдар тізбегі. Тізбектің мағынасы болуы міндет емес. Мысал: ‘df56’, ‘*d-шар56‘, ‘*-4 лд’

Жолдар string жолдық типпен сипатталады. Жолдық типті анықтағанда ондағы символдар санын көрсетуге болады.



Жазылу форматы:

type

<типтің аты>=string [символдар саны];

var <идентификатор>: <типтің аты>;

String типтегі айнымалыны типті алдын-ала сипаттамай-ақ көрсетуге болады: var <идентификатор>:string[жолдың ұзындығы];

N символдан тұратын жолға жадыдан N+1 байт бөлінеді. N байт-символдарды сақтау үшін, ал бір байт – жолдың ұзындығын сақтау үшін.
Жолдық өрнектер. Олар жолдық тұрақтылардан, айнымалылардан, функциялардан және операция таңбаларынан тұрады. Мысал:’ма’+’ма’
Жолдық процедуралар мен функциялар



Аты, жазылуы

Қызметі

Ескерту

1. жою

delete(a,p,n)



a жолындағы р пози-циядан бастап, ұзындығы n символды жояды.

p<=255; нәтиже басқа айны-малыға меншіктелмейді.

2. кіргізу

insert (a,s,p)



a жолын s жолына р по-зициядан бастап кіргізеді.

нәтиже басқа айны-малыға меншіктелмейді.

3. типті ауыстыру

str(x,a)


x сандық шаманы жолға өңдеп, а-ға меншіктейді

х-ті шығару форматымен жазуға болады. Х сандық типте, а –жолдық типте.

4. типті ауыстыру

val(a,x,c)



a жолын сандық шамаға өңдеп, х айнымалыға орналастырады. А жо-лында бос символ болмау керек.

c-өңдеу нәтижесі, бүтін сан. Егер өңдеуде қате болмаса c=0 болады. А:string, х сандық типте, c:integer.

5.ұзындық

length(a)



a жолының ұзындығын табады.

Нәтижені айнымалыға меншіктеуге болады.

6. ретімен тіркестіру

concat(a,b,..s)



a,b,..s жолдарын сол ретімен тіркестіреді

-

7. белгілеу

copy (a,p,n)



a жолынан р позициядан бастап, ұзындығы n символды белгілейді.

егер p>length(a) болса, нәтижесі бос символ;

p>255 болса, қате.



8. позиция

pos (a,s)



a жолы s жолында нешінші позицияда тұрғанын табады.

егер a жолы s жолында болмаса, нәтиже=0

9.регистрді ауыстыру

upcase(ch)



кіші әріпті бас әріпке өзгертеді.

тек латын алфавитін ғана.


Мысалдар

Берілгені:

Қолданылған процедура, функция

Нәтиже

1.a:=’абвгде’

delete(a,4,2)

‘aбве’

2.s1:=’интика’

s2:=’форма’



insert(s2,s1,3)

‘информатика’

1.var x:integer;

a:string;

-------------

x:=72584



str(x,a)

str(-x:7,a)



‘72587’

‘-72584’


2.var a:string;

cod:integer;

---------------

a:=’25’;


a:=’14.2Е+2’;

a:=’14.2’


val(a,x,cod)

val(a,x,cod)

val(a,x,cod)


cod=0


cod=0

cod=5


3.st:=’1237’

st:=’klassio’



length(st)

length(st)



4

7


4.a1:=’ ab’;

a2:=’cd’;

a3:=’ej’


concat(a1,a2,a3)

concat(a1,’nm’,a2)



‘abcdej’

‘abnmcd’


5.st:=’abcdefjk’

copy(st,2,4)

copy(st,5,7)



‘bcde’

‘efjk’


8.a1:=’abcdef’;

a2:=’def’;



pos(a2,a1)

pos(‘e’,a2)

pos(‘k’,a1)


4

2

0



9.Ch:=’d’

A:=’x’


UpCase(Ch)

UpCase(A)

UpCase(‘a’)


‘D’

‘X’


‘A’


1-мысал. Енгізілген сөздегі ‘a’ әріптерін санау, ‘b’әрпіне ауыстыру.

1- әдіс: Алгоритм:

1.Сөзді енгізу.

2.Сөздің бірінші әрпін белгілеу.

3.Белгіленген символды ’a’ символымен салыстыру.

4.Егер сәйкес болса, санауышты бірге арттыру, сол символдың орнына ’b’ символын қою;

5.Осылайша барлық символдарды қарастыру.



Бағдарлама.

program sanau;

var s:string; n,l,i:byte; {n-‘a’әрпін санауыш }

begin


n:=0; readln(s); l:=length(s); { l сөздің ұзындығы}

for i:= 1 to l do

if copy(s,і,1)=’a’ {кезектегі әріпті белгілеп,

then ’a’ әрпімен салыстыру}

begin

delete (s,і,1); insert(‘b’,s,i);

n:=n+1; { а әрпін санау}

end;


writeln (‘сөзде,’n,’ a әрпі бар’);

end.


2-әдіс. Алгоритм:

1.Сөзді енгізу.

2. ’a’әрпін санайтын санауыш енгізу.

3.Сөздегі ‘a’әрпі тұрған позицияны тауып, сол орынға ‘b’ әрпін жазу.

4.Сөздегі барлық позициялар үшін 3 пунктті қайталау.

5.Нәтижені шығару.



Бағдарлама.

program sanau;

var

s:string; n:byte;



begin

write (‘сөзді енгіз’); readln(s); n:=0;

while pos (‘a’,s)>0 do

begin


n:=n+1; s[pos(‘a’,s)]:=’b’;

end;


writeln (‘сөзде’,n,’ a әрпі бар’);

end.


12 зертханалық жұмыс. Файлдармен жұмыс істеу процедуралары.
Теориялық бөлім
Өте үлкен көлемді ақпараттарды сыртқы жадыда сақтау ыңғайлы. Мысалы, оқу орнындағы студенттер туралы, кітапханадағы кітаптар туралы, т.с.с. мәліметтер. Бұл ақпараттар бағдарламада файлдар арқылы пайдаланылады.

Файл дегеніміз сыртқы жадыда белгілі бір атпен сақталған деректердің жиыны.

Мәліметтерді файлдармен пайдаланудың себептері:

1. Бағдарламаның жұмыс барысында өте үлкен ақпаратты енгізу көп уақытты алады және адамды жалықтырады. Клавиатурадан енгізілген деректер мен экранға шығарылған нәтижелер сақталмайды, бағдарламаның жұмысы аяқталған соң жоғалып кетеді. Сондықтан, бұл ақпараттар алдын-ала дайындалып, дискіде сақталады да, қажетінше пайдаланыла беріледі.

2. Берілгендер файлын басқа бағдарламамен дайындап бірнеше бағдарламаны бір-бірімен байланыстыруға болады.

3. Бағдарламаның орындалу кезінде пайдаланушының қатысуы міндет емес.

Файлдық тип. Бір бағдарламада бірнеше файлмен жұмыс істеуге болады. Әрбір файл өз атымен аталады. Файлдағы компоненттер бір типте болады. Файлдың ұзындығы алдын-ала анықталмайды, ол құрылғының сыйымдылығына байланысты болады. Файлды бір типтегі мәндердің шексіз тізімі деп қарастыруға болады. Файлдың элементтері нольден бастап нөмірленеді. Файлдың элементтері ағымдағы көрсеткіш арқылы көрсетіліп тұрады. Ағымдағы көрсеткіш бағдарлама жұмысына байланысты бір элементтен екіншіге ауысып тұрады. Кез келген уақытта файлдың бір элементіне ғана қол жеткізуге болады.


1 элемент

2 элемент

3 элемент

4 элемент

...


















ағымдағы көрсеткіш




Файлдардың элементтерін тізбекті (последовательный) немесе тікелей (прямой) қарастыруға болады. Тізбекті файлдың элементтеріне жазылу реті бойынша қол жеткізіледі. Тікелей қол жетімді файлдың элементтеріне олардың адресі бойынша қол жеткізіледі. Сондықтан, тікелей файлдың кез келген элементін кез келген уақытта пайдалануға болады.

Дискідегі деректер файлы Паскаль бағдарламасымен файлдық айнымалы арқылы байланысады. Бағдарламада көпшілік жағдайда файлдық айнымалыны f арқылы белгілейді.

Бағдарламаның айнымалыны сипаттау бөлімінде файлдық айнымалы былай сипатталады.

var

файлдық айнымалы: file of элементтердің типі;



Мысал:

var


f1, f2:file of integer; f1, f2 - элементтері бүтін типтегі файл.

s1 , s2:file of string; s1, s2- элементтері жолдық типтегі файл.



Файлдарды пайдалану әдістері.

1. Бағдарламаның басында файл мен файлдық айнымалыны байланыстыру қажет. Ол үшін мына процедура қолданылады:



assign(файлдық айнымалы, деректік файлдың аты);

2. Файлмен жұмыс істеу үшін алдымен оны ашу қажет. Файлды пайдалану мақсатына қарай ашудың екі түрі бар:

2.1. Файлдан деректерді оқу үшін –

Reset(файлдық айнымалы);

2.2. Жаңа файлды жасау үшін және оған деректерді жазу үшін



Rewrite(файлдық айнымалы);

3. Ашылған файлдың элементін оқу:



Read(файлдық айнымалы, айнымалы);

4. Ашылған файлға элемент жазу:



Write(файлдық айнымалы, айнымалы);

5. Файлмен жұмыс аяқталған соң файл жабылады:



Close(файлдық айнымалы);

1-мысал: Санды клавиатурадан енгізіп, san.txt файлына жаз.

program file_tip;

var f:text; s:integer;

begin


assign(f1, 'san.txt’); { san.txt файлы f1 айнымалысымен байланыстырылады. }

rewrite(f1); { f1 файлы деректерді жазу үшін ашылады}

readln(s); write(f1, s); { s айнымалысының мәні f1 файлына жазылады}

close(f1); { пайдаланылып болған соң, f1 файлы жабылады}

readln; end.

2-мысал: Деректерді san.txt файлынан оқып, экранға шығар.

Бағдарламаны жазудан бұрын san.txt файлы алдын-ала дайындалады.

program file_tip;

var f1: text; s, n:integer;

begin

assign(f1, 'san.txt’); { san.txt файлы f1 айнымалысымен байланысты}



reset(f1); { f1 файлы деректерді оқу үшін ашылады}

read(f1, s); { f1 файлынан кезектегі элемент оқылып, s айнымалысына беріледі. }

writeln(s); {s айнымалысының мәні экранға шығарылады }

close(f1); {пайдаланылып болған соң, f1 файлы жабылады}

readln;

end.


13-15 зертханалық жұмыс. Графиктік бейнелерді салу функциялары мен процедуралары.

Теориялық бөлім
Паскаль тілінде графикалық кескіндер жасау үшін, GRAPH модулі қолданылады. Бұл модульде 79 графикалық процедуралар, функциялар, тұрақты шамалар мен типтер орналасқан.

Графиканы жұмысқа қосу мына әрекеттерден тұрады:



uses Graph; {Graph модулін, яғни графикалық процедуралар,

орналасқан кітапхананы іске қосу}



var dv, mv:integer; {dv, mv – екі айнымалысы графикалық

режимді іске қосады}



dv:=Detect; {detect мәнімен қажет графикалық драйвер

мен режим автоматты түрде іске қосылады}



InitGraph(dv,mv,’c:\tP7\BGI’); {graph модулінің

орналасқан жолы көрсетіледі}



If GraphResult<>grOk then Halt(1); {Графикалық режимді

іске қосудағы қатесі тексеріледі}

Осы әрекеттерден соң графикалық операторлар жазылады. Графикалық әрекеттер орындалып болған соң, графикалық режимді жабу керек.

6.CloseGraph; {Графикалық режимді жабу}.

Монитор экраны нүктелер жиынынан тұрады. Графикалық экранда координаталар жазықтығының орналасуы төмендегідей:


Түстер таблицасы


Түстің

номері


Түстің аты

Түстің номері

Түстің аты

0

Қара

8

Қою

1

Көк

9

Көгілдір

2

Жасыл

10

Ашық жасыл

3

Бирюза

11

Ашық бирюза

4

Қызыл

12

Қызғылт

5

Малина

13

Ашық малина

6

Қоңыр

14

Сары

7

Ашық сұр

15

Ақ




Графика элементі

Паскальда жазылуы

Параметрлеріне сипаттама

1

2

3

Нүкте

PutPixel(x,y,t)

x,y-нүктенің координатасы; t-түсі, санмен беріледі.

Кесінді

Line(x1,y1,x2,y2)

(x1,y1),(x2,y2) ұштарының координаталары

Сызық

LineТо(x,у)

х,у нүктелеріне дейін сызады

Тік төртбұрыш

Rectangle(x1,y1,x2,y2)

(x1,y1),(x2,y2)диагональдың координаталары.

Боялған төртбұрыш

Bar(x1,y1,x2,y2)

(x1,y1),(x2,y2)диагональдың координаталары.

Шеңбер

Circle(x,y,r)

x,y-центрдің координатасы;

r-радиустың ұзындығы.



Эллипс

Ellipse(x,y,b,s,rx,ry)

b,s-эллипстік доғаның басы және соңы.

b =0, s=360 эллипс салады.

rx,ry – x және y бойынша радиустар.


Доға

Arc(x,y,b,s,r)

x,y,b,s,r- жоғарыда

Сектор

sector(x,y,b,s,rx,ry)

x,y, b,s, rx,ry - жоғарыда

Сызықтың түсі

SetColor(t)

t - түс номері, кестеде келтірілген.

Бояудың түсі

SetFillStyle(t1,t2)

t1 - бояу стилінің номері,

t2-бояудың түсі.



Текст шығару

Outtext(‘текст’)

Тексті экранның сол жақ шетіне шығарады.

Текст шығару

OutTextXY(x,y,’текст’)

Тексті көрсетілген координатаға шығарады

Көпбұ-рыш салу

DrawPoly(n,pp)

n -нүктелер саны;

Тұйық ай-мақты бояу

FillPoly(t, pp)

t-бояудың түсі

Суретті бағдарламалау мысалы:



program suret;

uses graph;

var dv, mv:integer;

begin dv:=detect;

initgraph(dv, mv,’c:\tp7\bgi’);

if graphresult<>grok then halt(1);

setcolor(5);

rectangle(10,15,610,430);

circle(350,100,50);

setfillstyle(1,6);

bar(100,250,200,300);

readln;


closegraph;

end.



program kopburish;

uses graph;

var pp:array[1..5] of PointType;

dv,mv,I,x1,y1:integer;

begin dv:=detect;

initgraph(dv,mv,’c:\ tp7\bgi’);

pp[1].x:=300; pp[1].y:=50;

pp[2].x:=400; pp[2].y:=50;

pp[3].x:=350; pp[3].y:=150;

pp[4].x:=150; pp[4].y:=200;

pp[5]:=pp[1];

DrawPoly(5,pp);FillPoly(3,pp);

readln;

closegraph;



end.

program kozgalys;

uses Graph,CRT;

var


x,y,i,dv, mv:integer; x1,x2,y1,y2:integer;

begin


dv:=detect; initgraph(dv,mv, 'c:\bp\bgi');

if graphresult <>grok then halt (1);

x:=460;y:=400; суреттің бастапқы координаталары

for i:=1 to 200 do

begin

setcolor(6);



circle(460,y,40);

ellipse(460,y-40,0,180,20,20);

ellipse(440,y-60,0,90,20,20);

ellipse(480,y-60,90,180,20,20); сурет салынды

ellipse(440,y-40,270,360,20,65);

ellipse(480,y-40,180,270,20,65);

circle(440,y-20,5); circle(480,y-20,5);

circle(440,y+10,5); circle(480,y+10,5);

delay(500); пауза

SetColor(0);

circle(x,y,40);

ellipse(460,y-40,0,180,20,20);

ellipse(440,y-60,0,90,20,20);

ellipse(480,y-60,90,180,20,20); сурет өшірілді, бұл

ellipse(440,y-40,270,360,20,65); фрагментті cleardevice

ellipse(480,y-40,180,270,20,65); процедурасымен circle(440,y-20,5); circle(480,y-20,5); алмастыруға

circle(440,y+10,5); circle(480,y+10,5); болады.

delay(500);

y:=y-1; жаңа координата

end;


SetColor(6);

circle(x,y,40);

ellipse(460,y-40,0,180,20,20); ellipse(440,y-60,0,90,20,20);

ellipse(480,y-60,90,180,20,20); ellipse(440,y-40,270,360,20,65);

ellipse(480,y-40,180,270,20,65);

circle(440,y-20,5); circle(480,y-20,5);

circle(440,y+10,5); circle(480,y+10,5);

readln;


closegraph;

end.
program grafik;

uses Graph,CRT;

var


x,y,i,dv, mv:integer; x1,x2,y1,y2:integer;

begin


dv:=detect; initgraph(dv, mv, 'c:\тр7\bgi');

if graphresult <>grok then һalt (1);

line(300,50,300,400); line(150,400,500,400);

for i:=-100 to 100 do

begin

x:=i; y:=trunc(sqr(x));



putPixel(trunc(x/2+300),trunc(400-y/50),14);

end;


readln;

closegraph;



end.

Пайдаланылатын әдебиет: [2], 101-104 беттер; [1], 336-408 беттер;

.
жүктеу 0,89 Mb.

Достарыңызбен бөлісу:
1   2   3




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау