Psevdokod

## '''''<code><big>Pseudocode haqida qisqacha</big></code>'''''

***<u>Pseudocode</u>*** – bu Informatika fanida ishlatiladigan algoritm yoki boshqa tizim jarayonlarining oddiy tilda tavsifi. Pseudocode koʻpincha standart dasturlash tili tuzilma qoidalaridan foydalansa-da, u mashinada oʻqish uchun emas, balki inson uchun yozilgan. Odatda, algoritm kompyuter tomonidan tushunilishi uchun zarur boʻlgan oʻzgaruvchan taʼriflar va tilga xos kod kabi maʼlumotlarni qoldirib ketadi. Tegishli hollarda dasturlash tiliga tabiiy til tavsifi tafsilotlari yoki qisqacha matematik belgilar qoʻshiladi. **Pseudocode**dan foydalanish ikkilamchi maqsadga xizmat qiladi – standart dasturlash tili kodiga qaraganda algoritmning asosiy gʻoyalarini yanada samaraliroq va atrof-muhitdan mustaqilroq tasvirlash. U odatda algoritmlarni hujjatlashtirish, dasturiy taʼminot va boshqa algoritmlarni rejalashtirishda darsliklar va ilmiy nashrlarda qoʻllanadi.

**Pseudocode** bilan yozilgan dastur ***executable*** (bajariladigan) dastur emasligi sababli uning sintaksisi uchun umumiy standart mavjud emas; shunga qaramay, baʼzi oʻziga xos, cheklangan standartlar mavjud (masalan, akademik baholashda qoʻllanadi). *Pseudocode kompilyatsiya qilishda xatosiz boʻlgan skelet dasturlariga oʻxshaydi.* Pseudocodening grafik oʻrnini bosuvchi sifatida flow charts (oqim diagrammalari), drakon-charts (drakon diagrammalari) va Yagona modellashtirish tili (UML) diagrammalari koʻrib chiqilishi mumkin, ammo ular qogʻozda koʻproq joy egallaydi.

## '''''<code><big>Qoʻllanish</big></code>'''''

**Pseudocode** koʻpincha kompyuter fanlari va raqamli hisoblash boʻyicha darsliklar va akademik ishlarda algoritmlarni tavsiflash uchun ishlatiladi, shuning uchun turli xil dasturchilar ularni tushunishlari mumkin. Darsliklarda odatda foydalanilayotgan muayyan konventsiyalarni tavsiflovchi kirish boʻlimi mavjud. Baʼzi hollarda, pseudocodening batafsil darajasi oʻrnatilgan umumiy maqsadli tillar bilan taqqoslanishi mumkin.

Algoritmni, ayniqsa nomaʼlum algoritmni amalga oshirishda dasturchi koʻpincha pseudocode tavsifi bilan boshlanadi, bu tavsifni maqsadli dasturlash tiliga „tarjima qiladi“ va uni dasturning qolgan qismi bilan toʻgʻri ishlashga moslashtiradi. Yuqoridan pastga tashkil etish strategiyasi sifatida dasturchilar loyihani pseudocodedagi kodni qogʻozda koʻrsatib, uni haqiqiy tilda yaratishdan oldin, aniqlashtirish sifatida amalga oshiriladigan bir qator qadamlar bilan boshlashlari mumkin.

## '''''<code><big>Sintaksisi</big></code>'''''

**Pseudocode** koʻpincha biron bir tilning sintaksisi standartlariga mos kelmaydi; belgilangan standart shakl mavjud emas. Baʼzi yozuvchilar tushkunlikka tushganiga qaramay, bir nechta anʼanaviy dasturlash tillarining boshqaruv tuzilmalarining sintaksisi va uslubidan foydalanadilar. Fortran, Paskal, BASIC, C, C++, Java, Lisp va ALGOL sintaksis manbalariga bir nechta misollardir. Aksariyat hollarda oʻzgaruvchan deklaratsiyalar oʻtkazib yuboriladi. Funksiya chaqiruvlari va katta kod boʻlaklari, masalan, tsikllarda topilganlar, tez-tez oddiy tilda oddiy jumlaga almashtiriladi.

## '''''<code><big>[[Matematika]]<nowiki/>ga bogʻliqligi</big></code>'''''

Raqamli hisoblashda **pseudocode** koʻpincha anʼanaviy dasturlash tilining boshqaruv tuzilmalari bilan aralashgan, odatda toʻplam va matritsa nazariyasidan olingan matematik belgilardan va, ehtimol, tabiiy til tavsiflaridan iborat. Bu matematik jihatdan oʻqitilgan keng doiradagi odamlar tomonidan tushunilishi mumkin boʻlgan ixcham va koʻpincha norasmiy yozuv boʻlib, koʻpincha matematik algoritmlarni tasvirlash usuli sifatida ishlatiladi.

### '''''<small><code>Matematik belgilar:</code></small>'''''

**Pseudocode**da turli matematik amallar va ifodalarni ifodalash uchun matematik belgilardan foydalanish mumkin. Mana, pseudocodeda matematik belgilardan qanday foydalanish mumkinligiga misol:

// *Addition*

sum = a + b

// *Subtraction*

difference = a – b

// *Multiplication*

product = a * b

// *Division*

quotient = a / b

// *Modulo (remainder)*

remainder = a % b

// *Exponentiation*

result = base ^ exponent

// *Square root*

root = √(number)

// *Absolute value*

absolute = |number|

// *Comparison operators*

if a > b then

// *Perform some action*

else if a Manbalar:**' ==