Паскаль тілінде сызықтық программалармен жұмыс



Жоғары техникалық мектеп

КУРСТЫҚ ЖҰМЫС
Тақырыбы:
Паскаль тілінде сызықтық программалармен жұмыс

Орындаған:
Тексерген:

Орал, 2013

Мазмұны

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... ... ...3
1. Паскаль тілінде сызықтық программалармен жұмыс жасау
1.1. Паскальдағы сызықтық
программа ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... 5
1.2. Паскаль тiлiнiң
операторлары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... 9
2.Паскаль тілінде сызықтық бағдарламалармен жұмыс
2.1. Паскаль бағдарламалау тілінде сызықтық бағдарлама жасау жолдары...15
2.2. Алгоритмнің сызықтық құрылымын
программалау ... ... ... ... ... ... ... ... ... 18
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ..23
Қолданылған әдебиеттер
тізімі ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
... ..25
Кіріспе
Компьютерге түсінікті командалар тізбегі арқылы жазылған алгоритм –
программа деп, ал программа құру процесі программалау деп аталады.
Программалау тілі – ЭЕМ-де шешілетін әртүрлі есептердің программасын
компьютерге түсінікті формада жазу тәсілі болып табылады.
Программалау тілдері жоғарғы және төменгі деңгейлі тілдер болып
бөлінеді. Қолданбалы мазмұнды есептерді шешуге бағытталған, командалардың
мол жиынтығынан тұратын табиғи тілге ұқсас прогрммалау тілі – жоғарғы
деңгейлі программалау тілі деп аталады. Қазіргі кезде олардың бірнеше түрі
бар. Жоғарғы деңгейлі программалау тілдерінің бірі – Паскаль тілі. Оның
алғашқы вариантын 1971 ж. Швейцария ғалымы Никлаус Вирт жарыққа шығарған
болатын. Автор атақты француз математигі Блез Паскальдың (1623-1662 ж)
құрметіне жаңа программалау тіліне оның атын берді. Паскаль тілі оқып
үйренуге жеңіл, алгоритм құрылымы сақталған, қолданушыға ыңғайлы тіл болып
қана қойған жоқ, сонымен қатар көптеген күрделі есептерді шешу үшін
қолданылатын қуатты программалау тілі болып табылады.
Паскаль тілінің бірнеше баламалары бар. Қазіргі кезде кең
қолданылатыны – Турбо Паскаль7.0 баламасы. Кез-келген Паскаль программа
жеке атынан және .pas кеңейтілуінен тұратын текстік файл болып табылады.
Паскаль тілінде құрылған программаны мәшинелік тілге аудару үшін компилятор
қолданылады. Турбо Паскаль жүйесі ТР бумасында жазылады. Программаны жүктеу
файлы: turbo.exe, ол әдетте BIN ішкі бумасында орналасады (мысал: C:TPBIN
turbo.exe)
Өзекілігі: Қазіргі кезде көптеген программалар қолданылады. Солардың
ішінде Паскаль программалау тілдерінде сызықтық программалаумен жұмыс жасау
ерекшеліктерін ашып көрсету.
Мақсаты: Паскаль тіндінде сызықтық программа құру тәсілдерімен
танысу.

Міндеттері:
1) Паскаль. Программалау тілін теориалық тұрғыдан зерттеу.
2) Паскаль. Программалау тілінде программа құру үлгілерін көрсету.
Зерттеу объектісі: Паскаль. Программалау тілі.
Зерттеу пәні: Информатика.
Болжам: Паскаль. Программалау тілінде программа құра білу адамдардың
жоғарғы дәрежелерде ақпарат құзіреттілігін қалыптастыруға мүмкіндік
жасайды.
Ғылымға пайдасы:
Паскаль. Программалау тілі есептерді тез шығаруға көмектеседі және де
бұл программаларды боллашақта мамандарға пайдалануға ұсынылады.
Құрылымы: Кіріспе, 2-бөлім, қорытындыдан тұрады. Соңында пайдаланылған
әдебиеттер тізімі көрсетілген.

1. Паскаль тілінде сызықтық программалармен жұмыс жасау
1.1. Паскальдағы сызықтық программа
Сызықтық бағдарламалау әдісінің басты қызметі – шектеулі ресурстарды
таңдалған критерийлерге сәйкес берілген өндіріс түрлері арасында бойынша
оңтайлы бөлу (мысалы, жыртындыны дақылдар арасында бөлу не дайындалған
азықты мал топтары арасында бөлу).
Сызықтық бағдарламалау есептерін шешуде қолданылатын негізгі есептеу
тәсілі – Дж.Данцинг ойлап тапқан симплекстік әдіс болып саналады.
Паскальда да сызықтық программа жазу үшін үш: меншіктеу, енгізу және
шығару операторлары талап етіледі.
Меншіктеу операторының түрі: айнымалы : = өрнек
Мұнда, айнымалы – Паскальдың кезкелген айнымалысы, өрнек – айнымалы
типіне сәйкес келетін Паскаль өрнегі. Меншіктеу таңбасы, Бейсиктегіден
бөлек, ол тек теңдік таңбасы емес, қос нүкте мен теңдік таңбасы екендігіне
назар аударыңыз. Мыс, а:=0, x:=x+1; alfa:=sqr(x).
Бұл оператордың орындалу реті Бейсиктегі меншіктеу опера-торының
орындалуына ұқсас. Тек бір айырмашылығы, ол айны-малылар мен өрнектердің
типтерінің сәйкес болуын қатаң қадаға-лау қажеттігі(мыс, бүтін санды
айнымалыға нақты типті өрнекті меншіктеуге болмайды).
Енгізу операторы былай жазылады: read (тізім), мұндағы тізім -
өзара үтірмен ажыратылған Паскаль айнымалыла-рының тізбесі. Мыс, read(x);
read(x1,x2,alfa) . read сөзі ағылшын тілінен оқу деп аударылады.
1-ескерту. Енгізу операторының орындалуы кезінде(Бейсиктен өзгеше) 1-
ден, ? белгісі түріндегі сұрау пайда болмайды және
Екіншіден, айнымалы мәндерін бір-бірінен бос орын арқылы ажыратып
(Бейсиктегідей үтір арқылы емес) енгізеді.
Шығару операторының түрі: write ( тізім)
Мұнда тізім-бір-бірінен үтір арқылы ажыратылған(тек үтір арқылы)
тұрақтылар, айнымалылар немесе өрнектер тізбесі. write ағылшынша жазу
дегенді білдіреді. Паскальда берілгендерді енгізу және шығару аяқталған соң
экранның келесі жолына автоматты түрде ауысу жүрмейтіндігін ескертеміз.
Ондай ауысуды (қажет кезде) қамтамасыз ету үшін readln және writeln (ln-
ағылшынның line-жол сөзінің қысқа түрі) операторларын қолданған жөн.
writeln бос операторын қолдану (яғни тізімсіз) жай ғана экранның келесі
жолына ауысумен барабар.
Осы операторлар сызықтық программаны жазуға жеткілікті. Алайда
Паскальдағы программада операторлардан (орындалатын бөліктен) басқа тағы да
мынадай элементтер болады:
- программа тақырыбы: program аты; мұнда аты-латынның 6 әрпі мен
цифрлардан тұратын кезкелген тіркес;
- айнымалыларды сипаттау: var : тізім : типі; мұнда тізім- программада
қолданылатын айнымалылар тізбесі; ал типі- осы айнымалылар типінің
көрсетілуі. Біз негізінен, мына типтерді ғана қолданамыз: real(нақты),
integer(бүтін), char(символдық), string(жолдық), boolean (логикалық) . Осы
тарауда негізінен нақты және бүтін типтерді қарастырамыз.
- begin қызметші сөзі(программаның орындалатын бөлігі осы сөзден
кейін жазылады);
- end.(нүктемен) қызметші сөзі.Паскальдағы программа осы сөзбен
аяқталады.
1-мысал.
Үшбұрыш a,b,c қабырғаларының ұзындығы бойынша берілген. Осы үшбұрышты
іштей және сырттай сызылған шеңберлердің радиустарын есептеу программасын
мына формулаларды пайдаланып, құрыңыз.

