Texnologiyalari ha’m kommunikatsiyani rawajlandiriw ministirligi



Yüklə 1,46 Mb.
səhifə2/3
tarix29.10.2022
ölçüsü1,46 Mb.
#118773
1   2   3
Ajimuratov Islam

Stack stek_nomi;
Mısal ushın,
Stack stek1;
Stekda tómendegi ámeller orınlı :
- Clear () - Stekni tazalaw.
- isEmpty () - Stekni boslıqqa tekshirish
- push (el ) - stekka element kirgiziw.
- pop () - Stekdan element óshiriw.
- topEl () - stekni ushındaǵı elementti óshirmesten oqıp uish.
Ulardan paydalanıw esha tómendegishe:
stek1.push (x) - x ni stekka toshhlash;
Stekka element qosıw hám shıǵarıw ámelleri tómendegi 4. 1 - suwretda kórsetip berilgen.

4. 1 - suwret. Stekda bojarilgan ámeller ketma - ketligi.
Ol jaǵdayda bos stekka 10 sanı kiritilgen. Keyin stekka 5 sanı kiritilgen, bul san 10 ni ústine jaylasadı, odan keyin shıǵarıw ámeli bojarilganda, stekdan 5 sanı óshiriledi. Sebebi ol 10 sanınıń joqarısında jaylasqan edi hám 5 sanı stekdan shiǵarıladı. Stekka 15 hám 7 sanı ketma - ket qoyılǵannan keyin, eń joqarıda 7 sanı boladı. Nátiyjede shıǵarıw operatsiyası ámelge asırılǵanda 7 sanı stekni tork etedi. Shıǵarıw ámelinen keyin stekda 10 sanı 15 dıń astında qo'ladi.
Ulıwma Uganda, stek malumotlar saqlawda hám malumotlar kompleksinen elementler teris tartibda shıǵarıp uinadigan jaǵdaylarda kóp paydalanıladı.
Stekning qollanılıwlarına mısal etip programmada ajıratqıshlardı maslastırıwdı uish múmkin. Bul juda da zárúrli másele. Sebebi, ajıratqıshlar qálegen kompilyatorning bólegi esaplanadı. Eger ajıratqıshlar bir - birine maslastırilmagan bolsa, hesh bir programma to'ǵri ichlamaydi.
C++ programmalastırıw tilinde biz tómendegi ajıratqıshlarǵa egamiz: ápiwayı qawıslar “(“va”)”, kvadrat qawıslar “[“va”]”, figurali qawıslar “[“va”]”, hám túsindirme ajıratqıshlar “/*” hám “*/”. Tómende C++ programmalastırıw tilinde ajıratqıshlar to'ǵri qollanılǵanlıǵına mısal keltirilgen.
a = b + (c - d) * (e - f);
g[10] = h[i[9]] + (j + k) * l;
while (m < (n[8] + o)) { p = 7; /* initialize p */ r = 6 ; }
Tómendegi mısal maslastırilmagan ajıratqıshlarǵa mısal bóle uadi:
a = b + (c - d) * (e - f));
g[10] = h[i[9]] + j + k) * l;
while (m < (n[8) + o]) { p = 7; /* initialize p */ r = 6 ; }
Konkret ajratqısh óz juftligidan basqa ajratqıshlar menen ajratılıwı múmkin, yáni ajıratqıshlar ichma - ish qoyılǵan bolıwı múmkin. Sonday etip, ajıratqısh óz juftligi menen maslasqanma yamasa joq ekenligin, barlıq ajıratqıshlar juplıqları anıqlanǵannan keyin biliw múmkin.
Mısalı, sikldan paydalanilganda baslanǵich qawıs óz juftligiga iye ekenligin barlıq ishki qawıslar juplıqları jabılǵannan keyin anıqlaw múmkin.
while (m < (n[8] + o))
Ajıratqıshlardı salıstırıwlaw algoritmı tómendegishe:
- belgilar C++ programma tekstinden oqıladı hám ol ochuvchi ajıratqısh bolsa, ular stekka toshhlanadi. Eger yopuvchi ajıratqısh bolsa, ol ochuvchi ajrakich menen salıstırıladı hám stekdan shiǵarıladı.
- Eger ular uyqas tusse, qayta ichlash dawam etedi, uyqas túspewa qayta ichlash hatolik haqqındaǵı habar menen to'htatiladi.
Programma ohiriga jetkende C++ programmasın qayta ichlash muvoffaqiyatli tamamlanılǵan esaplanadı hám stek bos boladı. Úshewlerbu algoritmdı tómende psevdokodini keltiremiz.
Ajıratqıshlardıń kelisiwin tekshirish kodı.
read character ch from file;
while not end of file
if ch iyis ' (', '[', or '{'
push (ch);
else if ch iyis ') ', ']', or '}'
if ch and popped off dalimiter do not jarıs
failure;
else if ch iyis '/'
read the next character;
if this character iyis '*'
skip oll characters until “*/” iyis found and report an error
if the end of file iyis reached before “*/” iyis encountered;
else ch = the character read ın;
continue; // go tap the beginning of the loop;
// else ignore o'ther characters;
read next character ch from file;
if stack iyis empty
success;
else failure;
4. 2 suwretda joqarıdaǵı algoritmdı tómendegi ańlatpanı qayta ichlashga qollanganda payda bolǵan qayta ichlash kórsetilgen
s=t[5]+u/ (v* (w+y));
4. 2 suwretdagi birinshi ústinde cikl ohiridan keyingi belgige shekem bolǵan stek torkibi kórsetilgen. Birinshi qatar fayl daǵı hám stekdagi baslanǵich jaǵdaydı kórsetilgen. Ch ózgaruvchi s jazıw faylınıń birinshi simvoliga initsializatsiya etiledi, siklning birinshi iteratsiyasida simvol qabıl etińmeydi. Bul jaǵday

4. 2 suwretning ikkichi qatarında kórsetilgen. Odan keyin teńlik belgisi oqıladı. Ol da qabıl etińmeydi, sebebi ol ajıratqısh emas. Birinshi ajıratqısh (kvadrat qawıs ) 5-xodamda oqıladı hám stekka birinshi element bolıp jaylasadı. Ańlatpanıń barlıq elementleri oqıp shıǵılǵannan keyin ajıratqıshlar birin - ketini stekka jaylanadı, jáne bul yarayon aqırǵı noqat útirge shekem dawam etedi.. 4. 2-suwret. Ajratkkichlar maslastırıw algoritmı járdeminde s=t[5]+u/ (v* (w+y)); ańlatpanı tekshirish

Stekni qollanılıwına basqa mısal etip, juda úlken sanlardı qosıw máselesin kóriw múmkin. Bunday sanlar butun taypa daǵı ózgaruvchilar ushın múmkin bolǵan shegaralardan shıǵıp ketedi. Sol sebepli ularni qosıw to'ǵrisida gáp da bolıwı múmkin emas. Mısalı, 18, 274, 364, 583, 929, 273, 748, 459, 595, 684, 373 hám 8, 129, 498, 165, 026, 350, 236 sanları berilgen. Ularni qosıw mashqalasın sanlardı nomerler qatarı retinde toshvirlab, nomeri boyınsha eki stekka ketma - ket jaylap qosıw múmkin boladı. Bunda nomer retinde sanlardı tartıp bólmeleri (birewler, onlar, júzler…) uinadi. Bul algoritmdıń psevdokodi tómendegishe:


addingLargeNumbers ()
birinshi sannıń nomerleri oqıladı hám sanǵa uyqas stekka jaylanadı.
ekinshi sannıń nomerleri oqıladı hám sanǵa uyqas stekka jaylanadı.
carry = 0;
stek bos bo'lmaguncha while siklidan paydalanıladı.
Hár bir bos bolmaǵan stekdan san shıǵarıp uinadi hám ol carry ga qosıladı.
Nátiyjelik stekka birlik bólegi kiritiledi.
Carry ni ornına carry saqlanadı.
Eger carry nolǵa teń bolmasa nátiyjelik stekka jaylanadı.
Nátiyjelik stekdan sanlar shiǵarıladı hám ekranǵa jazıladı.
4. 3 suwretda joqarıdaǵı algoritmdı 592 hám 3, 784 sanlardı qosıwdı ámelge asırıw ushın qollanılıwı kórsetilgen.
1. Birinshi sannıń uyqas nomerleri 1 - stekka jaylanadı hám
ekinshi sannıń uyqas nomerleri 2 - stekka jaylanadı. Stekdagi nomerler tartibiga itibar qaratıw kerek.
592 hám 3, 784 sanlardı qosıwda stekning ichlatilishiga mısal.

2. 2 hám 4 lar steklardan shiǵarıladı hám ularning yigindisi 6 nátiyjelik stekka kiritiledi.


3. 9 hám 8 lar da steklardan shiǵarıladı hám ularning yiǵindisini birlik bólegi nátiyjelik stekka jaylanadı, onlıq bólegi esha keyingi nátiyjege qosıw ushın carry da saqlap qóyıladı.
4. 5 hám 7 lar da steklardan shiǵarıladı hám ularning yiǵindisini birlik bólegi nátiyjelik stekka jaylanadı, onlıq bólegi esha keyingi nátiyjege qosıw ushın carry da saqlap qóyıladı.
5. birinshi stek bos bolǵan halda, bos bolmaǵan stekdan san shiǵarıladı hám carry ga qosıladı, nátiyje nátiyjelik stekka jaylanadı.
6. eki stek bos bolsa, sanlar yiǵindisi nátiyjelik stekdan uinadi hám nátiyje retinde ekranǵa shiǵarıladı.
Endi malumotlar strukturasında abstract stekni ámelge asırıwdı kóremiz. Stekni ámelge asırıwdı ayqın kórinishi dinamikalıq qalanıń bir bólegi, yáni vektorda bojarilishi múmkin.


Yüklə 1,46 Mb.

Dostları ilə paylaş:
1   2   3




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin