Паскаль программалау тілінде калькулятор құру

Автор: Пользователь скрыл имя, 02 Марта 2013 в 19:20, курсовая работа

Описание работы

Программалау жүйелері деп компьютердегі есептерді программалауды автоматтандыруға арналған программалар жиынтығы аталады. Программалау жүйесі пайдаланушыны немесе программистті өзінің мәселелерін оған қолайсыз машиналық командалар тілінде жазу қажеттілігінен босатады және оларға жоғары дәрежелі арнайы тілдерді пайдалану мүмкіндігін береді. Кіріспе немесе бастапқы деп аталатын осындай тілдердің әрқайсысы үшін, программалау жүйесінің, программа мәтінін кіру тілінен машина тіліне автоматты түрде аударатын (трансляция) программасы бар.

Содержание

Кіріспе....................................................................................................................
3
1. Паскаль программалау тілінің негіздері.....................................................
5
1. 1 Паскаль тілінің құрылымы.............................................................................
5
1. 2 Паскаль тілінің операторлары.......................................................................
2. Паскаль тілінде программа құруда бүтін сандармен жұмыс істеудің әдістері....................................................................................................................
2. 1 Паскаль программалау тіліндегі стандартты функция……………………
6

14
14
2. 2 Графиктік режимде жұмыс............................................................................
17
2. 3 Паскаль программалау тілінде калькулятор құру........................................
20
Қорытынды...........................................................................................................
26
Қолданылған әдебиеттер....................................................................................

Работа содержит 1 файл

Мынаныыы бас!!!!.docx

— 73.69 Кб (Скачать)

Кейбір программаларда белгілі-бір  шарттардың сақталуына тәуелді командалардың  қандайда бір бөлігі бірнеше рет  қайталанады. Мұндай әрекеттерді жүзеге асыратын командаларды қайталану командасы  деп атайды.

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

Олар: 1) параметрлі цикл (немесе үшін циклі)

2) Әзір циклі

3) Дейін циклі

1. Параметрлі циклдің  құрылымы:

For цикл параметрі:=бастапқы мән To соңғы мән Do цикл денесі; Мұндағы for (үшін), to (дейін), do (орындау) – қызметші сөздер. Бұл циклже цикл параметрі integer типті бүтін сан, цикл қадамы 1-ге ғана тең. Қадамның басқа мәндерінде әзір немесе дейін циклі қолданылады.

Қадам 1-ге тең болған параметрі  цикл төмендегіше жазылады:

For цикл параметрі := бастапқы мән DownTo соңғы мән Do

Цикл денесі құрама оператордан  тұратын болса, онда олар операторлық  жақшаға алынады.

2. Әзір немесе шартты алдын-ала тексеру циклі.

Оның құрылымы:

While шарт Do

Цикл денесі:

While (әзір), Do (орындау) - қызметші сөздер.

Шарт - логикалық типті өрнек. Егер шарттың мәні ақиқат (true) болса, цикл денесі орындалады және содан соң шарт қайта тексеріледі. Ал шарттың мәні жалған (false) мәнге тең болса, цикл денесі орындалмайды, басқару while циклінен кейін тұрған бірнеше операторға беріледі.

3. Дейін немесе шартты соңынан тексеру циклі.

Дейін циклінің құрылымы:

Repeat

Цикл денесі

Until шарт

Repeat (қайталау), Until (дейін) - қызметші сөздер. Олар операторлық жақшалар ролін де орындайды. Until-дің алдындағы оператордан соң нуктелі үтір қойылмауы тиіс. Дейін циклінде цикл денесінің операторы ең болмағанда бір рет орындалады, шарт ақиқат болғанда цикл аяқталады. Әзір циклінен айырмашылығы бұл циклде кері шарт жазылады.

Break және continue операторлары

Паскаль тілінде циклді басқару  үшін 2 оператор қолданылады. Олар циклді қолдану мүмкіндігін кеңейтіп, программа  құрылымын жақсартады.

Break - циклді тоқтатуды жүзеге асырады; басқару циклден кейін тұрған операторға беріледі.

Continue - циклдің кезекті қадамының орындалуын мерзімінен бұрын аяқтауды жүзеге асырады; басқару циклдің келесі мәніне беріледі.

Практика 1:n бүтін сан берілген. Олардың көбейтіндісін есептеңдер. Егер сан 0-ге тең болса, циклден шығу үшін break операторын қолданады.

Var I,n,x:integer;

Begin

Read(n) {санның нешеу екенін  енгізу}

For i:=1 to n do

Begin readln(x) {әрбір санды енгізу}

If (x=0) then break; P:=p*x; End;

Writeln(‘p=’,p);

End.

Практика 2:n бүтін сан енгізіп, олардың ішінен оң сандардың қосындысын және санын есептеңдер.

Var I,n,x,k,s:integer;

Begin

Readln(n);

For i:=1 to n do begin readln(x);

If x<0 then continue;

S:=s+x; k:=k+1; end;

Writeln(s,k);

End.

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

Оның жалпы түрі: goto таңба

Практика ax^2+bx+c=0 квадрат  теңдеуінің шешімін табыңдар.

Var a,b,c,d:integer;

x1,x2,xL:real;

Label 10;

Begin

Readln(a,b,c);

D:=b*b-4*a*c;

If D>0 then begin x1=(-b+sqrt(D))/(2*a); x2:=(-b-sqrt(D))/(2*a);

Writeln(‘x1=’,x1,’x2=’,x2);

Goto 10; end;

If D<0 then writeln(‘SheshimiJok’) else begin x=-b/(2*a);

Writeln(‘x1=x2’,x); end;

10:end.

Бұл программада D>0 шартының ақиқат жағдайында Goto10, яғни 10- жолға  өту операторын қоймаған жағдайда экранға x1, x2 мәндерімен қатар, басқару else қызметші сөзінен кейін операторға беріліп, D=0 болғандығы x-тің мәні де шыққан болар  еді. Ал мұндай жағдай программаның қате орындалуына әкеліп соғады.

Паскаль тілінде 0 мен 1 аралығындағы кездейсоқ бүтін санды шығару үшін Random (1) функциясы қолданылады. Ал берілген [a,b] аралығындағы кездейсоқ бүтін санды шыңару үшін функция былайша жазылады:

Random(b-a)+a

Әрбір орындатқанда уақытқа  байланысты әртүрлі кездейсоқ сандар алу үшін Randomize кездейсоқ сандар генераторын іске қосу қажет.

Практика: Кездейсоқ шыққан бүтін санның неше әрекеттен кейін  «бақытты жетілік» болатынын анықтайтын программа құрыңдар.

Program bakitti777;

Var a,b,c:integer; n:integer;

Begin

Randomize;

20:=n:=n+1;

A:=random(7)+1;

B:=random(7)+1;

C:=random(7)+1;

Writeln(a,b,c);

If (a=7) end (b=7) and (c=7) then

Begin Writeln(‘BakittiJetilik’);

Writeln(‘Areketsani’,n) Goto 10;

End;

Goto 20;

10:end.

 

Паскаль тілінде программа  құруда бүтін сандармен жұмыс істеудің арнайы әдістері

 

Паскаль программалау тілінің  артықшылығы кең көлемде берілгендердің әр түрлі типтермен жұмыс жасай  алу мүмкіндігінде. Типтердің ішінде есеп шығаруда көп қолданылатыны - бүтін сан. Бүтін типті тұрақты-ондық жүйедегі кез-келген үтірсіз жазылған сан. Паскаль тілінде бүтін типті санды INTEGER типті деп атайды. Олар: 10, -357,0,5974 сандарының типі бүтін тип (INTEGER).

Бүтін типті берілгендермен жұмыс істеу барысында келесі операциялар мен функцияларды орындауға  болады.

-+(қосу); -(алу); *(көбейту);

-IV – бүтін сандарды бір-біріне бөлгендегі бүтін бөлігін алу;

-MOD - бүтін сандарды бір-біріне бөлгендегі қалдық бөлігін алу;

Сондай-ақ, нәтижесі бүтін  сан болып келетін функиялар:

-TRUNC(x)- x нақты санның бүтін  бөлігін береді.

-ROUND(x)- x нақты санын дөңгелектейді.

-INC(x,n)- x бүтін мәнін n бірлікке  арттырады.

-DEC(x,n)- x бүтін мәнін n бірлікке  азайтады.

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

Практика 1. Санның бөлгіштігін, жұптылығын анықтау.

Есеп: Берілген N бүтін санының  жұп не тақ екендігін анықтау  қажет болсын.

Бұл есепті шешу үшін математикалық тұрғыдан қарағанда: Егер сан 2-ге қалдықсыз бөлінсе - жұп сан, яғни N/2= TRUNC(N/2) логикалық өрнегінің мәні TRUE (ақиқат) болуы қажет, сонда:

Программа 1.

Program tak_ne_jup;

Var N:integer; K:char;

Begin

Read(N); If n/2=trunk(n/2) then k:=’jup’ else k:=’takh’;

Write(N,’sani’,K);

End.

Бұл программада логикалық  өрнекті Nmod 2=0 түрінде де жазуға болады. (Паскаль тілінде санның тақтылығын анықтайтын, мәні бульдік тип болатын арнайы ODD(x) функциясы бар).

Практика 2. Берілген санның цифрларымен жұмыс.

Есеп: Натурал N санының цифрларының  қосындысын және санын есептеу керек  болсын.

Бұл есепті шешу үшін N бүтін  санын кіші разрядынан бастап цифрларын  бөліп алу керек те, S айнымалыға меншіктеп отыру керек. Оң жақтағы соңғы цифрды бөлектеп алу үшін мына әдісті (формуланы пайдаланамыз: N-TRUNC(N/10)*10 немесе N-(N DIV 10)*10, ал келесі санды бөліп алу үшін жаңа сан N=TRUNC(N/10)-ды қарастырылады да жоғарыдағы әдісті қайталанады. Бұл процесте алатын жаңа сан 0-ге тең болғанша жалғаса береді (теріс санның цифрларын бөлектеп алу үшін алдын ала N=ABC(N) түрін алу керек).

Программа 2.

Program C2;

VarN,S,K:integer;

Begin

Readln(N); N:=ABC(N); S:=0; K:=0;

While N>0 do begin S:=S+(N-TRUNC(N/10)*10);

K:=k+1N:=N div 10; end;

Writeln(‘Berilgensanda’,K,’Cifr bar’); Writeln(‘cifrlarininkosindisi’,S);

End.

Программа орындалғанда енгізілген саны өзгеріп кетеді. Қажет болғанда алдын-ала N1=N деп меншіктеп қоюға  болады.

Практика 3.Санды разрядқа жіктеу.

Кейбір есептерге программа  құру барысында санды разрядты қосылғыштарға  жіктеу, яғни бірлік, ондық, жүздік ... разряд бірліктерін бөліп алу тиімді болады. Үш таңбалы санды жіктей кетсек:

P=A*100+2*10+C; (Мұндағы А- жүздік, В- ондық, С- бірлік разрядтар).

Сонда разряд өсімшелерін  кірісе циклге алып отырса жеткілікті.

Есеп: Үш таңбалы сандар ішінен санды теріс оқығанда жұп сан  шығатын және ол сан сегізге қалдықсыз  бөлінетін барлық сандарды басып  шығаратын программа құр.

Программа 3.

Program C3;

Var A,B,C,P:integer;

Begin

For A:=1 to 9 do For B:=0 to 9 do For C:=1 to 9 do

begin

P1:=A*100)D*10+C; P2:=C*100+B*10+A;

If(P2/2=Trunc(p2/2)) and (P2 mod 9 = 0) then

Write(P1,’->’P2)  end;

End.

Практика 4. Санның бөлгіштерін табыңдар.

Есеп: Бүтін N санының 1-ден  бастап барлық бөлгіштерін басып  шығаратын программа құру.

Алгоритмі: А-ның В бөлгіші  болып табылады, егер А саны В-ға қалдықсыз бөлінсе. 1 саны кез-келген санның бөлгіші болғандықтан N санан 2-ден бастап [N/2]-ге дейінгі сандардың бөлгіші екендігін тексеріледі. Әрбір табылған бөлгішті баспаға беріліп отырады. Тексеру циклді түрде қайталанады.

Программа 4.

Program C4;

VarI,C:integer;

Begin

Readln(N); X:=TRUNC(n/2); Writeln(N,’Sanninbolgishteri’);

Write(I:3);

For I:=2 to N do If /I=Trunc(N/I) Then write(I:3)

Write(N:3)

End.

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

Практика 5. Жай сандарды табу.

Есеп: 1-ден бастап М санына дейінгі барлық жай сандарды тауып, басып шығаратын программа құру.

Алгоритмі: Эротосфен торы (елегі) әдісін пайдалануға болады. Ол үшін 1-ден М-ге дейінгі сандардың тізбегін алып, мұнан алдымен 2-ден бастап (2-нің өзінен басқа) әрбір екінші санды сызып тастаймыз (программада 0-мен айыстырамыз). Одан соң сан тізбегінен бастаған саннан кейінгі 0-ге тең емес санды табамыз. Яғни бұл і саны болады. Енді үшінші санды (3-тен басқа) сызып тастап (0-мен ауыстырып) отырамыз. Осылайша жалғастыра береміз. Нәтижесінде 1-ден М-ге дейінгі жай сандар ғана қалады.

Программа құру барысында  бір өлшемді А жиымды алып, оған 1-ден М-ге дейінгі сандарды орналастырамыз (жиым элементтері элемент индекстеріне тең). Аталған алгоритм бойынша әрекет жасаймыз.

Программа 5.

Program C5;

Label 1;

Var M, I, L, C:integer;

A:array [1..8000] of integer;

Begin Writeln(‘M saninengiz’); Readln(M);

If I:=1 To M Do A[I]=I;

Writeln(M,’-gedeingi jai sandar’);

For I:=2 to M Do

Begin If F[I]=0 Then Goto 2;

Write A[I]; C:=I+I; J:=C;

While C<=M Do

Begin A[J]:=0; J:=J+I

End; 2:end

END.

 

2. Паскаль тіліндепрограмма құруда бүтін сандармен жұмыс істеудің әдістері

2. 1 Паскаль программалау  тіліндегі стандартты функция

 

Өрнектер мәндері компьютердің арнайы программалары арқылы автоматты  түрде есептелетін функциялар - стандарт функциялар деп аталады. Паскаль тілінің стандарт функциялары келесі кестеде көрсетілген.

Кесте 2.

Паскаль тілінің стандарт функциялары

Математикалық функияның  жазылуы

Паскаль тілінде жазылуы

Аргумент типі

Нәтиженің типі

Ескеру

|x|

Abs(x)

real,integer

Real,integer

 

Sinx

Sin(x)

Real

Real

x-радиан

Cosx

Cos(x)

Real

Real

x-радиан

Arctgx

Arctan(x)

Real

Real

x-радиан

Ex

Exp(x)

Real

Real

E=8.718..

Lnx

Ln(x)

Real

Real

x>0

 

Pi

Real

Real

=371415922653…

X2

Sqr(x)

Real

Real

 
 

Sqrt(x)

Real

Real

X=>0

x-санының бүтін бөлігі

Int(x)

Real

Integer

5.76→5

x-санының бүтін бөлігі

Trunc(x)

Real

Integer

5.76→5

х-санының бөлшек бөлігі

Frac(x)

Real

Real

5.76→0.76

Х-санының бүтінге дейін  дөңгелектеу

Round(x)

Real

Integer

5.76→6

Кездейсоқ сан

Random

 

Real

(0,1) аралығындағы кездейсоқ сандар

Кездейсоқ сан

Random(x)

Integer

Integer

(0,x-1) аралығындағы кездейсоқ сандар

Кездейсоқ сандар генераторы

Randomize

   

Кездейсоқ сандар генераторын  іске қосу

Информация о работе Паскаль программалау тілінде калькулятор құру