МОДЕЛДЕУ ЖӘНЕ КОМПЬЮТЕР ГРАФИКАСЫ



Жұмыс түрі:  Дипломдық жұмыс
Тегін:  Антиплагиат
Көлемі: 61 бет
Таңдаулыға:   
МАЗМҰНЫ

КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ... ... . ...
4
I тарау. МОДЕЛДЕУ ЖӘНЕ КОМПЬЮТЕР ГРАФИКАСЫ ... ... ... ... ... . ...
6
1.1.Моделдің түрлері және моделдеу кезеңдері ... ... ... ... ... ... ... ... .. ...
6
1.2 Компьютермен моделдеудің негізгі принциптері ... ... ... ... ... ... . ...
7
1.3 Graph модулінің жалпы ...
сипаттамасы ... ... ... ... ... ... ... ... ... ... ... ... ... ...9
... ... ...
1.4 Компьютердің графикалық координаталар .10
жүйесі ... ... ... ... ... ... ... ... .
... ... ... ... ... ...
1.5 Графикалық экран мен элементтердің параметрлерін қою
процедуралары мен .11
функциялары ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... .
1.61Графикалық элементтерді бейнелеу .13
.7 процедуралары ... ... ... ... ... . ... ...
1.7 Координаталар жүйесін .14
бейнелеу ... ... ... ... ... ... .. ... ... ... ... ... ... ... ...
...
1.8 Тәуелділіктің графигін .20
тұрғызу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ..
IІ тарау. МОДЕЛДЕУГЕ ҚАЖЕТТІ САНДЫҚ ӘДІСТЕР ... ... ... ... ... ... ... . .24
2.1 Өрнектің мәндерін .24
кестелеу ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... .
... ...
2.2 Функцияның ең үлкен және ең кіші мәнін табу ... ... ... ... ... ... ... ... . .25
2.3 Функцияның экстремумдарын табу ... ... ... ... ... ... ... ... ... ... ... ... .26
2.4 Анықталған интегралды есептеу ... ... ... ... ... ... ... ... ... ... ... ... .. .27
2.5 Бір белгісізі бар теңдеудің түбірін табу ... ... ... ... ... ... ... ... ... ... .. .29
2.6 Бірінші ретті дифференциалдық теңдеулерді шешу ... ... ... ... ... ... .30
2.7 Екінші ретті дифференциалдық теңдеулерді шешу ... ... ... ... ... ... ... .31
2.8 Тікелей өлшеудің қателігін .32
есептеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2.9 Жанама нәтижелердің қателігін .34
анықтау ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... .
2.10 Эксперимент нәтижелерін .35
өңдеу ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ...
III тарау. электрОмагниттік құбылыстарды моделдеу ... ... ... .38
3.1 Кулон заңы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .38
3.2 Екі зарядтың электр өрісінің күш сызықтарын моделдеу ... ... ... ... .. .39
3.3 Электрон қозғалысын моделдеу ... ... ... ... ... ... ... ... ... ... ... ... .42
3.4 Вольт-амперлік сипаттама ... ... ... ... ... ... ... ... ... ... ... ... ... ... .45
3.5 Ток көзінің жүктеме сипаттамасын анықтау ... ... ... ... ... ... ... ... ... .46
3.6 Кирхгоф заңы. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .48
3.7 Орам саны ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .52
3.8 Тербелмелі контур ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . .54
3.9 Орамның магнит өрісі ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ... .56
3.10 Электромагнит ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .58
3.11 Лоренц күші ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. .60
3.12 Резонанс ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . .61
3.13 Дросселді зерттеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .64
3.14 Конденсаторды зарядтау ... ... ... ... ... ... ... ... ... ... ... ... ... ... .68
ҚОРЫТЫНДЫ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ... ... ... . .71
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .72
КІРІСПЕ

Қазіргі кездегі ғалым мен білікті маман қандай да бір мәселені шешу
үшін қажетті ақпаратты дұрыс өңдеуді – іздеуді, таңдауды, талдауды және оны
қолдануды жетік меңгеруі керек. Бүгінде табиғат пен қоғамдық ғылымдардың
барлығында дерлік зерттеу жұмыстары моделдер көмегімен жүргізіледі.
Компьютер көмегімен алуан түрлі процестердің моделдерін жасақтауға,
олармен сансыз эксперименттер орындау арқылы ғылыми талдау, сараптау және
зерттеу жұмыстарын жүргізуге болатыны баршаға мәлім. Олай болса, білім
беру ісінде жаңа компьютерлік технологияларды, оның ішінде компьютерлік
моделдеуді толық үйреніп, оқу үдерісінде үнемі қолданып отыру бүгінгі
күннің талабы.
Компьютерлік моделдеу арқылы объектінің немесе құбылыстың нақты немесе
ойдан шығарылған параметрлерін, қасиеттері мен заңдылықтарын тауып, оны
экранда көрнекі бейнелеуге мүмкіндік бар. Бұл ғылым мен білімге өте қажетті
мәселенің бірі. Компьютерлік моделдеу арқылы ғана көптеген физикалық,
химиялық және т.б. құбылыстарды толық зерттеп тануға болады. Көрнекі
компьютерлік модельдерді оқу процесінде ұтымды пайдалану арқылы білім
сапасын арттыруға болатынына да күмән жоқ. Жалпы физика курсында есептер
шығару кезінде, көбінесе дайын формулаларды пайдаланып, нәтижелерді
параметрлердің бір-екі мәні үшін ғана есептеп тауып жүрміз. Онда да,
есептеу дәлдігіне көңіл бөлмей, көбінесе жай физикалық құбылыстарды
(кинематикада, қозғалыс – бір қалыпты үдемелі, динамикада, масса мен күш –
тұрақты, электр тізбектері – аз тармақталған, ортамен жылу алмасу –
ескерілмеген деп алып және т.с.с.) ғана сипаттайтын формулаларды пайдалып
келеміз. Жұмыстың мақсаты – жалпы физика курсынан алынған білімдерді
пайдаланып компьютер көмегімен кейбір қарапайым электромагниттік
құбылыстарды моделдеу арқылы тәжрибелік, эксперименттік және зерттеу
жұмыстарын жүргізу.
Жұмыста Turbo Pascal 7.0 тілінің графикалық мүмкіндіктері мен кейбір
сандық әдістерді қолдану арқылы, жалпы физика курсының электр мен
магнитизм бөлімдерінде кездесетін біршама күрделі 14 есепті шығарудың
Паскаль тіліндегі толық программалары ұсынылған. Әрбір есепке қажет деп
есептелген қысқаша теориялық түсініктемелер берілген.
Диплом жұмысы кіріспеден және 3 тараудан тұрады.
Моделдеу және компьютер графикасы тарауында моделдің түрлері,
моделдеу кезеңдері мен компьютермен моделдеудің негізгі принциптері сөз
болып, Turbo Pascal 7.0 графикасы мен мүмкіндіктері айтылған.
Моделдеуге қажетті сандық әдістер тарауында физиканың электр және
магнитизм бөлімдерінде кездесетін есептерді компьютермен моделдеуге
пайдаланылатын кейбір сандық әдістер келтірілген.
Электромагниттік құбылыстарды моделдеу тарауында физиканың электр
және магнитизм бөлімдерінен алынған 14 есепті компьютермен моделдеу іске
асырылып, Паскаль тіліндегі толық программалары келтірілген.
Құрылған программалар көмегімен параметрлерді керегінше өзгерте отырып
қарастырылып отырылған физикалық үдерістерді жан-жақты бақылауға,
зерттеуге, яғни олармен әртүрлі физикалық эксперименттер жасауға болады деп
есептейміз.
Тақырыптың көкейтестілігі: Жалпы физикадағы көптеген құбылыс-тарды
зерттеу мен есептерді шығаруда компьютерлік модельдеуді пайдалану оқу
процесінде студенттер мен оқушылардың физика пәніне ынтасын арттырып қана
қоймайды, олардың ғылыми танымын және өзбетімен зерттеу қабілеттерін де
жандандырады. Ал модельдерді жасақтау, сынау және дұрыс нәтижелер алу
орындаушыдан тапқырлықты, логикалық дәл пайымдауды және программалық
сауаттылықты талап етеді. Бұл оқушының жалпы дүние танымын кеңейтіп, оны
іскерлікке, шыдамдылыққа, ұстамдылыққа, ізденімпаздыққа және
жауапкершілікке тәрбиелейді.
Жұмыстың мақсаты: жалпы физика курсынан алынған білімдерді пайдаланып
компьютер көмегімен кейбір қарапайым электромагниттік құбылыстарды моделдеу
арқылы тәжрибелік, эксперименттік және зерттеу жұмыстарын жүргізу.
Зерттеудің нысаны: Электромагниттік құбылыстар мен есептерді
компьютермен модельдеу.
Пәні: Программалау.
Болжам: Компьютермен модельдеуді пайдалану арқылы пайдаланушыға
физикалық құбылыстарды толығырақ түсінуге қол жеткізеді.
Зерттеу міндеттері:
1. Сандық әдістерді пайдалана білу;
2. Паскаль графикасын толық түсіну және оларлы программауда орынды
пайдалануды үйрену;
3. Физикалық заңдылықтарды жете меңгеру. Физикалық есептерді таңдай білу.
Оларды моделдеуде программалау әдістерін меңгеру. Программаларды жетілдіре
білу.
Зерттеудің практикалық маңыздылығы: Оқушының физикалық құбылыстарды
жете түсініп, электромагнитизм бөліміндегі кейбір қиын есептерді көп
қиналмай шығаруына және компьютер көмегімен әртүрлі эксперименттер
жүргізуіне мүмкіндік туғызады.

I ТАРАУ. МОДЕЛДЕУ ЖӘНЕ КОМПЬЮТЕР ГРАФИКАСЫ

1.1 Моделдің түрлері және моделдеу кезеңдері

Шындығында, нақты объектілер мен оған қатысты құбылыстар көп қырлы
және күрделі болып келеді, сондықтан олардың барлық қырларын бірдей ескеріп
тану және зерттеу кейде мүмкін болмайды. Сондай жағдайда, зерттеудің ең
жақсы әдісі нақтылықтың бір немесе бірнеше қырын ғана бейнелейтін моделді
құру және оны пайдалану болып табылады. Ғылымның көп ғасырлық тәжірибесі
бұл амалдың пәрменділігін іс жүзінде дәлелдеп отыр. Модель – объектіні
немесе құбылысты жобалап (нобайлап) сипаттау. Ол объектінің немесе
құбылыстың құрылымын, негізгі қасиеттерін, даму және қоршаған ортамен
өзара қарым-қатынас заңдарын анықтау, басқару әдістерінің ең тиімділерін
айқындау, іс – әрекеттерін болжау үшін керек. Бір объектінің бірнеше моделі
болуы, немесе түрлі объектілер бір модель арқылы сипатталуы мүмкін. Қажет
моделді таңдау зерттеудің мақсатына байланысты болуы тиіс.
Моделдің мынадай түрлері болады:
o Математикалық модель. Мұндай моделдер объектінің (құбылыстың) елеулі
ерекшеліктерін көрсететін теңдеулер және функциялар негізінде құрылады.
o Натуралдық модель. Бұларға техникалық моделдер, мысалы, автомобиль мен
ұшақтың моделдері жатады.
o Ақпараттық-логикалық модель. Зерттеудегі объект (құбылыс) туралы қажетті
ақпараттың бәрін қамтитын шамалар жиынтығы ақпараттық модель деп аталады.
Мысал ретінде ақпарат ұсынудың әмбебап құралы– кестені, блок–схеманы
атауға болады.
o Графикалық модель. Бұған фотосуреттер, график, суреттер, схемалар,
сызбалар мысал бола алады.
o Сөзбен сипаттау. Бұл объектінің негізгі құрамдық бөліктерін, аса маңызды
белгілері мен қасиеттерін сөзбен санап шығу. Мұндай моделдердің мысалы
ретінде алгоритмді, жол жүру ережелерін және т.б. атауға болады.
Модель жасақтауды төрт кезеңге бөлуге болады:
Бірінші кезең – модель жасаудың мақсаттарын анықтау.
Оның міндеті – нақты объектінің қалай жасалғандығын, оның
құрылымы, негізгі қасиеттері, даму және қоршаған ортамен өзара
қарым–қатынас заңдарының қандай екендігін түсіну. Объектіні басқаруды
үйрену және қойылған мақсаттары мен критерийлері бойынша оны басқарудың ең
тиімді әдістерін анықтау. Объектіге ықпал жасаудың тікелей және жанама
салдарын болжай білу.
Екінші кезең – алғашқы үрдістің (объектінің) нобайлануы.
Бұл кезеңде ақпараттың нақты объектіден оқшаулануы жүреді, маңызды ақпарат
бекітіліп, елеусізі алынып тасталады. Объектінің іс– әрекетіне немесе
үрдістің барысына бағынышты шамалардың (кірістік шамалар) және модель жасау
нәтижесінде алынуға тиісті шамалардың (шығыстық шамалар) тізімі жасалады.
Бір есеп үшін елеусіз ақпарат басқасы үшін маңызды болуы мүмкін және одан
айырылу есептің дұрыс шешілмеуіне әкелетінін немесе қажет шешімді алуға
мүмкіндік бермейтінін ескеру маңызды. Елеусіз ақпараттың тіркелуі қосалқы
қиындықтар әкелуі, шешімге жетелейтін жолда кедергілер жасайуы мүмкін.
Үшінші кезең – сипаттаманы іздеу.
Бұл кезеңде моделденіп жатқан объекті туралы ақпарат құрылымданып,
компьютерде өңделуге дайындалады. Моделдің абстрактілі сипаттау
тұжырымдамасынан нақты толыққанды тұжырымдамасына өту қажет.
Төртінші кезең – ЭЕМ-ге арналған программаны құрастыру. Бұл
шығармашылық жұмыс және қиын атқарылатын үрдіс.
Қазіргі кезде құрылымдық және объектіге бағдарланған
программалаудың амалдары кеңінен таралған. Программалау тілін таңдау
әдетте программистің тәжірибесіне, стандарттық бағыныңқы программалар
және ашық кітапханалар болуына байланысты. Кейбір жағдайларда есептеулерді
дайын программалық өнімдерді (мысалы, электрондық кестелерді немесе арнайы
математикалық пакеттерді) пайдаланып өткізу ыңғайлы. Программаны
құрастырғаннан кейін оның көмегімен қателерді түзету мақсатында қарапайым
тестілік есептерді (жауабы алдын ала белгілі болғаны жақсы) шешеміз. Егер
нәтижелер эксперименттік деректерге немесе біздің интуициялық
түсініктерімізге сай болса, программа бойынша есептеулер жүргіземіз.
Сонан соң, нәтижелер жинақталып, өңделуі тиіс.

