русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Процедуралар мен функциялар


Дата додавання: 2014-11-28; переглядів: 2224.


(3-семестр, 6 сағат)

Жұмыстың мақсаты – процедуралар мен функциялар процедураларымен жұмыс істеу, программасын құру.

Тапсырма №1. Бұл топтын ішіндегі тапсырмаларда integer және real типті сандық параметрлері бар процедуралар мен функцияларды жүзеге асыру қажет. Бұл типтердін кіріс параметірлері әдетте мәнді –параметрлері сипатталады.

 

Тапсырма варианттары:

1. А мен В нақты сандардын біреуін минимальді болып табатын Min 2(A,B) нақты типті функцияны сипаттау. Сол фунциянын көмегімен А мен В, Амен С, А мен D арасынан минимальді санды табу , егер А,В,С және D берілген сандар болса.

 

2. А мен В мәндердін арасындагы минимальді мәнін А айнымалысына, максимальді мәнін В айнымалысына жазатын Minmax(A,B) процедурасын сипаттау(А мен В-нақты параметрлер, олар бір мезгілде кіріс және шығыс параметрлері болып табылады ). Осы процедураның төрт шақыруын пайдалана отырып А,В,С, D сандардын арасындағы минималді және максимальді сандарын табу.

 

3. 2 тапсырмадағы Minmax(A,B) процедурасын қолдана отырып А,В,С нақты сандардың арасынан максимальді санды табатын Max3(A,B, C) нақты типті функциясын сипаттау. Осы функция арқылы А,В,С, Dсандардын арасындағы келесі жиындардын арасынан (A,B,C),(A,B,D),(A,C,D) максимальдісін табу.

 

4. 1 тапсырмадағы процедурасын қолдана отырып А,В,С,D нақты сандардың арасынан минимальді санды табатын Min 3(A,B,C,D) нақты типті функциясын сипаттау. Осы функция арқылы A,B,C,D,E сандардын арасындағы келесі жиындардын арасынан (A,B,C,D), (A,B,C,E), (A,C,D) минимальдісін табу.

 

