Writeln (‘6 бөлінеді:’); For K:=1 to n do



Дата07.07.2016
өлшемі235 Kb.
#183434

Writeln (‘6 бөлінеді:’);

For K:=1 to n do

If k in n6 then write (k);

Writeln (‘2 немесе 3 бөлінеді:’);

For K:=1 to n do

If k in n23 then write (k);

End.


Мыс30 Латын әріптерінің LAT және TB деп берілген екі жиын құрайтын бағдарлама жазу керек.

Program m30 (,);

Var C,I,J: char;

Lat: set of ‘A’ ,, ‘z’;

TB: set of ‘:’,, ‘?’;

Begin readln;

Write(‘-‘);

LAT:=[ ];

TB:=[ ];

Repeat read (c);

If c in [‘A’,,’z’] then lat:=lat+[c];

Else if c in [‘;’ , ’:’, , ‘.’ , ‘,’ , ‘!’ , ‘?’] Then TB:=tb+[c];

Until Eoln;

Writeln (‘lat’)’;

For I:=’A’ to ‘z’ do

If I in Lat then

Write (I);

For I:=’!’ to ‘?’ do

If J in TB then

Write (I);

End.

-28-

Паскаль тілінің негіздері
Паскаль бағдарламалау тілі, 17 ғасырда өмір сүрген француз ғалым-философы Блезь Паскальдың құрметіне аталған. Осы тілді құрастырушы Швейцариядағы жоғарғы политехникалық мектептің информатика институтының профессоры Никлаус Вирт болып табылады. Паскаль тілі жөніндегі алғашқы дерек 1979 жылы пайда болып, содан бері тілдің дүниеге келген жылы болып табылады.

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


Паскаль тілінің негізгі белгілері.
Паскаль тілінің құрамы төмендегі жиындардан тұрады:

  1. Латын алфавитінің бас және кішкене жазбаша әріптері.

  2. Араб цифрларының жиыны: 0 мен 9-ға дейінгі.

  3. Келісімді белгілер:

Белгі

Белгінің мазмұны

Белгі

Белгінің мазмұны




































































































































(+)амалы, (-)азайту (*),(/), (=), (<),(>),(<=),(=емес),(;), (:=),(%) (,-апостров)




-1-

Қызмет сөздер жиыны


Қызмет сөздер алдын ала келісіп алынған белгілі бір іс-әрекеттерді ж/е басқада сәйкес емес қызмет үшін қолдануға болады.

Паскаль тілінде бағдарламалаудың жалпы түрі былай жазылады.

PROGRAM <БАғДАРЛАМА АТЫ>;

VAR <айнымалы аты>; <түрі>;

BEGIN

<бағдарламаның орындалу бөлігі>;

Мысал: А,В;С қабырғалары берілген үшбұрыштың ауданын есептейік.

PROGRAM Audan(input,output)

VAR A,B,C,P,S: REAL;

BEGIN

READ (A,B,C)



P:=0.5*(A+B+C)

S:=SQRT(P*(P-A)*(P-B)

Бағдарлама барлық уақытта PROGRAM сөзінен басталады. Аудармасы бағдарлама дегенді білдіреді. Аудан бағдарлама аты, бағдарлама аты әріппен цифрдың араласып жазулы түрінде болуы мүмкін. жақша ішіндегі Input сөзі бағ-ның жұмыс жасалуы үшін деректердің қажеттігін білдіреді. Ал output жазуы бағ-ның нәтижесін алуды баспаға шығару қызметі арқылы жүхеге асыратындығын білдіреді. Әрбір нақты іс-қимылдан соң нүктелі үтір қойылады. Бағ-ма басынан кейін бағд-да кездесетін барлық айнымалыларға жалпы сипаттама берілуі тиіс. Осы сипаттауды VAR қызмет сөзі атқарады, әрбір айнымалының арасы үтір белгісімен бөлініп айнымалылар тізімі (;) аяқталады. Қос нүктеден соң айнымалылардың жалпы түрі жазылады. RAEL ЖАЗЫЛУЫ айнымалылардың нақты саны екенін білдіреді. Бағдарл-ң орындалу бөлігі BEGIN қызмет сөзімен басталады. Осыдан кейінгі жазылған өрнектер тікелей үшбұрыш ауданын есептейтін өрнектер тобын құрайды. Бағ-ма END қызмет сөзімен аяқталып соңында нүкте қойылады.

Деректер


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

  1. Тұрақтылар

  2. Айнымалылар

-2-

Set түріндегі іс-әрекеттерге мына амалдарды қолдануға болады. =, <>, >=,<=, in, +,-, *.

Тең және теңемес іс-әрекеттеррі иквиваленттігін білдіреді. Екі жиын бір-біріне тең болады егер мүшелері де бірдей тең болса мыс. 1) [1,3]=[3,1] tyre (ақиқат)

[1,,3]=[1,2,3] tyre

[1]<>[2] tyre

[1,2,3]=[1,4,3] false

[red,blue]=[red,yellow] false

2) >= және <= A<=B true

[1,2]<=[1,2,3] true

3) in іс-әрекеті SET түрінде белгілі бір анықталған элементтің мүшенің тиістілігін білдіреді. Егер Х шамасы В жиынының мүшесі болса онда Х in B true ақиқат мәнін береді. Бұл жазу х шамасы В жиынының мүшесі В жиынына тиісті дегенді білдіреді

Мыс: 5 In [3,,7] true

4) “+” - бірігу. “-“ - айыру . “*” –қиылысу

А+В бірігу іс-әрекеті А ж/е В жиындарының бірігуінен пайда болған жиынды білдіреді. А*В қиылысу іс-әрекеті А ж/е В-ға жиын А-В айырым іс-әрекеті А мүшелерінің В жиынына кірмейтін жиынын білдіреді. Мыс: [1,3]+[1,4] [1,3,4]

[1,3]*[1,4] [1]

[1,3]-[1,4] [3]

Мыс29. 1,20 Бүтін сандар жиынынан бөліп көрсету керек. 6-ға бөлінетін сандар жиынын Қалдықсыз 2-ге немесе 3-ке бөлінетін сандар жиынын көрсетуіміз керек. Жиын өлшемі N деп белгілеп алайық. N2-екіге бөлінетінт сандар жиыны N3, N23- екіге немесе 3-ке бөлінетін. Сандар жиыны К-цикл параметрі.

Program m29 ( , );

Const n=20;

Var n2,n3,n6,n23: set of integer; K: integer;

Begin N2:=[ ];

N3:=[ ];


For K:=1 to n do

Begin


If k Mod 2=0 then n2:=n2+[k];

If k Mod 3=0 then n3:=n3+[k];

End;

N6:=n2*n3;



N23:=n2+n3;

-27-

Туыл. Ж. :=1975,,1985;

Т.ж :=1995,,2000;

Баға:=record mat, химб,эем ,физ : 1..5

End
End;

Var ст.топ: array [1..5] A студент;

SA:=ctudent;

I,J: integer;

Begin WITH SA, баға DO

Begin For I:=1 TO 5 DO

For J:=1 TO 10 DO

Read (фио[J]);

Read(туыл,ж,. Т.ж,. мат, эем, физ);

Ст.топ [I]:=SA

End

End;


Writeln (‘үзд,студ;’);

For I:=1 TO 5 DO

WITH ст,топ [I], баға DO

If (мат=5) AND (ЭЕМ=5) AND (физ=5);

Then Write (фио,’туыл.ж.=’туыл.ж, ‘т.ж=’т.ж);

End.


Жиындар.

Көп жағдайда біз жиын құрайтын деректермен жұмыс жүргіземіз. Паскаль тілінде жиындық түр тиянақты құрылым беретді белгілі бір жағдайда мәндердің бірнеше тобы жиынға тиісті емес те соны білу немесе көрсету қажет болады. Деректерді жиындарға біріктіріп жұмыс жүргізу біраз жеңілдіктер береді. Құрамында бос жиынды да қабылдайтын бастапқы жиынды құрайтын жиыншалардың жиынын Паскаль тілінде Жиын деп атаймыз.

Да, SET жазуы арқылы көрсетеміз Жалпы түрі

TYPE S=SET of Bs

Мұндағы S жиынның аты BS жиынды құрайтын мүшелерінің түрі немесе негізгі түр. Мыс: Бір тиын, Бес тиын, 10 тиындықтардың жиыны берілсін, Осы үш түрлі тиындар жиынынан 23=8 жиынеша алуға болады. Олар

1) [1т]; 2) [5т]; 3) [10т]; 4) [1т,5т] осы жиыншалар SUM деген бір жиынды құрап және негізгі monet жиынына тиісті болсын сонда осы деректерді сипаттау былайша болады.

TYPE S=SET of Bs

Tupe monet = (input) (tyin 1, tyin 5, tyin 10);



-26-

Тұрақтылар деп бағ-ның жұмыс істеу кезінде өзгеріссіз қалатын деректерді айтамыз. Ал айнымалылар деп белгілі бір есептеу сипатына қарай өзгеріп отыратын деректерді айтамыз.

Паскаль тілінде мынадай айнымалылар түрлері бар.

Integer – бүтін айнымалы.

Real – нақты.

Boolean- екілік.

Char –символды белгілік айнымалы.

Array- массив.

Set- жиын.

File – файл.

Record- жазу.

Pointer – көрсеткіш.

Subrange- шектелген.

Негізінен Паскаль тілінде деректердің стандартты келісімді төрт түрі бар. Олар:



  1. Integer,

  2. Real,

  3. Boolean,

  4. Char,

Integer- бүтін түрі бұл түрдегі айнымалылар тек бүтін мәнді болуы керек. Бағдарламада ол былайша қолданылады.

А,В,С: Integer;

Real-нақты түрі Мысалы: Х:Real деп бағ-да жазып көрсетсек онда х-тың мәні нақты сан деп көрсетеміз. Сонымен х-шамасы нақты деп сипатталса онда ол барлық іс-әрекеттерде тек нақты сан болып есептеледі.

Var A,B,C : Real;

Boolean- екілік түрі бұл атына сай екі жағдайды қарастырады.


  1. Ақиқат

  2. Жалған

Екілік түр осы екі True-ақиқат және False-жалған жағдайға негізделген And, Or, Not логикалық өрнектері екілік мәндерді береді.

End- логикалық коньюнкция.

Or- логикалық дизюнкция.

Not- логикалық терістеу.

End-логикалық көбейту немесе және операциясын анықтайды.

«а And b» жазылуы а және в шамалары ақиқат болғанда True мәнін береді. Ал қалған жағдайда False мәнін береді Мысалы:



And =

And =

-3-
Or-логикалық қосу «а Or в» жазылуы тек а және в мәндері жалған болғанда False мәнін береді, қалған жағдайлардың барлығында True болады. Мысалы:

Or = , Or =

Or =

Not-логикалық терістеу Not a жазылуы а-ға қарсы қарама-қарсы мәнді қабылдайды. Мысалы: Not=

Not=


A

B
Not A

A Or B


A And B

True

True

False

True

True

True

False

False

True

False

False

True

True

True

False

False

False

True

False

False

Мысал2: А=2, B=8, C=3 (A>3) And (B=A+6) Or Not (C=4)

  1. 2>3 False

  2. 8=2+6 True

  3. False And True=False

  4. Not (3=4)=True

  5. False Or True=True

Char-символды түрі Char түріндегі айнымалы өзіне мәнді белгілі бір реттелген символдар тізбегінен алады. Берілген символдар тізбегін бүтін оң сандар жиынына сәйкестендіретін екі стандартты функция бар. Осы функциялар түрлендіру функциялары деп аталады.

Or D (c) – c символының реттік санын білдіреді.

Ch R(I) – тізбектің І белгісін білдіреді.
Cтандартты функциялар.
Бағдарлама құру есептеу кезінде Логарифм, Sin, Cos, экспоненттер және т.б функциялармен жиі кездесетін боламыз. Тәжірибеде іс жүзінде жиі кездесетін есептеулерді тиімді орындау мақсатымен Паскаль тілінің құрамына бағ-да тұрақты аттармен берілген бір топ функциялар енгізілген осы енгізілген функцияларды тілдің негізгі элементтері арқылы тікелей пайдалануға болады.


-4-

Жалпы түрі

TYPE T=REKORD

A11,A21,..AN1: TYPE 1;

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

Ar1,Ar2,..,Arn

End.

Мұндағы A R M өрістердің атауы TYPE T өрістердің тиісті түрлері Т түрдің атауы Мыс. Студенттердің анкеталық деректерін беретін жағдай былай сипатталады.



TYPE Ctudent=record

Фамилия: packed Array [1..15] of char;

туылғын дерек: Rekord

күн: 1..31.

2

Ай: (я,ф,м,а,м,и..д);



Жыл: integer;

End.


Var C:ctudent;

Групп: array



WITH қосып алу операторы

REKORD түріндегі жазылу мен жұмысты жеңілдету үшін қосып алу операторын қолданамыз. Осы оператордың басты міндеті Ол біраз іс-қимылды жинақтап ықшамдайды. Жалпы түрі.

WITH A DO ST

Мұндағ А – REKORD түріндегі айнымалының аты ST –оператордық іс-қимылдар бөлігі немесе жеке оператор. Бағдарлама жазу кезінде жазылуларды қолданғанда бағдарлама тексті ұзарып кетеді.

Қосып алу операторы ST операторы орындалу арқылы жүзеге асады. Осы ST операторының ішкі құрамындағы А аралас түріндегі айнымалының белгілі бір мүшелерінің атауларын көрсету арқылы жұмысты жеңілдетеміз. Мыс жоғары да көрсетілген бағдаламаның үзіндісін өз операторын қолдану арқылы көрсетейік.

WITH A DO ST

With c, туыл. Дерек do

Begin Күн:=18;

Ай:=апрель;

Жыл:=1976;



Мыс28 Студенттік топтың құрамының анкеталық дерегін алу керек. Онда туылған жылы, оқуға түскен жылы, соңғы сессияда алған бағалары мен үздік студенттердің аты жөнін көрсету керек.

Program m28 (,);

Type студент=record ф.и.о: packed array [1..10] of char;

-25-

Мыс26. А1,...,А20

Program m26 (,);

Type T=array[1..20] of real;

Var A:T; I:integer; S:real;

Begin S:=0;

For I:=1 To 20 do

Begin read (A[I]);

If A[I]>0 Then S:=s+A[I];

End;


Write (s);

End.


M27.Массивтің ең үлкен максимал мәнін есептеу.

Program m27 (,);

Const M=1; N=20;

Var I, J: integer;

X:array [M...N] of real;

Begin For I:=M to n do

Read (X[I]);

J:=M;


For I:=M+1 TO n do

If X[I]>x[J] Then J:=I;

Writeln (x[I];

End.

Аралас түрлер


Деректерді өңдеу барысында әртүрлі түрлердегі деректермен жұмыс жүргізуге тура келеді. Қарастырайын деп отырған аралас түріміз құрамында өзіне ғана тиісті атауы бар өлшеміде шамасы да әртүрлі болып келетін деректерді бойында ұстайды. Аралас түрді көп жағдайда мәні бойынша жазылу деп атайды. Аралас түр құрамы бойынша күрделі біртекті емес болып келген құрылымдағы информациялық жүйелерді құруға көп пайдаланылады. Кез-келеген информациялық жүйе өз бойында сан алуан түрлі мәлімет ұстайды Мыс. Мамандар жөніндегі мәлімет құрамында қызметкерлерге тиісті әртүрлі деректері болады. Фамилиясы Аты-жөні, туылған жылы, білімі жөніндегі дерек ж.т.б Осы мәліметтер құрамында цифрлар литерлік қатарлар болады. Деректердің мүшелерінің белгілі бір санын өріс деп атаймыз аралас түрдің мәні осы деректердің өрістік жиынын береді. Әрбір өріске өз атауы беріледі және қай түрде екені көресетіледі. Сонымен әртүрлі өлшемді щамасы да әртүрлі жазылуларды біріктіріп белгілі бір кескін беріп тұратын аралас түр болып табылады. Ол түр REKORD сөзімен басталып END сөзімен аяқталады да осы екі сөз аралығында барлық мәліметтер өз түрлерімен көрсетіледі.
-24-

Функция

Матем. жазылуы

Паскаль тілінде

Синус

Sinx

Sin(x)

Косинус

Cosx

Cos(x)

Натурал лог

Lnx

LN(x)

Экспонент

e

Exp(x)

Кв.түбір



Sqrt(x)

Арктангенс

arctgx

ARCTAN(x)




ln

LN(sqrt(cos(Sqr(x)))




3^x+2

EXP((x+2)*LN(3))




lq

LoG(x)

  1. V = 4/3 П R^3

  2. F = Ln(b-y)/)

  3. Sin  =

  4. Sin3 = 3Sin-4Sin^2

  5. R = Sin(x+(П/4)

  6. 2,78+2,1*10^3/Cos^2(x^2+ax+a^2)+cosx^2+Sin^3y/

  7. b = ((x^2/(3)+cos^4z))/1,25+Exp(Sin(z^2))

  8. V = 4/3*3.14(R^3)

  9. F = ln((b-y)/Sqrt(b-y))

  10. Sin a = Sqrt(1-cos^2a)

  11. R = Sin(x+(3.14/4))

Паскаль тілінде жазыған бағдарлама 2 бөліктен тұрады. Іс-қимылдардың тізбегі және іс-қимылдарға қажетті деректерді сипаттау бөлімі. Барлық іс-қимылдар операторлар арқылы жүзеге асады оператор деп отырғанымыз, белгілі бір шектелген іс-қимылды білдіретін және жүзеге асыратын қызмет сөз. Ал деректер тек сипаттау мен анықтау арқылы жүзеге асады. Осы деректерді сипаттаушы объектілерді алты бөлікке бөлуге болады.

  1. Таңбаларды сипаттау бөлігі

  2. Тұрақтыларды сипаттау бөлігі

  3. Түрлерді сипаттау бөлігі

  4. Айнымалыларды сипаттау бөлігі

  5. Процедуралармен функциялар бөлігі

  6. Операторлар бөлігі


-5-

Таңбаларды сипаттау бөлігі

Бағдарламадағы кез-келген операторды таңбалауға болады. Былай таңбалап алу кейбір жағдайда бағдарламаның кез-келген жерінен соң, сол таңбаланған операторға немесе іс-қимылға шартсыз өту операторы арқылы өзіңізге іске араластыруыңызға мүмкіндік береді. Таңбамен жұмыс жүргізу үшін біз таңбаны алдын ала сипаттау бөлімінде көрсетуіміз керек таңба деп отырғанымыз 0 мен 9999 аралығындағы бүтін сандар таңбаны сипаттаушы қызмет сөз Label түріндегі жазу мысалы: Label 5,10,12 сол бағдарламадағы 5,10,12 мен таңбаланған іс-қимылдар бар екенін білдіреді.


Тұрақтыларды сипаттау бөлігі

Бағдарламада кездесетін тұрақтыларды алдын ала жинақтап, сипаттап алған жөн. Өйткені тұрақтылардың мәнін өзгерткіңіз келсе, оларды бағдарламадан өзгертіп жатпай бір жерде өзгерту арқылы жұмысыңызды жеңілдетуге болады Тұрақтыларды сипаттауды білдіретін қызметші СONST сөзі. Оның жалпы түрде жазылуы:

CONST A=K;

А – атау, К – тұрақты,

Мысалы: Avagadro = 6.023;

T = 50;

R = 45;


Түрлерді сипаттау бөлігі

Паскаль тіліндегі деректердің қандай түр қабылдайтынын айнымалыларды сипаттау бөлімінде көрсетілген немесе белгілі бір атпен көрсетуге болады. Егер бағдарламада келісілген түрлерден өзгеше бір түр енгізілсе, онда ол түрлер бөлігінде сипатталу керек. Қызмет сөзі TYPE.

Жалпы түрі:

TYPE T1 = (түрдің көрінісі);

T2 = (түрдің көрінісі);

Т1, Т2 – енгізушілердің аттары;

TYPE COLOR = ( RED, YELLOW, қара, жасыл)

Айнымалыларды сипаттау бөлімі

Айнымалыларды сипаттау бөлімінің қызметші сөзі VAR.

Жалпы түрі:

VAR A, B: TYPE1;

C, D: TYPE2;

A,B,C,D – айнымалылар;

TYPE 1, TYPE 2 – осы айнымалыларды түрлері;
VAR K, I, J: INTEGER;

A, B: TYPE1;

C, D: TYPE2;

-6-

Begin


(*бағдарламаны есептеу*);

kvadrat (5.7, -1.2, -8.3, y1, y2);

Writeln (‘Y1=’,Y1,’Y2=’,Y2);

End.


Функциялық процедура.

Нәтижесі тек 1 мән қабылдайтын жеке дара алгоритмдік функция түрінде беруге болады. Жалпы түрі:

Function max(x,y:real):real;

Мысал25. Кез келген төртбұрыш өзінің қабырғаларымен диагоналінің ұзындықтары мен берілсін. Ауданын табу керек.



В С

А D
Program M25 (Input,output);

Var AB,CD,BC,DA,AC,S1,S2:real;

Procedure TR( Var A,B,C,D: real);

Var P:real;

Begin


P:=(A+B+C)/2;

S:=Sqrt(P*(P-A)*(P-B)*(P-C);

End;

Begin


Read (AB,CD,BC,DA,AC);

TR(CD,DA,AC,S2); write(S1+S2);

End.

Осыны процедуралық функция түрінде жазып көрейік.



Program M25 (Input,output);

Var AB,CD,BC,DA,AC,:real;

Function TR( A,B,C: real):real;

Var P:real;

Begin

P:=(A+B+C)/2;



S:=Sqrt(P*(P-A)*(P-B)*(P-C);

End;


Begin

Read (AB,CD,BC,DA,AC);

Write(TR(AB,BC,AC)+TR(CD,DA,AC));

End.
-23-

Writeln (‘матрица:’);

For I:=1 to n do

For j:=1 to m do

Read (B[i,j]);

(*көбейтіндіні есепте*);

P:=1;


For I:=1 to n do

For j:=1 to m do

P:=P*B[I,j];

Writeln (‘көбейтінді=’,P);

End.

1.2 1.5 1.3 1.4 1.2



1.6 1.3 1.4 1.7 1.5

1.5 1.9 1.6 1.8 1.4

сандарды енгізген кезде жауабы:

335.4


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

Іс-қимылдарды белгілі бір жиыны бағдарламаның бірнеше жерінде кездессе, осы іс-қимылдарды іске асыратын операторлардың тобын қайталап жаза беру көп ыңғайсыздық тудырады осы қайталанудан құтылу үшін көрсетілген операцияның тобын бағдарламада бір рет жазып алып қажет жерінде шақыртуға болады. Бағдарламаның әр жерінде керек уақытында бірнеше рет қолдануға болатын операторлардың ерекшеленген тобын ішкі бағдарлама (подпрограмма) дейді. Ал паскаль тілінде мұны процедура дейміз. Жалпы түрі:

Procedure N(P1:T1; P2:T2;…; var P3:T3;…);

Мұндағы N-процедура аты; PI – формальды, келісімді параметр көрсеткіштер. TI – олардың түрлері.

Мысал24. 5,72-1,2у-8,3=0 квадрат теңдеудің шешімін табу керек.

Program M23 (Input,output);

Var y1,y2:real;

Procedure kvadrat(A,B,C:real; Var x1,x2: real);

Var D:real;

Begin


D:=B*B-4*A*C;

X1:=(-B+Sqrt(D))/(2*A);

X2:=(-B-Sqrt(D))/(2*A);

End;


-22-

Іс-әрекеттер бөлігі

Бұл бөлік BEGIN сөзінен басталып, END сөзімен аяқталады. Осы аралықта нақты іс-қимылдар амалдар жүреді. Екі сөз аралығындағы іс-әрекеттер сол қимылдарға сәйкес операторлар тобы атқарады. BEGIN сөзінен кейін еш уақытта нүктелі үтір қойылмайды.

Жалпы түрі:

BEGIN


S1 = A;


S1, S2;


GOTO 5


END;


Операторлар бөлігі

Әрбір іс-қимылдың қызмет сөздері болады және осы қызмет сөздер белгілі бір өзіне ғана тиісті іс-қимылды атқарады. Бағдарлдамалауда оларды операторлар деп атаймыз паскаль тілінде мынандай негізгі операторлар бар:



  1. Тағайындау операторы

  2. Шартсыз өту операторы

  3. Құрама оператор

  4. Алдын ала шартталған циклдіқ оператор

  5. Кейін шартталған циклдік оператор

  6. Жазылулар оператор

Тағайындау операторы

Тағайындау (:=) оператордың міндеті кез келген белгілі бір операторға мәндестіріп отыруға болады.

Жалпы жазылуы: V:=A;

А - өрнек немесе шама;

V - айнымалы;

:= - тағайындау;

Мысалы: x:=0.5;

X:=x+0.2;

A:=10+x*cos(x);

Енгізу және шығару операторы

Енгізу – READ

Шығару – WRITE

Жалпы түрі:

READ (V1, V2,…, Vn);

V – енгізуші айнымалылары және бұл айнымалылар Integer, real,

-7-

CHAR түрлерінің біреуі болуы мүмкін.

Шығару операторы барлық шарттарды баспаға шығару үшін қорытынды нәтиже алу үшін қолданылады.

Жалпы түрі:

WRITE (P1, P2, … , Pn)

P – шығарушы нәтиженің тізімі

Мысалы, WRITE (‘P=’ P);

P = 28


M3. Радиусы 5,78 ге тең шеңбердің ұзындығын анықтауымыз керек.

L - ? L = 2ПР;

PROGRAM M3 (INPUT, OUTPUT);

CONST R = 5.78;

PI = 3.14;

VAR L: REAL;

BEGIN

L := 2*PI*P;



WRITE (‘L=’ L);

END.


МЫСАЛЫ:

PROGRAM M3.1 (INPUT, OUTPUT);

VAR R:= REAL;

BEGIN


R := 5.78;

WRITE (‘L=’ 2*3.14*R);

END.
М4. Х= 15.3 болғанда y = (cos (x) + e^x)/x^3 функцияның мәнін тап.

PROGRAM M4 (INPUT, OUTPUT);

VAR X, Y: REAL;

BEGIN


X:= 15.3;

Y:= (COS(X)+EXP(X))/(EXP(3*LN(X));

WRITE (‘y=’ y);

END.


Құрама оператор


Егер белгілі бір шартпен оператордың бір нақты онда оларды құрама операторларға біріктіреді Құрама операторы Begin негізгі жазылуымен басталып End сөзімен аяқталады. Осы екі оператордың аралығында орналасу тәртібімен орындалатын операторлар тізбегі жазылады End сөзінен соң нүктелі үтір қойылады.
-8-

Var А:array[1..n] of real;

sum:real; I: integer;

Begin


(*массив енгізу*);

Writeln(‘сандар:’);

For I:=1 to n do Read(A[I]);

(*қосындысын шығару*);

S:=0;

For I:=1 to n do



Sum:=Sum+A[I];

Writeln(‘қосынды=’, Sum);

End.

Мысал22.3 TYPE түрінде сипаттаймыз



Program m22.2 (Input,output);

Const n=7;

Type T:=array [1..n] of real;

Var А:T;


sum:real; I: integer;

Begin


(*массив енгізу*);

Writeln(‘сандар:’);

For I:=1 to n do Read(A[I]);

(*қосындысын шығару*);

S:=0;

For I:=1 to n do



Sum:=Sum+A[I];

Writeln(‘қосынды=’, Sum);

End.

Мысал23.{Bij}, i=1,2,3, j=1,2,3,4,5 нақты сандардан тұратын матрица берілген.



Program M23 (Input,output);

Const N=3;

M=5;

Type Mas:=array [1..n,1..m] of real;



Var B:mas;

I:1..n;


J:1..M;

P:real;


Begin

(*матрица мәнін енгізу*);



-21-

Var A:T;


TYPE t= array [1..3] of array;[1..4] of integer;

Var A:T;


Мыс:21 Қатар санымен баған саны 5-ке тең болатын матрицаның қатарларының 1-ші мүшелерінің өсу тәртібі бойынша орналастыру қажет.

Program m21 (,);

Const n=5;

Type katar=array [1..n] of read;

Matrissa=array [1..n] of katar;

I,J,K: integer;

Begin

For I:=1 to n do



For J:=1 to n do Read (x[I,J]);

For I:=1 to n do

Begin

K:=I;


For j:=I+1 to n do

If x[I,J]

V:=x[I]; x[I]:=x[K]; X[k]:=V;

For J:=1 to n do Write (x[I, J]);

End;

End.
Мыс22. 5,1; 6,4; 8,7; 1,9; 3,6; 2,0; 4,2 жеті нақты сандардың қосындысын табу керек.



Program m22 (Input,output);

Const n=7;

Var sum:real; I: integer;

Begin


Sum:=0;

Writeln(‘сандар:’);

For I:=1 to n do

Begin


Read (A);

Sum:=Sum+A;

End;

Writeln(‘қосынды=’, Sum);



End.

Мысал22.2 VAR айнымалы бөлімінде сипатталады.

Program m22.2 (Input,output);

Const n=7;


-20-

Шартты тексеру операторы

Шартты өту операторы If және Case түрінде беріледі.



If операторы- шартты операторы белгілі бір шарттарды тексеру үшін қолданылады. Осы If операторы бойынша шарттарды тексеру қызметін логикалық белгілер атқарады және оған қосымша екілік өрнектерде қолданылады. Олар

=, >,<, >=,<=, <>.

If операторының жазылу түрі IF A THEN ST мұндағы А логикалық өрнек ST- ,белгілі бір оператор.

IF <логикалық өрнек> THEN <оператор1> ELSE <оператор2>

Егер логикалық өрнек ақиқат мән қабылдаса онда THEN сөзінен кейін орналасқан оператор1 орындалады. Егер лгикалық өрнек жалған болса онда оператор2 орындалады.

ELSE операторының алдында (;) қойылмайды.

Мыс:5 А ж/е В екі кез келген санның үлкенін есептейтін бағдарлама құру керек.

PROGRAM M5(INPUT,OUTPUT)

VAR A,B, max; Real;

Begin


Real (A,B);

If A>B Then max :=A

Else max:=B;

Write (“max=”,max)

End.

Мыс6. a Ln/x/<1, /x/;



W= x=0

, /x/;

Мыс7.
Z=; b-y=0 – шешімі жоқ

Program M7

Var z,b,y: Real;

Begin

Read (b,y);



If b-y <>0 Then

Begin z:=Ln(b-y)/Sqrt(b-y);

Write (“z=”,z);

End;


Else Write(шешімі жоқ);

End.


-9-

Case Таңдау операторы

Жалпы түрі Case <Выражение> Of

константа 1: оператор Р1;

Константа 2: оператор Р2;

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

Константа n: операторы;

Case операторының таңбалары Label таңбалар бөлішінде сипатталуы керек. Мыс: Case I Of

2: K:=0,


3: k:=x*x;

100: k:=Sin(x);

End,

T:=k*k;


Мыс8; Аптаның көлемін баспаға шығару.

Program M8 (Input, Output);

Var Den: integer;

Begin


Read (Den);

Case Den Of

1:Writeln(“понедельник”);

2:Writeln(“вторник”);

3:Writeln(“среда”);

4:Writeln(“четверг”);

5:Writeln(“пятница”);

6:Writeln(“суббота”);

7:Writeln(“воскресенье”);

End;


End.

5.04.2002 ж.



Циклдік операторлар.

Кейбір есептеулерде берілген функцияның формуларының немесе белгілі бір санды есептейтін бірнеше айнымалыларды осы фукцияға қоя отырып есептеу керек болады. Осы кезде циклдік айнымалы процесс басталады. Паскаль тілінде осы айнымалы циклдік іс-қимылды 3 түрлі оператормен есептеуге болады. Олар WHILE, REPEAT, FOR.

WHILE – түріндегі циклдік оператор.

Жалпы түрі:

WHILE A DO ST

Мұндағы А логикалық өрнек.

ST – оператор. Бұл жазылу өрнегі А – логикалық ақиқат болса, онда ST операторы орындалады. Егер А жалған болса оператор орындалмайды.

-10-

Типтер бөліміндегі массив.

Типтер бөлімінде массивтің сипатталуы

TYPE массив тип аты=ARRAY [t1] of [t2]; var масситв аты : тип аты

Бұл жерде т1 индекстің өзгеру аралығы немесе индекс типі, т2 мүшелерінің түрі. Мыс. Егер 10 нақты сандардан тұратын R массивін алып оның типінің атын Mas деп белгілесек

TYPE MAS=array[1..10] of real;

Var R:Mas;

Мысал20. Футбол командасының орта жасын есептейтін бағдарлама құру.

Program m20 (,);

TYPE t=array [1..11] of real;

Var A: T;

Begin s:=0;

For I:=1 to 11 do

Begin read (A[I]);

S:=s+A[I];

End;

S:=s/11;


Write (s);

End.


Жинақталған массив

Егер массивтің алдында PACKED сөзі тұрса онда машинаның есте сақтау бөлігінде деректер тығыз жинастырылып транцлятция жинақталады және есептеумен деректерді өңдеу жылдамдайды. Бұл есте сақтау бөлігінің тиімділігін артырады. «Var” айнфмалылар түрінде

VAR __ массив аты: PACKED array [тип индексі] of char;

Мыс. «Киргизова Алия» Масивтің атын FAM деп алатын болсақ Var Fam : Packed array [1..14] of char;

Fam [1]= “k” , Fam[2]= ‘и’, ,,, , Fam[14] ‘я’ ;

TYPE t=Packed array [1..14] of char;

Var A:T;

Көп өлшемді массивтер

Массив элементтері бір индексті болса бір өлшемді ал екі индексті болса екі өлшемді немесе Матрица деп аталады. Бір өлшемді массивтің жазылуы A[I], екі өлшемді массивтің жазылуы A[I,j] деп жазылады. Мыс. 5 4 3 6

2 8 1 7 =А

4 3 9 5


A[I,J] I=1,2,3 j=1,2,3,4

Жалпы түрі TYPE t= array [1..3, 1,,4] of integer;



-19-

Массивтер ұғымы.

Массив деп бір ортақ белгісі бар деп деректердің N өлшемдік жиындығын айтамыз. Негізгі массив бір ортақ атпен аталатын тізбекті береді. Кез келген бір келкі деректердің жинақты тізбегі массив болады. Массивтің әрбір элементі массив аты және индекс арқылы болады. Егер программада массив қолданылса, онда ол var айнымалылар бөлімінде немесе типтер бөлімінде сипатталуы тиіс.

Мысалы: 1.6; 14.9; -5.0; 8.5; 0.46 A деп алатын болсақ,

Математикалық түрде А(1), А(2), А(3), А(4), А(5), немесе А1, А2, А3, А4, А5 деп жазамыз.

{Ai}, I= 1,2,3,4,5

Паскаль тілінде: A[1]=1.6, A[2]=14.9,… , A[5]=0.46,

VAR массив аты: ARRAY [t1] of [t2];

ARRAY –массив, t1 – индекстің өзгеру аралығы немесе индекстің типі, t2 – мүшелердің түрі.

Var A: ARRAY [1..5] of real;

Var massiv: array[1..n] of real;

Жыл: array [январь..декабрь] of integer;

L: array [қатар] of Boolean;

Егер массивтің индекс типі мен мүшелерінің түрлері бірдей болса, оларды қосып жазса болады.

Var A,B,C: ARRAY [1..50] of real;

A[1], A[2],..,A[50];

B[1], B[2],..,B[50];

C[1], C[2],..,C[50];

Мысалы: 15 бүтін сандардың қосындысын табу керек. Х- массив, І – қосындысы, SUM – сумма,

SUM = x[1]+x[2]+…+x[15] суммасын табу керек.

Program M19 (Input, Output);

Var X: ARRAY [1..15] of integer;

I, Sum: integer;

Begin

Sum:=0;


FOR I:=1 TO 15 DO

Begin


Read(x[I]);

Sum:=Sum+x[I];

End;

Writeln(Sum);



End.

-18-

Осы оператордың пайдалы жері белгілі бір берілген аралықтың ең үлкен шекарасына шектеу жасап аралықтарға тиісті мәндерінің барлығын алуға болады.

Мысал9: Алғашқы 5 натурал сандардың квадратын суммасын есептеу керек.

Program M9 (Input, Output);

Var S,N: integer;

Begin


S:=0, N:=1

WHILE N<=5 DO

Begin

S:=S+SQR(N);



N:=N+1;

End;


Write(‘S=’,S);

End.


Мысал10.

Program M9 (Input, Output);

Var S:real; N: integer;

Begin


S:=0, N:=1

WHILE N<=50 DO

Begin

S:=S+1/N;



N:=N+1;

End;


Write(‘S=’,S);

End.


REPEAT – түріндегі циклдік операторлар.

Жалпы түрі:

REPEAT ST UNTIL A

UNTIL – орындаушы оператор.

А – логикалық өрнек. А - логикалдық өрнек жалған болған жағдайда ST – операторы орындалады. А – логикалық өрнек ақикат болып орындалса, онда цикл тоқтатылады, онда циклдан кейінгі іс-әрекет орындала береді.

Мысал9.1:

Program M9 (Input, Output);

Var S:real; N: integer;


-11-
Begin

S:=0, N:=1

REPEAT S:=S+SQR(N);

N:=N+1;


UNTIL N>5;

Write(‘S=’,S);

End.

Мысал10.1



Program M10.1 (Input, Output);

Var S, N: integer;

Begin

S:=0, N:=1



WHILE N<=50 DO

Begin


S:=S+1/N;

N:=N+1;


End;

Write(‘S=’,S);

End.

Мысал11.



Program M9 (Input, Output);

Var V:real;

Begin

V:=0, K:=1



REPEAT K<=20 DO

Begin


V:=K+1;

K:=K+1;


End;

Write(‘V=’,V);

End.

Мысал12. Х=8,6,4,2; Y=X2-?



Program M12 (Input, Output);

Var Y,X: integer;

Begin

X:=8;


REPEAT

S:=SQR(X);

Writeln(Y,X);

-12-

Мысалы: х= көктем

SUCC(X)=жаз;

PRED(X)= қыс;

ORD(X) = 2;

Мысалы: Аң тізімі берілсін және реттік нөмері берілсін.

Program m18(input,output);

TYPE andar = ( tulki, kaskir, aiy, koian, pil, jolbaris, arstan);

Var P1,P2: andar;

N1, N2:integer;

Begin

P1:=aiy;


P2:=pred(jolbars);

N1:=ord(P1)+1;

N2:=ord(P2)+1;

Writeln(‘аю рет номері=’,n1);

Writeln(‘жолбарыстың алдындағы рет номері=’,n2);

End.


Шектеулі тип.

Тек шектелген аралықтағы мәндерді ғана қабылдайтын айнымалы шектеулі типтің айнымалысы деп қарастырады.

Мысалы: Типтерді сипаттау бөлімінде жылдың ай атаулары түріндегі санаулы типі берілген.

TYPE АЙ = (я,ф,м,а.м,и,и,а,с,о, н,д)

Есеп шартында тек жаз мезгілі айларын пайдалану керек болса, онда ай типінің бөлігі болып келетін шектеулі тип төмендегідей болады.

TYPE жаз =(июнь,, август);

Шектеулі типті анықтағанда тек бастапқы және соңғы мәндері екі нуктемен бөлініп жазылады. Шектеулі типті анықтау үшін алдымен базалық типі болып табылады.

Жалпы түрі: TYPE тип аты=<константа1>..<константа2>



<константа1>,<константа2> - өзгеру аралықтары.

Бұл жағдайда келесі шарттар орындалуы тиіс. Шектеулі тұрақтылар бір типті болуы керек. Базалық типке шектеулі түр әр уақытта деректер нақты мән а:real алғанда ғана орындалады.

Мысалы:

Ball=0..100;

Alfavit = ‘a’..’t’;

Logic = false..true;

Күз =қыркүйек..қараша;

Шектеулі типтегі бастапқы тұрақты мәні соңғы тұрақты мәнінен кіші болуы керек.


-17-

N – таңба;

N – таңбасы алдымен LABEL Таңбалар бөлігінде толық сипатталып жазылуы керек. GOTO N жазылуы белгілі бір іс-әрекеттен орындалуы тиіс N таңбалы қатар операторлар тобын орындауды шартсыз көшу операторы дейді.

М17.

К=1…N өзгереді. Осы сандарда 0.001 кіші сан барма, жоқпа соны тексеру керек.

PROGRAM M17 (Input, Output);

LABEL 1,2;

Var N,K: integer;

Begin

Read(N);


FOR I:=1 TO N DO

IF Cos(k)+Sin(k*k)<0.001 THEN

GOTO 1;

1:Write(‘бар’);



2:End.

Санақтау және шектеулі түрлер.

Кейбір жағдайларда сандық деректерден гөрі белгілі бір шектеулі санақталған деректермен жұмыс жүргізуге тура келеді. Паскаль тілінде берілгендердің стандартты типтерінен басқа жаңа пайдаланушы анықтайтын айнымалы типтер бар. Бұл топқа санақты және шектеулі типтер кіредісанақты тип түрақтылар тізімінен тұрады. Бұл типтің айнымалылары тізімдегі тұрақтылардың кез келген мәнін қабылдай алады.Жалпы түрі:

TYPE тип аты= (тұрақтылар тізімі);

VAR айнымалы аты: тип аты;

Тізімдегі тұрақтылар (,) арқылы жазылып дөңгелек жақшаға алынып жазылады.

Мысалы: TYPE жыл = (қыс, көктем, жаз, күз);

VAR A: жыл;

Жыл – тип аты, Қыс, көктем ... – тұрақтылар және олардың типтік нөмері 0 ден басталады. А – тұрақтылардың кезкелген мәнін айнымалы ретінде қабылдайтын айнымалы.

Санақтау түрде мынан дай келісімді функциялар қолдануға болады: SUCC(X) – х тан соң болатын мәнді береді.

PRED (x) – х тан алдын болатын мәнді береді.

ORD(x) – х тың мәні болатын санды көрсетеді.


-16-

X:=X-2


UNTIL X<0;

End.


FOR – түріндегі циклдік оператор.

Жалпы түрі:

FOR I:=N DO ST

Мұндағы I – айнымалы

I:=N1 TO N2

N1 – дегеніміз циклдік айнымалыныңғ бастапқы мәні,

N2 – соңғы мәні, ST – оператор.

Паскаль тілінде 1 мен –1- ден өзгеше қадам беруге болмайды. Егерде біз FOR түріндегі жазуды қолдансақ N1, N2 айнымалылары барлық уақытта REAL нақты түрін қолдану керек.

Мысал9.3.

Program M12 (Input, Output);

Var S,N: integer;

Begin


S:=0;

FOR N:=1 TO 5 DO

S:=S+SQR(N);

Writeln(‘S=’,S);

End.

Мысал 10.3.



Program M10.3 (Input, Output);

Var S,N: integer;

Begin

S:=0; N:=1;



FOR N:=1 TO 5 DO

S:=S+1/N;

Writeln(‘S=’,S);

End.


Мысал 13.

Program M13 (Input, Output);

Var S1,S2, S,T: REAL; K,N:integer;

Begin


READ(T);

S1:=0; S2:=0;

FOR K:=3 TO 18 DO

S1:=K*K+T;



-13-

FOR N:=6 TO 12 DO

S2:=N-T;

Writeln(‘S=’,S1+S2);

End.

Мысал 14.



Латын алфавитін баспаға шығару бағдарламасын құру.

Program M14 (Input, Output);

Var Sim:Char;

Begin


Writeln(‘Lat alfav:’);

FOR Sim:=’A’ TO ‘Z’ DO

Write(‘ ’,Sim);

End.



FOR – циклдық операторының параметр мәні кеміп отырғандағы жалпы түрі:

FOR I:=N1 DOWNTO N2 DO ST;

Мысал 9.4.

Program M9.4 (Input, Output);

Var S,N: integer;

Begin


S:=0;

FOR N:=1 DOWNTO 5 DO

S:=S+SQR(N);

Writeln(‘S=’,S);

End.
Ендірілген циклдар.

Циклдік құрылымның ішіндегі кұрделі циклдардан ендірілген циклдар деп атаймыз. Яғни ол бір циклдың ішінде екінші цикл орналасады.

Мысал15. Y=2k+N; N=1,2,3; k=2,4,6,8;

N – сыртқы циклдің параметрі,

К – ішкі циклдің параметрі.

Program M15 (Input, Output);

Var Y,K,N: integer;

Begin


FOR N:=1 TO 3 DO


-14-

Begin


FOR N:=1 TO 8 DO

Begin


Y:=2*k+N;

K:=K+2;


Writeln(N,K,Y);

End;


End;

End.


Program M15.1 (Input, Output);

Var Y,K,N: integer;

Begin

FOR N:=1 TO 3 DO



Begin K:=2

WHILE K<= 8 DO

Begin

Y:=2*k+N;



Writeln(N,K,Y); K:=K+2;

End;


End;

End.


Мысал16. Нақты сандар жиынының арифметикалық ортасын табу. N – жалпы сандар жиыны, S – сумма, Т – арифметикалық орта, D – енгізілетін сандар.

Program M15 (Input, Output);

Var I,N: integer;

S,T,D:real;

Begin

Read(N);


S:=0;

FOR I:=1 TO N DO

Begin

Read(D);


S:=S+D;

End;


T:=S/N;

Writeln(T,S);

End.

Шартсыз өту операторы.

Шартсыз өту операторы – GOTO операторлардың бағдарламада орналасу ретіне байланысты орындалу тәртібін бұзу үшін қолданылады. Жалпы түрі: GOTO N;



-15-






PROGRAM M3 (INPUT, OUTPUT);

CONST R = 5.78;

PI = 3.14;

VAR L: REAL;

BEGIN

L := 2*PI*P;



WRITE (‘L=’ L);

END.

МЫСАЛЫ:

PROGRAM M3.1 (INPUT, OUTPUT);



VAR R:= REAL;

BEGIN


R := 5.78;

WRITE (‘L=’ 2*3.14*R);

END.
PROGRAM M3 (INPUT, OUTPUT);

CONST R = 5.78;

PI = 3.14;

VAR L: REAL;

BEGIN

L := 2*PI*P;



WRITE (‘L=’ L);

END.


МЫСАЛЫ:

PROGRAM M3.1 (INPUT, OUTPUT);



VAR R:= REAL;

BEGIN


R := 5.78;

WRITE (‘L=’ 2*3.14*R);



END.









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




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

    Басты бет