Егер ЭЕМ-де алынған кейбір үрдістің сипаттамалары эксперименттік
нақтылықтың берілген дәрежесіне сәйкестенсе, модель нақты үрдіске тепе-тең
келеді. Модель нақты үрдіске сәйкес келмеген жағдайда, алдыңғы
кезеңдердің біріне қайтып ораламыз. Оның неғұрлым күрделі және нақтысын
қолдану қажет. Өзгерістерді енгізгеннен кейін технологиялық тізбек
бөлігінен тағы өтеміз де, қолайлы нәтижелер алғанша қайталай береміз. Бұл
проблема модулдік принципті енгізу арқылы оңай шешіледі.

Модуль дегеніміз өз алдына компиляцияланатын, сипаттаудың әртүрлі
компоненттерін (типтер, тұрақтылар, айнымалылар, процедуралар және
функциялар) енгізу арқылы құрылатын жеке программалық бірлік. Модулдер
қолданбалы программалар кітапханасын жасақтаудың және модулдік
программалаудың қуатты тетігі болып табылады.
Біздің негізгі мақсатымыз – Turbo Pascal 7.0 ортасының графикасын
пайдаланып физикалық үрдістерді программалау арқылы есеп нәтижелерін
компьютерде бақылау және зерттеу. Яғни, физикалық есептерді шығару үшін
қажетті және жарамды моделдер құру.

1.2 Компьютермен моделдеудің негізгі принциптері

Компьютермен моделдеу физикалық заңдылықтарды оқып-білудің тиімді
әдістерінің бірі болып табылады. Компьютерлік моделдерді пайдаланып зерттеу
көп жағдайда қарапайым және ыңғайлы болумен қатар, оның қойылуы мен нәтиже
алуы қиындық келтірген жағдайлардың өзінде де жан-жақты сандық
эксперименттер жүргізуге мүмкіндік береді. Компьютерлік моделдердің
логикалық және формалдық сипаттары оның негізгі қасиеттерін анықтайтын
негізгі факторларды табуға және физикалық жүйенің бастапқы шарттар мен
параметрлердің өзгерістеріне әсерін зерттеуге жағдай жасайды.
Компьютерлік моделдеу, әуелі сапалық, содан соң сандық моделдерді
құру арқылы құбылыстардың табиғатын абстракциялауды талап етеді. Оның
соңында, компьютермен есептеу, эксперименттер сериясын жүргізу, нәтижелерді
интерпретациялау, моделдеу нәтижелерін зерттеу объектісінің әртүрлі күйімен
салыстыру, моделді дәлдеу мен жетілдіру және т.б. жұмыстар атқаруға тура
келеді.
Компьютерлік моделдеудің кезеңдерін толығырақ келтірейік. Олар: есепті
қою, моделденетін объектіні анықтау, концептуалдық моделді жасақтау,
жүйенің өзара әсерлесетін, элементтері мен жай актларын анықтау, формалдау
(математикалық моделге көшу), алгоритм құру, программа жазу, компьютерлік
эксперименттерді жоспарлау және өткізу, нәтижелерді талдау және
интерпретациялау.
Моделдеудің аналитикалық және имитациялық түрлері бар. Алгебралық,
дифференциалдық және т.б. теңдеулерді пайдаланатын, немесе дәл шешулерін
табуға әкелетін бірмәнді сандық процедураларды қолданатын реалды объектінің
моделін аналитикалық деп атайды. Көп мөлшердегі элементар операцияларды
тізбектеп орындау арқылы, зерттелетін жүйенің қызмет алгоритмін іске
асыратын математикалық моделді имитациялық дейді.
Моделдеудің төмендегідей принциптері бар:
1. Ақпараттық жеткіліктілік принципі. Объект туралы қажетті ақпарат толық
болмаған жағдайда оның моделін тұрғызудың мағынасы жоқ екендігі
түсінікті. Жалпы, жүйе моделін тұрғызу ақпараттық жеткіліктіліктің белгілі
бір деңгейіне жеткенде ғана мүмкін бола бастайды.
2. Орындалу принципі. Жасақталатын модель алға қойылған мақсатқа шекті
уақыттың ішінде жетуді қамтамасыз етуі тиіс.
3. Моделдің көпшілдік принципі. Кезкелген модель реалды жүйенің кейбір
қырларын ғана бейнелей алады. Зерттелетін үрдісті толық түсіну үшін оның
бірнеше моделдерін жасақтау қажет болады. Әрбір жасақталған модель одан
бұрынғы моделді анықтай түсуі керек.
4. Жүйелілік принципі. Зерттелетін жүйені стандартты математикалық
әдістермен моделденетін, бір бірімен өзара қатынасы бар ішкі жүйелердің
жиынтығы түрінде қарастыру мүмкіндігі болуы тиіс. Бұл жағдайда, жүйенің
қасиеттері оның элементтерінің қасиеттерінің қосындысы болмауы тиіс.
5. Параметрлеу принципі. Моделдің ішкі жүйелері бір ғана параметрмен –
вектормен, матрицамен, графикпен, формуламен сипатталуы мүмкін.
Жүйелерді компьютермен моделдеу дифференциалдық теңдеулерді шешуді жиі
талап етеді. Мұндай теңдеулерді шешудің тиімді әдісі – торлау әдісі. Оған
Эйлердің шекті айырмалар әдісі жатады. Бұл әдісте бір немесе бірнеше
аргументтің үздіксіз өзгеру аймағы шекті түйін нүктелерімен (бір немесе көп
өлшемді тормен) алмастырылып, арументі дискретті мәндерді қабылдайтын
функциямен жұмыс жасалады. Олардың көмегімен туындылар мен интегралдарды
жуықтап есептеуге мүмкін болады. Ол үшін функциясы мен оның
аргументінің шексіз аз өсімшелері шекті, аз айырмалармен алмастырылады.
Физика есептерін шығару мен процестерді моделдеуде компьютер
графикасы ерекше орын алады. Оның көмегімен әртүрлі сызбаларды дайындауға,
денелер мен құрал-жабдықтарды кескіндеуге, тәуелділіктің графигін сызуға,
денелердің қозғалыс траекторияларын бейнелеуге, берілгендер мен нәтижелерді
түрлі түспен экранға шығаруға, жалпы айтқанда, процестерді имитациялық-
графикалық моделдеуге болады. Ол үшін, Турбо Паскаль тілінің графикалық
мүмкіндіктерін қарастырайық.

1.3 Graph модулінің жалпы сипаттамасы

Турбо Паскаль тілінде графикалық жұмыстарды іске асыратын арнайы
Graph модулі бар. Онда, IBM – типтес дербес компьютерлердің графикалық
адаптерлерімен жұмыс істеуге есептелінген, графикалық процедуралар мен
функциялар, тұрақтылар мен айнымалылар және типтер жинақталған. Турбо
Паскалда графикалық драйверлер деп аталатын арнайы программалар (BGI-
файлдар) видеоадаптерлердің қалыпты жұмысын басқарады:

1 кесте. Драйверлер мен видеоадаптерлер
драйверлер видеоадаптерлер
CGA.BGI CGA, MCGA
EGAVGA.BGI EGA, VGA
HERC.BGI Hercules (монохромды)
ATT.BGI AT&T 6300 (400 жол)
PC3270.BGI 3270 PC
IBM8514.BGI IBM – 8514

