Сызықтық бағдарламалаудың негізгі есептері



Қазақстан Республикасының Білім және Ғылым министрлігі

КУРСТЫҚ ЖҰМЫС

Тақырыбы:
Сызықтық бағдарламалаудың негізгі есептері

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

Орал қаласы, 2011 ж.
Мазмұны:

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... ... 3
1. Программалау тілдері туралы
ұғым ... ... ... ... ... ... ... ... ... ... ... ... ... ... 3

Негізгі
бөлім ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... 5

1. Паскаль тілінде бағдарламалау. Сызықтық

бағдарламалаудың негізгі
түсініктері ... ... ... ... ... ... ... ... ... ... ... ... ... . 5

2. Паскаль тілінің негізгі
элементтері ... ... ... ... ... ... ... ... ... ... ... ... ...9
3. Берілгендерді
сипаттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
. ... .13
4. Сызықтық программалаудың негізгі
есептері ... ... ... ... ... ... ... ... .. ... ..17

Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... .. ... .32

Қолданылған әдебиеттер
тізімі ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ...
... .34
Кіріспе
1. Программалау тілдері туралы ұғым

Компьютер алгоритмді орындаушы ретінде барынша қарапайым бұйрықтар
тіліне (оны әдетте машиналық тіл деп атайды) ие. Біршама күрделі алгоритм
жүздеген, мыңдаған және он мыңдаған машиналық тілдегі бұйрықтардан тұруы
мүмкін. Сондықтан да компьютерлік тілді төмен деңгейлі программалау тілі
деп санайды.
Төмен деңгейлі тілдерде программалау ауыр жұмыс, ол оны құрастырушыдан
жоғары кәсіби білікті талап етеді. Міне содан да программалаушы еңбегінің
жұмыс өнімділігі төмен. Осы қиындықтарды жеңу мақсатында жоғары деңгейлі
программалау тілдері ойлап табылған.
Жоғары деңгейлі программалау тілдері көрнекілігі мен жинақылығы
жағынан математика тілі сияқты. Оны жай адам тілі мен машиналық тілдің
арасындағы қандай да бір аралық тіл деуге болады. Бұл адамның компьютермен
қатынасын жеңілдетеді, алайда программалау тілі арнайы үйренуді қажет
етеді. Осы тілдердің бұйрықтары операторлар деп аталады.
Жоғары деңгейлі программалау тілінің күрделі операторларын компьютер
тікелей орындай алмайтыны анық. Сол себептен де осындай операторларды
машиналық бұйрық тіліне аудармашы қажет. Жоғары деңгейлі тілде жазылған
программаны орындаудың екі түрлі тәсілі бар. Бірінші тәсіл бойынша
компилятор деп аталатын арнайы қызметтік программа берілген программаның
барлық операторларын машиналық тілге аударады да, сонан соң осы алынған
машиналық программа компьтерде орындалады.
Екінші тәсіл бойынша интерпретатор деп аталатын арнайы қызметтік
программа қолданылады. Интерпретатор тиісті программаның операторларын
біртіндеп (бірінен соң бірін) машина тіліне аударады, ал компьютер оны
бірден орындайды.
Бейсик тіліндегі программалар интерпретация режимінде орындалатын
болса, ал мысалы, Паскаль үшін программаны компиляциялау қолданылады.
Сонымен, есіңізде болсын: Бейсик-интерпретатор, ал Паскаль-компилятор болып
табылады.
Паскальдың екінші бір ерекшелігі, оның құрылымдық программалау
ұстанымын есепке алып құрастырылуы. Құрылымдық программаларға оларды өңдеу
мен түзетудің жеңілдігі, қателердің аз жіберілуі тән. Паскальда құрылымдық
берілгендер типінің жай айнымалылар, жиымдар, файлдар, жиындар, жазбалар,
сілтемелі айнымалылар сияқты толық тізбесі бар.
Паскаль-программаның кейде барынша толық жазылуы есебі-нен,
мыс,айнымалылар мен олардың типтерін сипаттаудың міндеттілігі арқасында
оның сенімділігін ерекше атау керек.
Паскальдың тағы бір ерекшелігі, оның модульдік программалау екендігі.
Ол алдынала қосалқы процедуралардың тұтас кітапханасын жасап алып, оларды
қажетті программаға модуль ретінде жалғауды белсенді түрде қолдана
алатындығы.
Борланд фирмасы жасаған (5.5 версиясынан бастап) Турбо-Паскальдың
соңғы ерекшелігі, оның обьектілі-бағдарлы программалау (ОБП) деп аталатын
мүмкіндігінің барлығы. Мұнда берілгендерді оларды өңдеуші процедуралармен
біртұтас-обьект ретінде байланыстырып қарастырады. Соның нәтижесінде
берілгендер де, процедуралар да жеке мәнін жоғалтады. Шынында ОБП-ны
берілгендер мен процедуралардың кездейсоқ бірігуінің орнына оларды
мазмұндық жағынан байланыстырушы жаңа деңгейлі модульдік программалау деп
қарастыруға болады. ОБП-ның артықшылығы тек күрделі программаларды,
программалаудың біртұтас кітапханасын құрастыру кезінде көрінетіндігін атап
өту керек. Күрделі емес алгоритмдерді құрастыруда Паскальдың кәдімгі
тәсілдерімен жұмыс істеу әлдеқайда жеңіл және тиімді.
Паскаль тілін 1970 жылы швейцариялық ғалым Н.Вирт ойлап тауып, оны
атақты математик, физик және философ Блезь Паскальдың (1623-1662) құрметіне
соның атымен атады. Б.Паскаль тарихта алғашқы механикалық есептеу машинасын
(1642 ж.) жасауымен де белгілі.
Паскаль тілі оқып үйренуге жеңіл, түрлі салалық информациямен
жұмыс істеуде нәтижелі болғандықтан, дүние жүзінде көп тараған
тілдердің бірі болып табылады.
Паскаль тілі:
• алгоритм құрылымын сақтап құрылған;
• жоғары деңгейлі программалау тілдерінің жақсы қасиеттерін
жинақтаған;
• қазіргі замандағы көптеген программалау тілдерінің
негізі болып саналады;
Сондықтан бұл тілдің нақты ЭВМ - нің мүмкіндігіне
байланысты бірнеше түрлері бар.
Курстық жұмысымның тақырыбы Сызықтық бағдарламалаудың негізгі
есептерін шығару.
Негізгі бөлім

1. Паскаль тілінде бағдарламалау. Сызықтық бағдарламалаудың негізгі
түсініктері.

Алгоритм сызықтық, тармақталу және циклді болып кездеседі. Оның
жалпы жазылу түрі:
алг атау (айнымалылар сипаттамасы).
басы
алгоритм денесі
соңы,
Машинаға түсінікті тілдердің бірінде жазылған алгоритмді
программа деп атайды.
Паскаль тілінде программаның структурасы
proqram аты;
таңбалар бөлімі (label);
тұрақтылар бөлімі (const);
типтер бөлімі (type);
айнымалылар бөлімі (var);
процедуралар және функциялар бөлімі (procedure,function);
операторлар бөлімі.
Input, output-стандартты атаулар. Input (ендіру) - программаға
клавиатурадан ендіру операторы. Оutput (шығару) - экранға не қағазға
басып шығару операторы енгізілген кезде жазылады. Оларды жақшалармен қоса
программа тақырыбына енгізбей кету мүмкін, компьютер оларды
тақырыпта бар деп автоматты түрде қабылдайды. Программаға операторлар
бөлімінен басқа бөлімдердің енгізілуі міндетті емес. Олар қажеттілігіне
қарай енгізілуі тиіс.
Паскаль операторлары:
меншіктеу операторы; ендіру (read); шығару операторы (write);
құрама оператор; шартты оператор (if); таңдау операторы (case);
"әзірше" циклінің операторы (while); "үшін" циклінің операторы
(for); "дейін" циклінің операторы (repeat); көшу операторы (goto); бос
оператор т.б.
Оператор құрамына бір не бірнеше қызметші сөз енуі
мүмкін. Олардың біріншісін жай, екіншісін құрылымды опрератор
деп атайды. Паскальдағы меншіктеу, ендіру, шығару, көшу және бос
операторлары - жай, қалған операторлар құрылымды.
Операторлар бөлімі жай және құрылымды операторлардан тұруы
мүмкін. Ол BEGIN-нен басталып, END-пен аяқталады да, олардың аралығы
нүктелі үтір арқылы ажыратылып, орындалушы операторлар жазылады.
END қызметші сөзінің соңына нүкте қойылуы тиіс, ол -
программаның аяқталу белгісі. BEGIN (басы), END (соңы)–ашу, жабу
жақшаларының ролін орындайтын қызметші сөздер. Меншіктеу операторының
жазылу үлгісі:
айнымалы атауы:= өрнек
Мысалы: x:=65,25; y: =x; u:=5x +4*y; y=4-5*cos(x)+6*sin(z);
Pi:=3,14;
Оперативті жадыдан мәндерді монитор экранына шығару WRITE
операторы арқылы беріледі. Мысалы, х,у айнымалыларының мәндерін экранға
шығару операторы – write(x, y), мұнда х,у айнымалыларын WRITE (жазу)
операторының параметрі деп те атайды. Параметрлері үтір арқылы
бөлініп, жай жақшалар ішінде жазылады.
WRITE операторының түрлі түрде жазылу мысалдары:
1) WRITE (x);
2) WRITE(x,‘ ‘, y); (‘ ‘) - бос орын белгісі
3) WRITE (3*x+5,’ ‘, y+2);
4) WRITE (x:n:m); WRITE(x2:7:3)
5) WRITE (‘х-ті енгіз.);
Паскальда белгілі мақсатта пайдаланылатын жүйелік файлдар бар.
Олардың стандартты атаулары:
INPUT- клавиатурадан ендіру файылының аталуы
OUTPUT-экранға шығару файылының аталуы
LST-принтерде басып шығару файылының аталуы т.б.
Паскаль тілінде құрылатын программада операторлар мүмкіндігінше
нөмірленбейді (белгі қойылмайды); әр опрератордан соң нүктелі үтір
таңбасы қойылады (ол операторларды ажырату белгісі ); бір жолға сыйғанша
бірнеше операторды орналастыру мүмкін. Операторларды жол басынан бастап
жазу, бір жолға бірнеше операторды орналастыру және ЕND қызметші
сөзінің алдындағы оператор соңына нүктелі үтір таңбасын қою міндетті
емес. Программаны оқуға ыңғайлы етіп орналастырса болғаны. Қызметші
сөздер мен атауларды жазуға үлкен не кіші латын әріптерін
пайдаланудың айырмашылығы жоқ.
2. Паскаль тілінің негізгі элементтері

Паскаль тілінің құрамы мына символдар тобынан тұрады. Олар -
әріптер, цифрлар, логикалық мәндер, шектемелер, қызметші сөздер.
Әріптер: Паскаль тілінде негізінен латын алфавиті:
À B C D E G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z пайдаланылады.
Цифрлар: араб цифрлары 0,1,2,3,4,5,6,7,8,9 қолданылады.
Логикалық мәндер: true- ақиқат false- жалған. Бұл сөздердің
әрқайсысы символ болып табылады.
Шектемелер. Шектемелер амалдарда қолданылатын шектемелер, ара
қатынасты көрсететін шектемелер, шекаралық шектемелер болып
бөлінеді.
1) Амалдарда қолданылатын шектемелер:
Қосу(+), азайту (-), көбейту(*), бөлу(),
Div (а div b-а санын b санына бөлгендегі бүтін бөлігі),
mod (а mod b-a санын b санына бөлгендегі қалдық),
2) Ара қатынасты көрсететін шектемелер:
кіші(), кіші немесе тең (=), үлкен немесе тең(=), тең(=),
тең емес( ).
3) Логикалық амалдардағы шектемелер:
and(логикалық көбейту- және (())
or (логикалық қосу - немесе(())
not (логикалық терістеу - емес( -))
3) Шекаралық шектемелер. Шекаралық шектемелерге конструкциялық
шектемелер мен жақшалар жатады.
Конструкциялық шектемелерге үтір(,), нүкте(.), қос нүкте(:),
нүктелі үтір (;), бағыттауыш((), меншіктеу таңбасы(:-), ашық орын
жатады.
Жақшаларға дөңгелек жақша, квадрат жақша, тырнақша, түсініктеме
жатады.
Жоғарыда айтылған символдардан басқа (,?,% символдары да
қолданылуы мүмкін.
Қызметші сөздер. Қызметші сөздің әрқайсысы белгілі бір мағынаны
көрсетеді және олар ағылшын тілінде жазылады. Қызметші сөздер
мағынасына қарай "бағыттаушы" және "сипаттаушы" деп екі топқа
бөлінеді. Бұлардан басқа да қызметші сөздер болуы мүмкін. Егер
бар болса, онда олар қосымша анықталуды керек етпей - ақ,
компилятор арқылы пайдаланыла береді.

Бағыттаушы қызметші сөздер
Қызметші сөз Орысша аудармасы Қазақша аудармасы
begin начало басы
end конец соңы
goto перейти к көшу
if если егер
then то онда
else иначе әйтпесе
for для үшін
do выполнить орындау
until до дейін
while пока әзір
to увеличивая до... ... дейін көбейту
downto уменьшая... дейін азайту
repeat повторить қайталау
in в ішінде
read ввести енгізу
write вывести қорытындылау

Сипаттаушы қызметші сөздер
Қызметші сөз Орысша аудармасы Қазақша аудармасы
array Массив массив
case Вариант вариант
const константа тұрақты, константа
file файл файл
function фукнция фукнция
label метка белгі
packet упакованный ықшамдалған
procedure процедура процедура
program программа программа
set множество жиын
record запись жазба
type тип типі
var переменная айнымалы

Стандартты функциялар

№ функция Функцияның Аргументтің Функцияның
жазылуы типі мәнінің типі
1 (х( ABS(x) R,1 R,I
2 x2 SQR(x) R,1 R,I
3 Sin x SIN (x) R,I R
4 Cos x COS (x) R,I R
5 ex EXP (x) R,I R
6 ln x LN (x) R,I R
7 (x SQRT (x) R,I R
8 arctg x ARCTG (x) R,I R
9 Санның бүтін бөлігінTRUNC (x) R I
бөлу
10 Санды дөңгелектеу ROUND (x) R I
11 Алдыңғы элементті PRED (x) I,C,B I
табу
12 Келесі элементті SUCC (x) I,C,B I
табу
13 Символдар жиынындағы ORD (x) C,B I
х - ң реттік нөмерін
анықтау
14 Реттік нөмірі арқылыCHR (x) I C
символдар жиынын
символды табу
15 Тақ санды анықтау ODD (x) I B

3. Берілгендерді сипаттау

Бүтін типтер - жадыда 1 ден 4 байтқа дейін орын алатын мәнді
айтады. Бұл мәндер кейбір арифметикалық операциялар орындай алады.

Тип Диапазон Жадыда керек орын
Byte 0..255 1
Shorint -128..127 1
Integer -32768..32767 2
Word 0..65535 2
longint -2147483648..2147483647 4

Бүтін типтерге келесі арифметикалық операциялар орындайға болады:
+, -, , *, div, mod және == стандартты функциялар: abs(x),
odd(x), chr(x), sqr(x), sqrt(x) т.б.
Нақты типтер – жадыда 4-ден 6 байтқа дейін орын алатын мәнді айтады.
Бұл мәндер арифметикалық операциялар орындайды.

Тип Диапазон Жадыда керек орын
Real 2.9*10E – 39..1.7*10E38 6
Single 1.5*10E – 45..3.4*10E38 4
double 5.0*10E – 324..1.7*10E308 8
Extended 1.9*10E – 4951..1.1*10E4932 10
comp -2E+63+1..2E +63-1 8

Тип түсінігі ПАСКАЛЬ программалау тілінде негізгі түсініктің бірі.
Берілгендер мен айнымалылардың типтері туралы ұғымды осы тілді мысалға ала
отырып, қарастырайық.
Паскаль тілінде тұрақтылар, айнымалылар, функциялар, өрнектер
пайдаланылады. Берілгендердің типтері: қарапайым және күрделі болып екіге
бөлінеді.
Қарапайымға стандартты және айнымалы типтер жатады.
Стандартты типтер: INTEGER(бүтін), REAL (нақты), BOOLEAN (логикалық),
СНАR (символдық).
Бүтін шамалардың бейнелену түрі былай жазылады:
атау, атау, ..., атау: integer;
ЭЕМ жадында бүтін айнымалы 2 байт орын алады
Мысалдар.
Математикада берілуі Паскаль тілінде жазылуы
4 103 4Е 3
0,62 104 0.62Е +4
-10,15 1012 -10.15Е+12
Нақты айнымалы. Нақты мән қабылдайтын айнымалыны бейнелеу үшін REAL
қызмет сөзі пайдаланылады.
Нақты сандардың. Нақты сандар типінің аралығын кесте түрінде былай
көрсетуге болады.
Логикалық тип.
Логикалық айнымалы (Boolean)-TRUE (ақиқат) немесе FALSE (жалған)
мәндерінің бірін қабылдайды.
Логикалық берілгендер шартты тексеруге жиі пайдаланылады, логикалық
шарттарды жазу үшін , =, =, (тең емес), =, белгілері пайдаланылады.
Мысалы, 53 нәтиже - TRUE; 5=3 - нәтиже FALSE.
Логикалық шамаларға мына амалдарды қолдануға болады:
ОR- логикалық қосу (ИЛИ-НЕМЕСЕ); AND - логикалық көбейту (И -ЖӘНЕ);
NOT - жокқа шығару (НЕ-ЖОҚ). Логикалық типтегі шамалар былай
бейнеленіледі: атау, атау, ..., атау: Bооlеаn;
Мұнда айнымалы мәніне ЭЕМ жадында 1 байт орын беріледі.
Логикалық тип
Типі Аралығы Жады көлемі
Вооlеаn True, False 1
Символдық типтер.
Символдық тұрақтылар екі апостроф ішіне алынып жазылады. Мысалы: А,
+, 9, қосынды , х және т.с.с.
Символдық айнымалылар.
Символдық айнымалылардың типін көрсету үшін Паскаль тілінде CHAR
қызмет сөзі пайдаланылады. Символдық шамалар былай бейнеленіледі: атау,
атау, ..., атау: char;
Символдық тип
Типі Аралығы Жады
көлемі
Сһаг ДЭЕМ-нің код кестесі
Практикалық есептердің көпшілігінің шешімі шамалармен жұмыс істеуге
тіреледі. Шамалар айнымалы және тұрақты болып бөлінеді.
Тұрақты деп алгоритмді орындау барысында мәні өзгермейтін шама деп
аталады.
Айнымалы деп алгоритмді орындау барысында мәні өзгеретін шама деп
аталады. Бұған қоса алгоритм өңдейтін шамалар кірістік деректер, шығыстық
деректер және аралық есептеулер үшін қажетті деректерге бөлінеді. Кірістік
деректер немесе бастапқы деректерi аргумент деп аталады және арг қызмет
етуші сөзбен белгіленеді. Шығыстық деректер нәтиже деп аталады және нәт
қызмет етуші сөзбен белгіленеді. Түрлері көрсетілген алгоритмдер және
нәтижелер тізімі алгоритмдердің атынан кейін жазылады. Түрлері көрсетілген
аралық шамалар тізімі басы қызмет етуші сөзден кейін жазылады, олардың мәні
тек алгоритм ішінде пайдаланылатынын көрсетеді.
Компьютерде деректерді өңдеу әдістері олардың түрлеріне байланысты.
Сондықтан оның көрсетіміндегі шамаларды өңдеу алгоритмдерін сипаттауда біз
шама түрін ескеруіміз немесе көрсетуіміз керек.
Алгоритм жазбасының пішіні мынадай түрге енеді:
Алг алгоритмнің аты (түрлері көрсетілген алгоритмдер және нәтижелер
тізімі)
Басы түрлері көрсетілген аралық шамалар тізімі
Енгізу
Командалар сериясы
Шығару
Соңы
Айнымалы шамаларды жазу үшін алгоритмде шаманың атымен аталатын
белгілеулерді пайдаланылады. Шаманың аты әріптерден, әріптер мен сандардан,
сөздерден тұруы мүмкін.
4. Сызықтық программалаудың негізгі есептері

1-есеп. Үшбұрыш a,b,c қабырғаларының ұзындығы бойынша берілген. Осы
үшбұрышты іштей және сырттай сызылған шеңберлердің радиустарын
есептеу программасын мына формулаларды пайдаланып, құрыңыз.
r1=(abc)4s іштей сызылған шеңбер радиусы,
r2=2s(a+b+c) сырттай сызылған шеңбер радиусы,
p=(a+b+c)2 ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
«Модель типтері мен олардың түпнұсқасымен ұқсастық түрлері»
Экономикалық процестерді зерттеудегі сызықтық бағдарламалау модельдері
Сызықтық бағдарламалаудың қосалқы есептері және оның экономикалық интерпретациясы
Операцияны зерттеу процесі
Есептің математикалық моделін құру
Сызықтық бағдарламалау есебінің графикалық әдісі
Қолданбалы математика
Есептердің берілуі
Мақсат функциясы және математикалық программалау есебінің шектемелері
Математикалық бағдарламалау
Пәндер