r1=(abc)4s іштей сызылған шеңбер радиусы,
r2=2s(a+b+c) сырттай сызылған шеңбер радиусы,
p=(a+b+c)2 жарты периметр,
s=үшбұрыш ауданы.
program mys2_1;
var a,b,c,p,s,r1,r2:real;
begin
write('a,b,c-ны енгіз:'); read(a,b,c);
p:=(a+b+c)2; s:=sqrt(p*(p-a)*(p-b)*(p-c));
r1:=2*s(a+b+c); r2:=a*b*c(4*s);
writeln; writeln('сырттай сызылған шеңбер радиусы=’,r2);
write('іштей сызылған шеңбер радиусы=’,r1)
end.
Осы программаны a,b,c-ға 3 4 5 мәндерін беріп, орындауға
жібергенімізде мына нәтижені аламыз:
- сырттай сызылған шеңбердің радиусы = 2.5
- іштей сызылған шеңбердің радиусы = 1.
2-ескерту. Паскальдағы программа операторлары бірінен-бірі нүктелі
үтір арқылы ажыратылады және бір жолға бірнеше оператор жазуға болады.
3-ескерту. Ненің және қандай ретпен енгізудің(енгізу операторы
орындалғанда) анық болуы үшін, әрбір енгізу операторына тиісті түсіктемемен
шығару операторын сәйкестеуді ұсынады.

2-мысал.
Екі сан берілген.Осы екі санның қосындысын есептейтін программа құру
керек.
Program eseptey;
Var A,B,Z: real;
Begin read (A,B);
Z:= A+B;
Write(Z);
End.

3-мысал Герон формуласын пайдаланып ,берілген қабырғалары бойынша
ұшбұрыштың ауданын септейтін программа жазыңдар.Осы программанның
алгоритмін жазып оны Паскаль тіліне аудару арқылы түсіндіріп өтемін.
Алг ауданды есептеу
Арг нақ А,В,С
Нәт нақ S
Басы
P:=(A+B+C)2
S= √p(p-a)(p-b)(p-c)
Шығару S
Соңы.
Паскаль тіліндегі программасы:
Program аудан;
Var A,B,С,S: real;
Begin read (A,B,C);
P:=(A+B+C)2;
S:= √p*(p-a)*(p-b)*(p-c);
Write(S);
End.
1.2. Паскаль тiлiнiң операторлары
Компьютерде шығарылатын есептердің күрделенуіне байланысты
программалардың көлемі өсіп, оларды жазу, оқу, түзету күннен-күнге қиындап
келеді. Белгілі бір өндірістік мәселенің мезгіл – мезгіл қайталанып
отыратын есептеу программалары ұзақ уақыт пайдаланылады, олар күнделікті
өмір талабына сәйкес өзгертіліп, түзетіліп отыруы тиіс. Осыған байланысты
программа құруды, түсінуді, өзгертуді жеңілдететін тәсілдер жасалған, олар
құрылымдық (структуралық) программалау деп аталады.
Программа адамның түсінуі мен қабылдауына ыңғайлы жүргізуге
бағытталған тәсілдер жиынын құрылымдық программалау деп атайды. Әрбір
программа бөліктері бір – бірімен тығыз логикалық байланыста болады, оның
бір жерінен екінші бір жеріне секіру болмауы тиіс.
Құрылымдық программалау – goto операторынсыз программалау болып
саналады, яғни шартсыз көшу операторын мүмкіндігінше пайдаланбау керек. Сол
себепті программа бөліктері соларда көрсетілген тәртіп бойынша мәліметтерді
өңдеу ережесін орындайтын логикалық құрылымдардан тұрады. Кез келген
программа саны шектеулі стандартты логикалық құрылымдардан құралады.
Негізгі логикалық құрылымдар туралы бұдан бұрын айтылған болатын, олар:
Сызықтық құрылым - операторлардың немесе олардың топтарының жазылу
реттілігімен тізбектеле орындалуы;
Тармақталу – берілген шарттың орындалуы – орындалмауы бойынша алдын
ала көрсетілген бірнеше (көбінесе екі) мүмкіндіктің бірін таңдауды жүзеге
асыратын басқару құрылымы;
Қайталау – көрсетілген шарттың орындалуына байланысты операторлар
тобының циклде қайталануы.
Бұл құрылымдардың ең басты ерекшелігі – олардың орындалу
алгоритмдерінің бір кіріс және тек бір шығыс сығызы болады. Мұндағы әрбір
құрылымдық бірлік – бір оператордан, біріктірілген операторлар тобынан
немесе қабаттастырылған құрылысдардан да тұруы мүмкін.
Қазіргі кездегі программалау технологиясы жоғарыдан төмен қарай
орындалатын әрекеттерді біртіндеп айқындау тәсілін кең пайдаланады. Осы
технологияға сәйкес күрделі есептің белгілі бір бөлігі тәуелсіз
қарастыруға, шығаруға болатын блок – қосалқы программа ретінде құрылуы
мүмкін. Осындай құрылымда күрделі программаны – сатылы түрде жинақталған
тәуелсіз қосалқы программадан құруға болады.
Әдетте, циклден тыс кейбір әрекеттер тізбегін программаның бірнеше
жерінде қайталауға тура келеді. Практикалық есептерге программа құрғанда
үлкен программаның белгілі бір бөлігін әр түрлі мәндер бойынша бірнеше рет
пайдалануға тура келеді. Мұндай бір типтес программа бөлігін программаның
әр бөлігінде қайталап жаза бермеу үшін оны жеке қосалқы программа ретінде
бөліп жазған ыңғайлы.
Жеке программа түрінде бөлек жазылған, қажет кезінде оған оралып, оны
пайдаланып отыруға болатын негізгі программаның арнайы бөлігін көмекші
немесе қосалқы программа (подпрограмма) дейді. Қосалқы программада бірнеше
операциялардың біріге отырып толық орындалуын қадағалап, программаның
негізгі бөлігінде оның тек атын көрсету арқылы бір рет орындаумен шектелуге
болады:
• негізгі программаның көлемі кішірейеді;
• негізгі программада пайдаланылған айнымалыларды қосалқы программада
пайдалануға болады;
• қосалқы программаға берілген жады ұяшықтарын ол орындалмай тұрғанда,
бос ұяшық ретінде (бос айнымалы ретінде) пайдалануға болады;
• қосалқы программаны пайдалану құрылымдық программалауға мүмкіндік
береді.
Құрамында қосалқы программалар тәрізді құрылымдық программалау жабдығы
бар Турбо Паскаль тілі процедураға бағытталған тіл деп аталып жүр.
Қайталанатын әрекеттерді қайта жазып көшіруге көп уақыт кетірмеу үшін
Турбо Паскальда қосалқы программалар ретінде функциялар мен процедураларды
қолданылады. Процедуралардың циклдерден айырмашылығы, олар программаның әр
жерінде оператор тізбегі өзгермей, тек бір рет қайталанып отырады, яғни әр
пайдалану кезінде бір рет қана орындалады.
Операторлар бағдарламаның BEGIN және END түйiндi сөздерiнiң аралығында
орналасады. Оператор – берілген бағдарламау тілінде, ЭЕМ-да ақпаратты өңдеу
процесіндегі кейбір аяқталған әрекеттерді көрсетуге арналған жазба.
Операторлар – тілдің негізгі түсініктерінің бірі. Әрбір ператор тілдің
аяқталған фразасын білдіреді және мәліметтерді өңдеудің кейбір сатыларын
анықтайды. Оларды жазылу ретiне қарай бiр-бiрiнен нүктелi үтiр ; арқылы
ажыратып жазады. Экран бетiне бiрнеше мәлiмет орналастыру кезiнде бiр жолға
бiрнеше операторды жазуға болады. Керек жағдайда жолдардың арасында не
соңына жүйелi жақшаға алынған түсiнiктеме сөздердi қазақша әрiптермен
терген орынды.
Операторлар қарапайым және құрамдық болып екiге бөлiнедi: Қарапайым
операторлар тек бiр оператордан тұрады. Оған меншiктеу, көшу, процедураны
шақыру, енгiзу-шығару операторлары жатады. Құрамдық операторлардың құрамына
бiрнеше қарапайым операторлар енедi, олар: шартты, таңдау және үш циклдiк
операторлар болып бөлiнедi.
Меншіктеу операторы.Жазылу түрі мынадай: айнымалы:=өрнек;
Мұндағы := символы меншіктеу белгісі болады. Меншіктеу операторы :=
белгісінің оң жақтағы өрнектің мәні есептеліп, сол жақта орналасқан
айнымалыға меншіктеледі.
1-мысал:
а:=3 – а айнымалысына 3 мәні меншіктелген.
а:=а+1, ал бұл жазба а айнымалысының бұрыңғы мәніне бір саны қосылып,
қосылғанда шыққан мән а-ға меншіктелген, егер а-ның бұрыңғы мәні 3-ке тең
болса, онда меншіктеу операторы орындалғаннан кейін а айнымалысының мәні 4-
ке тең болады.
2-мысал, бағдарлама фрагменті:
а:=2.3;
b:=-1;
c:=(a+b)(b+2);
Енгізу-шығару операторлары. Паскаль тiлiнде енгiзу-шығару операторлары
процедура болып анықталады. Мәліметтер мәнін жадыға енгізу үшін Read,
Readln және нәтижені экранға шығару үшін Write, Writeln операторлары
қолданылады.
Енгiзу операторлары есеп шығаруға қажеттi берiлген мәлiметтердi енгiзу
үшiн қолданылады. Оның жазылу үлгiсi:
1) READ (a1,a2, ..., an);
2) READLN(a1,a2, ..., an);
Мұндағы, READ - оператордың аты, ағылшынша “оқу” деген ұғымды бередi,
ал a1,a2, ..., an – айнымалылар тізімі. READ операторы айнымалылардың мәндерi
пернетақтадан енгiзiлген соң, курсорды келесi қатарға көшiрмейдi, READLN
(READ LINE –“жолды оқу” деген сөздiң қысқартылуы) пернетақтадан мәндер
енгiзiлгеннен кейiн курсор келесi қатарға көшiп кетедi.
Шығару операторлары есептiң нәтижесiн экранға шығарып алу үшiн
қолданылады. Оның жазылу үлгiсi:
1) WRITE (a1,a2, ..., an);
2) WRITELN(a1,a2, ..., an);
Мұндағы, WRITE - оператордың аты, ағылшынша “жазу” деген ұғымды
бiлдiредi. WRITELN - курсор келесi жолға көшедi.
Шығарылатын мәндердiң түрi айнымалылардың типi арқылы анықталады,
олар: integer, real, boolean (true, false), char, string.
Шығару операторы арқылы жақша iшiнде экранға шығарылатын мәннiң ондағы
алатын орнын, яғни енiн толық көрсетуге болады.
Бүтiн санды экранға шығару операторларының үлгісі :
WRITE(b:m);
WRITELN(b:m);
Мұндағы, b- шығаратын айнымалының аты, m – айнымалыны экранға шығаруға
берілген орындар саны.

