Алгоритм

Аз Википедиа
Ҷаҳиш ба: новбари, Ҷустуҷӯи

Алгоритм – маҷмўи амалиётњои пайдарпай, ки ҳалли масъаларо таъмин менамояд

Мафҳуми алгоритм – яке аз мафҳумҳои асосии барномасозӣ аст. Алгоритм – ин пайдарпаии фармонҳо ба иҷрокунанда, ки дар натиҷаи иҷрои ин пайдарпаӣ иҷрокунанда масъалаи гузошташударо ҳал мекунад. Алгоритм дар забони расмие, ки ба гуногунфаҳмӣ роҳ намедиҳад, навишта мешавад. Иҷрокунанда – одам, компютер, дастгоҳи автоматӣ ва ғайра буда метавонад. Иҷрокунанда бояд механикӣ ва бе баҳсу мунозира ҳамаи фармонҳои дар таркиби алгоритм бударо иҷро карда тавонад. Сабти алгоритм дар забони расмӣ барнома (program) номида мешавад. Дар баъзе мавридҳо худи мафҳуми алгоритм бо сабти он иваз карда мешавад. Яъне калимаҳои «алгоритм» ва «барнома» қариб синоним ҳастанд. Фарқи хурдакак, лекин асосӣ ҳангоми истифодаи калимаи «алгоритм» он аст, ки бо ин калима одатан ғояи асосии бунёди алгоритмро, ки барои ҳамаи забонҳои алгоритмӣ умумӣ аст, дар назар доранд. Калимаи «барнома» бошад фақат ба сабти алгоритм дар ягон забони расмии мушаххас алоқаманд аст. Дар математика намудҳои гуногуни алгоритмҳо баррасӣ мегарданд – барномаҳо барои машинаҳои Тюринг, алгоритмҳои Марков, функсияҳои рекурсивӣ ва ғайра. Дар барномасозӣ қабул карда мешавад, ки ҳамаи забонҳои барномасозӣ баробарқувва мебошанд. Яъне ҳаргуна масъалаеро, ки ба алгоритми ҳал соҳиб аст, бо ҳаргуна забони барномасозӣ ҳал кардан мумкин аст. Интихоби забон дар ҳолати конкретӣ аз қулай будани абзорҳои (tools) ин забон барои масъалаи муоинашаванда вобаста аст. Масалан, забонҳои объектнигаронидашуда (object-oriented) барои барномасозии муҳитҳои тирезадор (window) қулай буда, забони Фортран дар ҳисобҳои илмӣ ва муҳандисӣ бомуваффақият истифода бурда мешавад. Бисёрии забонҳои алгоритмии дар барномасозӣ истифодашаванда монандиҳо доранд. Лекин ҳангоми баёни ғояи алгоритм на ҳама вақт мувофиқи мақсад аст, ки он дар ягон забони конкретии барномасозӣ баён гардад, чунки баёни ғоя бо чизҳои номуҳим хира гаштанаш мумкин аст. Дар чунин ҳолатҳо аз забони алгоритмии бештар ба забони одамӣ наздик истифода мекунанд. Чунин забонро псевдокод низ меноманд. Барои мутахассис азнав навиштани барномаи дар псевдокод навишташуда ба забони конкретии барномасозӣ мушкил нест. Сабти алгоритм дар псевдокод дар бисёр ҳолатҳо аниқтар ва фаҳмотар аст. Псевдокод имконият медиҳад, ки тарзи баёни алгоритм интихоб карда шавад: аз овардани нақшаи умумии алгоритм то овардани нозукиҳои ҳар як қисми алгоритм. Пседвокод моҳияти аксарияти забонҳои алгоритмиро дар бар мегирад. Дар ин силсила барои сабти алгоритмҳо ҳам псевдокод ва ҳам забони конкретии С++ истифода мешаванд.