Алгоритм

**Алгори́тм** ( — аз номи риёзидони номвари тоҷик Алхоразмӣ), **хоразмӣ** () — қоидаи ба тартиби муайян ичро намудани системаи амалҳое, ки дар ҳалли ҳамаи масъалаҳои типи маълум истифода мешавад.

## Таърих
Дар асрҳои миёна қоидаҳои чор амали арифметикаро дар системаи даҳӣ алгоритм меномиданд. Чунин қоидаҳоро дар садаи 9 бори нахуст донишманди машҳури Шарқ Муҳаммади Хоразмӣ дар асари худ «Ҳисобу-л-ҳинд» ҷорӣ кард. Дар Аврупо ин навъ қоидаҳоро бо номи ӯ «алгоризм» мегуфтагӣ шуданд. Баъдан ин ном ба «алгоритм» табдил ёфт, зеро мутарчимони Ғарб ҳангоми тарчумаи «Ҳисобу-л-ҳинд» (садаи 12) номи «Алхоразмӣ»-ро ба забони лотин «Algorithmys» ва «Algorithmi» тарҷума карда буданд.

Дар илм алгоритмҳои бисёр, аз ҷумла «алгоритми Евклид», «алгоритми Ҷамшеди Кошонӣ», «алгоритми Лурйе», «алгоритми Марков» ва ғайра маълуманд. Ҳоло шумораи алгоритмҳои мухталиф беш аз пеш афзуда, барои ҳалли масъалаҳои гуногуни риёзӣ, мантиқӣ, идоракунӣ ва ғайра истифода мешаванд. Чунончи, ҳоло дар бораи алгоритмҳои тарчума аз як забон ба забони дигар, масъалаҳои иқтисодӣ, ташхиси беморӣ, алгоритми кори диспетчери поезд, алгоритми равандҳои идоракунӣ ва ғайра сухан рондан мумкин аст.

Қимати алгоритм дар он аст, ки масъала ҳаддалимкон бо роҳи кӯтоҳ ва қулай ҳал мешавад. Ҳалли алгоритмии масъала ба амалиёти сода ҷудо карда шуда, ҳангоми риояи қатъии шартҳои алгоритм ба таври механикӣ амалӣ мегардад. Ба туфайли васеъ шудани мафҳуми алгоритм назарияи алгоритмҳо пайдо шуд, ки хосиятҳои умумии алгоритмҳоро меомӯзад ва асоси нааариявию мантиқии кибернетика мебошад. Дар роёнаҳо татбик ёфтани назарияи алгоритмхо дар амалӣ гардондани алгоритмҳои мураккабтарнн, ки аз садҳо ҳазор амалҳои сода иборат аст, имкониятҳои бузур фароҳам меоварад.

## Алгоритм дар роёна
Алгоритм яке аз мафҳумҳои асосии барномасозӣ аст. Алгоритм дар забони расмие, ки ба гуногунфаҳмӣ роҳ намедиҳад, навишта мешавад. Иҷрокунанда — одам, компютер, дастгоҳи автоматӣ ва ғайра буда метавонад. Иҷрокунанда бояд механикӣ ва бе баҳсу мунозира ҳамаи фармонҳои дар таркиби алгоритм бударо иҷро карда тавонад.

Сабти алгоритм дар забони расмӣ барнома (program) номида мешавад. Дар баъзе мавридҳо худи мафҳуми алгоритм бо сабти он иваз карда мешавад. Яъне калимаҳои «алгоритм» ва «барнома» қариб синоним ҳастанд. Фарқи хурдакак, лекин асосӣ ҳангоми истифодаи калимаи «алгоритм» он аст, ки бо ин калима одатан ғояи асосии бунёди алгоритмро, ки барои ҳамаи забонҳои алгоритмӣ умумӣ аст, дар назар доранд. Калимаи «барнома» бошад фақат ба сабти алгоритм дар ягон забони расмии мушаххас алоқаманд аст.

Дар математика намудҳои гуногуни алгоритмҳо баррасӣ мегарданд — барномаҳо барои машинаҳои Тюринг, алгоритмҳои Марков, функсияҳои рекурсивӣ ва ғайра. Дар барномасозӣ қабул карда мешавад, ки ҳамаи забонҳои барномасозӣ баробарқувва мебошанд. Яъне ҳаргуна масъалаеро, ки ба алгоритми ҳал соҳиб аст, бо ҳаргуна забони барномасозӣ ҳал кардан мумкин аст. Интихоби забон дар ҳолати конкретӣ аз қулай будани абзорҳои (tools) ин забон барои масъалаи муоинашаванда вобаста аст. Масалан, забонҳои объектнигаронидашуда (object-oriented) барои барномасозии муҳитҳои тирезадор (window) қулай буда, забони Фортран дар ҳисобҳои илмӣ ва муҳандисӣ бомуваффақият истифода бурда мешавад.

Бисёрии забонҳои алгоритмии дар барномасозӣ истифодашаванда монандиҳо доранд. Лекин ҳангоми баёни ғояи алгоритм на ҳама вақт мувофиқи мақсад аст, ки он дар ягон забони конкретии барномасозӣ баён гардад, чунки баёни ғоя бо чизҳои номуҳим хира гаштанаш мумкин аст. Дар чунин ҳолатҳо аз забони алгоритмии бештар ба забони одамӣ наздик истифода мекунанд. Чунин забонро псевдокод низ меноманд. Барои мутахассис азнав навиштани барномаи дар псевдокод навишташуда ба забони конкретии барномасозӣ мушкил нест. Сабти алгоритм дар псевдокод дар бисёр ҳолатҳо аниқтар ва фаҳмотар аст. Псевдокод имконият медиҳад, ки тарзи баёни алгоритм интихоб карда шавад: аз овардани нақшаи умумии алгоритм то овардани нозукиҳои ҳар як қисми алгоритм.

Пседвокод моҳияти аксарияти забонҳои алгоритмиро дар бар мегирад. Дар ин силсила барои сабти алгоритмҳо ҳам псевдокод ва ҳам забони конкретии С++ истифода мешаванд.

## Эзоҳ

*