5. N!=1 2…N(N>0 (бүтін саннын параметрі) факториальдің мәнін есептейтін Fact(N) бүтін типті функциясын сипаттау. Сол функция арқылы берілген 5 санның факториалдарын есептеу.

 

6. N!=1 2…N(N>0(бутін сандар үшін ) факториалдін жуықталған мәнін есептейтін бүтін типті Fact R(N) функциясын сипаттау. Сол функция арқылы берілген 5 саннын факториалын есептеу.

 

7. Егер N--тақ болып, N!!=2*4*6*…*N; N—жұп болса (N>0 (бүтін санның параметрі) N!!=1*3*5*N екі еселенген факториалдің* мәнін есептейтін бүтін типті Fact2(n) функциясын сипаттау. Сол функция арқылы берілген10 санның екі еселенген факториалын есептеу.

 

8. И-бүтін санның цифрлерінің S-қосындысын табатын SumDigit(N,S) процедурасын сипаттау. (И-кіріс параметрі,S-шығыс параметрі)сол процедура арқылы 5 санының факториалын есептеу.

9. A мен В натурал санның ең үлкен бөлгішін табатын бүтін типті рекурсивті емес функциясын сипаттаубоны Евклид алгоритмі бойынша НОД(АВ) =НОД(Bmod A, A) егер А <>0; НОД(0,B) =В. Сол функция көмегімен Амен В, А мен С, А мен D сандардын ен үлкен бөлгішін табу, егер А,B,C,D ,сандары берілген болса.

 

10. Power A(x,a,eps) нақты типті функцияны сипаттау (x,a,eps параметрлері –нақты,[x]<1,a>0, eps>0), ол (1+x):(1+x)=1+a*x+a*(a-1)x2/+…+a*(a-1)*…(a-n+1)*x/n!+…

функцияның жуықталған мәнін табады. Қосындыда eps модулінен үлкен барлық қосылғыштарды ескеру керек. PowerA көмегімен х пен а деректердің eps-ң алты әртүрлі мәндер үшін (1+х) –ң жуықталған мәнін табу.

 

Тапсырма №2. Бұл топтың ішіндегі тапсырмаларындағы процедуралар мен функциялардын сипаттамасында массивтерді параметр арқылы беруінің әрекеттерін ескеру қажет. Бір өлшемді массивтер үшін Borland Pascal 7.0 енгізілген ашық массивтерінің механизімін пайдалану керек. Екі өлшемді массивтерінде алдын ала сәйкесті қолданушылық типін анықтау қажет. Оны кейде параметр - матрицаны сипаттағанда қолданатын боламыз. Кірістік параметірлер-массивтарін әдетте параметрлар-мәндер арқылы сипаттамайды. Егер массив процедуралар /функциялар орындалу мерзімінде өзгермесе , оны параметр – айнымылы ретінде алу керек.

 

Тапсырмалар варианттары.

 

1. Белгілі Х нақты нүктесіндегі Р полиномның мәнін табатын Polinom(A,N,X) нақты типті функцияны сипаттау.Р полиномы келесі параметрлер арқылы берілген; N(полиномның дәрежесі 0<N<8) және Аполиномның(коэффициенты N +1

өлшемді нақты массив) P(X)=A[1]*Xn-1+...+A [N+1] Осы функцияны қолдана отырып белгілі бес нүктедегі полиномның мәнін табу.

 

2. N нақты санның құралатын А массивтегі максимальді элементін табатын Мах (A,N) накты типті функциясын сипаттау. Сол функция көмегімен NA, NB, NC өлшемге сәйкесті А, В, С массивтегі минималді элементтерін табу.

 

3. N нақты санның құралатын А массивтегі минимальді элементін табатын NMin(A,N)

нақты типті функциясын сипаттау.Сол функция көмегімен NA, NB, NC өлшемге сәйкесті АВС массивтегі минимальді элементтерін табу.

 

4. N накты саннан куралатын А массивтегі миримальді мен максимальді элементтерінің нөмірлерін табатын Nminmax (A, N, Nmin, Nmax) процедурасын сипаттау.Шығыс параметрлері; Nmin(минимальді элементтін нөмірі)және Nmax(максимльді элементтің нөмірі) Сол функция көмегімен NA, NB, NC өлшемге сәйкесті А, В, С массивтегі минимальді мен максимальді элементтерінің нөмірлерін табу.

 

5. А натурал санды жай көбейткіштерге ажыратуын табатын Factors(A, N, F)

процедурасын сипаттау. Сол процедура арқылы берілген 5 санның жай көбейткіштерге ажыратуын көрсету.

 

6. N накты саннан инверторлы (“инвертерілген массивке») А массивтегі элементтерінің еру тәртібін өзгертетін Invert(A,N) процедурасын сипаттау. А массиві –кіріс және шығыс параметрі N кіріс параметрі. Сол процедура көмегімен NA, NB, NC өлшемге сәйкесті А, В, С массивтерін инверторлау.

 

7. N өлшемді А нақты массивті К позициясына(0<k<5,k<N) солга оңға қарай циклдік жылжытуды жүзеге асыратын MoveLeft(A,N,k) Move Right(A,N,k) процедурасын сипаттау

А массиві–кіріс және шығыс параметрі, N мен k кіріс параметрі. Сол процедура көмегімен N олшемді массивті k1 –позициясына жылжыту содан кейін –алынған массивтегі элементтерін k2 позициясына жылжыту (k1 мен k2 берілген) Процедураның әр орындалғаннан кейін экранға жаңа массивті шығару.

 

8. N олшеді А нақты массивтің әр элементін онымен көршілес элементтерінің орта арифметикалығына ауыстыратын Smooth(A,N) процедурасын сипаттау. А массиві -кіріс және шығыс параметрі, N кіріс параметрі. Сол процедура көмегімен N өлшемді массивті 5 рет орындау. Процедураның әр орындалғаннан кейін экранға жаңа массивті шығару.

 

9. N бүтін саннан құралатын А массивтен Х бүтін санды алып тастайтын RemoveX(A,N,X) процедурасын сипаттау. А массиві мен N саны кіріс және шығыс параметрі болып табылады . Сол процедура көмегімен NA, NB, NC өлшемді А, В, С массивтерден сәйкесті ХА , ХВ, ХС сандарын алып тастау.

 

10. N бүтін саннан құралатын А массивтегі Х санға тең элементерін қайталайтын

DoubleX(A,N,X) процедурасын сипаттау. А массиві мен N саны кіріс және шығыс параметрі болып табылады. Сол процедура көмегімен NA, NB, NC өлшемді А, В, С массивтерге XA, XB, XC сандарынын әр кірісін сәйкесті түрінде қайталауы.

 

For i:=1to n do

Begin

With trec do

Begin

Write(‘surname:’) read(fio);

Write(‘year:’); readN(year);

Write(pleace:’); readln(please);

Write(‘address:’); readln(addr);

End;

Write(fin,trec);

End;

End;

Procedure select

Begin

Reset(fin);

For i:=1to n do

Begin

Read(fin,trec);

K:=k+1;

End;

End;

Procedure outdara;

Begin

Reset(fout);

If k:=0 then writeln(‘<<<<<svedeni net>>>>’)

Else for i:=1 to k do

Begin

Writeln(‘******************’);

Read(fout,trec);

With trec do

Begin

Writeln(fio);

Writeln(year);

Writeln(pleace);

Writeln(addr);

Readln;

End;

End;

End;

Begin

Clrscr;

Assign(fin,’data.txt’);

Rewrite(fin);

Rewrite(fout,’outdata.txt’);

Rewrite(fin);

Rewrite(fout);

K:=0

Inputdata;

Select;

Outdfata;

Close(fin);

Close(fout)

End.

 

Программалау (І ) пәнінен

Зертханалық жұмыс №7

Файлдармен жұмыс

(3-семестр, 4 сағат)

Жұмыстың мақсаты – құрылған файлға операцияларды пайдалана білу іскерлігін қалыптыстыру

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

 

Тапсырмалар варианттары

1. Мәтіндік файл берілген. Оның символдар және жолдар санын шығару.

 

2. S жолы және мәтіндік файл берілген. Файлдың басы мен соңына S қойып шығу.

 

3. Мәтіндік файлдар берілген Оның бірінші және соңғы жолдарын алып тастау.

 

4. Name1 және Name2 мәтіндік файлдар берілген. Name1 және Name2 мәтіндік файлдарды біріктіріп жаңа Name3 файл құру.

 

5. Name1 және Name2 мәтіндік файлдар бар.Name2 файлды Name1 соңына қою

 

6. Үш жолдан кем емес жолдан тұратын мәтіндік файл берілген.Берілген файлдың 3 соңғы жолдарын алып тастау.

 

7. к(<10)сан және к жолынан көп жолдан тұратын мәтіндік файл берілген.Берілген файлдың К-соңғы жолынан тұратын жаңа файл құру.

 

8. К (<10) сан және к жолынан көп жолдан тұратын мәтіндік файл бжерілген.Берілген файлдың к-соңғы жолынан тұратын жаңа файл құру.

 

9. Мәтіндік файл және К саны берілген.К нөмірлі жолды файлдан алып тастау.Егер сол нөмірлі жол табылмаса онда файл өзгертпеу.

 

10. Мәтіндік файл және К саны берілген.Файлдағы бар бос жолдарды S жолына ауыстыру.

11. Мәтіндік файл берілген.Одан басқа бос жолдарын алып тастау.

 

12. S жолы және мәтіндік файл берілген.Бар бос жолды S қа болса жолына ауыстыру.

 

13. Мәтіндік файл берілген. Қатарынан бірнеше тұрған пробельді бір пробелге ауыстыру.

 

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

 

15. Мәтіндік файл берілген ішіндегі мәннің сол жағы тегістелгн. Абзацтары бір бірінен бір бос жол арқылы бөлінген. Әр бос емес жолдың бірінші пробелінен санын көбейте отырып мәтінді ені бойынша тегістеу.

 

16. Мәтіндік файл берілген. Егер әр абзац бір бірінен немесе бірнеше жолдар арқвлы бөлінсе сол абзац снын табу.

 

17. Мәтіндік файл берілген. Егер әр абзац 5 пробелі бар азат жолдан басталса сол абзацтардың санын табу Абзац арасындағы бос жол есептемеу.

 

18. Мәтіндік файл берілген.Абзацтары 5 пробелі бар азат жолдан босталадын бос жұп жол. Әр абзац арасына бір бос жол қойып шығу.

 

19. Мәтіндік файл берілген. Мәтіндегі кездескен тыныс белгілерінен тұратын символдық файл құру.

 

20. Мәтіндік файл берілген.Ең үлкен ұзындығы бар бірінші сөзді және минималды ұзындығымен соңғы сөз шығару.

 

21. N саны және мәтіндік файл берілген. Берілген файлдан N ұзындығы бар барлық сөздерден тұратын жолдық файл құру. Егер берілген файлда ұзындығы бар сөздер табылмасаб онда жаңа файл бос қалдыру.

 

22. С-символ және мәтіндік файл берілген.Сол әріпке аяқталатын берілген файлдың

сөздерінен тұратын жолдық файл құру.

 

23. N саны және мәтіндік файл берілген.Файлдан N нөмірлі абзац алып тастау. Абзацтардың алдында және соңыда тұрған бос жол алмау керек.Егер берілген нөмірлі абзац болмаса –файлды өзгертпей қалдыру керек.

 

24. N саны және мәтіндік файл берілген. Файлдан N нөмірлі абзац алып тастау. Абзацтардың арасынағы бос жол есептемеу.Егер берілген нөмірлі абзац болмаса –файлды өзгертпей қалдыру керек.

 

25. Мәтіндік файл берілген оның әр жолында бүтін саны бар. Одан басқа бос жолдарын алып тастау.

 

26. Мәтіндік файл берілген оның әр жолында бүтін саны немесе нақты саны бар. Сандардың бүтін және нақты бөліктерінің қосындысын табу.

 

27. Мәтіндік файл берілген оның әр жолында бірнеше сандардың бейнелеуі бар.Сандарды сол ретімен орналастырып нақты сан файлын құру.

 

28. Name1және Name 2 екі текстік файл берілген. Name1 файлдын әр жолының басына Name2 файлдың сәйкесті жолын қосу. Егер name2 файлы Name1 файлдан қысқа болса онда қалған Name1 файлдын жолдарын өзгертпей қалдыру.

 

29. NameT атты мәтіндік файл және бүтін сандық файл NameN берілген.name T файлдын әр жолының соңына NameNфайлдын сәйкесті санын қосу егер Name N файлы NamеT файл жолын өзгертпей қалдыру.

 

30. NameT атты мәтіндік файл берілген. Онын әр жолында бірінші 60 позиция тексте берілген ал қалған орын-нақты сандарға. Екі файлды құру; Name S атына ие жолдық және NameR атына ие нақты сандар файлы .

 

Бақылау мысалы.

Мәтіндік файл берілген. Файл көшірмесін алу.

 

Program primer10;

Var f,text;

S;string;

Begin

{файлдық айнымалылары мен файлдын аттарын арасына байланыс қондыру}

assign (f, data1.txt,)

assign(g,data2.txt.)

{файлдарды жазу және оқу үшін ашу}

reset(f);rewrite(g):

while not (eof(f))do

begin

readln(f,s) {қатарға файлдан оқу}

writeln(g,s) { қатардан файлға жазу}

end

{файлды жабу}

close(f);close(g)

end.

 

Программалау (І ) пәнінен

Зертханалық жұмыс №8

Символдық және жолдық деректерді өңдеу

(3-семестр, 2 сағат)

Жұмыстың мақсаты жлдық және символдық жұмыс істеу алгоритмдерін құрып, үйрену, жолдыө әне символдық жолдық мәліметтерге әртүрліоперациялар қолдана білу.

Тапсырма.Кілтжиыннан символдар тізбегін қолдан енгізіп, вариантта көрсетілген тапсырмалар бойынша өңдеу. Бастапқы деректерді қолдан енгізу, тапсырмалар нақтылығы ескерілуі тиіс.

 

Тапсырма варианттары

1. С1-ден бастап С1 мен С2 кезектесіп символдардан тұратын N(N-жұп) жолдың ұзындығын шығару.

 

2. Жол берілген. Жол элементтерін керу тәртіпте шығару.

 

3. Жол берілген. Ішіндегі бас әріптердің санын есептеу.

 

4. Жол берілген. Ішіндегі бас әріптердің санын есептеу.

 

5. Жол берілген. Барлық кіші әріптерді бас әріптерге түрлендіру.

 

6. Жол берілген. Егер ол бүтін снларды қамтыса-1 шығару, егер нақты санды жазба болса – 2 шығару; егер жолды санға ауыстыруға болмаса - 0.

 

7. Бүтін сан берілген. Кері ретіндегі сандардан қамтитын символдар жиынын шығару.

 

8. N(>0), бүтін сан мен жылжымалы үтірлі нүкте форматындағы нақты сандарды қамтитын S жолы берілген. Сол санның бөлшек бөліктеріндегі алғашқы N сандарын символдар жиыны түрінде көрсету.

 

9. Бүтін санды екілік жазба түрінде көрсететін жол берілген. Сол санның ондық жазбасын көрсететін жолды шығару.

 

10. Бүтін санды көрсететін жол берілген. Сол сандардың қосындысын шығару.

 

11. S жолы мен N сан берілген. S жолын N ұзындықты жолға келесі түрде өзгерту қажет: егер S жолының ұзындығы N-нан үлкен болса, онда бірінші символдарды лақтырамыз, егер S қатарыN-нан кіші болса, онда оның бас жағына «.» символын қосу керек.

 

12. N1 және N2 екі саны, S1 және S2 екі жол берілген. N1 санын S1 қатарының бірінші символына қосып, N2 санын S2 жолының соңғы символдарына қосып, жаңа қатар алу.

 

13. S1 және S2 екі жол берілген. S2 жолы S1 жолының құрамында барын тексеру. Егер болса, онда S2 жолы S1 жолының құрамына бастап кірген позицияның нөмірін шығару; егер кірмесе -0 шығару.

 

14. S1 жәнеS2 екі жол берілген. S2 жолы S1 жолына қанша рет кіретін санын анықтау.

 

15. S жолы және С символы берілген. S жолына С символының әр кіруін еселеу.

 

16. S1, S2 жолдары және С символы берілген. S1 жолына С символдың әр кіруінің алдында S2 жолын енгізу.

 

17. S1 және S2 екі жол берілген. S1 жолынан S2 жолымен сәйкес келген ішкі жолды алып тастау. Егер ондай подстрока болмаса, онда S1 жолын өзгертпей шығару.

 

18. S1, S2 және S3 үш жол берілген. S1 жолында S2 жолының соңғы кіруін S3 жолына ауыстыру.

 

19. Жол берілген. Сол жолдың бірінші мен екінші нүктелерінің арасындағы ішкі жолды шығару. Егер жолда нүктелердің саны екіден кем болса, онда берілген жолды шығару.

 

20. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Жолдағы сөздердің санын анықтау.

 

21. Бір немесе бірнеше пробелмен бөлінген орыссөздеоінен құралған жол берілген. Бір әріптен басталып сол әріпке аяқталған сөздеодің санын анықтау.

22. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Үш «А» әріп кездесетін сөздердің санын анықтау.

 

23. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Ең қысқа және ең ұзын сөздердің ұзындығын анықтау.

 

24. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Сол сөздерден құралған, бірақ «.» (нүктемен) бөлінген жолын шығару. Ең соңында нүкте қойылмайды.

 

25. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Сол сздерден құралған, бірақ аралары бір пробелмен бөлінген, сөздер кері ретінде жазылған жолын шығару.

 

26. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Жолдағы әр сөздерден оның бірінші әріпінің келесі кірулерін алып отырып өзгерту.

 

27. Бір немесе бірнеше пробелмен бөлінген орыс сөздерінен құралған жол берілген. Сол сөздерден құралған, бірақ аралары бір пробелмен бөлінген, сөздер алфавит бойынша жазылған жолын шығару.

 

28. Сөйлем жол берілген. Әр сөз бас әріппен басталатындай жолды өзгерту.

 

29. Сөйлем жол берілген. Жолдағы тыныс белгілері мен дауысты әріптердің санын есептеу.

 

30. Сөйлем жол берілген. Сөйлемдегі ең қысқа мен ең ұзын сөзді шығару (егер ондай сөз бірнеше болса, онда соңғысын шығару).

 

Программалау (І ) пәнінен

Зертханалық жұмыс №9

Жолдарды сұрыптауда қолданылатын процедуралар мен функциялар

(3-семестр, 2 сағат)

Жұмыстың мақсатыжолдық шамалармен жұмыс істеу алгоритмдерін құрып үйрену, жолдық стандартты процедуралар мен функцияларды пайдалана білу іскерлігі мен дағдысын қалыптастыру; жолдық мәліметтерге әртүрлі операциялар қолдана білу

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

 

Тапсырмалар вариианттары:

1 S жолы паскаль тілінің рұқсат етілетін идентификаторы болатынын тексеретін IsIdent(S) бүтін сандық функциясын сипаттау.Егер дұрыс болса 0 қайтарылады. Егер S болса жол болса-1 қайтарылады,егер жол саннан басталса -2 қайтарылады. Егер S рұқсат берілмеген символдардан тұрса,бірінші рұқсат берілмеген символдың нөмері қайтарылады. Сол функция көмегімен 5 берілген санын тексеру.

 

2. S шаблон-жолының қайталанатын копияларымен толтырылған Len ұзындығы бар жолды қайтарылатын FiLLStr(S,Len) жолдық типті функциясын сипаттау. Сол функция көмегімен Len берілген санмен және 5 берілген шаблон-жолының 5 жаңа Len ұзындығы бар жолы құру.

 

3. S жолыныңбарлық бес әріптерін кіші әріптерге ауыстыратын (басқа символдар өзгермейді) LowCase процедурасын сипаттау. Сол процедурасы көмегімен берілген 5 жолын өзгерту.

 

4. S жолынан бірінші және соңғы пробелдерін алып Trim(S)3 тастайтын процедурасын сипаттау. Сол процедурасы көмегңмен берілген 5 жолын өзгеру.

 

5. S жолында subs (k>0) ішкі жолының соңғы кірісінен тұратын PosK(subs,S,k) позиция номірін қайтарып тұратын функциясын сипаттау. Егер S жолында subS ішкі жолы болмаса,ол функция 0 қайтарылады.Берілген subS және 5 мәндеріне бұл функциясының міндерін шығару,

 

6. S жолында (k>0) ішкі жолының к-кірісі кездескен позиция номірін қайтарып тұратын PosK (subs, S, k) бүтін типті функциясын сипаттау. Егер S жолындағы subsS ішкі жолыының кірістерінің саны к-дан аз болса, ол функция 0 қайтарылады. Берілген subS, k және S5 мәндеріне бұл функцияның мәндерін шығару.

 

7.S жолының к-сөзін қайталайтын (сөз дегеніміз пробелмен немесе жолдың басы/аяғымен шектелінген пробелсыз символдың жиыны болып табылады) WordN(S,k) жолдық типті функциясын сипаттау. Егер жолдағы сөздердің саны к-дан аз болса ол функция бос жолды қайтарылады. Сол функцияны пайдалана отырып берілген жолынан к1, к2, к3 нөмірлі сөздерді меншіктеу.

 

8. Берілген S жолмен Wсөздердің жиынын қалыптастыратын процедурасын сипаттау (W -шығыс жолдық массив; N-оның өлшемі,N<=10) Сөз дегеніміз пробелмен немесе жолдың басы/аяғымен шектелінген пробелсыз симврлдың жиыны болып табылады. Сол жолды қайтарады. Сол функцияның пайдалана отырып берілген S жолдағы сөздердің санын шығару (N) және сол сөздерді шығару.

 

9. Бүтін оң санның 16-қ санау жүйесіндегі жолдық ұсынысын қайтаратын DecToHex(N) функциясының сипаттау. Жаңа жол ‘0’-‘9’,’A’-‘F’ символдардан құралады. Сол функцияны пайдалана отырып берілген 5 санның 16-лық ауысуын алу.

 

10. Бүтін оң санды оның S жолдық ұсынылу бойынша екілік санау жүйесінде анықтайтын бүтін типтік BinDec(S) функциясын сипаттау. S параметірі типіне сәйкес, [‘0’-‘1’] символдардан тұрады және бастаушы нөльдерден тұрмайтын. Сол функцияны пайдалана отырып бүтін 5 санды шығару (олар екілік/16-лық санау жүйесінде берілген).

 

Бақылау мысалы

Программада 5 пен 7 екі бүтән сан берілген, ол сандар оларды еселейтін Inc2 процедурасына беріледі. Параметрлердің бреуі параметр-айнымалы ретінде, ал екінші – параметр-мәні ретінде берілені. Процедураның шығару алдындағы және солан кейінгі алынған еселену нәтижесі экранға шығарады

 

 
 

 

 


 

program primer7;

Var a,b:integer;

procedure inc2(var c:integer; b:real;);

begin

c:=c+c;

b:=b+b;

writeln (‘екі еселенген:’,c:5,b:5)

end;{inc2}

begin {min}

a:=5; b:=5;

writeln(‘бастапқы:’); inc2(a,b);

writeln (‘нәтиже:’,a:5,b:5);

end.{main}

 

 

Программа орындалғаннан шығартылатын: Бастапқы: 5 7

Екі еселенген:10 14

Нәтиже:10 7

 

 

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

 

Program primer 8;

Var n ,m :integer ; f :real ;

Function fact (n :integer ) :integer ;

Var i,p:integer ;

Begin p:=1;

For i:=2 to n do p :=p*i

Fact :=p

End;

Begin

Read (m,n) ;

F:= fact (n) * fact (m)/ fact (n+m);

Writeln (f);

End.

 

Программалау (І ) пәнінен

Зертханалық жұмыс №10

Жазбалармен жұмыс

(3-семестр, 4 сағат)

Тапсырма. Берілген сруктураға сәйкесті жазбалар массивін құру. Жазбалар файлын қолдана отырып жазбалардың енгізуін және өндеуін асыруы. Прогаммада кіріс деректерді, дерек қордың файлдарын енгізу-шығаруын өндейтін сәйкесті процедуралар мен функцияды алдын ала қаралыстыру қажет. Қолданушының әрекеттері бақылану және нақты хабарлармен қамдаулану керек. Нәтижесі (дерек қор) файлда сақталып келесі (ақыреттік) өндеуіне жеңіл алынатын болуы керек

 

Тапсырмалар варианттары

1-6 варианттары:

келесі кілттер арқылы: зеңгерлік (юристік) кеңесінің адресі,заңгерлік кеңесінің аты,адвокат немесе нотариустің аты-жөні бойынша,адвокат немесе нотариустың телефоны бойынша жазба массивін элементерінің өрісіне арналған міндерін шығаруын ескерту

                               
 
 
         
       
 

 


Сұраныстар:

1. Белгілі ауданда неше заңгерлік кеңесі бар екенін анықтау

2. Ең көп адвокаттар қай заңгерлік кеңесінде істейтінін анықтау

3. Ең аз нотариустер қай заңгерлік кеңесінде істейтінін анықтау

4. Белгілі заңгерлік кеңесінде неше адвокат пен нотариустер жұмыс істейтінін анықтау.

5. Бір белгі көшеде неше заңгерлік кеңес орналасқанын анықтау

6. Бір белгі ауданда неше заңгерлік кеңес орналасқанын анықтау

 

7-13 варианттары:

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

 

 

 
 

 


Сұраныстар:

7. Қай жылы залымдыққа байланысты істердің саны ең жоғары болғанын анықтау.

8. Қай жылы банкроттқа ұшырауына байланысты істердің саны ең жоғары болғанын анықтау

9. Қай жылы ажырасуға байланысты істердің саны ең жоғары болғанын анықтау

10. Қай жылы дисриминацияға байланысты істердің саны ең жоғары болғанын анықтау

11. Белгілі фирма қарсы қай жылы ең кқп қылмыстық іс қазғалғанның анықтау

12. Екі реттен астам қай фирма бойынша қылмыстық іс қозғалған

13. Қай фирмф өткен жылдар бойынша даугер рөлінде ең жиі шыққанын анықтау

 

14-24 варианттары

Келесі кілттер арқылы:мердігер фирмасының аты (подрядчик) бойынша,құрылыстын бағасы (құны) бойынша, құрылыстың түрі бойынша,банктегі салымның сомасы (көлемі) бойынша жазба массивтің элементерінің өрісіне арналған мәндерән шығартуын ескерту

             
 
 
     

 


Сұраныстар:

14. Банкідегі салымның сомасы құрылыстың бағасынан кем болған клиенттерді анықтау

15. Құрылыстың бағасын толық төленген клиентті анықтау

16. Клиенттер екіден кем емес рет тапсырған құрлыстың типін анықтау

17. Банідегі ең жоғары соманың есепшотына ие болған клиентті анықтау

18. Мксималды бағасы бар құрылғысын анытау

19. Минемалды бағасы бар құрылғысын анытау

20. Несиені ең жоғары пайызға алынған клиентті анықтау

21. Несиені ең төмен пайызға алынған клиентті анықтау

22. Барлық клиенттердің төленбеген сомасын

23. Ең аз төленбеген сомасына ие болған клиентті анықтау.

24. Ең көп төленбеген сомасына ие болған клиентті анықтау.

 

25-34 варианттары

Келесі кілттер арқылы: тауарлардың атына байланысты,келіп түскен жылы бойынша, тауарды әкелген мемлекет бойынша,тауар акелетін фирма бойынша жазба массивтің элементерінің өрісіне арқылы арналған мәндерін шығаруын ескеру

 

 

 

 


Сұраныстар

25. Қай фирманың тауары ең жиі / аз түскенін анықтау .

26. Барлық жылдар бойынша түскен тауардың көлемін анықтау.

27. Ең қымбат / арзан тауардың атын анықтау

28. Барлық жылдар бойынша тауарлар алу үшін кеткен шығынды есептеу.

29. Бәрінен жиі / аз тауарға заказ берілген жабдықтаушы-елді анықтау .

30. Қай айда ең жиі /аз тауарлар түскенін анықтау .

 

Бақылау мысалы

Студенттер жайлы мәліметтер берілген : аты жөні , туған жылы , туған жері , тұратын адресі .

Файлды құру керек.Құрылған файл Алматылық студенттер жайлы мәлімет оқып және 18 – жастан кіші студенттер жайлы мәліметтерді шығару керек.

 

Program primer 9;

Uses crt ;

Type

Mydata = record

Fio :INTEGER ;

Year :integer ;

Place : string;

Addr : string;

End;

Myfile = file of mydata ;

Var

Fin , fout :myfile ;

Trec : mydata ;

N , I , k :integer;

Procedure inputdata ;

Begin

Write(‘Kolichestvo=’);

Readln(n);

 

Программалау (І ) пәнінен

Зертханалық жұмыс №11

Динамикалық айнымалылар мен көрсеткіштер

(3-семестр, 4 сағат)

Жұмыстың мақсаты – динамикалық жадыда массивтер мен матрицаларды қолдану арқылы әр түрлі амалдарды қолданып программасын құру іскерлігі.

Тапсырма. № 4-5 Зертханалық жұмысындағы тапсырмаларды қолдана отырып динамикалық массивтер мен матрицаларға есеп шығару

Бақылау мысалы

1) Far getmem (var p:pointer; size:longint) процедурасы барлық бос оперативті жадыны ерекшелеу программасы

Procedure far­_getmem (var p:pointer; size:longint);

Var

R:registers; newsize, dosseg:word;

Begin

Newsize:=(size+15) div 16;

r.bx:=newsize;

r.ah:=$48;

msdos(r);

if r.ax:=$07 then

begin

writeln (‘Жадыны басқаратын блоктар’);

halt (1);

end

else

if r.ax=$08 then

begin

writeln (‘ерекшелеуге болмайды’, size,’ ,байт’);

halt (1);

end

else

p:=ptr(r.ax,0);

end;

2) Берілген функциядаfar_getmem процедурасы арқылы жадыны ерекшелеп far­_freemem процедурасы арқылы жадыны босатадың программасы

Procedure far_freemem(var p:pointer; size:longint);

Var

r:registers;

segment, dosseg:word;

begin

if ofs (p^)<0 then

begin

p:=nil;

system.freemem(p,1);

end;

segment:=seg(p^);

r.es:=segment;

r.ah:=$49;

msdos(r);

if r.ax=$07 then

begin

writeln (‘жадыны басқаратын блоктар’);

halt(1);

end

else

if r.ax=$08 then

begin

writeln (‘жады getmem процедурасымен ерекшеленген жоқ’);

halt(1);

end;

end.

Программалау (І ) пәнінен

Зертханалық жұмыс №12

Графикалық режимде қолданылатын процедуралар мен функциялар

(3-семестр, 4 сағат)

Жұмыстың мақсаты – графикалық режимде қолданылатын процедураларды қолданып есептердің программасын құруға үйрену.

Тапсырма. F(x) нақты функцияны белгілеп, дисплейдің символдық экранында оның графигін құру және ешқандай сандық әдістерін пайдаланбай барлық есептерін графикалық түрде табу.

 

Тапсырмалар варианттары:

1.F(x)= аралығындағы жауап х =2,2985

2. аралығындағы жауап х =-0.2877

3. аралығындағы жауап х =0,4538

4. аралығындағы жауап х =1,2388

5. аралығындағы жауап х=1,0769

6. аралығындағы жауап х=2.42

7. аралығындағы жауап х=1.8756

8. аралығындағы жауап x=0.7672

9. аралығындағы жауап х =1,1183

10. [0.08] аралығындағы жауап х =0.333

11. аралығындағы жауап х =0.5629

12. аралығындағы жауап х =3.23

13. аралығындағы жауап х =0.8814

14. аралығындағы жауап х =1.3749

15. аралығындағы жауап х =1.3077

16. аралығындағы жауап х =3.5265

17. аралығындағы жауап х =0.5472

18. аралығындағы жауап х =1.8832

19. аралығындағы жауап х =2.0267

20. аралығындағы жауап х =0.6533

21. аралығындағы жауап х =2.8459

22. аралығындағы жауап х =1.0804

23. аралығындағы жауап х =1.1474

24. аралығындағы жауап х =2.0692

25. аралығындағы жауап х =0.9892

26. аралығындағы жауап х =1.36016

27. аралығындағы жауап х =-0.66242

28. аралығындағы жауап х =-0.4145

29. аралығындағы жауап х =2.25078

30. аралығындағы жауап х =1.496

 

Бақылау мысалы

 

аралығындағы


Program primer 1;

{y=f(x)кез-келген функциядан графикті құру}

uses crt;

const h=79; {дисплей экранындағы бағаналардың максималды саны}

type position=1…h;

arraya=array[position]of char;

func=function(x:real) :real;

Var y,m :integer;

K,n,j :position;

Ymin,ymax,a,b,dx,x,y,my:real;

Ar :arraya;{экранға шығарылатын символ массиві}

Ch : char;

{к символды экранға шығару}

prosedur graphic(a:arraya:k:position);

Var i:position;

Begin

For i=1 to k do

Write(a[i]);

Writeln;

End;

{I funct} {funct.pas басқа файлдан нақты функцияны енгізу}

{f функцияның [а.б]аралығындағы уmin және ymax табу}

cонымен бірге барлық х0 түбірін экранға шығару}

