Ш. И. Раззоќов, М. Д. Юнусова turbo pascal алгоритмик тилида дастурлаш касб-ћунар коллеж талабалари учун ўќув ќўлланма


function f(n:integer) : integer begin


Download 1.74 Mb.
bet71/96
Sana30.04.2023
Hajmi1.74 Mb.
#1413831
1   ...   67   68   69   70   71   72   73   74   ...   96
Bog'liq
Turbo Pascal назария

function f(n:integer) : integer
begin
if n=0
then f:=1
else
if n=1
then f:=2
else f:=f(n-2) + f(n-1)
end.
Бу функцияни дастурга киритамиз:
program fibon (output);
var k:integer
function f(n:integer) : integer;
begin
if n=0
then f:=1
else
if n=1
then f:=2
else f:=f(n-2) + f(n-1)
end;


begin
for k:=10 to 12 do
writeln (f(k))
end.
fibon дастурни бажариб, ЭЋМ ќуйидагиларни босиб чиќаради:
178
288
466
10, 11 ва 12 ойдан кейин ќуёнлар сони худди шунча бўлади.
Баъзи ћолларда масалаларни рекурсиясиз ечиб булмайди. Шундай мисол келтирамиз:
0 га тенг булмаган сонлар кетма-кетлиги дастлабки маълумотлар булсин. берилган кетма-кетликнинг охирги элементи 0 эканлиги маълум. Дастлабки маълумотларни тескари тартибда босиб чиќаришни таъминлайдиган дастур тузиш керак. Масалан, агар дастлабки маълумотлар: 3 25 115 400 13 0 сонлар бўлса, машина 0 13 400 115 25 3 сонларини босиб чиќаришин керак.

Рекурсив teskarilash процедураси иштирокидаги дастурни ёзамиз:


program teskari:


procedure teskarilash;
var x:integer;
begin
read (x);
if x<>0 then teskarilash
write (x);
end;
begin
teskarilash
end.

Бу дастур биттагина – teskarilash рекурсив процедурага мурожаат ќилиш операторидан иборат. Teskarilash процедураси параметрларга эга эмас. Бу процедурага мурожаат ќилиш сони берилган кетма-кетлик узунлигига боѓлиќ. Бир неча холларни куриб чикамиз.


Агар берилган кетма-кетлик 0 га тенг бўлган битта сондан (бундай хол ћам бўлиши мумкин) иборат бўлса, процедуранинг биринчи оператори х нинг ќийматини укийди, иккинчи оператор (процедурага мурожаат ќилиш) бажарилмайди, чунки х=0, учинчи оператор 0 ќийматни босиб чикаради. Шу билан процедуранинг ћамда бир ваќтда дастурнинг ћам бажарилиши тухтайди.
Агар кетма-кетлик иккита сондан иборат бўлса (х10, х2=0), аввал х ўзгарувчига нолмас ќиймат узлаштирилади. Шарт уринли бўлади, демак, teskarilash процедураси кайта бажарилади. Процедуранинг иккинчи нусхасида иккинчи берилган сон укилиб, у х ўзгарувчига узлаштирилади, х=0 бўлгани учун учинчи оператор 0 сонини босиб чикаради. Ћисоблаш жараёни биринчи нусхага кайтади, у ерда write (х) оператори иккинчи нусхага мурожаат ќилиш олдидан х ўзгарувчига узлаштирилган биринчи маълумотнинг ќийматини босиб чикаради.
Кетма-кетликнинг сонлари n teskarilash процедурасининг n та нусхаси мос келишини осонгина тушуниш мумкин. Босиб чиќариш оператори процедурагда шу процедурага мурожаат ќилиш операторидан кейин жойлашганлиги учун дастлабки маълумотларни тескари тартибда босиб чиќаришни таъминлайди.

Назорат саволлари



  1. Процедура ва функция баёни таснифи ќандай кўринишга эга?

  2. Процедура ва функция баёнлари бир-бирларидан нимаси билан фарќ ќилади?

  3. Идентификаторларнинг таъсир доираси нима?

  4. Процедура ва функция идентификаторлари учун таъсир доирасини аниќлашнинг асосий ќоидалари нималар?

  5. Ќандай параметрлар расмий ва ќайсилари ћаќиќий дейилади?

  6. Параметрлар ќайси белгиларига кўра фарќланади?

  7. Параметрларни узатишнинг ќандай усулларига назарий жићатдан йўл ќўйиш мумкин?

  8. Турбо Паскалда параметрларни узатишнинг ќандай усуллари амалга оширилади?

  9. Параметр-ќийматларни узатишнинг ќоидалари ќандай?

  10. Параметр-ўзгарувчиларни узатишнинг ќоидалари ќандай?

  11. Параметр-ўзгармасларни узатишнинг ќоидалари ќандай?

  12. Турсиз параметрларнинг хусусиятлари нимада?

  13. Очиќ параметр-массивлар ва турсиз параметрлар ўртасидаги фарќ нимада?

  14. near ва for директивалар нима учун мўлжалланган?

  15. forward директивасини ишлатишнинг хусусияти нимада?

  16. Узиш процедурасини баён этиш учун ќайси директива белгиланган?

  17. Рекурсия ходисаси нима?

  18. Рекурсия нега дастурлашда кулланилади?

  19. Рекурсив процедурага мисол келтиринг.

  20. Рекурсив функцияга мисол келтиринг.

XI БОБ.


ФАЙЛЛАР

11.1. Физик ва мантиќий файллар тушунчаси


Файл тушунчасининг икки томони бор. Бир томондан, файл бу ќандайдир ахборотга эга бўлган, ташќи хотиранинг номланган соћаси. Бундай тушунишда, у ќандайдир моддий ахборот ташувчисида физик мавжуд бўлгани учун физик файл деб аталади. Бошќа томондан файл бу дастурлашда ишлатиладиган маълумотларнинг кўплаб таркибларидан биридир. Бундай тушунишда, у дастур ёзишда фаќат бизнинг мантиќий тасаввуримизда мавжуд бўлгани учун, мантиќий файл дейилади. Дастурларда мантиќий файллар маълум турдаги файлли ўзгарувчилар сифатида берилади.


11.1.1. Физик файл таркиби
Физик файл таркиби ахборот ташувчининг (ќаттиќ ёки эгилувчан магнит дискининг) оддий байтлар кетма-кетлигини ифодалайди.



байт

байт



байт

байт



11.1.2. Мантиќий файл таркиби
Файлни дастурда ќабул ќилиш усули мантиќий файл таркибини билдиради. Ўхшатиш маъносида, бу файлнинг физик таркибига ќараладиган «ойна» («шаблон»)дир. Дастурлаш тилларида бундай «ойна»ларга файлнинг ташкил этувчилари сифатида ишлатиладиган маълумотлар турлари мос келади. Турбо Паскалнинг «шаблон»ларидан баъзи бирларини ќуйидагича тасаввурда кўрсатиш мумкин:

file of Byte



байт

байт



байт

Eof

file of Char



белги коди

белги коди



белги коди

Eof

File of Integer



Ишорали бутун

Ишорали бутун



Ишорали бутун

Eof




Download 1.74 Mb.

Do'stlaringiz bilan baham:
1   ...   67   68   69   70   71   72   73   74   ...   96




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling