Delphi мен Pascal-дің байланысы

Автор работы: Пользователь скрыл имя, 25 Февраля 2013 в 18:05, курсовая работа

Описание

Паскаль тiлiн 1968 - 1971 жылдары швейцариялык. ғалым Никлаус Вирт оқып - үйренуге қолайлы программалау тілі ретінде ұсынған болатын. Бұл тілдің стандарты кейiнiрек бекiтiлдi, ол сол кездері кең таралған АЛГОЛ, ФОРТРАН, БЕЙСИК тiлдерiне қарағанда жетiлдiрiлген, жұмыс iстeyгe ыңғайлы тiл болды. Паскаль тiлi өзінің қарапайымдылығының және тиiмдiлiгiнің арқасында дүние жүзіне тез таралды. Қазiргi кезде барлық дербес компьютерлер осы тілде жұмыс iстей алады. Паскаль тiлiнде жазылған программаның дұрыстығын компьютерде тексеру және жiберiлген қатенi тузету оңай.

Содержание

3. Кіріспе....................................................................................................................3
3.1 Паскаль программалау тілі................................................................................ 3
3.2 Паскаль тілінің негізгі элементтері.................................................................. 4
3.2.1. Мәлімет типтері............................................................................................. 4
3.4. Паскаль тілінде программа дайындау жолдары..............................................5
3.4.1 Программа құрылымы....................................................................................5
4. Turbo Pascal - дағы енгізу және шығару операторлары .................................. 6
4.1 Сандық мәліметтерді енгізу операторы ..........................................................6
4.2 Символдық мәліметтерді енгізу операторы.....................................................7
4.3 Мәліметтерді шығару операторы ....................................................................11
5. Программаның түсінігі........................................................................................13
5.1 Алгоритмнің түсінігі..........................................................................................14
6. Қолдану ережесі...................................................................................................14
7. Программа.............................................................................................................15
8. Программаның нәтижесі..................................................................................... 15
9. Delphі қосымшаларымен жұмыс істеу үлгілері................................................16
9.1. QuіckReport компоненттері..............................................................................16
9.2. Delphі-дегі файлдық қолдау.............................................................................16
9.3Object Pascal тілі және файлдары......................................................................17
9.4. Текстік файлдарды өңдеу.................................................................................17
Қорытынды ..............................................................................................................22
Қолданылған әдебиеттер...................................................................................... ...23
Қосымша....................................................................................................................24

Работа состоит из  1 файл

Ю.М.docx

— 77.08 Кб (Скачать документ)

var 
І: real; 
J: integer; 
К: cҺar; 
begin 
Read (І, J, К); 
... 
Программаға мынадай бастапқы мәндер енгізіледі 212.5 38 ‘п’. Осыдан кейінгі келесі мәндер енгізілсін: 'л' 121.35 25.  
Алғашқы нұсқасында мәлімет енгізу дұрыс орындалады, өйткені енгізілетін мәндер өз ретімен орналасқан айнымалылар типтеріне (І, J. К) сәйкес келіп тұр. Екінші нұсқа коды 10 болып келетін қате бар екенін айтады, себебі real типтес 1 айнымалысы үшін char типіндегі мән енгізіліп отыр. 
Егер енгізу пернетақта арқылы емес, дискіден немесе файлдан жүзеге асырылса, онда жақша ішіне алдымен файл аты жазылады. 
READ (FN, аl, а2 ... ап); 
READLN (FN, аl, а2, ... , ап); 
READLN (FN);

Мұндағы FN - енігізілетін мәндер жазылған дискідегі файлдың аты; а1- айнымалылар идентификаторлары, файлдарда да мәндер бір қатардан немесе келесі қатардан оқыла береді, сол себепті мұнда да жоғарыда көрсетілген операторлардың үш түрі қолданылады. Файлдағы мәліметтер де бір-бірінен «бос орын» немесе «енгізу» пернесін басу арқылы бөлінуі тиіс, яғни файлға енгізілгеннен кейін «_», ал енгізу соңында «Enter» пернесі басылады.Файлдардан мәлімет енгізу мысалдары кейінірек қарастырылады. READ операторы кез келген сандармен, символдармен және сөз тіркестерімен жұмыс атқара алады. Сонымен, параметрлердің сандық мәндері бір - бірінен бос орын арқылы ажыратылып жазылады. Мәндерді беріп болдық дегенді білдіру үшін Enter (енгізу) пернесі басылады. Мысалы, енгізу операторы READ (А,В,С); түрінде берілсе, парметрлерге мәндер былай беріледі: 5 _ 6.2 _ 4.5 Enter. Бұл жағдайда А=5, В=6.2, С=4.5 мәндер қабылдайды. Осы мәндер арқылы программа орындалып болған соң, басқа мәндер үшін программаны қайталау қажет болса, онда программа басынан бастап қайта орындау қажет. Бүтін айнымалыларға бүтін, нақты айнымалыларға нақты мәндер берілуі қажет. Айнымалы сипатталғанда нақты ретінде көрсетілсе, оған нақты да, бүтін де мән беруге болады, себебі нақты сан құрамына бүтін сан енеді. Ал машина «өзі» бүтін санды нақты сан түріне келтіріп алады.

Мысалы: 
VAR 
А, В: REAL; 
BEGIN 
READ (А, В); 
... 
END.

түрінде беріліп А,В айнымалылары үшін 4 5 Enter орындалса, онда машина оларды

А= 4.0, В=5.0 түрінде қабылдайды.Сандар арасында бір немесе бірнеше бос орын қалдыруға болады, себебі сан енгізілгенде бос орын есепке алынбайды.Мәндерді енгізгенде мән енгізілген жолдан келесі жаңа жолға өту үшін параметрсіз немесе параметрге сәйкес READLN; READLN (аl, а2, ... ,аn); операторларын пайдалану қажет. Сонымен, READ (аl, а2,...,an); READLN; операторларының орнына бір ғана READLN (аl, а2,...,an) операторын пайдалануға болады.

4.2 Символдық мәліметтерді  енгізу операторы.

Символдық деректерді пернетақтадан енгізу READ (READLN) операторы арқылы жүргізіледі, оларды енгізудің төмендегідей ерекшеліктері бар. 
1. Бос орын таңбасы - '_' Паскаль тілінде символ орнына жүретіндіктен, 
символдық айнымалылардың мәндері (символдар) бос орынсыз жазылады. 
2. Бір айнымалыға бір ғана символ меншіктеледі. Мысал ретінде төмендегі 
программа үзіндісін қарастырайық: 

...................... 
VAR А, В, С: CHAR; 
....................... 
READ (А, В, С); 
.......................

Бұл мысалдағы READ операторы орындаларда пернетақтадан мынадай мәндер SNR енгізсек, онда айнымалылар өз орындарына сәйкес: A='S', B='N', C='R' мәндерін қабылдайды. Егер мәндерді S_N_R түрінде берсек, онда айнымалылар орындарына сәйкес A='S', В='_', С=' N' мәндерін қабылдайды да, соңғы екі таңба ешқайда енгізілмейді.

3. Символдық айнымалыларды  енгізудің тағы бір ерекшелігі - тек Eпter 
пернесі басылса да, оны READ операторы бос орын символы ретіндe қабылдайды. Мысалы, айнымалыларға: А=3, В=4, C='W', D='F' ,мәндерін меншіктеп, оны экранға шығару қажет болса, онда оған мынадай программа жазу керек:

VARA, В: INTEGER; 
С, D: CНAR; 
BEGIN 
WRlTELN (' А, В, С, D мәндерін енгізіндер :'); 
READ (А, В); 
READ (С, D); 
WRlTELN (А, В, С, D); 
END. 
Бұл программа орындалу кезінде пернетақтадан мынадай мәндер енгізілген болса: 
3 4 
WF

онда А = 3, В = 4, С=' " D = 'W' болады, себебі 4 санынан соң басылған Enter пернесі бос символ ретінде  меншіктеледі де, соңғы F символы ешқайда  енгізілмейді. Программадағы айнымалылар  мәнді дұрыс қабылдауы үшін екі  оператордың арасына параметрсіз  және бір енгізу операторын мына түрде жазу қажет:

READ (А, В); 
READLN; 
READ (С, D);

Осылай жазылған уш оператор А = 3, В = 4, С = ' W " D = 'Р' мәндерін дұрыс меншіктеуді қамтамасыз етеді. Символдарды енгізу операторының алдына міндетті турде READLN операторын қою қажет. Егер жоғарыдағы программа үзіндісін десимволдарды енгізу операторын (READ (С. D);) 1- орынға шығарсақ та, оның алдына READLN операторын қою қажет, яғни айтылған ерекшелікке байланысты жоғарыдағы жолдарды былай да жазуға болады:

READLN; 
READ (С, D); 
READ (А, В);

Программада сандық және символдық  мән қабылдайтын айнымалылар  үшін екі рет енгізу операторын жазудың  да қажеті жоқ. Жоғарыдағы екі оператор орнына READ (А, В, С, D) операторын ғана жазуға болады. Егер READ (А, В, С, D) операторын орындауда айнымалыларға мәнді былай берсек: 
4531 KN онда дисплей экранында 4531К көрінеді, демек А = 45, В = 31, С= ‘_’, D= 'К' болғаны, ал егер мәндер былай берілсе:45 31 К N  
Онда дисплейден 4531KN көрінеді, яғни осылай береді.  
Readln операторы көмегімен пернетақтадан бір символ енгізіп оны экранның келесі қатарына қайта шығаруды орындайтын testread программасының мәтіні төменде келтірілген.

var сҺ: cҺar; 
begin 
writeln ('Символ енгізіндер: '); 
writeln (сҺ,' символы енгізілді '); 
write ('Enter пернесін басыңдар'); readln 
end.

Егер осы программаның 'Символ енгізіндер:' деген хабарламасынан кейін бір символ пернесін басып, оны босатпасақ, онда сол басылған символ бейнесі экранға 127 рет шығады да, одан кейін тек тырсылдаған дыбыс қана естіледі. Бұл 127 символ сақтай алатын пернетақта буферінің енгізілген таңбалармен толып қалғанын көрсетеді. 
Негізінде, перне басылғанда бірден екі код қалыптасады, оның алғашқысы символ коды, ал екіншісі - кеңейтілу немесе сканерлеу коды. Алфавиттік-цифрлық перне басылғанда, олардың символ коды пайдаланылады. Ал кеңейтілу коды басқару пернелері (Ctrl, SҺift, Caps Lock, , , , , F1, F 2 т.б.) үшін өте маңызды. Бұлардың символ коды нөлге тең болып саналады да, программаларда олардың тек сканерлеу коды пайдаланылады. Скарнерлеу кодын пайдалану Турбо Паскаль программасының CRT модулінін Read Кеу функциясы арқылы жүзеге асырылады. Символ енгізу кезінде бұл Функция курсорды келесі орынға жылжытпай, ол орынға кез келген символ бейнесін шығара алады. Келесі testread2 программасы Read Кеу функциясын пайдаланып, кіші латын әріптерін бас әріптерге түрлендіреді.

Uses CRT; 
Var сҺ: cҺar; 
Begin 
Writeln ('Латын алфавитінің кіші әріптерін енгізіңдер (z-программадан шығу). '); 
Repeat 
сҺ := Read Кеу; 
write (Up Case( сҺ)); 
until сҺ ='z", 
end.

Төмендегі кесте басқару пернелерің немесе олардың комбинацияларының 
сканерлеу коды берілген. 
Басылған пернелер 
Сканерлеу коды Басылған пернелер Сканерлеу коды

Ctrl+@Ctrl+3 
SҺift+Tab 
Alt+ 1..Alt+= 
Alt+Q ..Alt+P 
Alt+A ..Alt+L 
Alt+Z ..Alt+M 
Alt+Enter 
Ноте 
Ctrl+Home 
Ctrl+PgUp

End


15 
120..131 
16..25 
30..38 
44..50 
28 
71 
119 
132 
77 
79 
80 PgDn 
lns 
Del 
Fl ..FI0 
SҺift+F 1..SҺift+F 10 
Ctr1+Fl ..Ctrl+Fl0 
Alt+F 1..Alt+F 10 
Ctrl+PrintScreen 
PgUp 
75 
Ctrl+  
Ctr1+End 
Ctrl+PgDn 81 
82 
83 
59..68 
84..93 
94 ..103 
О 104..113 
114 
73 
Ctrl+ 115 
116 
117 
118

Төмендегі scan_codes программасы басылған пернелердың сканерлеу кодын 
анықтауға арналған. Ол программамен жұмыс істеу барысында Сtгl + PrtSс (принтерге экрандағы мәліметті шығару) немесе Ctr1+Alt+Del (ДОС-ты• қайта жүктеу) пернелер комбинациясын басу керек емес, ал Ctr1+Break пернелерін басу программа жұмысын тоқтатады.

Uses CRT; 
Var сҺ: char; 
Begin 
Writeln ('Программа символ коды мен сканерлеу кодын анықтайды'); 
Wrіtеlп('Программа жұмысын тоқтату үшін Ctrl+Break пернелерін басыңдар'); 
repeat 
wrіtеlп('Келесі перне: '); 
сҺ: = Read Кеу; 
writeln; 
if cs #0 then 
writeln ('Символдық перне. Огd (сҺ) = " Ord(ch)) 
else 
begin 
write (Басқару пернесі, символ коды: #0. ' ); 
сҺ : = Read Кеу; 
writeln ('Сканерлеу коды: " Огd(сҺ)); 
end•, 
until false; 
end.

Бұл программа кейбір пернелерді басқанда, мысалы, F11 пернесін басқанда еш нәрсе істемейді. Оның символдық және сканерлеу коды болғанмен, Паскаль қолданатын DOS жүйесі компьютер пернелерінің кеңейтілмеген ескі нұcқaсын пайдаланатындықтан (онда F11 болмаған), программа осындай нәтиже береді.  
4. Символдық және сандық мәндерді енгізгенде, көбінесе EOLN (еnd of linе - жол соңы) стандартты функциясын пайдалану қолайлы болады. Бұл Функция мәні "жолдың соңы болды " немесе "мәндер беріліп болды" дегенді білдіретін Enter пернесі басылғанда ғана ақиқат (TRUE) болады да,қалған жайғдайлардың барлығында жалған (FALSE) болады. Бұл Функция көбінесе циклдік операторларда пайдаланылады.

4.3 Мәліметтерді шығару операторы.

Паскаль тілінде нәтижені экранға шығару үшін WRITE (жазу) операторы (процедурасы деп те айтылады) қолданылады:WRІTE (аl, а2, ... ,an); 
Мұндағы жақша ішінде жай айнымалылар немесе апострофтармен қоршалған символдар тобы болуы мүмкін. Мысалы, егер B=17.15. болып, мына команда орындалғанда: 
WRlTE ('В мәні=', В); 
экранда 
В мәні = 1.715Е+Оl 
деген сөз тіркесі көрінеді.

Шығарлатын мәндердің түрі айнымалылардың типі арқылы анықталады, олар iпteger, real, Вооlеап (true, false), char, striпg сияқты типтер түрінде беріле береді. 
Шығарылатын параметрлер бір-бірімен үтір арқылы ажыратылыn, WRITE түйінді сөзінен соң жай жақша ішіне жазылады. 
Шығару операторында жақша ішінде қағазға немесе экранға шығарлатын мәнінің пішімін- оның алатын орнын, яғни енін толық көрсетуге болады. Бүтін санды оның енін көрсете отырып экранға шығаруға болады, мысалы: b айнымалысының бүтін түрдегі мәнін көрсету 
WRITE (b: n) немесе WRITE (b: 5) 
операторы арқылы жүзеге асырылады. Мұндағы b - айнымалының атауы: n - мәні бүтін сан болып келетін тұрақты түрінде берілген орын саны, оны бірден бүтін санмен де жазуға болады. Егер b: 5 пішімі беріліп, ал b =56 ( екі немесе үш разрядты сан) болса, онда беске дейінгі толтырылмаған орындарға сол жақ шетте бос орын қалдырылады. В = 56 мәні үшін WRІTE (b: 5) операторы экранға «56» тіркесін шығарады. 
Нақты сандар ушін оның жалпы енін, сонан соң бөлшегі алатын орынды көрсету қажет, сол себепті аралас сандарды бейнелеуде оның ені қос нүктемен бөлінген екі бүтін сан арқылы жазылады. Сонымең нақты сан үшін пішім екі саннан тұрады:

І- санға берілетін барлық орын. 
ІІ- үтірден кейін алынатын бөлшек цифрлар саны. 
Мынадай оператор берілсін делік: WRІTE (Ү: 5: 2) 
Мұндағы 5 - нәтижеге берілген барлық орын, 2 үтіпден соңғы бөлшек бөлігіне берілетін орындар саны. Мысалы, С= - 145.7865 болғанда WRITE (С: 8: 3) операторы экранға - 145.786 мәнін шығарады, мұндағы жалпы орындар саны - 8, ал бөлшек үш санмен бейнеленетіндіктен соңғы бір цифр жазылмай қалып отыр. С айнымалысының берілген мәнін толық бейнелеу үшін WRITE (С: 9: 4) операторын жазу керек еді. Жалпы нақты санды экранда бейнелеу операторының жазылу түрі:WRITE (С: п: т); 
мұндағы n - С мәнінің барлығына берілген орын саны; m - С мәнінің бөлшек бөлігіне белгіленген орын саны. n - нің мәні таңбаны, бүтін мен бөлшекті бөлетін нүктені және бүтін сандар орнын бөлшек қосып көрсететіндіктен, ол n > m +3 болуы тиіс. Экранға шығаратын сандардың арасында қалдырылатын бос орын санын да осы жолмен көрсетуге болады. Ол үшін екі апостроф жазып, одан кейін қос нүктемен бөлінген бүтін сан арқылы қалдырылатын бос орындар санын өрнектейміз, мысалы: 
WRITE (b: 8: 3,":4, с: 12: 4);мұндағы 4 - b мен с сандарының арасындағы бос орын саны. Егер нақты сан үшін: WRIТЕ ('Ү =', Ү: 8: 3) пішімі берілсе, ал оның мәні Ү=1.76 болса, экраннан Ү=1.760 тіркесі көрінеді. Егер операторда пішім көрсетілмесе, онда нәтuжеде сол сан экспоненциальды түрде экранға шығады.Паскаль тілінде параметрсіз шығару операторы WRITELN жаңа жолға өту үшін қолданылады. Егер WRITELN (аl, а2, ...,an); операторы қолданылса, онда аl, а2, ... ,аn. мәндерін экранға шығарған соң курсор келесі жолға көшеді.

WRITE операторын түсініктеме беруге қолдануға болады. Мысалы: 
WRITE (' А, В, С мәндерін енгізіндер: '); 
READ (А, В, С); 
Мұндайда экранға: 
А, В, С мәндерін енігізіндер: 
түсініктеме сөзі шығады, сонан кейін үш сандық мән енгізілуі тиіс. 
Мысалы, 
WRITE (' Т = ' , N: 3,": 4, ,М = ' , М: 4: 2) 
болса, онда Т-ның үш орынды мәнінен соң 4 бос орын қалады да, одан соң М-нің нақты мәні жазылады. 
Айталық, х= 7, ү= 15, Z= 11, ал R= 450,08 болсын, оларды экранға 
шығарудың әр түрш тәсілдерін мына кестеде көрсетілген.Оператордың жазылуы Экрандағы нәтижесі 
Write (х, у); 
Write (Х'_,_' ,у); 
Write ('Х =',Х); 
Write (Х, ": 3, Z); 
Write (Х+Ү =',Х+Ү); 
Write (Z,'- соңы); 
Write ('бітті'); 
Write (R); 7 15 
7_,_ 15 
Х=7 
7 11 
Х+Ү=22 
ІІ-соңы 
бітті 
4.5008Е+02

 

 

5. Программаның түсінігі. 
5.1 Алгоритмнің түсінігі.

Бұл программада енпзу - шығару операторларына блок – схема құрылған. 
Бұл блок - схемада n таңбасын студенттер санына өзгертеміз. With - оператор көмегімен студенттердің аты жөнін; тобын, туғaн жылын және әрбір пән бойынша алған бағаларын енгіземіз. Fоr оператор көмегімен студентердің әрбір пән бойынша алған бағаларының орташа бағасын есептейміз және олардың жауабын шығарамыз.

6. Қолдану ережесі.

Программаны іске қосыңыздар. Программа А:\ Student. ехе орналасқан. 
Сіздің алдыңыздан меню терезесі көрінеді. Көрінген меню терезесінен керек жолды таңдап алып, (бағыттаушылар жоғары, төмен) таңдауды растау үшін "Enter" пернесін басыңыз. Егер сіз «Программа туралы» жолды таңдасаңыз, онда сіз Авторы кім 
екенін және программа аты туралы ақпарат көресіз. Жалғастыру үшін "Enter" пернесін басыңыз.Егер сіз "Енгізу" жолын тандасаныз, онда алдыңыздан "Turbo Pascаl - дағы енгізу және шығару операторлар программасы" - на хабарлама шығады. Студенттердің санның енгізіңіз, "Enter" пернесін басыңыз, содан соң студенттердің аты - жөнің енгізіңіз, "Enter" пернесін басыңыз, сонан кейін олардың тобын енгізіңіз, "Enter" пернесін басыңыз және туған жылын енгізіңіз, "Enter" пернесін басыңыз,осылардан кейін студенттердің әрбір пән бойынша алған бағаларын енгізіңіз, "Enter" пернесін басқаннан кейін бастапқы меню терезесіне шығасыз. Енгізілетін мәндерді енгізіп болғаннан кейін «Жауабы» жолын таңдасаңыз экранға программа нәтижесі шығады. 
«Шығу» жолын тандасаңыз программадан шығасыз .

7. Программа. 
{Приложение А. Листинг модуля Student.pas} 
{О каждом студенте известна следующая информация 
~ Ф.и.о. 
~ Год рождения 
~ Группа 
~ Оценка по математики 
~ Оценка по истори 
~ Оценка по в.т. 
~ Оценка по статистики 
Сформируйте таблицу, записав в нее всю известную о қаждом студенте и его средний балл. Подсчитайте средний балл по каждому предмету выведите таблицу на экран дисплея в алфотвитном порядке.} 
{Автор: Бақтығалиев Бекнұр} 
{Подключения модуля CRT.} 
Uses CRT; 
{Описания записи о каждом студенте. } 
type 
tablica=record 
паmе: string[15]; 
group: string[6]; 
god: integer; 
vt, history, stat, math: byte; 
sr bal:real; 
end; 
var 
i,j, n:integer;a:tablica; 
{Таблица- массив записей.} 
mas: array [1 .. 30] of tablica; 
{Переменные для сравнение средних значении пo предметам. } 
s vt, s history, s stat, s math: real; 
begin 
{Bвод количества n записи.} 
write('n='); readln(n); 
{Ввод элементов в массив записей.} 
for і:=l to n do 
with mas [і] do 
begin 
writeln (' і=', і: 4); 
writeln ('FIO'); 
readln (nаmе); 
writeln('GROUP') ; 
readln (group); 
writeln ('Year'); 
readln (god); 
writeln ('Otsenki'); 
readln(vt,history,stat,math); 
sr_bal:=(vt+history+stat+math)/4; 
end; 
{Вычисление средних значении по каждому предмету. } 
s vt:=0; s history:=0; s stat:=0; s math:=0; 
for і:=l to n do 
begin 
s vt:=s vt+mas[i] .vt; 
s history:=s history+mas[i] .history; 
s stat:=s stat+mas[i] .stat; 
s -math:=s -math+mas[i] .math; 
end; 
s vt:=s vt/n; 
s history:=s history/n; 
s stat:=s stat/n; 
s math:=s math/n; 
{Упорядочение массива записей в алфавитном порядке фамилии.} 
for і:=l to п-l do 
for j:=l to п-l do 
if mas[j] .name>mas[j+l] .пате then 
begin a:=mas[j]; 
та s [j ] :=та s [j +1] ; 
mas[j+l] :=а; 
end; 
{Вывод результатов.} 
clrscr; 
write(' ':8,'FIO , , .. 4) .,• 
wr і te (' ': 2, 'GROUP '); 
write(' ':l,'Year ',":2); 
write (": 3, 'OTSENKI', ' 
writeln('Sr.Bal') ; 
for і:=l to n do 
with rnas[i] do 
begin 
write(narne:15); 
write (' ',group: 8); 
write(' ',god:4); 
-- _. о. _ 
writeln(' ',vt:з,' ',history:3,' ',stat:3,’math : 3,' ', sr_bаl : 5 : 2) ; 
end; 
writeln (' , ' Sr. bа1: ' " ': 24, s_vt: 3 : 1, ' ',s_history:3:1, , ',s_stat:3:1, S rnath:3:1); 
end.

Информация о работе Delphi мен Pascal-дің байланысы