Главная страница
Контакты

    Басты бет


«Қиын есептерді шешу» ПӘнінен оқУ-Әдістемелік кешен

жүктеу 0.89 Mb.



жүктеу 0.89 Mb.
бет3/5
Дата14.04.2017
өлшемі0.89 Mb.

«Қиын есептерді шешу» ПӘнінен оқУ-Әдістемелік кешен


1   2   3   4   5

Практикалық жұмыс соңында студент берілген есептің Паскаль тіліндегі программасын көрсетіп, оны орындатып, тестілеуді жүзеге асырады. Тақырыпқа сәйкес бақылау сұрақтарына жауап береді.


1- апта

1 кредит сағат.

Практикалық сабақ 1.

Тақырыбы: Бүтін санды арифметика. Бүтін сандарды түрлендіру командалары.



Мазмұны:

Бүтін сандарды түрлендірудің функциялары мен процедуралары

Сандық есептеулер бүтін және нақты сандар жиынында жүзеге асырылады. Математикалық жағынан қарағанда бүтін сандар нақты сандардың ішкі жиыны болып табылады. Бүтін санды арифметиканың ЭЕМ- де нақты санды арифметикаға қарағанда 3 негізгі артықшылығы бар:



  • бүтін сандар өзінің дәл мәні арқылы беріледі

  • бүтін санды арифметиканың операциялары дәл нәтиже береді

  • бүтін санды арифметиканың операциялары нақты санды арифметика операцияларына қарағанда тез орындалады

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

Жағдай - адам әрекетінің , жан-жануарлар тіршілігінің, табиғат пен қоғамдағы өзгерістің, оқиғаның, т.б. айналадағы ортаның ықпалына тәуелділігін білдіретін философиялық ұғым. Табиғаттағы, қоғамдағы белгілі бір өзгерісті тудырушы алғышарт есебінде де қарастырылады.

Мұндай қауіп болуы мүмкін болса, программалаушы бүтін санның толып қалуын қадағалауы керек.

Көбінесе бүтін тип санауыш, индекс т.б. бүтін санды шаманы өрнектеу үшін қолданылады. Бүтін тип реттік тип болып табылатыны белгілі.

Бүтін типке қолданылатын стандарт функциялар:

mod, div,ord(x), pred(x), succ(x).

Бүтін санды арифметика тақырыбы бойынша қиынырақ есептердің программасын құруды қарастыру.

Есеп1.

Бірнеше әр түрлі сомадағы ақшалар берілген. Берілген натурал санды берілген ақшалар сомалары арқылы қалай өрнектеуге болады?



Мысалы: Кіріс файлы 514 {берілген сан- s}

2 {ақша саны- n1}

3 {өсу ретімен берілген ақша сомасы

а-массиві}

5

(514 санын 3 және 5 сом 2 түрлі ақша сомасымен қалайша өрнектеуге болады?)

Шығыс файлы 3



101

(Жауабы:3 сомдықтан үшеу және 5 сомдықтан 101, яғни 514=3*3 5*101)

Әдебиеттер: [9] 68-70 бет, 327-332 бет.
Практикалық жұмыс №2.

Тақырыбы: Бүтін сандарды түрлендірудің функциялары мен процедуралары .

Тапсырма: Бүтін сандарды түрлендіру командаларын қолданып программалау.

  1. n натурал саны берілген. Санның жазылымында үш бірдей цифр бар ма екенін тексеріңіз.

    Сан - мөлшерді сипаттайтын, санауда пайдаланылатын абстракт нәрсе.



  2. n және k натурал сандары берілген, nk санының жазылуында m цифрі бар ма екенін тексеріңіз.

  3. n натурал санының барлық бөлгіштерін табыңыз.

  4. Егер a,b,c натурал сандары a2 b2=c2 шартын орындаса Пифагор сандары деп аталады. N-нен кіші барлық Пифагор сандарын экран бетіне шығарыңыз.



2- апта

1 кредит сағат.

Практикалық сабақ 3.

Тақырыбы: Символдық айнымалыларды түрлендіру функциялары мен процедуралары.



Мазмұны:

1. Символдық айнымалыларды түрлендіру функциялары мен процедуралары

