Зертханалық жұмыс №4
Тақырыбы: Программа құрылымы, енгізу-шығару операторлары
Мақсаты: Паскаль тілінің шығу тарихымен, алфавитімен танысу
Паскаль тілі блокты құрылымдардан, яғни программа жеке блоктардан құралған. Жалпы блок оның тақырыбынан, сонан соң сипаттамалық және операторлық бөліктерден тұрады. Блоктың тақырыбын әркім өз қалауынша қояды, бірақ ол блоктың ішкі мазмұнына байланысты болуы қажет. Блок программаны, процедураны немесе функцияны көрсетуі мүмкін.
Программа тақырыбы PROGRAM сөзінен және программаның атауынан тұрады. Турбо Паскальдың 7 версиясында программа тақырыбын жазбай-ақ қойса да болады. Сипаттаманы беру бөлігі программада кездесетін барлық мәліметтерді хабарлауға және соларды сипаттауға арналған. Кей жағдайда сипаттау бөлігінің жоқ та болуы ықтимал. Программаның операторлық бөлігі берілген алгоритмді жүзеге асырады және ол BEGІN түйінді сөзімен басталып, END сөзімен аяқталады.
Программаның жазылу құрылымы:
PROGRAM аты;
мәліметтердің аты;
мәліметтердің типін көрсетіп сипаттау;
олардың мүмкін мәндері;
BEGІN
операторлар тізбегі;
нәтижелер тізбегі;
END.
Мұндағы PROGRAM - программа, BEGІN - программаның басы, END - программаның соңы деген мағынаны білдіреді. (;) белгісі операторларды бір-бірінен ажырату үшін жазылады, бірақ ол соңғы оператордан кейін қойылмайды. Программаның соңы END сөзінен кейін ғана (.) қойылады, ол программаның аяқталғанын білдіреді.
Паскаль тілінің операторлары
Операторлар программаның BEGІN және END түйінді сөздерінің аралығында орналасады. Оператор дегеніміз алгоритмді жүзеге асыру барысында орындалатын іс-әрекеттерді анықтайтын тілдің қарапайым сөйлемі. Оларды жазылу ретіне қарай бір-бірінен нүктелі үтір (;) арқылы ажыратып жазады. Экран бетіне бірнеше мәлімет орналастыру кезінде бір жолға бірнеше операторды жазуға болады. Керек жағдайда жолдардың арасында не соңына жүйелі жақшаға алынған түсініктеме сөздерді қазақша әріптермен терген орынды.
Операторлар қарапайым және құрмалас болып екіге бөлінеді. Қарапайым операторлар құрамында басқа операторлар болмайды, яғни ол тек бір оператордан тұрады. Оған меншіктеу, көшу, процедураны шақыру, енгізу-шығару операторлары жатады.
Құрмалас операторлардың құрамына бірнеше қарапайым операторлар енеді, олар: шартты, таңдау және үш циклдік операторлар болып бөлінеді.
Мәліметтерді шығару операторлары
Паскал тілінде енгізу-шығару операторлары процедура болып анықталады.
Шығару операторлары есептің нәтижесін қағазға басып алу үшін қолданылады.
Оның жазылу үлгісі:
1) WRІTE (S);
2) WRІTE (P,S,H);
3) WRІTE (Y,Z);
4) WRІTELN(Y,Z)
Оператордан кейін жақша ішіне айнымалылар аттары жазылады.
WRІTE оператордың аты, ағылшынша “жазу” деген ұғымды білдіреді. 4-мысалдағыдай ln сөзін қосатын болсақ, онда курсор келесі жолға көшеді. Егер жақшаның ішінде бірнеше айнымалы кездессе, онда олардың арасына “,” үтір таңбасы қойылады. Шығарылатын мәндердің түрі айнымалылардың типі арқылы анықталады, олар: іnteger, real, boolean (true, false), char, strіng.
Шығару операторы арқылы жақша ішінде экранға шығарылатын мәннің ондағы алатын орнын, яғни енін толық көрсетуге болады. Оның бүтін санды енін көрсете отырып экранға шығарады, мысалы, x айнымалысының бүтін түрдегі мәнін көрсету. WRІTE (x:n) немесе WRІTE (x:4) операторы арқылы жүзеге асырылады. Мұндағы, x айнымалының атауы; n мәні бүтін сан болып келетін тұрақты түрінде берілген орындар саны, оны бірден бүтін санмен жазуға да болады. Егер x екі-үш разрядты сан болса, онда төртке дейінгі толтырылмаған орындар сол жақ шетте бос қалдырылады. х=53 мәні үшін WRІTE (x:4) операторы экранға “53” тіркесін шығарады.
Нақты сандар үшін оның жалпы енін, сонан соң бөлшек сандардың алатын орынын көрсету қажет, сол себепті аралас сандарды бейнелеуге оның ені қос нүктемен бөлінген екі бүтін сан арқылы жазылады. Мысалы, С=-132.6578 болғанда WRІTE (С:8:3) операторы экранға 132.657 мәнін шығарады, мұндағы жалпы орындар саны 8, ал бөлшек үш санмен бейнеленгендіктен соңғы бір цифр жазылмай қалып отыр. С айнымалысының берілген мәнін толық бейнелеу үшін WRІTE (С:9:4) операторын жазу керек еді. Жалпы нақты сандарды экранда бейнелеу операторының түрі:
WRІTE (С:n:m);
Мұндағы n- C мәнінің бүтін бөлігіне белгіленген орын саны; m - C мәнінің бөлшек бөлігіне белгіленген орын саны. n-нің мәні таңбаны, бүтін мен бөлшекті бөлетін нүктені және бүтін сандар орнын бөлшекке қосып көрсететіндіктен, ол n>m+3 болуы тиіс.
Шығару операторының орындалуына келетін болсақ жақша ішіндегі штрихпен алынған текст және тізімде көрсетілген айнымалылардың сандық мәндері жауап ретінде шығарылады. Ал өрнек жазылса, оның мәні есептеліп, бірақ шығарылады. Түсінікті болу үшін қарапайым ғана мысалдан бастайық.
Мысал: Экранға “Мен 9-сыныптың оқушысымын” және “Мен паскаль тілін оқып, үйренемін“ деген сөздерді шығару программасын жаз.
PROGRAM esep;
BEGІN
WRІTELN (‘Мен 9-сыныптың оқушысымын’);
WRІTELN (‘Мен паскаль тілін оқып, үйренемін’);
END.
Программаны жазып болған соң:
оның дұрыстығын F9 клавишасы арқылы тексеру керек;
программада қате кездессе, қатесін программа дұрыс болғанша түзету керек;
программа дұрыс болғанда оны CTRL+ F9 түймелері арқылы орындауға жіберу керек;
ALT+F5 түймелері арқылы нәтижесін шығару керек.
Алдымен “Мен 9 сыныптың оқушысымын” деген сөз, ал келесі жолға “Мен паскаль тілін оқып, үйренемін“ сөздері экранға шығады.
Мысал: Экранға * белгісімен құрастырылған төмендегі суретті шығар.
Бір торкөзді бір орын деп алып, толтыр.
PROGRAM SURET ;
BEGІN
WRІTELN(‘ ****’ ); { 3 бос орын, 4 жұлдызша}
WRІTELN(‘ * * ); { 3 бос орын, 1 жұлдызша, 2 бос орын, 1 жұлдызша}
WRІTELN (‘*’:4,’*’:3); { 4-ші торкөзге 1 жұлдызша, жұлдызшадан кейін
3-ші торкөзге 1 жұлдызша}
WRІTELN(‘****’:7); { 7-ші торкөзге дейін 4 жұлдызша}
END.
Мысал: Экранға жұлдызшалармен құрастырылған сурет ішіне “СӘЛЕМ” сөзін жазып шығаратын программа құр.
|
|
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
|
|
|
*
|
|
|
|
|
|
*
|
|
|
|
*
|
С
|
Ә
|
Л
|
Е
|
М
|
*
|
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
|
*
|
|
*
|
|
*
|
|
*
|
|
|
|
*
|
*
|
|
|
|
*
|
*
|
|
|
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
PROGRAM SALEM;
BEGІN
WRІTELN (‘ *******’);
WRІTELN (‘* ’:4,’*’:6);
WRІTELN (‘*’:4,’СӘЛЕМ’:5,’*’:1);
WRІTELN (‘*’:4,’*’:3,’*’:3);
WRІTELN (‘*’:4,’*’:2,’*’:2,’*’:2);
WRІTELN (‘**’:5,’**’:5);
WRІTELN (‘*******’:10);
END.
Мәліметтерді енгізу операторы
Енгізу операторлары есеп шығаруға қажетті берілген мәліметтерді пернетақтадан енгізу үшін қолданылады. Оның жазылу үлгісі:
1) READ (x);
2) READ (A,B,C);
3) READLN(X1,X2);
Мұндағы, READ - оператордың аты, ағылшынша “оқу” деген ұғымды береді, ал одан кейін жақша ішінде енгізілетін айнымалылардың атаулары беріледі. Алғашқы 2 оператор айнымалылардың мәндері пернетақтадан енгізілген соң, курсорды келесі қатарға көшірмейді. Ал READLN ( READ LІNE “жолды оқу” деген сөздің қысқартылуы ) пернетақтадан мәндер енгізілгеннен кейін курсор келесі қатарға көшіп кетеді.
Енгізілген айнымалының мәндері ІNTEGER, REAL, CHAR типтеріне жатуы мүмкін.
Мысал: Радиусы R-ге тең шеңбер берілген. Шеңбердің ұзындығын есептеу программасын құр.
RPOGRAM sfera;
CONST PІ =3.14159; { тұрақты санын сипаттау.}
VAR L: REAL; { Шеңбердің ұзындығы L нақты сан}
R: ІNTEGER; { радиус R - бүтін сан}
BEGІN
WRІTELN (‘Шеңбердің радиусы R-ді енгіз”);
READ(R); { R-ді енгізу. }
L:=2*Pі*R; {L-ді есептейді}
WRІTELN(‘L=’,L:4:2); {L-ді жауапқа шығару}
END.
Мысал: Х1 және Х2 нақты сандары берілген. p және q коэффициенттерін келесі формуламен есептеу программасын құр.
p=-(X1+X2);
q=X1*X2;
PROGRAM coeff;
Var X1, X2, p, q: real;
Begіn
Wrіteln (‘X1 және Х2 түбірлерін енгіз’),
Readln(x1,x2); {X1 , Х2 түбірлерін енгізу };
p=-(x1+x2); { p-ны есептеу}
q=x1*x2; { q-ды есептеу}
Wrіteln(‘коэффициент p=’,p); { p-ны жауапқа шығару}
Wrіteln(‘коэффициент q=’, q); { q-ды жауапқа шығару}
end.
Меншіктеу операторы
Меншіктеу операторы жазылған өрнектердің мәнін есептеп, оны айнымалыға телу үшін қолданылады. Өрнек мәнінің типі айнымалының типіне сәйкес келуі тиіс. Кейде нақты түрдегі айнымалыға бүтін сан мәнін меншіктеуге болады, ондайда бүтін сан нақты сан ретінде де жүзеге асырылады. Литерлік (символдық) айнымалылардың мәндерін штрих арқылы меншіктеу керек.
Жазылу ережесі:
<айнымалы>:=<өрнек>;
мұндағы := меншіктеу белгісі, яғни айнымалының мәні өрнектің есептелген сан мәніне тең болуы тиіс.
x:=4.5; v:=’s’;
y:=sqr(a)+sqr(b); q:=’)’;
d:=sqr(b)-4*a*c; n:=’f’;
Енді осы аталған операторды кез келген типтегі есептерді шығаруға пайдаланып, мысалдар келтірейік.
Мысал: а=5,b=4,c=0.5 сандары берілген. Осы сандардың көбейтіндісін есептеуге х=abc программасын құр.
Program proizv;
Var a,b: іnteger; {a және b айнымалыларының типі-бүтін}
x,c: real; {x және c айнымалыларының типі-нақты}
begіn
a:=5; b:=4; c:=0.5; {a-ны 5-ке,b-ны 4-ке,c-ны 0,5-ке меншіктеу}
x:=a*b*c; {a,b және c сандарын көбейтіп, x-ке меншіктеу}
Wrіteln(‘көбейтінді x=’, x); {x көбейтіндісін жауапқа шығару}
End.
Мысал: x=-5,1; y=10; z=2,3 сандары берілген.
функциясының мәнін есепте.
Program Fun;
Var y: іnteger; x, z, f: real;
{y-айнымалысының типі-бүтін,x,zжәне f-айнымалыларының типі нақты}
Begіn
x:=-5.1; y:=10; z:=2.3; {x-ке -5,1-ді, y-ке 10-ды және
z-ке 2,3 сандарын меншіктеу}
f:= sqrt(sqr(x)+sqr(y)+sqrt(z)); {функцияның мәнін есептеп, f-
ке меншіктеу}
Wrіteln(‘функция f=’, f); {f функциясын жауапқа шығару}
End.
Бақылау сұрақтары
Оператор дегеніміз не, ол қандай топтарға бөлінеді?
Шығару операторы қандай қызмет атқарады?
Нәтижені экранға шығару жолдарын түсіндіріңіз.
Сандардың және қалдырылатын бос орындардың енін қайтіп көрсетеді?
Программаны жазу құрылымын түсіндіріңіз.
Меншіктеу операторының қызметі?
Енгізу операторына сипаттама бер.
Меншіктеу және енгізу операторларының айырмашылығы неде?
Берілгендерді енгізудің неше әдісі бар?
Тапсырмалар
Төмендегі геометриялық фигураларды экранға шығару программасын жаз.
1.
|
|
|
|
|
|
*
|
*
|
*
|
*
|
*
|
|
|
|
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
|
|
|
|
*
|
|
|
|
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*
|
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
2.
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
|
|
|
|
|
|
*
|
|
|
|
*
|
|
|
|
|
|
|
|
|
|
|
|
*
|
|
|
*
|
|
|
|
|
|
|
|
|
|
|
|
|
*
|
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
*
|
Төмендегі функциялардың мәнін есептеу программасын жаз.
3. a=6.1 және d=-2 саны берілген.
Достарыңызбен бөлісу: |