1 -мысал :
D=105; I=2016;
WRITE(D:4, I:6); D айнымалысы 4 орынға, ал I айнымалысы 6 орынға
орналасады, яғни _105_ _2016
Мұндағы, 105 саны үш таңбалы, ал берілген орын 4-еу, сондықтан қалған
1 орын пробелмен толықтырылады. Егер берілген мән берілген орыннан асып
тұрса, онда орындар автоматты түрде қосылады.
Нақты сандар үшiн оның жалпы енiн, сонан соң бөлшек сандардың алатын
орынын көрсету қажет, сол себептi аралас сандарды бейнелеуге оның енi қос
нүктемен бөлiнген екi бүтiн сан арқылы жазылады.
Нақты санды экранға шығару операторларының үлгісі:
WRITE(b:m:n);
WRITELN(b:m:n);
Мұндағы, b- шығаратын айнымалының аты, m – айнымалыны экранға шығаруға
берілген орындар саны, n – бөлшек бөлігінің цифрлар саны.
2- мысал :
С=132.6578;
WRITE (С:8:3)
С айнымалысы 8 орнынға орналасады, _132.657 мәнiн шығарады, мұндағы
бөлшек үш санмен бейнеленгендiктен соңғы бiр цифр жазылмай қалып отыр. С
айнымалысының берiлген мәнiн толық бейнелеу үшiн WRITE (С:9:4) операторын
жазу керек едi. Жалпы нақты сандарды экранда бейнелеу операторының түрi:
Шығару операторының орындалуына келетiн болсақ жақша iшiндегi
апострофпен алынған текст және тiзiмде көрсетiлген айнымалылардың сандық
мәндерi жауап ретiнде шығарылады. Ал өрнек жазылса, оның мәнi есептелiп,
бiрақ шығарылады. Түсiнiктi болу үшiн қарапайым ғана мысалдарды
қарастырайық:
3-мысал: Экранға “Мен институтта оқимын” және “Мен паскаль тiлiн
үйреніп жатырмын“ деген сөздердi шығару бағдарламасын жаз. PROGRAM Men;
BEGIN
WRITELN (‘Мен институтта оқимын’);
WRITELN (‘Мен ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Турбо Паскаль тілінде бағдарламаларды құрастырудың тәселдері
Турбо Паскаль бағдарламысының тарихы
Сызықтық бағдарламалаудың негізгі есептері
Алгоритм жазу жолдары
Бағдарламалау(программалау) технологиясы
Алгоритмдеу және программалау
Компьютердің негізгі орындаушысы - процессор
Алгоритм тілін оқыту әдістемесі
Мектепте алгоритмдеу және Паскаль тілін оқыту әдістемесі
Прграммалық құралдар
Пәндер