2. Олимпиадалық есептерді программалау

Символдық айнымалыларды түрлендірудің стандарт функциялары.

Length (a) – функциясы а символдық айнымалының ұзындығын табады.

Айнымалы - әріп түрінде немесе әріптер тобы түрінде программаға енгізілетін және уақыт, ұзындық, баға, түс және т.б. әр түрлі мәндерді қабылдайтын программадагы сандық шама; белгілі бір мәліметтер типін сақтай алатын және программаны атқару барысында мәнін өзгертуге болатын атауы белгілі объект.

Функция нәтижесінде бүтін типті сан шығады.

Concat (a1, a2)- функциясы а1 және а2 жолдық айнымалыларды біріктіреді. (concat- конкатенация- біріктіру). Функция нәтижесінде жолдық айнымалы шығады.

Copy (a, n, k)- функциясы а жолының n-ші символынан бастап к символ көшіріп (немесе қиып) алады.

Pos (a1, a2)- функциясы а2 жолындағы а1 ішкі жолының басталу позициясын көрсетеді, егер а2 жолында а1 жолы жоқ болса, онда функция мәні 0-ге тең болады.

Әрбір символға компьютерде 0 мен 255 аралығындағы бүтін санды код сәйкес келеді. Символдар кодының кең тараған түрі ASCII коды. (American Standard Code for Information Interchange- ақпарат алмасу үшін арналған Америкалық кодтар стандарты ).

Позиция (лат. posіtіo - орны, жағдайы, орналасқан жері) - Қандай да бір нәрсенің орны, орналасуы (мысалы, шахмат тақтасындағы фигуралардың позициясы); Шекті музыкалық аспаптың мойнындағы сол қолдың бір жерде тұрып, дыбыстардың белгілі бір кезектігін орындайтын орны; Классикалық бидегі қолды ұстап тұру мен аяқтарды қоюдың бұлжымас ережелері.

Ақпарат Ақпарат (лат. informatio - түсіндіру, мазмұндау) ұғымы күнделікті өмірден бастап техникалық салада пайдаланылатын көп мағыналы ұғым. Жалпы алғанда бұл ұғым шектеу, байланыс, бақылау, форма, инструкция, білiм, мағына, құрылым, бейнелеу, сезіну тағы басқа ұғымдармен тығыз байланысты.

Америка (ис. América, порт. América, фр. Amérique, кеч. Amirika, айм. Amërika, нидер. Amerika) - Америка-батыс жарты шардағы екі құрлықтан тұратын дүние бөлігі. Атлант және Тынық мұхиттары аралығында. Оның құрамына Солтүстік Америка мен Оңтүстік Америка құрлықтары, дүние жүзіндегі ең үлкен арал-Гренландия және тағыда басқа жағалауға жақын аралдар кіреді.

ASCII- де символдардың коды 32-ден басталады. 0-ден 32-ге дейінгі компьютердің ақпаратпен түрлі жұмыс істеуіне арналған басқарушы кодтар.

Паскаль тілінде символдың ASCII кодтар кестесіне сәйкес кодын анықтайтын және оған керісінше, 0-ден 255-ке дейінгі бүтін санды кодқа сәйкес символды беретін 2 қарама-қарсы стандарт функциялар бар.

Ord функциясы символдың сәйкес кодын табады. (Ordinal value- реттік мәні)

Chr функциясы кодқа сәйкес символды береді. (character-cимвол)

Символдық айнымалылырды түрлендірудің стандарт процедуралары.

Delete (a, m, n) процедурасы a жолдың m-ші символынан бастап n символ жоюды жүзеге асырады.

Insert (a1, a2, n) процедурасы a1 ішкі жолын a2 жолының n нөмірлі символынан бастап а2 жолының арасына апарып қояды, а2 жолының қалған символдары соңына қарай ығысады.

Str (x, a)- x бүтін немесе нақты санды а символдық тұрақтыға түрлендіретін процедура.

Val (a, x, c) процедурасы Str-ға кері процедура. Ол а символдық тұрақтыны х санға айналдыруды жүзеге асырады. Мұндағы с- бүтін айнымалы. Егер а-ны х-ке түрлендіру мүмкін болса, яғни а-ның барлық символы сан болса, с айнымалысының мәні 0-ге тең. Керісінше жағдайда, с- ның мәні 1- символдың нөміріне тең.

Олимпиадалық есептерді программалауға түрлі есептер беріледі.

Есеп 1. 01 тізбегі.
a1, a2, a3...тізбегі нөл және бір цифрларынан құрастырылады. 0110100110010110... тізбегі былайша құрастырылады: алдымен нөл жазылады. Сонан соң келесі әрекет қайталанады: жазылған бөліктің оң жағына 0-ді 1-ге, 1-ді 0-ге алмастырып цифр жазылады, яғни келесі тізбекті аламыз: 0 - > 01 - > 0110 - > 01101001 - >...

Берілген N бойынша (N < = 100000) aN- ді табу керек.


Енгізу мысалы:
13
Шығару мысалы:
0


Әдебиеттер: [1] 158-175бет, [2] 69-72 бет, [3]112-115 бет, қ[1] 23-28 бет.

Практикалық жұмыс №4.

Тақырыбы: Символдық айнымалыларды түрлендіру функциялары мен процедуралары

Тапсырма: Символдық айнымалыларды түрлендіруге берілген есептерді шешіңдер

  1. Нүктемен аяқталатын жол берілген. Осы жолда неше сөз бар екенін санаңыздар.

  2. Жол берілген. Осы жолда abc әріптер тобы неше рет кездесетінін анықта.

  3. Хаттағы әр сөз керісінше жазылу арқылы шифрланған, хатты кері шифрлау арқылы оқыңыз.



3- апта

1 кредит сағат.

Практикалық жұмыс 5.

Тақырыбы: Ішкі программаларды қолданып, қиынырақ есептердің программасын құру.



Мазмұны:

1.Функцияны қолданып программалау

2.Процедураны қолданып программалау

3. Рекурсия

Паскаль тілінде ішкі (көмекші) программаның 2 түрі бар: процедура және функция.

Рекурсия (лат.recursioкейін кайту) - дыбыс артикуляциясынын үшінші сонғы фазасы, яғни сөйлеу мүшелерінін дыбыс жасау позициясынан айрылып, бастапқы бейтарап калпына кайта оралуы.. Жалпы мағынасында рекурсия - элементтерін өзіне ұқсас түрде қайталайтын процестер.

Процедураның стандарт түрлерімен Read, Readln, Write,Writeln енгізу-шығару процедураларымен, символдық айнымалыларды түрлендірудің Delete, Str,Insert,Val процедураларымен т.с.с біз бұрыннан таныспыз. Программалаушыға сонымен қатар, өзінің процедура және функция жасауына болады.
Процедура деп қандай да бір есепті шешуге арналған атауы бар программа бөлігін атайды.

Процедура программаның процедураны сипаттау бөлімінде көрсетіледі.

Процедураның жазылуының жалпы түрі:

PROCEDURE процедура аты (типтері сипатталған формальды параметрлер тізімі);

Мұнай мен газ қорларын көлемдік есептеу параметрлері. Мұнай кенорнының қорын есептеу параметрлері: Ғ - мұнайлы алаптың ауданы, M2; һ - қойнауқаттың тиімді қалыңдығы, м; j - тиімді кеуектілік; m - мұнаймен қанығу; b - қайтарым коэффиценті; a - мұнайдың меншікті салмағы; һ - қойнауқаттық мұнайдың есептеу коэффиценті.



<сипаттау бөлімдері>

Begin

операторлар бөлімі



End;

Формальды параметрлер деп процедура ішінде қолданылатын және процедураны әр шақырғанда әртүрлі бастапқы және соңғы мәнге ие болатын айнымалыларды атайды.

Программаның процедура бөліміндегі негізгі программаға қатысы жоқ айнымалы жергілікті айнымалы деп аталады. Олар процедурадан шығу кезінде жойылып кетеді. Жергілікті айнымалылар процедураның VAR бөлімінде сипатталуы тиіс.

Негізгі программаның қажетті жерінде процедураны шақыру операторы орналасады.

Процедураны шақыру операторының жазылу үлгісі:



Процедура аты (нақты параметрлер тізімі);

Процедураны қолдана отырып бірнеше нәтиже алуға болады. Бір ғана функция мәнін есептейтін ішкі программаны Паскальда функция деп атайды.

Функцияның жазылуының жалпы түрі:
FUNCTION функция аты (формальды параметрлер аты:типі):нәтиженің типі;

begin

функция денесінің операторлары



end;

Функция нәтижесі функция атымен бірдей болуы керек.

Функцияны шақыру операторының жазылу үлгісі:

Нәтиже:=функция аты (нақты параметрлер);

Рекурсия деп процедураның орындалу барысында өзіне-өзі сілтеу жасауды жүзеге асыратын есептеу процесін ұйымдастыруды айтады.

Мұндай сілтеу шексіз қайталанбауы үшін ішкі программа мәтінінде ол орындалғанда сілтеуді болдырмайтын қандай да бір шарт орналасуы керек.



Рекурсивті процедура мен функцияны қолдану мысалдары:

1. Берілген санның цифрларының қосындысын табу процедурасын қолданып, барлық үш таңбалы сандардың ішінен цифрларының қосындысы берілген N- ге тең сандарды шығарыңдар.



Мыс: N=5

Жауабы:104, 212,113,203, 410, 401,500.

2. Екі натурал санның ЕҮОБ табу процедурасын қолданып, берілген N санның ең үлкен ортақ бөлгішін табыңдар.

Дағдылы сандар - заттарды табиғи санау кезінде, немесе реттік санау кезінде пайдаланылатын сандар.

Ішкі программаны қолдану мысалына олимпиада есебін қарастырайық: Бірнеше әр түрлі сомадағы ақшалар берілген. Берілген натурал санды берілген ақшалар сомалары арқылы қалай өрнектеуге болады?

Мысалы: Кіріс файлы 514 {берілген сан- s}

2 {ақша саны- n1}

3 {өсу ретімен берілген ақша сомасы

а-массиві}

5

(514 санын 3 және 5 сом 2 түрлі ақша сомасымен қалайша өрнектеуге болады?)

Шығыс файлы 3



101

(Жауабы:3 сомдықтан үшеу және 5 сомдықтан 101, яғни 514=3*3 5*101)

Есептің Turbo Pascal тіліндегі программасы:



Program Moneta;

Var s,I,n,n1,k,l,l1:integer; a:array[1..100] of integer; label 10;

Procedure NOD (q,v:integer;var h:integer);

Begin while q<>v do

If q>v then q:=q-v elsr v:=v=q;h:=q;end; {ең үлкен ортақ бөлгішті

табу процедурасы}

begin readln(s);readln(n1); for i:=1 to n1 do readln(a[i]); NOD(a[1],a[2],l1); for i:=1 to n1-1 do NOD(a[i],l1,l); n:=s div a[n1];

Repeat

if n<=0 then begin write(‘no’);Goto 10; end; k:=s-n*a[n1]-l1;

if k mod l=0 then begin i:=i-1;l:= k div a[i]; l1:=a[i]; writeln)(l); end else n:=n-1;end;

Untili<=1

Writeln(n)

10: end.

Әдебиеттер: [1] 130-140б, [2] 90-104 б, 105-106 б, [3]47-53 б, 161-180 б, қ[1] 28-30 бет.

Практикалық жұмыс №6.

Тақырыбы: Ішкі программаларды қолданып, қиынырақ есептердің программасын құру.

Тапсырма: Ішкі программаларды қолданып, қиынырақ есептердің программасын құру

  1. Қабырғасы а-ға тең дұрыс алтыбұрыштың ауданын үшбұрыштың ауданын табатын ішкі программаны қолдану арқылы табыңыз.

  2. А массиві берілген. А[1] A[2] A[3], А[3] A[4] A[5], А[4] A[5] A[6] қосындыларын табыңыз.

  3. қосындысын табу программасын құрыңыз, n белгілі деп алыңыз. Нәтижесін p/q қысқартылмаған бөлшек түрінде беріңіз. (p, q – натурал сандар).

  4. 1! 2! 3! ... n! (n≤15) қосындысын табу программасын құрыңыз. Ескерту: функция нәтижесінің типі – LongInt болуы керек.