Көптеген видеоадаптерлер монитордың көрсету мүмкіндіктерін өзгерте
алатын бірнеше графикалық режимде жұмыс жасай алады. Мәтіндік режимде
экранда 40(80) × 25 символ бейнелеуге болатын болса, графикалық режимде
онда бейнеленетін ең кіші объект – графикалық нүкте – пиксел деп аталынады.
Мысалы: көп қолданылатын VGA адаптерінің қалыпты режимінде экранда 640 ×
480 пиксел көрінеді және олардың 16 түсін айыруға болады.
▪ Uses Graph операторын программа басына орналастырғанда ғана Graph
модулінің қызметін толық пайдалануға мүмкіндік беріледі.
▪ InitGraph(Gd, Gm, Gol) процедурасы дербес компьютерге қойылған
видеоадаптерді автоматты түрде тауып, сәйкес графикалық драйверді іске
қосады және оны графикалық режимге көшіреді.
Мұнда Gol–драйвер файлына апаратын жол. Мысалы, Gol:=’’, Gol:=’c:\Tp7’.
Графикалық драйверлерді анықтау - Gd, ал олардың жұмыс режимдерін қою - Gm
тұрақтылары арқылы жүзеге асырылады. Олардың мәндері мен қызметі төмендегі
кестеде берілген:

2 кесте. Драйверлердің түрлері мен қызметі
Gd Gm Қызметі
Detect EGALo 640 × 200; 16 түс; 4 бет
=0 =0
CGA EGAHi 640 × 350; 16 түс; 2 бет
=1 =1
MCGA =2 EGA64Lo =0 640 × 200; 16 түс; 1 бет
EGA EGA64Hi =1 640 × 350; 4 түс; 1 бет
=3
EGA64 =4 EGAMonoHi=3 640 × 350; 64K: 1 бет; 256K: 2 бет
EGAMono =5 VGALo 640 × 200; 16 түс; 4 бет
=0
IBM8514 =6 VGAMed =1 640 × 350; 16 түс; 2 бет
HercMono =7 VGAHi 640 × 480; 16 түс; 1 бет
=2
ATT400 =8 PC3270Hi =0 720 × 350; 1 бет
VGA IBM8514Lo =0 640 × 480; 256 түс
=9
PC3270 =10 IBM8514Hi =1 1024 × 768; 256 түс

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

1.4 Компьютердің графикалық координаталар жүйесі

Графикалық режимде экранның ең кіші (бөлінбейтін) бөлшегі пиксель
(нүкте) болады. Шындығында, олар, экранда тік төртбұрышты кесте түрінде
реттеліп орналасқан, бір-біріне тәуелсіз, саны шекті, әртүрлі түспен
жарықтана алатын, ара қашықтықтары өте аз және өлшемі кішкене шаршылар.
Сондықтан да, графикалық экрандағы кескінді анықтап қарағанда оның өте
кішкене шаршылардан (мозаика) құралатынын байқауға болады (1 сурет).

1 сурет. Экрандағы кескінді үлкейтіп қарағандағы көрініс
Экрандағы нүктелердің (пикселдердің) орны олардың графикалық
координаталары арқылы анықталады. Графикалық координаталар ретінде
пикселдердің екі бағыттағы нолден басталатын реттік нөмірлері алынады.
Мысалы, 640 × 480 режимінде экран әрқайсысында 640-тан 480 қатарға
орналасқан нүктелерден құралатындықтан, xгр , yгр координаталары 0 ( xгр
( 639, 0 ( yгр ( 479 аралықтарында болады. xгр координатасының мәні
оңға, ал yгр координатасының мәні төмен қарай өседі. xгр , yгр шектеулі
бүтін оң мәндерді ғана қабылдайды (2-сурет).

(0,0)
xгр

2 сурет. Экрандағы
координаталар жүйесі

yгр
(639,479)

Нүктені экранда бейнелеу үшін оның декарттық (x, y) координаталарын
графикалық (xгр, yгр) координаталарға

xгр = x0 +x(m,
yгр = y0 – y(n

формулаларын қолданып түрлендіруге болады. Мұндағы (x0, y0) графика-лық
координаталар жүйесінің бас нүктесі, ал m, n – x және y остерінің
бағытындағы масштабтар.

1.5 Графикалық экран мен элементтердің параметрлерін қою
процедуралары мен функциялары

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

3 кесте. Процедуралар мен
функциялар
Процедура, не функция Қызметі
П: MoveTo (x, y: integer) Көрсеткішті (x, y) нүктесіне қояды
П: MoveRel (dx, dy: integer) Көрсеткішті (dx, dy) векторына ығыстырады
П: SetGraphMode (r: integer) Экранды алынған режимге көшіреді және оны
тазалайды
П: SetColor (c: word) Суреттің түсін анықтайды, c: 0 - қара,
1 - көк, 2 - жасыл, 3 - көгілдір, 4 - қызыл,

5 - қызғылт, 6 - қоңыр, 7 - ашық сұр,
8 - қара сұр, 9 - ашық көк, 10 - ашық жасыл,
11- ашық көгілдір, 12 - ашық қызыл, 13-
алқызыл, 14- сары, 15- ақ
П: SetBkColor (c: word) Экран төсегінің түсін анықтайды
П: ClearDevice Көрсеткішті (0, 0) нүктесіне қояды және
экранды төсек түсімен толтырады
П: SetLineStyle (s, t: word) Сызықтың типін және жуандығын анықтайды,
s: 0 - тұтас, 1 - нүктелік, 2 -
штрих-пунктирлі, 3 - пунктирлі, 4 –
орындаушы типі
t: 1 - қалыпты, 3 - жуан
П: SetTextStyle (f, n, r: Мәтінді экранға шығару параметрлерін
word) анықтайды,
f - шрифт (0-7), n - бағыт (0,1), r -
шрифт өлшемі (1, ×4)
П: SetFillStyle (s, c: word) Толтыру стилін және оның түсін анықтайды,
s: 0 - төсек түсімен толтыру,
1 - берілген түспен толтыру,
2: 3: 4:
5:

6: 7: 8:


9: 10: 11:

12 - орындаушының стилімен толтыру
П: SetFillPattern Орындаушының толтыру стилін және оның түсін
(s: FillPatternType, c:word) анықтайды, стандарт тип:
FillPatternType = array[1..8] of byte
П: SetActivePage (p: word) Белсенді беттің нөмірін анықтайды
П: SetVisualPage (p: word) Көрінетін беттің нөмірін анықтайды
П: SetViewPort (x1,y1,x2,y2: Графикалық терезені кескіндейді
integer; ClipOn:boollean)
П: SetPalette (cp, c: c түсінің реңін өзгертеді
ShortInt)
П: SetAllPalette (cp: word) Барлық түс реңдерін бірден өзгертеді
П: SetRGBPalette(c, r, g, b:c түсінің қызыл, жасыл, көк құраушыларын
ShortInt) өзгертеді (0 ( r, g, b ( 63)
Ф: GetMaxX: integer Экранның жатық жолы бойынша ең үлкен пиксел
санын береді
Ф: GetMaxY: integer Экранның тік жолы бойынша ең үлкен пиксел
санын береді
Ф: GetX: integer Көрсеткіштің ағымдық x координатасын
береді
Ф: GetY: integer Көрсеткіштің ағымдық y координатасын
береді
Ф: GetColor: word Суреттің ағымдық түсін береді
Ф: GetBkColor: word Төсектің ағымдық түсін береді
Ф: GetMaxColor: word SetColor процедурасын пайдаланатын түстің ең
үлкен нөмірін береді
Ф: GetPixel(x,y: integer): (x, y) координаталарымен анықталған
word пикселдің түсін береді

1.6 Графикалық элементтерді бейнелеу процедуралары

Графикалық кескіндерді бейнелейтін негізгі процедуралар:

4 кесте. Процедуралар мен функциялар
Процедура Қызметі
П: PutPixel (x, y: integer; c: Координаталары (x, y) болатын нүктені
word) c түспен экранға шығарады
П: Line (x1, y1, x2, y2: integer) Координаталары (x1, y1) және
(x2, y2) болатын екі нүктені қосып
кесінді сызады
П: LineRel (dx, dy: integer) Көрсеткішті (dx, dy) векторына
ығыстырып, кесінді сызады
П: LineTo (x, y: integer) Көрсеткішті (x, y) нүктесіне ығыстырып,
кесінді сызады
П: Rectangle (x1, y1, x2, y2: Қарама-қарсы төбелерінің
integer) координаталары (x1, y1) және (x2,
y2) болатын тік төртбұрыш сызады
П: DrawPoly (n: word; n - бұрышты көпбұрыш сызады.
M: array[1..n] of PointType) M – көпбұрыш төбелерінің массиві:
PointType = record
x, y : integer;
end.
П: Circle (x, y: integer; r: word)Центрі (x, y) нүктесінде және радиусі
r болатын шеңбер сызады
П: Arc (x, y: integer; a1,a2, r: Центрі (x, y) нүктесінде, радиусі r
word) болатын шеңбердің бастапқы және соңғы
бұрыштары a1 және a2-ге (градуспен) тең
доғасын сызады
П: Ellipse (x, y: integer; Центрі (x, y) нүктесінде, координат
a1, a2, xr, yr: word) остері бағытындағы радиустері
xr, yr болатын эллипстің бастапқы және
соңғы бұрыштары a1 және a2-ге (градус)
тең доғасын сызады
П: FloodFill (x, y: integer; c: Алдын-ала қойылған параметрлерге сәйкес
word) (x, y) нүктесі жатқан тұйық аймақты
толтырады. c - аймақ шекарасының түсі
П: OutText (s: string) Көрсеткіш тұрған нүктеден бастап мәтін
жолын экранға шығарады
П: SetTextJustify (x, y: word) Мәтінді автоматты түрде жатық (x) және
тік жол (y) бағыттарында
қатарластырады.
x: 0- сол жақтан, 1- ортадан,
2- оң жақтан;
y: 0- төменнен, 1- ортадан,
2- жоғарыдан;
П: OutTextXY (x, y: integer; Координаталары (x, y) болатын
s: string) нүктеден бастап s мәтін жолын экранға
шығарады
П: Bar (x1, y1, x2, y2: integer) Қарама-қарсы төбелерінің
коорди-наталары (x1, y1) және (x2,
y2) болатын тіктөртбұрышты қойылған
параметрлерге сәйкес толтырады
П: FillPoly (n: word; n - бұрышты көпбұрышты толтырады. M –
M: array[1..n] of PointType) төбелер массиві:
PointType = record
x, y : integer;
end.
П: PieSlice (x, y: integer; Центрі (x, y) нүктесінде, радиусі r
a1,a2, r: word) болатын шеңбердің бастапқы және соңғы
бұрыштары a1 және a2-ге (градус) тең
секторын толтырады
П: FillEllipse (x, y: integer; Центрі (x, y) нүктесінде, координат
xr,yr: word) остері бағытындағы радиустері
xr, yr болатын эллипсті қойылған
параметрлерге сәйкес толтырады
П: Sector(x, y: integer; Центрі (x, y) нүктесінде, радиустері
a1,a2, xr,yr: word) xr,yr болатын эллипстің бастапқы және
соңғы бұрыштары a1 және a2-ге (градус)
тең болатын секторын толтырады
П: Bar3D(x1, y1, x2, y2, d: Беткі жағы тіктөртбұрыш болатын және d
integer; қалыңдығы бойынша параллелипипед
top: boolean) сызады. top= true болса, онда оның
жоғарғы жағы сызылады, false болса -
сызылмайды
П: GetImage(x1, y1, x2, y2 : Кескіннің тік төртбұрышты фрагментін
integer; жадыда сақтайды
A: pointer)
П: PutImage(x, y : integer; Жадыда сақталған кескін фрагментін
A: pointer; M: SortInt) берілген режимге (0..4) сәйкес экранның
көрсетілген орнына шығарады

Турбо Паскалдың графикасымен мына жұмыстарды атқаруға болады:
• Екі өлшемді кескіндерді салу (жазық геометриялық фигуралар мен сызбалар,
графиктер, диаграммалар, пиктограммалар, схемалар және т.б.);
• Үш өлшемді кескіндерді салу (кеңістік геометриялық фигуралар мен денелер,
беттер, гистограммалар, диаграммалар және т.б.);
• Динамикалық кескіндерді салу (кескін проекциясын және қалпын өзгерту,
анимациялау, көру эффектісін туғызу және т.б.);
• Әртүрлі ойын және оқыту программаларын жасақтау және т.б.

1.7 Координаталар жүйесін бейнелеу

Экранда жазықтықтағы тік бұрышты координаталар жүйесін бейнелеп
көрсету үшін мыналар керек:
• Экран режимін анықтау (640 × 480);
• Координаталар жүйесінің экраннан көрінуге тиісті ширектерін таңдап
алып, соған сәйкес координаталар басының орнын, яғни, (x0, y0)
нүктесінің координаталарын алу;
• Координаталық тордың x және y остері бойынша өлшемдерін (тор көз
саны және бағамы) анықтау;
• x және y остері бойынша бірлік кесінділердің ұзындықтарын (масштабын)
табу;
• Координаталар жүйесін кескіндеу.
Ширектерді таңдап алу үшін графиктің координаталар жүйесінде орналасуын
болжау керек. Физика есептерінде көбіне олардың 3 түрлі жағдайы
кездеседі (3 суреттегі мысалдарды қараңыз).

3 сурет. Экранда координаталар жүйесінің орналасуы.

2 және 3 жағдайларда x осінің оң бағытында 640 - x0 ≈ 600 нүкте бар деп
есептейміз. Оны саны nx = 2, 3, 4, 5, 6, 10, 12, 15, 20, 24, 25, 30, 40,
50, 60, 100, 120, 150, 200, 300 тең бөліктерге дәл бөлуге болатынын
координаталық тор өлшемдерін алғанда ескереміз. Тор өлшемдерін кішкене етіп
алған сайын оның бағамдарын экранда жазып көрсету қиындай түсетінін
ұмытпаған жөн. x осі бойынша бірлік кесіндінің ұзындығын және оның бағамын
табуға мысалдар келтірейік.
1 мысал. Аргументтің өзгеру аралығы болсын.
▪ nx=24 деп алсақ, онда тор өлшемі бағамы , ал масштабы
болады.
▪ nx=20 деп алсақ, онда тор өлшемі бағамы , ал масштабы
болады.
2 мысал. Аргументтің өзгеру аралығы болсын.
▪ nx=15 деп алсақ, онда тор өлшемі бағамы , ал масштабы
болады.
▪ nx=20 деп алсақ, онда тор өлшемі бағамы , ал масштабы
болады.
3 мысал. Аргументтің өзгеру аралығы болсын.
▪ nx=6 деп алсақ, онда тор өлшемі бағамы , ал масштабы
болады.
4 мысал. Аргументтің өзгеру аралығы болсын.
▪ nx=12 деп алсақ, онда тор өлшемі бағамы , ал
масштабы болады.
1 жағдайда x осінің оң және теріс бағыттарында 320 нүктеден бар
болғандықтан, олардың әрқайсысын саны n = 2, 4, 5, 8, 10, 16, 20, 32, 40,
64, 80, 160 тең бөліктерге дәл бөлуге болады.
5 мысал. Аргументтің өзгеру аралығы болсын.
▪ nx=10 деп алсақ, онда тор өлшемі бағамы , ал масштабы
болады.
y осі бойынша да тор өлшемдерін және масштабты анықтау осы тәсілмен жүзеге
асырылады. Мұнда 1 және 2 жағдайларда y осінің оң бағытында 240 нүкте, ал
3 жағдайда – 450 нүкте бар деп есептеу керек.
6 мысал. Функция мәндерінің өзгеру аралығы болсын.
▪ ny=6 деп алсақ, онда тор өлшемі бағамы
, ал масштабы болады.
7 мысал. Функция мәндерінің өзгеру аралығы болсын. Бұл 3 жағдайға
(y≥0) сәйкес келеді.
▪ ny=9 деп алсақ, онда тор өлшемі бағамы , ал масштабы
болады.

Осыларды ескеріп, координаталар жүйесін әр жағдайға сәйкес экранда бейнелеп
көрсететін программалар мәтіндерін келтірейік.

➢ Аргумент аралығында өзгергенде функция мәндері аралығында
жататыны белгілі болса (1-жағдай):

Program Decart1;
uses Crt, Graph;
const x0=320; y0=240; Xd=320; Yd=240;
var Gd,Gm,Xmax,Ymax,nx,ny,Lx,Ly,Bx,By,i : integer;
s: string;
begin
{*Аралықтар мен бөліктер санын енгізу *}
Xmax:=400; nx:=8;
Ymax:=600; ny:=6;
{********************************** *}
Lx:=Xd div nx; Bx:=Xmax div nx;
Ly:=Yd div ny; By:=Ymax div ny;
Gd:=Detect; InitGraph(Gd,Gm,'');
{*Тік сызықтар салу және бағамдар жазу *}
For i:=-nx to nx do
begin
SetColor(8);
line(x0+Lx*i,0,x0+Lx*i,480);
SetColor(7); str(Bx*i:3,s);
if i0 then OutTextXY(x0+Lx*i-12,y0+4,s);
end;
{*Горизонтал сызықтар салу және бағамдар жазу *}
For i:=-ny to ny do
begin
SetColor(8);
line(0,y0+Ly*i,640,y0+Ly*i);
SetColor(7); str(By*i:3,s);
if i0 then OutTextXY(x0-32,y0-Ly*i-4,s);
end;
{*Координаталар остерін салу *}
SetColor(7); Line(0,y0,640,y0); Line(x0,0,x0,480);
MoveTo(640,y0); LineRel(-10,-3);
MoveTo(640,y0); LineRel(-10,3);
MoveTo(x0,0); LineRel(-3,10);
MoveTo(x0,0); LineRel(3,10);
SetColor(11); OutTextXY(606,y0-15,'x(м)');
OutTextXY(x0+6,0,'y(м)'); OutTextXY(x0+4,y0+4,'0');
Readln; CloseGraph;
end.

➢ Аргумент өзгергенде функция мәндері аралығында жататыны
белгілі болса (2-жағдай):

Program Decart2;
uses Crt, Graph;
const x0=28; y0=240; Xd=600; Yd=240;
var Gd,Gm,Xmax,Ymax,nx,ny,Lx,Ly,Bx,By,i : integer;
s: string;
begin
{*Аралықтар мен бөліктер санын енгізу *}
Xmax:=150; nx:=15;
Ymax:=25; ny:=5;
{********************************** *}
Lx:=Xd div nx; Bx:=Xmax div nx;
Ly:=Yd div ny; By:=Ymax div ny;
Gd:=Detect; InitGraph(Gd,Gm,'');
{*Тік сызықтар салу және бағамдар жазу *}
For i:=0 to nx do
begin
SetColor(8);
line(x0+Lx*i,0,x0+Lx*i,480);
SetColor(7); str(Bx*i:3,s);
if i0 then OutTextXY(x0+Lx*i-12,y0+4,s);
end;
{*Горизонтал сызықтар салу және бағамдар жазу *}
For i:=-ny to ny do
begin
SetColor(8);
line(0,y0+Ly*i,640,y0+Ly*i);
SetColor(7); str(By*i:3,s);
if i0 then OutTextXY(x0-28,y0-Ly*i-4,s);
end;
{*Координаталар остерін салу *}
SetColor(7); Line(0,y0,640,y0); Line(x0,0,x0,480);
MoveTo(640,y0); LineRel(-10,-3);
MoveTo(640,y0); LineRel(-10,3);
MoveTo(x0,0); LineRel(-3,10);
MoveTo(x0,0); LineRel(3,10);
SetColor(11); OutTextXY(606,y0-15,'x(м)');
OutTextXY(x0+6,0,'y(м)'); OutTextXY(x0+4,y0+4,'0');
Readln; CloseGraph;
end.

➢ Аргумент өзгергенде функция мәндері аралығында жататыны
белгілі болса (3-жағдай):

Program Decart3;
uses Crt, Graph;
const x0=28; y0=460; Xd=600; Yd=450;
var Gd,Gm,Xmax,Ymax,nx,ny,i: integer;
Lx,Ly,Bx,By:real;
s: string;
begin
{*Аралықтар мен бөліктер санын енгізу *}
Xmax:=1800; nx:=9;
Ymax:=1; ny:=10;
{********************************** *}
Lx:=Xdnx; Bx:=Xmaxnx; Ly:=Ydny; By:=Ymaxny;
Gd:=Detect; InitGraph(Gd,Gm,'');
{*Тік сызықтар салу және бағамдар жазу *}
For i:=0 to nx do
begin
SetColor(8);
line(Round(x0+Lx*i),0,Round(x0+Lx*i ),480);
SetColor(7); str(Bx*i:4:0,s);
if i0 then OutTextXY(Round(x0+Lx*i-20),y0+4,s) ;
end;
{*Горизонтал сызықтар салу және бағамдар жазу *}
For i:=0 to ny do
begin
SetColor(8);
line(0,Round(y0+Ly*i),640,Round(y0+ Ly*i));
SetColor(7); str(By*i:3:1,s);
if i0 then OutTextXY(x0-28,Round(y0-Ly*i-4),s) ;
end;
{*Координаталар остерін салу *}
SetColor(7); Line(0,y0,640,y0); Line(x0,0,x0,480);
MoveTo(640,y0); LineRel(-10,-3);
MoveTo(640,y0); LineRel(-10,3);
MoveTo(x0,0); LineRel(-3,10);
MoveTo(x0,0); LineRel(3,10);
SetColor(11); OutTextXY(606,y0-15,'x(м)');
OutTextXY(x0+6,0,'y(м)');
OutTextXY(x0+4,y0+4,'0');
Readln;
CloseGraph;
end.
1.8 Тәуелділіктің графигін тұрғызу

x және y декарт координаталарымен берілген екі айнымалының
аналитикалық тәуелділігінің үш түрі бар. Олар
1) Функция түрінде берілуі: ;
2) Параметрлік түрде берілуі: ;
3) Теңдеу (жабық) түрінде берілуі: .
Әр түрге сәйкес график тұрғызатын программалар мысалдарын келтірейік.
□ аралығында функциясының графигін тұрғызатын программа:

Program Modulatsia;
uses Crt, Graph;
const x0=28; y0=240; Xd=600; Yd=200;
var Gd,Gm,nx,ny,x1,y1,i: integer;
Xmax,Ymax,Lx,Ly,Bx,By,Mx,My,x,y,dx: real;
s: string;
begin
{***************************}
Xmax:=6*Pi; nx:=12;
Ymax:=2; ny:=4;
{***************************}
Lx:=Xdnx; Bx:=Xmaxnx;
Ly:=Ydny; By:=Ymaxny;
Mx:=LxBx; My:=LyBy;
Gd:=Detect; InitGraph(Gd,Gm,'');
For i:=0 to nx do
begin
SetColor(8);
line(Round(x0+Lx*i),0,Round(x0+Lx*i ),480);
SetColor(7); str(Bx*iPi:3:1,s);
if i0 then OutTextXY(Round(x0+Lx*i-20),y0+4,s+ 'г');
end;
For i:=-ny to ny do
begin
SetColor(8);
line(0,Round(y0+Ly*i),640,Round(y0+ Ly*i));
SetColor(7); str(By*i:3:1,s);
If i0 then OutTextXY(x0-28,Round(y0-Ly*i-10),s );
end;
SetColor(7); Line(0,y0,640,y0); Line(x0,0,x0,480);
MoveTo(640,y0); LineRel(-10,-3);
MoveTo(640,y0); LineRel(-10,3);
MoveTo(x0,0); LineRel(-3,10);
MoveTo(x0,0); LineRel(3,10);
SetColor(11); OutTextXY(606,y0-15,'x(м)');
OutTextXY(x0+6,0,'y(м)'); OutTextXY(x0+4,y0+4,'0');
x:=0; dx:=0.0005;
{Функцияның графигін салу}
Repeat
y:=2*sin(x3)*sin(9*x);
x1:=Round(x0+x*Mx);
y1:=Round(y0-y*My);
PutPixel(x1,y1,14);
x:=x+dx;
until xXmax;
Readln; CloseGraph;
end.

□ аралығында тәуелділігінің графигін тұрғызатын программа:

Program Parametr;
uses Crt, Graph;
const x0=28; y0=460; Xd=600; Yd=450;
var Gd,Gm,nx,ny,x1,y1,i: integer; s: string;
Xmax,Ymax,tmax,Lx,Ly,Bx,By,Mx,My,x, y,t,dt: real;
begin
{********************************}
Xmax:=12; nx:=12;
Ymax:=9; ny:=9; tmax:=20;
{********************************}
Lx:=Xdnx; Bx:=Xmaxnx;
Ly:=Ydny; By:=Ymaxny;
Mx:=LxBx; My:=LyBy;
Gd:=Detect; InitGraph(Gd,Gm,'');
For i:=0 to nx do
begin
SetColor(8);
line(Round(x0+Lx*i),0,Round(x0+Lx*i ),480);
SetColor(7); str(Bx*i:2:0,s);
if i0 then OutTextXY(Round(x0+Lx*i-4),y0+4,s);
end;
For i:=0 to ny do
begin
SetColor(8);
line(0,Round(y0-Ly*i),640,Round(y0- Ly*i));
SetColor(7); str(By*i:2:0,s);
if i0 then OutTextXY(x0-20,Round(y0-Ly*i-10),s );
end;
SetColor(7); Line(0,y0,640,y0); Line(x0,0,x0,480);
MoveTo(640,y0); LineRel(-10,-3);
MoveTo(640,y0); LineRel(-10,3);
MoveTo(x0,0); LineRel(-3,10);
MoveTo(x0,0); LineRel(3,10);
SetColor(11); OutTextXY(606,y0-15,'x(м)');
OutTextXY(x0+6,0,'y(м)'); OutTextXY(x0+4,y0+4,'0');
t:=0; dt:=0.001;
{Функцияның графигін салу}
Repeat
x:=12*sqrt(t20);
y:=9*exp(-t3);
x1:=Round(x0+x*Mx);
y1:=Round(y0-y*My);
PutPixel(x1,y1,14);
t:=t+dt;
until ttmax;
Readln; CloseGraph;
end.

□ аралығында түрде берілген тәуелділіктің графигін
тұрғызатын программа:

Program Neiavnoe;
uses Crt, Graph;
const x0=320; y0=240; Xd=320; Yd=240;
var Gd,Gm,nx,ny,x1,y1,x2,y2,i: integer;
Xmax,Ymax,tmax,Lx,Ly,Bx,By,Mx,My,x, y,dx,D: real;
s: string;
begin
{***************************}
Xmax:=10; nx:=10;
Ymax:=24; ny:=8;
{***************************}
Lx:=Xdnx; Bx:=Xmaxnx;
Ly:=Ydny; By:=Ymaxny;
Mx:=LxBx; My:=LyBy;
Gd:=Detect; InitGraph(Gd,Gm,'');
For i:=-nx to nx do
begin
SetColor(8);
line(Round(x0+Lx*i),0,Round(x0+Lx*i ),480);
SetColor(7); str(Bx*i:3:0,s);
if i0 then OutTextXY(Round(x0+Lx*i-12),y0+4,s) ;
end;
For i:=-ny to ny do
begin
SetColor(8);
line(0,Round(y0-Ly*i),640,Round(y0- Ly*i));
SetColor(7); str(By*i:3:0,s);
if i0 then OutTextXY(x0-26,Round(y0-Ly*i-8),s) ;
end;
SetColor(7);
Line(0,y0,640,y0);
Line(x0,0,x0,480);
MoveTo(640,y0); LineRel(-10,-3);
MoveTo(640,y0); LineRel(-10,3);
MoveTo(x0,0); LineRel(-3,10);
MoveTo(x0,0); LineRel(3,10);
SetColor(11);
OutTextXY(606,y0-15,'x(м)');
OutTextXY(x0+6,0,'y(м)');
OutTextXY(x0+4,y0+4,'0');
x:=-Xmax; dx:=0.001; {Тәуелділіктің
графигін салу}
Repeat
D:=sqrt(16*sqr(x)+exp(x));
x1:=Round(x0+x*Mx);
y1:=Round(y0-(4*x-D)*My);
y2:=Round(y0-(4*x+D)*My);
PutPixel(x1,y1,14);
PutPixel(x1,y2,14);
x:=x+dx;
until xXmax;
Readln;
CloseGraph;
end.

II тарау. МОДЕЛДЕУГЕ ҚАЖЕТТІ САНДЫҚ ӘДІСТЕР

Кейбір физика есептерін шығару үшін алгебралық және математикалық
талдау әдістерін пайдалану мүмкін болмайтыны белгілі. Мұндай жағдайда,
сандық әдістерді қолданып программалау арқылы теңдеулерді шешуге,
функциялардың экстремумдарын табуға, интегралдауға, дифференциалдық
теңдеулерді шешуге, фунциялар графиктерін салуға және т.б. келіп тірелетін
есептерді оңай шығаруға болады. Есептің нәтижесі қолданылған сандық
әдістің түріне тәуелді болуы ықтимал. Физика есептерін шығаруда үлкен
дәлдік қажет болмайтындықтан сандық әдістердің ең қарапайымдары ғана
келтірілген. Әрине, ғылыми-зерттеу жұмыстарына қатысты есептерді
шығарғанда жетілдірілген сандық әдістерді пайдаланған абзал.

1. Өрнектің мәндерін кестелеу

Паскаль программалау тілінде қолданылатын қарапайым стандарт
математикалық функциялардың саны шектеулі екендігі белгілі. Олар:
және т.б. Сол себепті, математикалық өрнектерде өзге функциялар кездесіп
қалған жағдайда оларды міндетті түрде стандарт функцияларға түрлендіріп алу
керек. Жиі кездесетін түрлендірулер:
1) 2) 3) 4) 5) 6) 7) 8)

Есеп. Нақты саны берілген. [0,4] аралығында өзгеретін
айнымалысының 0,1 қадаммен алынған барлық мәндері үшін өрнегінің
мәндерінен кесте жасақтау.

Есептің программасын құрғанда дәреже негізінің оң сан болатынын ескеріп
(1+a0) және x-тің мәні 0-ден 4-ке дейін dx=0.1 қадаммен өзгеріп
отыратындай етіп цикл жасақтаймыз. Циклдың әр қадамында x пен өрнектің (y)
мәнін экранға шығарамыз. Кесте түгелімен экранға сыймайтын болғандықтан
программада оны 24 жолдан бөліп-бөліп шығару мүмкіндігі қарастырылған.
Есептің толық программасы:

Program Ornek_Tab;
uses Crt;
const x1=0; x2=4; dx=0.1;
var a,x,y: real;
i: integer;
ch: char;
begin
ClrScr;
Repeat
Write('a = '); Readln(a);
if a=-1 then Writeln('No');
until a-1;
ClrScr; x:=x1; i:=1;
Repeat
y:=exp((sqr(x)-4*x-5)*Ln((1+a)sqr( a)));
Writeln('x = ',x:3:1,' y = ',y:8:2);
if i mod 24=0 then begin ch:=ReadKey; ClrScr; end;
x:=x+dx; i:=i+1;
until xx2;
Readln;
end.

2.2 Функцияның ең үлкен және ең кіші мәнін табу

Берілген [a,b] аралығында анықталған f(x) функцияның ең үлкен мәнін
табу үшін ymax=f(a) деп алып, осы аралықты тең n бөлікке бөлеміз. Әр
бөліктің ұзындығы болатынын ескеріп, аргументтің x1=a+h, x2=a+2h,
... , xn=a+nh мәндері үшін функцияның сәйкес мәндерін есептейтін цикл
құрамыз. Циклдың әр қадамында функцияның кезекті мәнін ymax-пен салыстырып,
үлкен болған жағдайда оны ymax-ке меншіктейміз. Функцияның ең кіші мәні де
осы әдіспен табылады. Табылған мәннің қателігі аз болу үшін n натурал
санынын үлкен етіп алған жөн.
Есеп. [-2,2] аралығында функциясының ең үлкен және ең кіші
мәндерін табу.
Есептің программасында арнайы Y функциясы сипатталып, ол ең үлкен және
ең кіші мәндерді бір цикл ішінде табуға пайдаланылған. Есептің толық
программасы:

Program Min_Max;
const a=-2; b=2; n=4000; h=(b-a)n;
var x,Xmin,Xmax,Ymin,Ymax: real;
function Y(t:real): real;
begin
Y:=exp(sin(sqr(t)-3*t+2)+1);
end;
begin
x:=a; Xmin:=x; Xmax:=x; Ymin:=Y(x); Ymax:=Ymin;
While x+h=b do
begin
x:=x+h;
if Y(x)Ymin then begin Xmin:=x; Ymin:=Y(x); end;
if Y(x)Ymax then begin Xmax:=x; Ymax:=Y(x); end;
end;
Writeln('Xmin = ',Xmin:6:3,' Ymin = ',Ymin:8:5);
Writeln('Xmax = ',Xmax:6:3,' Ymax = ',Ymax:8:5);
Readln;
end.

3. Функцияның экстремумдарын табу

Берілген [a,b] аралығында анықталған f(x) функцияның x нүктесінде
экстремумы болуы үшін, h0 жеткілікті аз шама болған жағдайда
шарты орындалуы тиіс екендігі белгілі. Ол нүкте болғанда максимум,
әйтпесе минимум нүктесі болады. Бұдан, функция экстремумын іздеудің
қарапайым әдісі шығады. Ол үшін x нүктесін a-дан b-ға дейін h қадаммен
жылжыта отырып, жоғарыдағы шарттарды тексеріп отырса болғаны (4 сурет).

f(x)
fmax

fmin

x x+h x+2h xmin
x

4 сурет. Функцияның экстремумдарын кескіндеу

Есеп. [0,1] аралығында функция-сының экстремумдарын табу.

Program Extremum;
const a=0; b=1; h=0.001;
var x: real; p:boolean;
function Y(t:real):real;
begin
Y:=Ln(cos(7*sqr(t)-2*t+2)+3);
end;
begin
x:=a; p:=true;
Repeat
if (Y(x+h)-Y(x))*(Y(x+2*h)-Y(x+h))0 then
begin
p:=false;
if Y(x+h)-Y(x)0
then Writeln('Xmin=',(x+h):6:3,', Ymin=',Y(x+h):8:5)
else Writeln('Xmax=',(x+h):6:3,', Ymax=',Y(x+h):8:5);
end;
x:=x+h;
until (x+2*hb);
if p then Writeln(‘Берілген аралықта функция экстремумы жоқ’);
Readln;
end.

4. Анықталған интегралды есептеу

Аналитикалық әдіспен табылмайтын немесе есептелінуі өте қиын
анықталған интегралдарды қажетті дәлдікпен жуықтап оңай есептеуге
болатындығы айқын. Бүгінде анықталған интегралды есептеудің көптеген сандық
әдістері бар. Соның қарапайым бірі - трапеция әдісі. Мектептен

(2.1)

анықталған интегралы y=f(x), x=a, x=b және y=0 сызықтарымен шектелген
жазық фигураның ауданына тең болатындығы белгілі (5 сурет). Трапеция
әдісінде бұл аудан биіктіктері (h) бірдей және аз шама болатын тік бұрышты
трапециялардың аудандарының қосындысы деп алынады. Ол үшін [a,b] аралығы
қадамы h-қа тең x1=a, x2=x1+h, x3=x1+2h, ... , xn=x1+nh=b нүктелерге
бөлінеді де, анықталған интеграл

(2.2)

формуласымен жуықтап есептелінеді. Бұл әдісте h аз болған сайын нәтиженің
дәлдігі де арта береді.

f(x)

f(xi+1)

f(xi)

a xi xi+1
b x

5 сурет. Анықталған интегралды есептеу

Есеп. анықталған интегралын жуықтап есептеуесептеу.

Program Integral;
const a=-3; b=3; h=0.0001;
var i,x: real;
function Y(t:real):real;
begin
Y:=exp(-sqr(x)-x+3)(sin(x)+2);
end;
begin
i:=(Y(a)+Y(b))*h2;
x:=a+h;
While x=b-h do
begin
i:=I+Y(x)*h;
x:=x+h;
end;
Writeln('i = ',i:6:2);
Readln;
end.

5. Бір белгісізі бар теңдеудің түбірін табу

Бір белгісізі бар кезкелген теңдеуді түрге келтіруге
болады. Егер берілген a және b нақты сандары үшін шарты орындалса,
онда [a,b] аралығында теңдеудің кем дегенде бір түбірі болатыны белгілі.
Түбірді жуықтап есептеудің көптеген сандық әдістері бар. Солардың ең
қарапайымы ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Компьютерлік графика түсінігі және түрлері
Компьютерлік модельдеу және әдістері
Жоба дайындау үшін компьютерлік бағдарлама мүмкіндіктерін қарастыру
Автокөлік модельдеу және анимациялау
Компьютерлік графика негіздері
Компьютерлік графиканың маңызы
Компьютерлік графиканың даму тарихы туралы
Орындалды бағдарламалық құралдар
Компьютерлік анимация
Дескрипторлық графиканың объектілері
Пәндер