procedur min,max(f : func;dx,a,b,:real;var ymin, ymax:real)

Var fx,fx:real;

Begin

X:=a;

Ymin:=f(x);

Ymax:=ymin;

Flx:=ymin;

Whilex<=b do

Begin

X:=x+dx;

Fx:=f(x);

{f функцияның түбірін табу варианттарыж

fx-функцияның келесі мәні flx-функцияның алдыңғы мәні}

if fx*fix<0 then {функциясы белгісін өзгертті,х0 түбірін аламыз}

Writeln(‘x0=x-dx/2);

Flx:=fx;

If fx>ymax then ymax:=fx;

If fx<ymin then ymin:=fx ;

End.

End;{minmax}

{басты программа}

begin

repeat

for j:=1to h do ar[j]:=’,{ar массивін тазалау}

сlreser;

for i:=1to n do

begin

with trec do

begin

write(‘surname,’);read(fio);

write(‘year:’);readln(year);

write(‘pleace,’);readln(pleace);

write(‘address:’);readln(addr);

end;

write(fin,trec);

end;

end;

procedure

 

write (‘нүктелердің санын енгізіңіз =======>’);

readln (m);

write ([a..b] аралығын енгізіңіз======>’);

readln (a,b);

dx:=(b-a)/(m-1);