4- апта

1 кредит сағат.

Практикалық жұмыс 7.

Тақырыбы: Массивті, матрицаны түрлендіру.



Мазмұны:

1. Массивті, матрицаны түрлендіру.

2. Массивті түрлендіруге берілген олимпиадалық есептерді программалау

Массив деп 1 атпен аталатын, саны алдын-ала анықталған бір типті элементтер жиынын атайды.

Массивті 2 түрде сипаттауға болады:



1. Айнымалылар бөлімінде сипаттау үлгісі:

Var массив аты: array [массив индексінің аралығы] of элемент типі;

(array- массив). Квадрат жақшада массивтің бірінші және соңғы элементтерінің индексі жазылады.



2. Типтер бөлімінде сиппаттау үлгісі:

Type тип аты = array [массив индексінің аралығы] of элемент типі;

Var массив аты: типтің аты;

Массивті типтер бөлімінде анықтау программаны оқуды көп жеңілдетеді және ол программалаудың жақсы тәсілі болып табылады.

Массив бір өлшемді (сызықтық), екі өлшемді (матрица), жалпы алғанда n өлшемді болады. n жолдан, m бағаннан тұратын екі өлшемді массив былайша сипаттайды:

Var массив аты: array [1..n, 1..m] of элемент типі;

Матрица элементтерін енгізу циклінің жалпы түрі:

for i:=1 to n do begin

for j:=1 to m do

read (a [i, j]); readln;end;

Матрица элементтерінің қалпын сақтап экранға шығару циклінің жазуының үлгісі:

for i:=1 to n do

begin

for j:=1 to m do



write (a [i, j]); writeln;

end;


Массивті түрлендіруге берілген олимпиадалық есептерді программалау.

Есеп 1.

А[1..5] массиві және N саны 2 қатарға берілген. N санын А массивінің элементтерінің қосындысына жіктеп, осы элементтердің нөмірін табыңдар. (барлық тәсілді қарастырып, егер жоқ болған жағдайда сәйкес хабарлама шығарыңдар.

Хабарлама (Донесение) - жоғары тұрған командирге (бастыққа, штабқа) белгілі бір мәліметтерді хабарлау мақсатына арналған жауынгерлік немесе қызметтік есеп-ақпарат құжаты. Соғыс жағдайында төмендегідей хабарламалар даярланады: жауынгерлік, барлау, байланыс бойынша, инженерлік және химиялық қамтамасыз ету, тыл бойынша және басқа.

)



Енгізу мысалы:
1 3 2 1 4


6

Шығару мысалы:
1 2 3


1 4 5

2 3 4

3 5

2-есеп.

hp2.in кіріс файлында A[n,n] квадрат матрица берілген.Оның бірінші және соңғы, екінші және (n -1)-ші т.с.с. жолдарының орнын ортаңғы жолға дейін алмастырыңдар. n-нің жұп және тақ болатын жағдайларын қарастырыңдар.Нәтижені hp2. out шығыс файлына шығарыңдар.

1) Кіріс файлы hp2.in.

4

1 2 3 4


5 4 3 6

5 8 7 9


8 9 7 0

Шығыс файлы hp2.out.

8 9 7 0

5 8 7 9


5 4 3 6

1 2 3 4


Әдебиеттер: [1] 176-185 б, [2] 64-69 б, [3] 45-47, 64-69 б, қ[1] 32-34- бет.

Практикалық жұмыс №8.

Тақырыбы: Массивті, матрицаны түрлендіру.

Тапсырма: Массивті түрлендіруге берілген олимпиадалық есептерді программалау

  1. a1, a2, a3, … ,an сандар тізбегі нолдер және бірлерден тұрады, Осы тізбектің басына нолдерді және соңына бірліктерді қойыңыз.

  2. «Коллективті тестілеу». nm өлшемді бүтін санды матрица құрамында n студенті бар топ туралы ақпараттан тұрсын делік. Бірінші баған салмағын, екіншісінде – бойы, үшіншісінде – үлгерімі(орташа балл) және т.б. (өзіңізден қосыңыз) еңгізіңіз.

а) Студент k- параметрі бойынша орташа статистикалық деп аталады, егер осы студенттің k- бағанындағы сан мен k-шы параметрінің мәнінің орташа арифметикалық айырмасы минимумға жетсе;

б) Студент ең әмбебаб деп аталады, егер оның барлық параметрлерінің саны ең үлкен болса.

Ең әмбебап және орташа статистикалық студенттерді табыңыз.

5- апта

1 кредит сағат.

Практикалық жұмыс 9.

Тақырыбы: Жазба құрылымдық типі.



Мазмұны:

1.Жазба құрылымдық типі.

2. Жазбаны қолданып қиынырақ есептерді программалау

Жазу деп әр типті элементтерден құралған күрделі типті мәліметтік берілгендерді атайды. Жазуды құрайтын элементтер жазу өрістері деп аталады.

Жазудың сипатталу үлгісі:

Type тип атауы= Record



1- өріс атауы:1- өріс типі;

2- өріс атауы:2- өріс типі;



n- өріс атауы:n- өріс типі;

end;

var жазу атауы: тип атауы;



Мұндағы Record- жазу.

Жазудың кез-келген элементі былайша көрсетіледі:



жазудың аты. өріс аты;

Мысалы: S1. Fio -1-студенттің фамилиясы

S1. Fak -1-студенттің факультеті

S2. God_r -2- студенттің туған жылы

S1 жазуын жадыға енгізу операторы төмендегіше жазылады:

read (S1. Fio, S1. Godr, S1. Fak, S1. Kurs, S1. Nom_ b );

Жазуды жадыға былайша енгізу күрделі программаларды оқуға қиындық келтіреді. Оны оңайлату үшін программада With (қосу, біріктіру) операторы қолданылады.



With жазу атауы do

begin


жазу өрістерінің аттары енгізілген операторлар

end;


2. Жазбаны қолданып қиынырақ есептерді программалау:

Есеп: 1.Мерзімнен (күн, ай, жыл) және уақыттан (сағат, минут, секунд) тұратын жазба массиві берілген. Массивті өсуі бойынша реттеңдер.

2. Апта күні, бұл күндегі пар саны, пардың басталу және аяқталу уақыты, пән атауы, оқытушы фамилиясы деректерінен тұратын Сабақ кестесі айнымалысы берілген. Бұл деректер ішінен «Информатика» пәндік аймағына қатысты сабақ туралы толық ақпаратты шығарыңдар.



Әдебиеттер: [1] 214- 225 б, [2] 72-76 б, [3] 104-108 б, қ[1] 38- 41б.

Практикалық жұмыс №10.

Тақырыбы: Жазба құрылымдық типі.

Тапсырма: Жазбаны қолданып қиынырақ есептердің Паскаль тілінде программасын құрыңдар:

  1. А және С әріптерінен басталатын жұмысшылардың фамилиялары мен айлық жалақысының шығарыңыз.

  2. Университетке түсушілер, егер бірінші емтиханды қанағатсыз бағаға тапсырса екінші емтиханға жіберілмейді. Абитурент фамилиясы мен олардың бірінші емтиханнан алған бағаларын белгілі деп алып, екінші емтиханға өткен абитуренттердің тізімін құрыңыз.

  3. Кесте айнымалысы төмендегідей тізімді қабылдайды:

  • Апта күні:

  • Сол күндегі парлар саны;

  • Пардың басталу және аяқталу мерзімі;

  • Пәннің аты;

  • Оқытушы фамилиясы.

«Информатика» пән аймағындағы сабақатар туралы толық ақпаратты шығарыңыз.
6- апта

1 кредит сағат.

Практикалық жұмыс 11.

Тақырыбы: Файлмен жұмыс. Программалауда файлды қолдану.



Мазмұны:

1. Файлмен жұмыс командалары.

2. Программалауда файлды қолдану.

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



ASSIGN( файлдық айнымалы, файл аты);

(assign-тағайындау).

Файлдық айнымалы программаның Var айнымалыны сипаттау бөлімінде көрсетіледі.

Мысал: Var f1:text;

Begin


Assign(f1, ‘C:\ out. txt’);

…….


End.

Ашылған барлық файлдар программа аяқталған соң CLOSE(файлдық айнымалы) процедурасы арқылы жабылу қажет.



Мысал: Close(f1);

Сыртқы құрылғыда жазулы берілгендер файлын сыртқы файл деп, ал элементтері символ болып табылатын файлдар мәтіндік деп аталады. Текстік файлдың стандарт типі txt (текстік) болады.

Дискіде бар файлды ашу үшін

RESET( файлдық айнымалы ) ;

процедурасы қолданылады. Файлдан мәліметтерді оқу үшін қолданылатын READ енгізу процедурасының жазылу үлгісі төмендегіше болады:



READ( файлдық айнымалы, var1, var2,… );

Файлға жазу үшін



REWRITE( файлдық айнымалы ) ;

процедурасы қолданылады. (rewrite- жаңадан жазу).



2. Олимпиада есептерін шығару үшін студент ең алдымен, программалау тілін терең меңгеруі, оның компиляторымен жұмыс жасай алуы керек. Екіншіден, оқушы файлмен жұмыс істеуді білуі, сыртқы программамен іс-әрекетті ұйымдастыра білуі қажет. Файлмен жұмыс істеуді программалауға мысал ретінде 2002-жылғы қалалық олимпиаданың мынадай есебін келтіруге болады :

San.in кіріс файлында берілген N натурал санға дейінгі барлық жәй сандарды тауып, нәтижені San.out шығыс файлында шығарыңдар.

Есепті шығарудың Turbo Pascal тіліндегі программасы:



program p1;

var f1,f2:text; N,I,j,s:integer;

begin

assign(f1, ’c:\san.in’); reset(f1); {файлды ашу}

assign(f2, ’c:\san.out’); rewrite(f2); {файлға жазу}

read(f1,N); {файлдан N-ді оқу}

for i:=1 to N do begin s:=0;

for j:= 1 to i do

if i mod 2=0 then s:=s 1; {санның бөлгіштерін санау}

if s=2 then writeln(f2,i);end; { жәй сандарды f2 файлына жазу}

close(f1); close(f2); {файлдарды жабу}

end.

Төмендегі есептердің Паскаль тілінде программасын құрыңдар.


Есеп.

Берілген N-ге дейінгі жай сандарды экранға шығаратын программа құрыңдар. Кіріс файлы hp1.in. Ол N-нің мәні болатын натурал санннан тұрады.(0< N<=100) Шығыс файлы hp1.out. N-нің жай бөлгіштерінен тұрады.

1)Кіріс файлы hp1.in. 2)Кіріс файлы hp1.in.

20 10


Шығыс файлы hp1.out. Шығыс файлы hp1.out.

2 2


3 3

5 5


7 7

11

13



17

19

Әдебиеттер: [1] 230-238б, [2] 78-86б, [3] 119-138 б, қ[1] 41-44 бет.



Практикалық жұмыс №12.

Тақырыбы: Файлды қолданып программалау.

Тапсырма: Файлды қолданып олимпиадалық есептердің Паскаль тілінде программасын құрыңдар:

  1. кездейсоқ сандар генераторы көмегімен f файылын бүтін сандармен толтырыңыз.

    Генератор(Generator) - 1) кіріс тілі проблемалы-бағытталған тіл болып табылатын аударғыштың бір түрі; 2) машиналық командаларды генерациялауды орындайтын аударғыштың құрамдас бөлігі. Жазбалар генераторы (Генератор записей; rekord generator) - тестілеуге қажетті жазбаларды құрастыруға арналған машиналык программа.

    g файылында f файылындағы жұп сандарды көшіріңіз.

  2. кездейсоқ сандар генераторы көмегімен файлға N бүтін сандарын енгізіңіз.Осы файлдағы қарама-қарсы сандар жұбын есептеңіз.

  3. Әртүрлі даталары бар файл берілген. Әрбір дата күні, айы және жылынан тұрады. Осы даталардың ішінен көктемге сәйкес келетіндерін табыңыз.

  4. Мәтіндік файл және кез-*келген бір әріп берілген. Берілген әріптен басталатын файлда неше сөз бар екенін анықтаңыз.


1   2   3   4   5


жүктеу 0.89 Mb.