85433

ПАСКАЛЬ ТІЛІНІҢ НЕГІЗГІ ТҮСІНІКТЕРІ

Курсовая

Информатика, кибернетика и программирование

Паскаль қазіргі кезде дүние жүзіне кең тараған, электронды есептеу машинасына тәуелсіз, әмбебап тіл. Borland фирмасы Pascal тілінің бірнеше версияларын ойлап шығарды. Соның ішінде қазіргі кезде соңғы Turbo Pascal 7.0 версиясы кеңінен қолданылады.

Казахский

2015-03-25

751.93 KB

4 чел.

1    ПАСКАЛЬ ТІЛІНІҢ НЕГІЗГІ ТҮСІНІКТЕРІ

1.1 Турбо Паскаль тіліне сипаттама

Қазіргі таңда компьютер әлемінде әртүрлі программалау тілдері бар. Бірдей іс – қимылдан тұратын программаны Бейсик тілінде де, Паскаль немесе Си тілдерінде де жазуға болады. Бірақ солардың ішінде қайсысы жақсы деген сұрақ туындайды. Программалауды үйренуде паскаль тілі қолайлы. Паскаль тілін 1973 жылы швейцар математигі Никлаус Вирт жасап шығарады да, атақты француз физигі, математигі, философы және дүние жүзінде бірінші есептеу машинасы арифмометрді жасаған Блез Паскальдің құрметіне «Паскаль » деп ат қойды.

Паскаль қазіргі кезде дүние жүзіне кең тараған, электронды есептеу машинасына тәуелсіз, әмбебап тіл. Borland фирмасы Pascal тілінің бірнеше версияларын ойлап шығарды. Соның ішінде қазіргі кезде соңғы Turbo Pascal 7.0 версиясы кеңінен қолданылады.

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

Процессор жадыда жазылған амалдарды орындайды. Белгілі бір мақсатқа арналған процессор амалдырының тізімін машина тіліндегі программа деп атаймыз. Программалау тілінде жазылған командалардың процессорда машина тіліндегі командаға аударуды жүзеге асыратын программаны компилятор деп атаймыз.

Программа – магниттік тасымалдаушыда файл түрінде сақталып, әрбір адамның командасы бойынша компьютер жадына жүктеліп, орындауға арналған машина тіліндегі нұсқаулар жиыны.

Программалау дегеніміз программаларды құру процессі. Ол келесі қадамдардан тұрады:

Программаға қойылған талаптарды аяқтау. Бұл этап маңызды бөлімдердің бірі болып табылады.

Турбо Паскаль жарлығын тінтуірдің оңжақ батырмасымен екі рет шерту қажет.

1-сурет. Пайда болған Турбо Паскаль терезесінің көрінісі.

            

2-сурет. Турбо Паскальда код теру. Бағдарлама «Program» сөзінен басталып, «end.» сөзімен аяқталады

1.2  Бағдарламалаудың негізгі элементтері

Жоғарғы деңгейдегі ТУРБО ПАСКАЛЬ алгоритмді тілін 60-жылдардың соңында профессор Н.Вирт жасады (Цюрих жоғарғы техникалық мектебі). Француз математигі әрі философы Блез Паскальдің даңқына тілдің атауы беріледі. Программалауға оқыту үшін арнайы жасалған тіл, өте тиімді болды және мамандардың көңілін бірден өзіне қаратты. Қысқа уақыт ішінде ПАСКАЛЬ тілі бүкіл әлемде кеңінен танымал болып, кәзіргі күннің өзінде де ол барлық есептегіш машиналар түрлеріне енгізілген.

Осы ПАСКАЛЬДІҢ мақсаты – оқырмандарды PASCAL 7.0 тілінде программалауды үйрету. Әлемнің түпкір – түпкіріндегі миллиондаған компьютер қолданушылар ПАСКАЛЬ тілін ірі проектілер үшін қолданғанымен, бұл тіл алғашында оқушыларды жаңа заманғы программалауға үйрету үшін өңделген. Қазыргі күнге дейін ПАСКАЛЬ программалау тілі, осы салаға алғаш аяқ басқан ынтазарларға, дұрыс жол болып табылады.

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

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

  1.  бастапқы мәліметтер қай түрінде жадыға енгізіледі;
  2.  мәліметтерді жадыда қалай сақтау керек;
  3.  мәліметтерді өндеуде арналған командаларды қалай анықтау керек;
  4.  мәліметтер программадан пайдаланушыға қай түрінде берілуі тиіс.

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

Еңді программаның құрылымын келесі түрде көрсетуге болады:

Программа тақырыбы:

program < программа аты > (Input, Output);

{программа тақырыбы}

Сипаттама бөлімі:

Uses < 1 модуль аты, 2 модуль аты,.... >;

{Пайдаланылатын модульдер аты}

Label …..; {Таңбалар сипаттамасы

Индентификаторларды және 0 ден 9999 сандарын танба ретінде пайдалануға болады}

Const …..;  {программада қолданатын тұрақтылар сипаттамасы}

Type .......;   { программада қолданатын мәліметтер типтерінің сипаттамасы}

Var……..; { айнымалылар сипаттамасы}

Procedure ........; {программаның процедуралары}

Function ..........; {программаның функциясы}

Программа денесі:

Begin    

Оператор ; { программа денесі. Орындалатын операторлар бөлімі}

……..

End.                   

      

1.3 Операторлары                                                                        

Тармақталу операторы:

Егер де есептеу процессінің орындалу барысы қандай да бір шарттың орындалуына байланысты болса, онда бұл процесс тармақталу процессі болып табылады. Ал бұл есептеу процессінің алгоритмі тармақталу құрылымды және де әрекеттердің бағыты олардың тармақтары деп аталады.

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

Жазылуы: if<шарт> then <1 оператор>else <2 оператор>;

Мұндағы: - 1 оператор, 2 оператор- жәй немесе құрама операторлар болуы мүмкін;

шарт- кез келген қатынас операциясын немесе логикалық өрнек.

Тармақталу операторларында шарттар да күрделі де болуы мүмкін. Күрделі шарт логикалық амалдардың (and, or, not) көмегімен құрылады.

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

Операторлар.

Операторлар программаның жұмыс істеу амалын береді және бір-бірінен нүкте үтірмен айырылады. Операторлар жәй және структуралық (күрделі) операторларға бөлінеді.

Жай операторлар:

Құрамында басқа операторлар жоқ операторларды жәй операторлар деп атайды. Осы операторларға:

-меншіктеу операторы,

-шартсыз оператор,

-процедураны шақыру операторы

-бос оператор жатады.

Меншіктеу  операторы

Осы оператор мынадай түрде беріледі:

Айнымалы: =арифметикалық өрнек

Мысалы:

a:= b+b

d:= a/c

y:= d+b/a операторларда a,d,y – ‘:=’ символының оң жағында жазылған арифметикалық өрнектерді есептелген мағыналарын компьютердің жады ұяларында сақтайтын айнымалылар.

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

Шартсыз оператор go to

Go to шартсыз операторы программадағы операторлардың жұмыс ретін өзгертіп, келесі жасалатын операторды көрсетеді. Осы оператордың жазылуы төрт орыннан аспайтын бүтін санмен берілетін белгіден тұрады. Паскальда белгі арнайы енгізіліп, программада алдын ала белгіні жазу бөлімінде label (Белгі – Метка) деген қызметтік сөзбен көрсетіледі. Төмендегі программаның

program  р6_1(output);

label 30;

var x, y; 

begin

х:=0; у:=0;

30: write (х:4, у:4);

х:=х+0.1; у:=х+0.2;

goto 30

end.

Output: 0  0     0 . 0

0 . 1     0 . 3                                 

0 . 2    0 . 4

. .

Қорытындысы экранға кезекпен шыға береді. Программа жұмысын тоқтату үшін Ctrl+Break басу керек.

Процедураны шақыру операторы

Мұндай операторды алдын ала анықталған немесе стандарттық процедураны активтендіру үшін қолданады. Мысалы:

Clrscr;

InitWork (True);

Экранды тазалайтын стандартты процедураны және қолданушының процедурасын шақыру.

Бос оператор

Бос операторларда ешқандай символ болмайды және ешқандай әрекет жасалмайды. Әдетте бос оператор блоктан шықпай жергілікті (локальдік) немесе жалпы (глобальдық) операторлардың аяғына өту үшін қолданылады.Ол үшін end операторының алдына белгі мен екі нүкте қойылады.

Мысалы:

Label  Белгі

Begin

go to  Белгі;  (Блоктың соңына өту)

Белгі : (Бос оператор меткамен көрсетілген)

End.

Структуралық операторлар

Структуралық операторлары қатал анықталған ереже бойынша құралған конструкциялардан тұрады. Оларды үш топқа бөлуге болады: құрамды, шартты, қайталау.

Құрамды операторлар

Құрамды операторлар бір бірінен нүкте үтірмен бөлінген, тізбектеліп кезекпен оператордан тұрады да, begin  және end операторлық тырнақшалармен қоршаулы болады.                

Шартты операторлар

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

Төмендегі берілген  функцияның

y= kx, егер x<b

y=c, егер x>b      

графигі суретте көрсетілген. Осы функцияның x>=a дағы мағынасын анықтау үшін әрі қарай алгоритм  құрылады.

Осы график бойынша, егер x= a<b болса, функцияның мағынасы х аргументінің мағынасына байланысты болады: y=kx және  x= a>=b болған кезде  y=c.

Программаны құру үшін логикалық өрнектің түсінігін білу керек. Екі айнымалыны салыстыру үшін олардың мағыналарын білу керек, мысалы: x=a және  z=d.Сонда, егер   a>d  болса мынадай өрнек x>z  ақиқат болады (true), егер a<=d  болса x>z жалған (false) болады.Логикалық өрнектер Паскаль тілінде бұрын келтіргендей (3.3,4.4 п.п.) жазылады:

x>z

x>=z

x<z

x<=z

x=z

x<>z

Программалау тілінде таралатын шартты операторлар if,  if… then… else т.б. қолданылады.

IF операторы

Шарты оператор if  берілген шарт орындалған кезде программаның жүрісін өзгертеді. Турбо Паскальда осы оператор келесі түрде жазылады:

If  логикалық өрнек then Операторлар 1 else Операторлар 2

Мұнда , then- нен кейін және  else алдында нүкте үтір қойылмайды.

Егер логикалық өрнектің мағынасы ақиқат (true) болса, then-нен кейінгі Операторлар 1 орындалады,жалған болса, else-ден кейінгі Операторлар 2 орындалады. Егер осы операторлар құрамды болса, begin  және end  операторлық жақшаларымен қойылады.

  

2    ПРОЦЕДУРАЛАР ЖӘНЕ ФУНКЦИЯЛАРЫ

Көмекші программаның 2 түрі бар екені белгілі. паскальда біріншісін процедура деп, екіншісін функция деп атайды. Көмекші программа толық программа түрінде құрылып, негізгі программаны var бөлімінен соң орналастырылады. Олардың саны бірнеше болуы да мүмкін.

Процедура тақырыбы көмекші программаны аңықтаушы PROCEDURE қызметші сөзімен басталып, оның оң жағына процедураның атау енгізіледі. Одан әрі жай жақшалар ішінде формальды параметрлер сипатталады да, тақырыптың соңына нүктелі үтір символы қойылады. Тақырыптан соң негізгі процедурадағы сияқты сипаттау бөлімдерінің енгізілуі мүмкін. Бұдан әрі BEGIN, END, қызметші сөздерімен шектелген операторлар бөлімі жазылады да, END – тен соң нүктелі үтір (;) қойылады.

Procedure <атау >      [(< типтері сипатталған формальды параметрлер тізімі>)]

[< сипаттау бөлімдері >]

begin

операторлар бөлімі

end.

1-мысал. х = 1.7, x= 3.52, x= 18.7 үшін у= 3x2 + √6x – 10 функциясы мәндерінің қосындысын табу процесі.

Процедураны пайдаланып, қосындыны табу прграммасы.

Program mander;

Uses crt;

var x1, x2, x3, y1, y2, y3, s : real;

procedure escpt (var t: real; var p: real);

begin

p:= 3* sqr(t) + sqr (6* t) -10

end;

begin clrscr;

write ('x1, x2, x3 =? ');

readln (x1, x2, x3);

espt (x1, y1); espt (x2, y2); espt (x3, y3);

S:= y1 + y2 + y3;

write ('S= ',S)

Процедурада пайдаланған t айнымалысы нақты параметр мәнін қабылдайтын р айнымалысы – мәні есептеліп, нақты параметрге меншіктелетін формальды параметрлер соңғы BEGIN, END операторлық жақшаларының ішіне жазылғандар – программаның операторлар бөлімі. Программаның орындалуы осы оператордан басталады. Негізгі процедураға енгізілген (хк, ук)  еspt атауы процедураны шақыру операторы.

2-мысал. Септіліктер сұрақтарына жауап беретін қысқаша аңықтама программа құру керек.

Program gramgeogr;

Uses crt, system;

var m:integer;

procedure  septik;

begin writeln ('септіктер, септеу:');

writeln ('Атау: кім? не? – олар, кітап.');

writeln ('Ілік : кімнің? ненің? – олардың, кітаптың');

writeln ('Барыс: кімге? неге? – оларға, кітапқа');

writeln ('Табыс: кімді? нені? – оларды, кітапты');

writeln ('Жатыс: кімде? неде? – оларда, кітапта');

writeln (' Шығыс : кімнен? неден? – олардан, кітаптан ');

writeln ('Көмектес: кіммен? немен? – олармен, кітаппен');

end.

Функция.

Бір ғана функция мәні көмекші программасына Паскальда функция деп атайды. Функцияның процедурадан айырмашылықтары:

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

формальды параметрлер – нақты параметрмен шектелетін параметр – мәндер.

Мұндағы аңықтаушы функция мәнін есептеу операторының жазылуында да өзгешелік бар: өрнек меншіктелетін айнымалының атауы function болуы керек. Негізгі программаға енгізілетін функцияны шақыру командасы да жеке оператор түрінде емес, sin, cos т.б стандарттары функциялар сияқты, өрнекке енгізіліп жазылады.

Функцияны пайдаланып, 1- мысалдың программасын мынадай түрде құру мүмкін.

Program mander;

Uses crt;

var x1, x2, x3, y1, y2, y3, s : real;

function escpt (t: real ): real;

begin escpt:= 3 * sqr(t)+ sqrt(6 * t)- 10 end;

begin clrscr;

write ('x1, x2, x3 =? ');

readln (x1, x2, x3);

espt (x1, y1); espt (x2, y2); espt (x3, y3);

S:= y1 + y2 + y3;

write ('S= ',S);

end.

Компьютер негізгі программадағы Espt (х1) шақыруын оқып, Espt аталуы көмекші программа – функцияға өтеді де, х1-ді t-ге меншіктеп, өрнек мәнін есептейді. Есептеген мәнді негізгі программадағы Espt(х1) шақыруының орнына қойылады, т.с.с.

2.1 Қайталану командалары

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

1.FOR – параметрлі циклдік оператор;

2.WHILE – алдын – ала циклдің орындал шартын тексеретін оператор;

3.REPEAT –  соңында циклдің тоқтау шартын тексеретін оператор.

Циклдік операторлар структуралық операторлар тобына жатады, өйткені құрамына бірнеше операторлар кіреді. Программада алдымен циклдің тақырыбы жазылады, онан кейін қайталанатын операторлар бөлімі – цикл  денесі  жазылады. Цикл денесі бір немесе бірнеше операторлардан тұруы мүмкін. Барлық циклдық операторлардың келесі ерекшелігі бар:

а) Қайталанатын операторлар ( циклдің денесі ) бір – ақ рет жазылады;

ә) Циклге тек қана басынан ( тақырыбы ) ғана кіруге болады;

б) Циклің айнымалылары алдын – ала циклге дейін анықталуы тиіс;

в) Цикл денесінде көшу операторын ( Goto ) қолданып программаның басқа бөліктеріне шығуға болады.

д)Цикл ұйымдастырғанда, міндетті түрде циклден шығу шарты орындалатынын қарастыру керек, әйтпесе программа орындалуы циклге келгенде тоқтап тұрып қалады ( программа «мәңгі циклденіп» қалады ). Цикл

Циклінің жазылу түрі: WHILE  P  DO  S

мұндағы  WHILE P DO – цикл тақырыбы; WHILE ( Әзірше ), DO    

( орындау) –қызметші сөздер (DO сонына нүктелі үтір қойылмайды ) ;

Р- шарт (логикалық өрнек); S –Цикл денесі .

WHILE цикілінде бірінші рет  Р-нің мәні тексеріледіде , егер мән  TRUE

Болса ( шарт сақталса ),S орындалып, басқару қайтадан Р шартынын қайталану кездегі сақталуын тексеруге беріледі.Егер Р мәні  FALSE болса, S орындалмай, басқару WHILE  циклінен  соң кездесетін бірінші операторға өтеді.

МЫСАЛ: n!  мәнін есептеу керек .

Program fakt; uses crt;

Var   r,n,k:integer;

Begin

Clrscr; write(‘n=?’);   readn(n); k:=1; r:=1;

While k<=n  do  begin  r:=r*k; k:=k+1

Write(n, ‘!=’,r);

End.

Write операторы параметрлер ішінде үтірлер арқылы бөлініп және дәйекшелерге алынып жазылған мәндерді сол күйінде шығарады. Мысалы,(10)-программаның орындалу нәтижесінде n=6 үшін Write(n,’!=’,r) операторының экранға шығаратын мәтіні:6!=720.

Цикл ішінде цикл.

Паскальда FOR арқылы жазылатын цикл ішінде циклдің жазылу түрі:

For k:=k to k do

For j:=j to j do s

Мысалы: [1..10, 1..10] төртбұрышты кесте форматында экранңа көбейту кестесінің нәтижелерін шығару керек.

Program keste; uses crt;

Var   a,k,j:integer;

Begin

Clrscr;

For   k:=1 to 10 do

Begin

For   j:=1 to 10 do

Begin  a:=k*j; write(a:3) end; writeln

End;

End.

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

2.2 РASCAL тілінде  жұмыс істеу

Қазіргі заманымызға сай көпшілік орғандарда немесе басқада жұмыс орындарында компьютермен жұмыс істейтін адамдар PASCAL тілінде , көпшілікті өз шаруаларын тындыруда. Өз елімізді көркейту үшін, PASCAL тілін нақты, толық, жетік білуіміз керек, ол үшін Қазақстан Республикасының азаматтар, яғни біз өзіміздің күш қуаттарымызды, жігерлігімізді, алғырлығымызды, тапқырлығымызды қосуымыз керек.

Біз алдын ала жазылған пограмманың компьютерге енгізілуін, дұрысталуын және орындалуын қарастырамыз.

PASCAL-дағы мәліметтер типінің жариялануы, өрнектер, операторлар, циклдік есептеу процесстері, қосалқы программалар, бір өлшемді және екі өлшемді массивтер, жиындар, жазба, файлдар мен стандартты модульдерді толық меңгеруіміз қажет. Жалғыз бұларды ғана емес, сонымен қатар  PASCAL тілінде есептерді шығарып программаның листингін, интерфейсін шығару болып табылады.

Паскальда жұмыс жасау: Бірінші программаны іске қосар кезде қатты дискіде жазылған Паскаль бар компьютер болуы керек. Паскальді іске қосу үшін Windows  немесе Norton Commander –де жұмыс істейтін дағды қажет. Қарапайым текістік редакторда жұмыс істей алу, директорийлар, файлдар не екенін және программаларды дискіде сақтауды білу керек.

Турбо Паскальді іске қосу:Компьютерді іске қосқанда, автоматты түрде Norton Commander операциялық сырты немесе Windows операциялық жүйесі іске жүктеледі.

Бірінші жағдайжа Паскаль директориясының ішінен ТРХ. ехе  файлы табылады. Осы файлды Enter пернесін басу арқылы Паскаль іске қосылады.

Windows операциялық жүйесі бойынша, экраннан Turbo Pascal белгісін ТР немесе ВР түрінде тауып тышқанның пернесін екі рет басады, немесе бір рет басып, одан кейін Enter пернесін басады. «Тышқан» көмегімен Пуск пернесін басып одан кейін «Программы» басқанда, «Проводник» терезесі шығады. Сілтеудің сол жақ терезесінен тармақ көрсетіледі. Осы жерден логикалық дискіні тауып, қосу (+) белгісін шертеді. Ақ тікбұрыш түрінде көрінген Трх. ехе файлын компьютер қолдаушы екі рет шертеді.

Программалар текстін енгізу:Жаңа программа текстін редакциялау терезесіне кіргізу үшін:

пернелер арқылы F10 функционалдық пернесін басып, одан

пернесі арқылы File-ға барып, содан кейін енгізу пернесі

Enter-ді басады. Әрі қарай пернелерімен New (Жаңа-Новый) тауып алынады да, қайтадан енгізу пернесі басылады;

тышқан көмегімен негізгі менюдан пернесімен File, одан шыққан менюден New таңдалады. Әрі қарай осы New командасын таңдап алуды қысқаша [File> New] деп жазуға болады.

Ашылған терезеде курсорды Tab пернесі арқылы жылжытуға болады, кері жылжыту үшін Shift+Tab басылады.

Программа тексті қарапайым тексті редакторда әдеттегі тексті сияқты теріледі. Бас әріптерді жазу үшін, Shift пернесін басып тұрып қосымша жазатын символдың пернесі басылады. Ұзын перне Бос орын (Пробел) пернелер тақтасының алдыңғы жағында орналасқан.

Латын әріпін кириллицаға ауыстыру Ctrl+ Shift, керісінше ауыстыру Shift+ Ctrl пернелерімен орындалады. Тексті тек қана бас әріптермен теру үшін

Caps Lock пернесін бір рет қана басып әріптер теріледі. Қайтадан кіші әріптерге көшу үшін сол перне тағыда бір рет басылады.

Есте сақтау керек: кез-келген команданы компьютердің оперативтік жадына кіргізу, тек қана  Enter пернесін басу арқылы мүмкін болады.

Программаны дискіде сақтау: орындалуға дайын программаны, дискіге сақтау үшін File менюынан Save File As (Файлды қалай сақтау –Как сохранить файл) диалог терезесі шығады. Программаны жазу үшін директорияны таңдап алып программаға ат беріледі.

Егер Паскаль ұсынған директорияға қолдаушы келіспесе директориядан шығу есігі қызметін атқаратын екі нүктені (..) табу үшін, терезе айналдыру жолағы арқылы парақталады. Соны екі рет басса, жоғарғы директорияға көшеді. Осылайша директорияларды аралай отырып соңында керекті директорияға жетеді. Оны екі рет басып сол директория ішіне кіреді.

Бұдан кейін сол терезенің жоғарғы жағындағы файл атына арналған өріс іші басылады, курсор жанып – сөнеді. Ондағы жазылғандарды өшіріп керекті файл атын енгізеді. Осыдан кейін Enter немесе экрандағы ОК пернесі басылады. Программа дискіге жазылады. Дискіге көшірілгеннің дәлелі ретінде программаның басы Noname00.pas – тан файлдың атына ауысады.

Егер программаның текстін басқа директорияға немесе басқа компьютер дискісінде сақтау керек болса, онда Save (Сақтау - Сохранить) командасы орындалуының алдында, ағымды директорияда File менюындағы Change dir (Директорийді ауыстыру – Изменить директорию) командасын қолдану арқылы ауыстыру қажет.

Бұл жағдайда Change dir диалог терезесінің Directory name (Директорияның аты – Имя директорий) өрісінде ағымды директорияның аты көрсетілген. Керек директория Directory tree (директориялар тармағы)

Тізіміннен таңдап алынады. Егер керекті директория басқа дикіде болса, онда Drives (Дискілер - Диский) жолын екі рет басып, онда осы әдіспен керекті дискі және директория таңдалып, ОК пернесі басылады. Одан кейін программа орындалуға жіберіледі. Орындағаннан кейін негізінде программаны қайта түзетіп, толықтырып және келесі орындалудың алдыңғы [File> Save] арқылы тағы да сақтайды. Бірақ бұл жолы диалог терезесі шықпайды. Паскаль еш нәрсе сұрамай дискіден ескі программаны өшіріп, оның орнына экранда көрініп тұрған программаны сол атпен жазады.

Егер программаның ескі варианты кейінде керек болса, File File As шақырылады, экранда сол диалогтық терезе шығады. Ол директориядағы файл атын көрсетеді. Аты немесе директориясы өзгертіліп ОК пернесі +басылады. Сонда экрандағы программа дискінің басқа орнына жазылады, ал ескі файл өзгерусіз қалады.

2.1.1 Есептің қойылымы

Қолданушының әрекетіне сәйкес экрандағы сағат тілі қозғалатындай және оның координатын анықтайтын программаның алгоритмін құру.

Сағаттын тілі белгіленген уақытта және ара-қашықтықта қозғалады, оның қозғалысы тәртіппен.

Қолданушы сағатты белгіленген уақытында қоңырау соғылуы керек. Қолданушы уақытты белгілеп оның белгіленген уақытта қоңырау соғылуын қадағалау керек.

Қолданушы сағаттың қоңырауын өзі белгілей алады.

2.1.2 Программаның басты айнымалылары мен құрылымдары.

program sagat;  Программа аты

uses crt,graph,dos;    символдарды, сандарды, графиканы,тексті пайдалану

type    типі