writeln (‘аралықтағы түбірлердің тізімі’);

minmax (f,dx,a,b,ymin,ymax);

writeln (‘ --------------enter басыңыз-------- ‘);

readln;

my:=75/(ymax-ymin); {y осінің масштабы}

y0:=trunc (2-my*ymin); {Дисплейдің экранындағы y0 жайы}

{графиктің өзі}

x:=a;

while x<=b do

begin

y:=f(x);

if y0 in [1..h] then ar[y0]:=’|‘;

n:=round (my*y)+y0;

if n<y0 then k:=y0

else k:=n;

if x=0 then

begin {ості аламыз-------------------->y}

for j:=1 to h-3 do ar[j]:=’-‘;

ar[h-2]:=’y’;

k:=h;

end;

ar [n]:=’@’; {графиктегі нүктенің символы}

graphic(ar,k);

for j:=1 to h do ar [j]:=’’; {ч щсінің соңы}

begin

ar[y0]:=’v’;

ar[y0+1]:=’x’;

grafic(ar,y0+1);

end;

writeln (‘қайталайық па?(y/n)’);

ch:=readkey;

until (ch=’n’) or (ch=’n’);

end.

Funct.pas ішкі файлдің листингісі

Нақты функция (шынайы сандарының барлық аралығында анықталған);

F(x)=e-x *sinПx

{$f+} {бұл директива pentiun және одан жоғары ПЭЕМ-дерге қажет}

function f(x:real):real;

begin

f:=exp(-x)*sin(2*pi*x)

end;

Ұсынылатын әдебиет

1. Абрамов С А,Гнезделова Г Г,Капустина Е Н, Селюн М И Задача по програмированию. М,1988

2. Абрамов С А,Зима Е В Начала информатики М,1989

3. Вирт Н Алгоритмы +структуры данных =программы М1985

4. Голубь Н Г,Кириленко Е Г,Флгоритмические языке и програмирование Учебное пособие,часты 1 хай,1997

5. Грогоно П.Прогромирование на Паскаль М1982

6. Джонс Ж., Харроу К. Решение задач в системе Турбо Паскаль. М.,1991.

7. Йенсен К., Вирт Н. Паскаль: руководство для пользователя. М., 1989.

8. Касьянов В.Н., Сабельфельд В.К. Сборник заданий по практикуму на ЭВМ. М., 1992.

9. Мизрохи С.В. TURBO PASCAL и обьектно-ориентированное программирование.М., 1992.

10. Пильщиков В.Н. Сборник упражнений по языку Паскаль. М.,1997.

11. Прайс Д. Програмирование на языке Паскаль: Практическое руководство. М.,1987.

12. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. М.,1997.

13. Фаронов В.В. Турбо Паскаль 7.0. практика программирования. Учебное пособие. М.,1997.

14. Фирменная документация и компьютерные справочники(файлы помощи типа HELP).

 


<== попередня лекція | наступна лекція ==>
Шартты операторы | Язык программирования ассемблер IA-32


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн