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


Download 1.74 Mb.
bet82/96
Sana30.04.2023
Hajmi1.74 Mb.
#1413831
1   ...   78   79   80   81   82   83   84   85   ...   96
Bog'liq
Turbo Pascal назария

Навбат элементини йўќотиш

  1. Бошланѓич ћолат:




  1. Й ўќотилаётган элементдан ахборотни олиб val ўзгарувчига ўтказиш ва элементга ёрдамчи Р кўрсаткични ўрнатиш:




  1. Н авбат боши BegQ кўрсаткичини, биринчи элементда саќланадиган Link майдони ќийматидан фойдаланиб, навбатдаги элементга алмаштириш. Шундан кейин, Р ќўшимча кўрсаткичдан фойдаланиб, навбатнинг бошланѓич элементи хотираси бўшайди:

Мисол сифатида ўн элементдан иборат навбатни яратиш ва йўќотиш дастурини келтирамиз. Унда навбат билан ишлаш учун иккита процедура ишлатилади:
1) AddE1 процедура, у навбат ћолатига боѓлиќ равишда биринчи элементни яратади ёки навбатдаги элементни навбат охирига ќўшади;
2) GetDelEl процедура, у навбатнинг бошланѓич элементидан, шундан кейин унинг хотирасини тозалаш шарти билан, ахборотни олади.
program Queue;
uses Crt;
type
TPtr = ^TElem;
TElem = record
Inf : Real;
Link : TPtr
end;
var
BegQ, EndQ : TPtr;
Value : Real;
i : Byte;
procedure AddEl (Val : Real);
var
P : TPtr;
begin
New (P);
P^.Inf := Val;
P^.Link := nil;
if EndQ = nil {агар навбатнинг биринчи элементи яратилаетган бўлса}
then BegQ := P
{агар навбатнинг кейинги элементи яратилаетган бўлса}
else EndQ^.link :» P;
EndQ := P
end;
procedure GatDelEl( var Val : Real);
var
P : TPtr;
begin
Val := BegQ^.Inf;
P := BegQ;
BegQ := P^.Link;
if BegQ = nil {агар навбатнинг охирги элементи йўќотилаетган бўлса}
then EndQ := nil;
Dispose (P)
end;
begin
ClrScr;
{Кўрсаткичларнинг бошланѓич ўрнатишлари }
BegQ := nil;
EndQ : = nil;
{10 та элементдан иборат навбат яратиш }

Download 1.74 Mb.

Do'stlaringiz bilan baham:
1   ...   78   79   80   81   82   83   84   85   ...   96




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