{'Сағат экран бетінде’ }

clcdt=record

h:word;    жадтың сәйкес көлемі

m:word;

s:word;

end;

var    айнымалылар

alt,tim,ltim:clcdt;

drv,mode:integer;    бүтін сандармен берілген типі

ss:word;    жадтың сәйкес көлемі

rej:integer;    бүтін сандармен берілген типі

c:char;

zf:boolean;    логикалық мән

ye,mo,da,nd:word;

ada,amo,aye:word;

procedure stout(a:clcdt);    процедура

var    айнымалылар

al:real;    нақты санның берәлген типі

x,y:integer;    бүтін сандармен берілген типі

x1,y1:integer;    бүтін сандармен берілген типі

n:integer;    бүтін сандармен берілген типі

m:string;    бүтін сандармен берілген типі

begin    есеп басы

cleardevice;    құрылғыны тазалау

circle(240,240,220);    нүкте

al:=0;

settextjustify(1,1);

n:=12;

repeat

x:=trunc(240+225*sin(al));

y:=trunc(240-225*cos(al));

x1:=trunc(240+215*sin(al));

y1:=trunc(240-215*cos(al));

line(x,y,x1,y1);    жол

x:=trunc(240+235*sin(al));

y:=trunc(240-235*cos(al));

str(n,m);    

outtextxy(x,y,m); мәтіннің сыртында

if (n=12) then n:=1 else n:=n+1;

al:=al+3.14150/6;

until (al>=3.14159*2);

al:=((3.14159*2)/60)*a.m;

x:=trunc(240+200*sin(al));

y:=trunc(240-200*cos(al));

line(240,240,x,y); жол координатасы

line(240+1,240+1,x+1,y+1);

al:=((3.14159*2)/60)*a.s;

x:=trunc(240+190*sin(al));

y:=trunc(240-190*cos(al));

line(240,240,x,y);

al:=((3.14159*2)/12)*a.h;

x:=trunc(240+150*sin(al));

y:=trunc(240-150*cos(al));

line(240,240,x,y);

line(240+1,240+1,x+1,y+1);

end;

begin

rej:=0;

alt.h:=0;

alt.m:=0;

alt.s:=0;

ada:=0;

amo:=0;

aye:=1997;

drv:=DETECT;    драйверді табу

initgraph(drv,mode,'');    графика кітапханасын ашу

gettime(ltim.h,ltim.m,ltim.s,ss);    уақытты белгілеу

repeat    қайталау

if (keypressed) then c:=readkey else c:=#255;

if (c=#0) then begin

c:=readkey;

zf:=true;

end;

if (c=#9) then begin

rej:=rej+1;

zf:=true;

if (rej=4) then rej:=0;

if (rej=2) then closegraph;

if (rej=0) then initgraph(drv,mode,'');

end;

gettime(tim.h,tim.m,tim.s,ss);    уақытты белгілеу

getdate(ye,mo,da,nd);    күнін белгілеу

if ((tim.s<>ltim.s)and(rej=0)) then begin

stout(tim);

ltim:=tim;

end;

if (rej=1) then begin

if zf then begin

stout(alt);

outtextxy(500,100,'Сағат');

zf:=false;

end;

if ((c=#83)and(alt.h>0)) then alt.h:=alt.h-1;

if ((c=#82)and(alt.h<23)) then alt.h:=alt.h+1;

if ((c=#79)and(alt.m>0)) then alt.m:=alt.m-1;

if ((c=#71)and(alt.m<60)) then alt.m:=alt.m+1;

if ((c=#81)and(alt.s>0)) then alt.s:=alt.s-1;

if ((c=#73)and(alt.s<60)) then alt.s:=alt.s+1;

if ((c=#83)or(c=#82)or(c=#79)or(c=#71)or(c=#73)or(c=#83)) then zf:=true;

end;

if ((tim.s<>ltim.s)and(rej=2)) then begin

gotoxy(1,1);

textbackground(1);     мәтіннің артындағы фон

write('Time:  ',tim.h:2,':',tim.m:2,':',tim.s:2,'   ',da:2,'.',mo:2,'.',ye:4,'  ');

textbackground(0);

ltim:=tim;

end;

if (rej=3) then begin

gotoxy(1,1);

textbackground(1);

write('Alarm:  ',alt.h:2,':',alt.m:2,':',alt.s:2,'   ',ada:2,'.',amo:2,'.',aye:4,'  ');

textbackground(0);

if ((c=#83)and(alt.h>0)) then alt.h:=alt.h-1;

if ((c=#82)and(alt.h<23)) then alt.h:=alt.h+1;

if ((c=#79)and(alt.m>0)) then alt.m:=alt.m-1;

if ((c=#71)and(alt.m<60)) then alt.m:=alt.m+1;

if ((c=#81)and(alt.s>0)) then alt.s:=alt.s-1;

if ((c=#73)and(alt.s<60)) then alt.s:=alt.s+1;

if (c=#13) then begin

clrscr;     экранды тазалау

write(' Жыл');

readln(aye);

write(' Ай');

readln(amo);

write(' күн');

readln(ada);

clrscr;

end;

end;

if ((aye=ye)and(amo=mo)and(ada=da)and(alt.h=tim.h)

and(alt.m=tim.m)) then sound(1000) else nosound;

until (c=#27);

closegraph;    графика жабылады

end.    Соңы

3    ИНТЕРФЕЙСТІ СИПАТТАУ

Программаны орындауға жібергеннен соң экранда сағат тілдері бар сағат ашылады, келесі блок туралы информациямен есеп шығады. Экран ашылған кезде сағат тілдері қозғалып тұрады. Басты меню мынандай пункттерді қамтиды:

  1.  Сағат сандары
  2.  Сағат тілдері
  3.  Берілген уақыт

Менюдің  қажетті пунктін баңдар және 'enter' пернесі арқылы таңдауға болады. Бұл жағдайда ішкі меню ашылады.

Сағат тура берілген уақытты көрсетеді.

3.1 Жұмыс нәтижесі.

                                      

ҚОРЫТЫНДЫ

Турбо Паскаль тілі қарапайым, әрі көпшілікке түсінікті тілдер қатарына жатады. Айтылмыш тілде программалау, бастаушы бағдарламалаушыға басқа тілдерге кіріспе ретінде қарастырылады. Паскаль тілі қиын деген есептерді, тапсырмаларды шешуге мүмкіндік береді. Тілдің операторлары оның негізгі элементтері болып табылады және оларсыз Паскаль тілін елестету мүмкін емес. Менің қарастырған негізгі тақырыбым Turbo Pascal «Қоңыраулы сағат экран бетінде». Сағатты экран бетіне шығарып, сағат тілін осы операторларға тиісті цикл құру. Цикл  бұл – айналу, яғни бұл оператор құрылған бағдарламаны цикл бойынша орындалуына мүмкіндік береді және ол бастапқысына қайтып келеді.

Курстық жұмысты жасау барысында мен тапсырмаларды тәжірибелік бағытта жасауға, мәліметтер қорын бағдарламалауға, Turbo Pascal бағдарламалау тілінде жұмыс жасауға және алгоритмді қарастырып, шеберлігін арттыруға үйрендім. Және алған негізгі сабағым, Turbo Pascal тілі белгілі бір ережелерге сәйкестендірілген тіл. Егер ол ереженің біреуі орындалмаса, онда бағдарламада қате пайда болады. Сондықтан кез келген операторды дұрыс, қатесіз, орынды енгізуге тырысуы керек.

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


 

ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ

1.А.И. Марченко, Л.А. Марченко «Программирование в среде Турбо      Паскаль», пятое издание, базовый курс, Киев, «ВЕК+», 1999 – 464с.

2.А.О. Меженный Турбо Паскаль М: издательский дом "Вильялес".

3.Б. Страуступ «Языки программирования», М. Изд.ин.лит., 2000 г.

4.Васильев П.П. Турбо Паскаль − мой друг: М.: Компьютер, ЮНИТИ,1995.-96 б.

5.В.Ф. Шаньгин, Л.М. Поддубная «Программирование на языке Паскаль»,М.,Высшая школа, 1991 г.

6.В.В. Фаронов «Основы Турбо-Паскаля» - М., Учебно-инженерный

центр«МВТУ-ФЕСТО ДИДАКТИК», 1992 г.

7.В.В. Фаронов «Турбо Паскаль 7.0.Учебное пособие. Издание 7, перераб.» - М., Нолидж,издатель МолгачеваС.В., 2001–416с.

8.Ж.Ж. Айтқожа "Turbo Pascal 7.0"  Қарағанды 2008.

9.Ж.Ә. Массанов, П.А. Белгібаев, А.С. Бижанова, Ә.Ә. Маңұлов."Turbo Pascal."Алматы 2004.

10.Культин. Программирование в Turbo Pascal 7.0 и Delphi /2-е изд.,перераб. и доп.-СПб.: БХВ-Петербург, 2002.-151 б.

11.Клинт Хикс «Руководство пользователя», Ин.лит., 2000 г.

12.С.А.Абрамов «Задачи по программированию», М.,Наука,1988 г., 225с

13.С.А. Немнюгин   Turbo Pascal  практикум - Санкт - Петербург "Питер".

14.Никита Культин «Самоучитель. Программирование в Turbo Pascal 7.0 и Delphi», 2-е изд, перераб. и доп., СПб, БХВ-Петербург, 2002 г.–416 с.

15.О. Камардинов "Информатика" Алматы 2004.ый учебник «СИ

и Паскаль»,Ким С.Т.,Мырзаев Р.С.,2003 г.

16.BIVV. Turbo Pascal 7.0, Киев, 1996.

ҚОСЫМША

program sagat;

uses crt,graph,dos;

type

{'Сағат экран бетінде’ }

clcdt=record

h:word;

m:word;

s:word;

end;

var

alt,tim,ltim:clcdt;

drv,mode:integer;

ss:word;

rej:integer;

c:char;

zf:boolean;

ye,mo,da,nd:word;

ada,amo,aye:word;

procedure stout(a:clcdt);

var

al:real;

x,y:integer;

x1,y1:integer;

n:integer;

m:string;

begin

cleardevice;

circle(240,240,220);

al:=0;

settextjustify(1,1);

n:=12;

repeat

x:=trunc(240+225*sin(al));

y:=trunc(240-225*cos(al));

x1:=trunc(240+215*sin(al));

y1:=trunc(240-215*cos(al));

line(x,y,x1,y1);

x:=trunc(240+235*sin(al));

y:=trunc(240-235*cos(al));

str(n,m);

outtextxy(x,y,m);

if (n=12) then n:=1 else n:=n+1;

al:=al+3.14150/6;

until (al>=3.14159*2);

al:=((3.14159*2)/60)*a.m;

x:=trunc(240+200*sin(al));

y:=trunc(240-200*cos(al));

line(240,240,x,y);

line(240+1,240+1,x+1,y+1);

al:=((3.14159*2)/60)*a.s;

x:=trunc(240+190*sin(al));

y:=trunc(240-190*cos(al));

line(240,240,x,y);

al:=((3.14159*2)/12)*a.h;

x:=trunc(240+150*sin(al));

y:=trunc(240-150*cos(al));

line(240,240,x,y);

line(240+1,240+1,x+1,y+1);

end;

begin

rej:=0;

alt.h:=0;

alt.m:=0;

alt.s:=0;

ada:=0;

amo:=0;

aye:=1997;

drv:=DETECT;

initgraph(drv,mode,'');

gettime(ltim.h,ltim.m,ltim.s,ss);

repeat

if (keypressed) then c:=readkey else c:=#255;

if (c=#0) then begin

c:=readkey;

zf:=true;

end;

if (c=#9) then begin

rej:=rej+1;

zf:=true;

if (rej=4) then rej:=0;

if (rej=2) then closegraph;

if (rej=0) then initgraph(drv,mode,'');

end;

gettime(tim.h,tim.m,tim.s,ss);

getdate(ye,mo,da,nd);

if ((tim.s<>ltim.s)and(rej=0)) then begin

stout(tim);

ltim:=tim;

end;

if (rej=1) then begin

if zf then begin

stout(alt);

outtextxy(500,100,'sagat');

zf:=false;

end;

if ((c=#83)and(alt.h>0)) then alt.h:=alt.h-1;

if ((c=#82)and(alt.h<23)) then alt.h:=alt.h+1;

if ((c=#79)and(alt.m>0)) then alt.m:=alt.m-1;

if ((c=#71)and(alt.m<60)) then alt.m:=alt.m+1;

if ((c=#81)and(alt.s>0)) then alt.s:=alt.s-1;

if ((c=#73)and(alt.s<60)) then alt.s:=alt.s+1;

if ((c=#83)or(c=#82)or(c=#79)or(c=#71)or(c=#73)or(c=#83)) then zf:=true;

end;

if ((tim.s<>ltim.s)and(rej=2)) then begin

gotoxy(1,1);

textbackground(1);

write('Time:  ',tim.h:2,':',tim.m:2,':',tim.s:2,'   ',da:2,'.',mo:2,'.',ye:4,'  ');

textbackground(0);

ltim:=tim;

end;

if (rej=3) then begin

gotoxy(1,1);

textbackground(1);

write('Alarm:  ',alt.h:2,':',alt.m:2,':',alt.s:2,'   ',ada:2,'.',amo:2,'.',aye:4,'  ');

textbackground(0);

if ((c=#83)and(alt.h>0)) then alt.h:=alt.h-1;

if ((c=#82)and(alt.h<23)) then alt.h:=alt.h+1;

if ((c=#79)and(alt.m>0)) then alt.m:=alt.m-1;

if ((c=#71)and(alt.m<60)) then alt.m:=alt.m+1;

if ((c=#81)and(alt.s>0)) then alt.s:=alt.s-1;

if ((c=#73)and(alt.s<60)) then alt.s:=alt.s+1;

if (c=#13) then begin

clrscr;

write(' Жыл');

readln(aye);

write(' Ай');

readln(amo);

write(' күн');

readln(ada);

clrscr;

end;

end;

if ((aye=ye)and(amo=mo)and(ada=da)and(alt.h=tim.h)

and(alt.m=tim.m)) then sound(1000) else nosound;

until (c=#27);

closegraph;

end.


 

А также другие работы, которые могут Вас заинтересовать

35393. Основи теорії держави та права 113.5 KB
  Держава - це суверенна політико-територіальна організація влади певної частини населення в соціальна неоднорідному суспільстві, що має спеціальний апарат управління і примусу, здатна за допомогою права робити свої веління загальнообовязковими для населення всієї країни, а також здійснювати керівництво та управління загальносуспільними справами.
35394. тематика Розглянута та схвалена Розроблені викладачем на засіданні ци. 5 MB
  Сошина 2007 Практична робота №14 Тема: Використання редактора реєстру. Мета: Ознайомитися з редактором реєстру Windows XP навчитися здійснювати пошук інформації в реєстрі а також здійснювати зміни в реєстрі. На цьому практичному занятті ви використаєте Редактор реєстру Regіstry Edіtor для перегляду інформації в реєстрі. Ви використаєте команду Знайти Fіnd Редактори реєстру Regіstry Edіtor для пошуку певного слова в назвах розділів а також внесете зміни до реєстру додавши нове значення.
35395. Створення і запуск програми на асемблері 97.5 KB
  Яка інформація знаходиться у файлі лістингу Містить код асемблера початкової програми а також розширену інформацію про цей код. Крім того в кінці лістингу TSM формує таблиці з інформацією про мітки і сегменти використовувані в програмі. Якщо є помилки або сумнівні ділянки коду то TSM включає в кінець лістингу повідомлення про них. Крім того що дуже зручно ці ж повідомлення включаються в текст лістингу безпосередньо після помилкового рядка.
35396. Культура Древнего Китая 703.71 KB
  Корни китайской культуры уходят глубоко в древность. Уже в 3-м —-м тысячелетии до н. э. Китай был обширной страной, где владели пахотными орудиями, умели строить дома, крепости и дороги, торговали с соседними странами, плавали по рекам и отваживались выходить в море
35397. Резервування і ініціалізація памяті 54.5 KB
  Мета: Навчитися резервувати і ініціалізувати память під програми на асемблері. Це основна команда пересилки даних. Вона реалізує найрізноманітніші варіанти пересилки. Відзначимо особливості застосування цієї команди.
35398. Програмування арифметичних дій 43.5 KB
  Мета: Навчитися резервувати і ініціалізувати память під програми на асемблері.
35399. Тема: Програмування арифметичних дій множення і розподіл. 53.5 KB
  Індивідуальне завдання Скласти програму яка знайде приватне чисел 99 і 9. Множення двійкових чисел без знаку. Для множення чисел без знаку призначена команда mul сомножитель_1 Розташування операндів і результату при множенні. Перший співмножник Другий співмножник Результат Байт L 16 бітів в АХ: L молодша частина результату; АН старша частина результату Слово АХ 32 біти в парі DX:X: АХ молодша частина результату; DX старша частина результату Подвійне слово ЕАХ 64 біти в парі EDX:EX: ЕАХ молодша частина результату; EDX ...
35401. Тема: Програмування арифметичних виразів. 443 KB
  Розташування операндів і результату при множенні. Перший співмножник Другий співмножник Результат Байт L 16 бітів в АХ: L молодша частина результату; АН старша частина результату Слово АХ 32 біти в парі DX:X: АХ молодша частина результату; DX старша частина результату Подвійне слово ЕАХ 64 біти в парі EDX:EX: ЕАХ молодша частина результату; EDX старша частина результату Розподіл чисел із знаком і помилки що виникають в результаті розподіли Для розподілу чисел із знаком призначена команда idiv дільник Для цієї команди...