Паскаль программалау тілі

Автор работы: Пользователь скрыл имя, 02 Декабря 2011 в 11:02, реферат

Описание

Қазіргі кезде Паскаль аты программалау тілдерінде – тіл аты ретінде кеңінен қолданылады. Паскаль программалау тілі ХVII ғасырда өмір сүрген француз ғалымы Блез Паскальдің құрметіне аталып отыр.

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

Паскаль тілі.docx

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

Бірінші кезеңді орындау үшін:  
пернета
қтадан енгізілетін сандардың мөлшерін (массив өлшемін) көрсету керек  
Сан м
өлшерін білген соң, параметрлі циклді қолдану арқылы массив элементтеріне осы сандардың нақты мәндерін меншіктейміз  
Осы
әрекеттерді орындау үшін қолданылатын айнымалыларды сипаттаймыз. Айталық, санымыз 100-ден көп емес және олар басқа да процедураларда қолданылатындықтан, оларды ауқымды айнымалыларды баяндау блогында сипаттаймыз.  
рrogram Misal_F1;  
var  
San: array [1..100] of integer;  
i, SanMolcher: integer;

Мәліметтерді енгізу процедурасы келесі түрде болады:  
procedure init; begin readln (SanMolcheri);  
for i:=1 to SanMolcheri do  
begin  
write (“San[“,i,”]=’);  
readln(San[i]);  
end;  
М
әліметтерді өңдеу процедурасы әзірге бізге қажет емес, сондықтан ол қызмет атқармай-ақ қойсын.  
procedure work ;  
begin  
end;  
Енді екіншісі кезе
ңді қарастырайық, яғни мәліметтерді «mayFile.in» атты мәтіндік типтегі файлға жазу керек. Алдымен өз файлмызды байланыстыратын, айналымның атауын беру керек.Айталық, ол айналымның атауы FileOut болсын, содан кейін біз оны мәтіндік файл ретінде сипаттаумыз керек. Бұл айнымалыны шығару процедурасында пайдаланатын болғандықтан, оны жергілікті айнымалы ретінде сипаттаймыз:  
var  
FileOut: text;  
Одан кейін біз программа
ға, “мәтіндік” типтегі FileOut атты айнымалының, біздің “mayFile. in” атты нақты файлмызды белгілейтінін көрсетуіміз керек. Ол үшін assign(Name Var, Name File)процедурасы қолданылады. Name Var—бұл файлды белгілеу үшін берілген айнымалы аты, біздің жағдайда Name Var—дың орнына File Out сөзін жазасыз. NameFile—бұл біз жұмыс істейтін файлдың аты, біздің жағдайда”mayFile.in”.  
Файл аты мен оны
ң кеңейтілуінен басқа орналасқан орнына қарай сипатталатыны да белгілі. Мысалы,”c,\bp\bin\MyFile.in”. Ал егер толық аты берілмеген жағдайда, үнсіз келісім бойынша сіздің программаңыз орналасқан ағымдағы каталог қолданылады. Енді сіз берілген файлды ашып, оған мәліметтер жазылатындығын көрсетуіңіз керек. Ол үшін rewrite (Name Var)процедурасы қолданылады. Мұндағы, Name Var-бұл файлды белгілеу үшін берілген айнымалы аты, біздің жағдайда Name Var—дың орнына FileOut атауы жазылады. rewrite(  
Name Var) процедурасы—файлды жазу
үшін ашады және көрсеткішті файлдың басына орналастырады.  
Енді м
әліметтерді файлға жазуға бәрі дайын. Ол үшін бұрынан белгілі Write() және Write() процедураларын қолданамыз. Жазулар экранға емес файлға жазылуы үшін, мәліметтерді шығару бағытын көрсетеміз. Яғни, жақшаның ішіндегі мәліметтерді жазатын айнымалы атауының алдында, бізді файлмен байланыстыратын assign() процедурасындағы айнымалы атуын көрсетеміз. Айталық, берілгендерді шығыс файлына бір жолға жазу керек болсын, бұл жағдайда бірінші мән ол енгізілетін сандардың мөлшері болады. Жаңа жолға көшу болмайтындықтан,Write() процедурасын қолданып, бастапқыда файлға SanMolcheri айнымалысын мәнін жазамыз да, содан кейін параметрлі циклді пайдаланып енгізу процедурасында енгізілген сандарды жазамыз. Барлық мәліметтер файлға жазылып болған соң, файлды жазу керек. Ол Close() процедурасының көмегімен орындалады.  
Close(Name Var) процедурасы—файлды
ң соңына, файл соңы белгісін жазып, оны жабады. Егер файл Close() процедурасымен жабылмаған болса, онда мәліметтер сақталынбайды.

Мәліметтерді файлға жазу процедурасы қандай болатынын қарастырып көрелік:

procedure exi;  
var  
FileOut:text;  
begin  
assing(FileOut,`mayFile.in`);  
rewrite(FileOut);  
write(FileOut, SanMolcheri);  
for i=1 to SanMolcheri do  
write(FileOut,San[i]);  
close(FileOut);  
end;  
негізі программаны
ң мәтіні өзгеріссіз қалады  
begin  
init;  
work;  
exi;  
end.  
Осы программаны ‘Misal_F1’ атымен дискіге жазып, оны орындау
ға жіберіңіз. Программа жұмысын аяқтағаннан кейін, BP редакторының көмегімен біздің программамыз құрған `mayFile.in` файлын ашып, оның мазмұнын көріңіз. Өкінішке орай сандар файлда бос орынсыз тіркесіп жазылған болып шығады. Мұндай жазбадан қандай сандар жазылғанын анықтау қиындық тудырады. Бұл жағдайды қалай түзетуге болады?  
Ол
үшін, сандары бір бірінен дәл ажыратудың екі мүмкіндігі бар:  
а.
әрбір мәнді бос орын (``)белгісі арқылы бөліп жазу  
в.
әрбір мәнді жаңа жолға жазу (баған бойынша).  
Бірінші жа
ғдайда енгізілетін айнымалы атауынан кейін бос орын (``) белгісін қоямыз.  
write(FileOut, SanMolcheri,``);  
for i:= to SanMolcheri do  
write(FileOut,San[i],``);  
екінші жа
ғдай үшін, writeln() процедурасын қолданамыз:  
writeln(FileOut,SanMolcheri);  
for i=1 to SanMolcheri do  
writeln(FileOut, San[i] );  
Тапсырма  
1.Енгізілетін м
әліметтер `mayFile1.in` атауымен берілген файлға, бір жолға және бос орын арқылы жазылатындай етіп , Misal_F1 программасын өзгерту керек. Жаңа программаны Misal_F2 атымен сақтаңыз.  
2. Misal_F1 программасында берілген м
әліметтер `mayFile2.in` файлына әрбір мәлімет жаңа жолдан жазылатындай етіп, өзгерту керек. Жаңа програманы Misal_F3 атымен сақтаңыз.  
3.Пернета
қтадан 20 жол мәтін енгізіп, оны шығу файлына жазатын, Misal_F4 атауымен сақталатын программа жазыңыз.

3. Мәтіндік файлға мәліметтер жазу.  
Екі
өлшемді массив.  
Алды
ңғы тақырыпта сіз мәтіндік файлдарды ашуды, оған ақпараттарды жазуды үйреніңіздер. Write()- процедурасын пайдаланып мәліметтерді бір жолға, ал writeln()—процедурасын пайдаланып оларды бағанға жазуды көрдік. Осы білгендерімізді пайдаланып, келесі есепті шешіп көрелік:  
Пернета
қтадан, өлшемі 100х100, элементтері бүтін сан болатын, екі өлшемді массив енгізіледі. Осы массивті элементтерінің орналасу реті бойынша, `МayFile5.in` атымен, мәтіндік файл түрінде жазатын, программа жазу керек.  
Б
ұл есеп те, алдыңғы тақырыпта қарастырылған есепке ұқсас, екі негізгі кезеңнен тұрады:  
1.Пернета
қтадан мәліметтерді енгізу  
2.Оларды атауы `МayFile5.in` болатын, файл
ға жазу керек.  
Бірінші кезе
ңді орындау үшін :  
Пернета
қтадан енгізілетін, массив өлшемдерінің нақты мәндерін кіргізу;  
Массив
өлшемдерін біле отырып параметрлі цикл операторын қолданып массив элементтеріне нақты мәндерді меншіктеу.  
М
әліметтерді енгізу процедурасының мәтінін Misal_8 программасынан алуға болады. Ал мәліметтерді өңдеу процедурасы өзгеріссіз қалатындықтан, Misal_F1программасындағыдай болады.  
Массив элементтерін `МayFile5.in` файлына жазу процедурасыны
ң қандай болатындығын қарастыралық:  
procedure exi;  
var  
FileOut: text;  
begin  
{на
қтылы файлмен айнымалы арасындағы байланыс}  
assing (FileOut,`mayFile.in`);  
{файлды жазу
ға дайындау}  
rewrite(FileOut);  
{массив
өлшемдерiн жазу және курсорды жаңа жолға көшiру}  
writeln(FileOut, JolSany,``, BaganSany);  
for i=1 to JolSany do  
begin  
{массив элементтерiн бос орын ар
қылы жолға жазу}  
for j=1 to BaganSany do  
write(FileOut,San[i,j],``);  
{j-циклiн аяа
қтаған соң, курсорды жаңа жолға көшiру}  
writeln(Fileout);  
end;  
{файлды жабу}  
close(FileOut);  
end;  
Негiзгi программа м
әтiнiнiң өзгерiсiз қалатындығын айтпаса да болады. Осы программаны Misal_F5 атымен сактаңыз. Программаны iске қосудың алдымен, келесi әрекеттердi:  
КурсордыExi процедурасын сипаттайтын жолды
ң басына қойыңыз;  
Негiзгi менюдi Debug iшкi менюiн ашы
ңыз;  
Add brekpoint…
әрекетiн тандаңыз;  
Enter пернесiн басы
ңыз.  
Экран
ға Add brekpoint… (тоқтату нүктесiн қосу) сұхбат терезесi шығады (2.8-сурет).”Line number” (жол нөмері)өрісінде, курсор тұрған жолдвң нөмірін көрсетіп тұрады, ол Exi процедурасын сипаттайтын жолдың басын көрсетеді.  
“Ok” батырмасын (с
ұхбат терезесіндегі) немесе “Enter” пернесін басыңыз.  
Редактор терезесіндегі б
ұл жол басқа түспен бөлінеді. Енді Ctrl+F9 пернелерін басу арқылы программаны іске қосыңыз. Пернетақтадан бастапқы мәндерді енгізіңіз. Мәліметтерді енгізген соң программа жұмысын тоқтатады және компьютердің экранында қайтадан редактор терезесі шығады. Яғни, біз өзіміздің әрекеттеріміз арқылы программа жұмысын көрсетілген жолда тоқтатуға нұсқау бердік. Жұмысты қайтадан жалғастырву үшін “Ctrl+F9” пернелерін басуымыз керек немесе F7 пернесін пайдаланған тиімді және Exi процедурасының қалай жұмыс істейтінін бақылап көре аламыз.  
Б
ұл әрекеттер, программаның жеке бөліктерімен жұмыс жасағанда (жүріп өткенде) тиімді, себебі үлкен өлшемді программаларды толығымен жүріп өту жалықтырады және керек емес. Олай болса, программалаудың құрылымдылық тәсілін (1.5 тақырып) қолдай отырып бізде бары:  
Жеке модульдермен “ж
ұмыс істеу” (программалау) мүмкіндігі.  
Бір де
ңгейдегі “ойша” машиналардың тәуелсіздігі, программаның жекеленген бөліктерін, программаш\ның басқа бөліктеріне әсер етпей тәуелсіз жетілдіруге мүмкіндік береді. Э. Дейкстр атап өткендей: “... программаны жетілдіру, бір түрдегі (ойша) машиналардың басқа қолайлы машиналарға ауысуынан туындайды”.  
Құрылымдылық программаның жеке бөліктерімен жұмыс жасау.  
Процедура м
әтінімен жүріп өткенде құрама операторлардың жұмысына көңіл бөліңіз.

begin  
{массив элементтерiн бос орын аркылы жолга жазу}  
forj:=1 to BaganSany do  
write (FileOut, San[i,j],``);  
{j-цикл аякталган сон, курсорды жана жолга кошiру}  
writeln(FileOut);  
end;  
То
қтату нүктесін алып тастау үшін, келесі әрекеттерді орындаймыз:  
Негізгі менюді бес\лсенділе
ңіз;  
Негізгі менюден Debug ішкі менюін ашы
ңыз;  
Breakpoints пернесін басы
ңыз.  
Enter пернесін басы
ңыз.  
Экранда программа
ға қойылған барлық тоқтату нүктелерінің тізімі көһрсетілген, Breakpoints… (тоқтату нүктелері) сұхбат терезесі (2.9-сурет) шығады.  
Қажетті элементті белгілеңіз;  
“Delete” (с
ұхбат терезесінен) батырмасын немесе “D” (пернетақтадан) пернесін басыңыз.  
Белгіленген то
қтату нүктесі тізімнен алынып тасталады. Егер сіз барлық тоқтату нүктесін алып тастағыңыз келсе-- “Clear all” батырмасын басу керек.  
Тапсырма  
Егер exi ішкі программасында
ғы write және writeln процедураларындағы бірінші параметр FileOut көрсетілмесе San массиві қайда жазылған болар еді?  
Егер осы параметр тек writeln процедурасында к
өрсетілмеген болса не өзгереді? 

4. Мәтiндiк файлдан мәлiметтердi оқу  
Өткен тақырыптарда сіздер, мәліметтерді мәтіндік файлға жазуды үйреніңіздер. Енді оларды қайтадан файлдан қалай оқуға болатынын қарастырамыз.  
Ол
үшін `mayFile1/in` файлын пайдаланамыз. Мәліметтерді файлға жазу кезіндегідей, біздің файлмызды байланыстыратын айнымалыға атау беруіміз керек. Айталық, ол атау Fileln болсын, содан кейін біз оны мәтіндік файл ретінде сипаттауымыз керек. Бұл айнымалыны біз енгізу процедурасында пайдаланатын болғандықтан, сол процедураның жергілікті айнымалысы ретінде сипаттаймыз.  
var  
Filelnt:text;  
Одан кейін біз программада, “м
әтіндік типті ” Fileln айнымалысы, біздің  
`mayFile1.in` атауымен берілген на
қтылы файлмызды белгілейтіндігін көрсетуіміз керек. Ол үшін assing(NameVar,NameFile)-процедурасын қолданады.  
Енді файлдан м
әліметтерді оқу үшін, берілген файлды ашуымыз керек. Ол үшін, reset(NameVar)—процедурасында қолданады, мұндағы NameVar-сіздің файлды белгілеуге берген айнымалыңыздың атауы, біздің жағдайымызда, ол NameVar-Fileln. Reset(NameVar)-процедурасы, мәліметтерді оқуға файлды ашады және курсорды файлдың басына орналастырадв. Егер ондай жоқ болса, қателік туралы хабарлама береді. Енді мәліметтерді файлдан оқуға барлығы дайын болды. Ол үшін өзімізге бұрынан таныс Read() және Readln() процедураларын пайдаланамыз. Мәліметтерді оқу пернетақтадан емес, файлдан жүзеге асу үшін, мәліметтерді оқудың жолын көсетеміз. Яғни, жақшалардың ішіне, assing()- процедурасының көмегімен біздің файлмызды байланыстырып тұрған, айнымалының атауын көрсетеміз.  
`MayFile.in`файлында
ғы бірінші сан, файлдағы барлық сандардардың мөлшерін көрсетеді. Сондықтан, алдымен файлдан  
Sanau айнымалысыны
ң мәнін оқытамыз,содан кейін параметрлі циклді қолданып, файлдағы сандардың мәндерін оқимыз. Мәліметтер толық оқылып болған соң, өзімізге таныс Close() процедурасын пайдаланып, файлды жабу керек.  
Енді, м
әліметтерді фйалдан оқу процедурасы қандай болатындығын көрелік:  
procedure lnit;  
var  
i:byte;  
Fileln:text;  
begin  
assing(fileln,`mayFile1.in`);  
reset(Fileln);  
readln(Fileln,Sanau);  
for i:=1 to Sanau do  
read(Fileln,San[i]);  
close(Fileln);  
end;  
Д
әл осындай, егер өлшемдері белгілі болса, мәліметтерді екі өлшемді массивтен оқу да онша қиыншылық туғызбайды. `MayFile.in5` файлынан мәліметтерді оқитын программадан үзінді мысалға келтірейік:  
procedure lnit;  
var  
i,j:byte;  
{айнымалы атауын м
әтiндiк файл түрiнде сипаттау}  
Fileln :text;  
begin  
{айнымалыны на
қтылы файл атымен байланыстыру}  
assing(Fileln,`mayFile5.in`);  
{файлды о
қуға ашу}  
reset(File);  
{массив
өлшемдерiн оқу, курсорды жаңа жолға көшiру}  
readln(Fileln,JolSany,BaganSany);  
{массив элементтерiн жол ж
әне баған бойынша оқу}  
for:=1 to JolSany do  
read(Fileln,San[i,j]);  
{файлды жабу}  
close(Fileln);  
end;  
Мына
ған көңіл аударыңыз, массив элементтерін оқу кезінде, Readln() процедурасын қолданбай, тек қана Read() процедурасы қолданылды. Бұл мүмкін еді, себебі массив элементтерін оқу үшін оның өлшемдері алдын ала белгілі болды. Егер мәтіндік файлдағы элементтер жазбалар саны алдын ала белгісіз болса, онда қайталану саны белгісіз цикл операторларын қолдануға тура келеді.  
Тапсырма  
Бір
өлшемді массивті құрайтын `MayFile.in` файлынан мәліметтерді оқып, оларды компьютре экранына шығаратын программа жазыңыз және оны `MayFile6.pas` атымен сақтаңыз.  
Екі
өлшемді массивті құрайтын `MayFile5.in` файлынан мәліметтерді оқып, оларды компьютер экранына программа жазып және оны `MayFile7.ipas` атымен сақтаңыз.  
MayFile6.pas` программасын пайдаланып, `MayFile2.in` файлынан м
әліметерді оқыңыз. Алынған нәтижені 1 тапсырма нәтижесімен салыстырыңыз. Нәтижені түсіндіріңіз.  
BP м
әтіндік редакторын пайдаланып `MayFile1.in`, `MayFile2.in` және `MayFile5.in` файлдарындағы массив өлшемдерін немесе жазбалар саные көрсететін жолды алып тастаңыз.

Информация о работе Паскаль программалау тілі