Омӯзиши алгоритми баръакси адад – бо забони оддӣ + код
Омӯзиши алгоритми баръакси адад – бо забони оддӣ + код
Дар ин мақола аз маҷаллаи tajportal.site мо усули ба таври систематикӣ ба даст овардани баръакси ададҳоро бо истифода аз ду усули функсияҳои рекурсивӣ ва ҳалқаҳо дар барномасозӣ меомӯзем. Алгоритми баръакси адад ба рафторҳое дахл дорад, ки зина ба зина амалӣ карда мешаванд ва дар ниҳоят шакли баръакси адади додашударо бармегардонанд. Дар ҷаҳони барномасозӣ мо усулҳо ва мафҳумҳои гуногунро мешиносем, ки дар кор бо онҳо азхуд кардан беҳтар аст. Баргардонидани рақамҳо яке аз ин мафҳумҳост. Вақте ки мо дар бораи баръакси рақамҳо сухан меронем, ин маънои баръакс кардани тартиби ҷойгиркунии рақамҳои онро дорад. Ба ибораи дигар, агар мо рақамро дар шакли 12345 ба алгоритм супорем, он баръакси худро бармегардонад, ки дар натиҷа ба 54321 баробар аст.
Дар ин мақола мо татбиқи пурраи алгоритми баръакси ададро бо ду роҳи асосии истифодаи ҳалқаҳо ва функсияҳои рекурсивӣ таълим додем. Аввалан, алгоритми ин амалиёт ба таври муфассал тавсиф карда шуд ва баъд мо алгоритмро бо истифода аз забони Си рамзгузорӣ кардем. Мо дар бораи масъалае, ки ба манфии рақами воридот алоқаманд буд, сӯҳбат кардем ва роҳи ҳалли онро фаҳмондем. Ниҳоят, мо ин ҳалли худро тавассути рамзгузорӣ нишон додем.
Алгоритми баръакси адад чист?
Алгоритми баргардонидани адад маънои аз охир то аввал навиштани ададро дорад. Ин маънои баръакс кардани тартиби рақамҳои ададро дорад. Масалан, агар мо рақами 3489-ро ҳамчун вуруд ба ин алгоритм диҳем, мо бояд рақами баръакси 9843-ро дар баромади алгоритм бинем. Барои баргардонидани рақамҳо қадамҳои зеринро гузаштан лозим аст.
- Барои нигоҳ доштани рақами баръакс тағирёбандаро оғоз кунед.
- Барои баровардани рақами охирини рақами асосӣ аз оператори махсус, ба монанди оператори ҳисобкунии бақияи тақсим истифода баред.
- Рақами баръаксро ба 10 зарб кунед ва сипас рақами хориҷшударо ба он илова кунед.
- Рақами аслиро ба 10 тақсим кунед, то рақами охиринро хориҷ кунед.
- Се қадами қаблиро такрор кунед. Ин такрор бояд то коркарди ҳамаи рақамҳои рақами аслӣ анҷом дода шавад.
- Ниҳоят, натиҷаи дилхоҳи истеҳсолшуда арзиши баръакси рақами аслӣ мебошад.
Дар қисми боқимондаи ин мақола мо алгоритми баръакси ададро, ки қадам ба қадам дар шакли алгоритми сатҳи баланд шарҳ дода мешавад, бо забони барномасозии Си амалӣ хоҳем кард. Албатта, қайд кунед, ки муҳимтарин манфиати навиштани алгоритми сатҳи баланд ин содда кардани татбиқи он дар ҳама забонҳои барномасозӣ мебошад.
Тавсифи ин алгоритми амалӣ дар забони барномасозӣ
Барои он ки алгоритмҳои мо ба таври беҳтарин тарроҳӣ ва татбиқ карда шаванд, принсипҳои муайяне мавҷуданд, ки бояд риоя шаванд. Беҳтарин роҳи омӯхтани ин принсипҳо риояи лоиҳаҳои амалӣ ва мисолҳои амалӣ мебошад. Аз ин рӯ, мо тавсия медиҳем, ки видеои омӯзишии тарҳрезии алгоритмро дар баробари ҳалли мисолҳои амалӣ аз Фарадрас тамошо кунед. Истиноди ин филм низ дар зер ҷойгир шудааст.
Дар ин қисми мақола мо шакли хурд ва соддаи алгоритми баръакси ададро дар забони барномасозии Си амалӣ мегардонем. Пеш аз рамзгузории ин алгоритм, мо бояд онро аз сатҳи баланд ба сатҳи наздиктар ба қоидаҳои забони Си табдил диҳем.
- Оғози амалиёт
- Рақами воридшударо аз корбар хонед.
- Мо тағирёбандаеро бо номи reversedNumber бо арзиши ибтидоии 0 муайян мекунем. Ин тағирёбанда барои нигоҳ доштани ҷавоби алгоритм истифода мешавад.
- Мо қадамҳои аз 5 то 8-ро такрор мекунем, то он даме, ки рақами вуруд ба 0 баробар шавад.
- Мо бо истифода аз оператори % рақами охирини рақами воридшударо хориҷ мекунем. Пас мо бояд рақами истихроҷшударо дар тағирёбанда бо номи lastDigit нигоҳ дорем.
- Мо арзишро дар дохили тағирёбандаи reversedNumber ба 10 зарб мекунем.
- Мо арзишро дар дохили тағирёбандаи lastDigit ба арзиши reversedNumber илова мекунем.
- Мо рақами воридшударо ба 10 тақсим мекунем. Ин рақами охиринро аз рақам хориҷ мекунад.
- Мо давраро анҷом медиҳем.
- Мо арзишро дар дохили тағирёбандаи reversedNumber дар натиҷа чоп мекунем, то ба корбар намоиш дода шавад.
- Анҷоми амалиёт
Алгоритми дар боло зикршуда кафолат медиҳад, ки ҳамаи рақамҳои рақами воридотӣ истихроҷ карда мешаванд ва рақами баръакс бо роҳи зарб кардани арзиши он ба 10 ва сипас илова кардани арзиши тағирёбандаи lastDigit зина ба зина сохта мешавад. Давраи тарҳрезишуда то коркарди ҳамаи рақамҳои рақами аслӣ гузаронида мешавад. Дар ниҳоят, он баръакси рақами вурудро ба даст меорад ва онро дар баромад нишон медиҳад.
Рамзгузории алгоритми баръакси адад бо забони Си
Дар ин қисми мақола мо рамзҳои марбут ба барномаи амалисозии алгоритми баръакси ададро дар забони Си нишон додем. Забони барномасозии C қариб модари аксари забонҳои барномасозӣ дар ҷаҳон аст. Ин забон имтиёзу қобилиятҳое дорад, ки шояд ҳатто забонҳои аз он гирифташуда надошта бошанд. Барои фаҳмидани рамзҳои дар ин мақола татбиқшуда, шумо бояд бо ин забон шинос шавед. Агар шумо дар бораи забони Си маълумоти кофӣ надошта бошед, мо тавсия медиҳем, ки видеои омӯзишии барномасозии Сиро ба таври ҳамаҷониба бо маслиҳатҳои амалӣ аз дарсҳои беруназсинфӣ тамошо кунед. Барои роҳати шумо, мо истиноди филмро дар зер ҷойгир кардем.
Рамзгузории алгоритми рақамҳои баръакс дар забони Си бо истифода аз ҳалқаҳо
Шумо метавонед алгоритми марбут ба гирифтани баръакси ададҳоро бо усулҳои гуногун амалӣ кунед. Истифодаи ҳалқаҳо яке аз беҳтарин усулҳои имконпазири татбиқи ин алгоритм мебошад. Дар қуттии зер, мо асбоби ҳалқаро барои ба даст овардани баръакси адад истифода кардем.
Мушкилоти марбут ба вуруди рақами манфӣ
Яке аз мушкилоте, ки мо ҳангоми татбиқи алгоритми баръакси адад бо усули рекурсивӣ дучор мешавем, ба замоне вобаста аст, ки маълумоти воридшаванда ба навъи ададҳои манфӣ вобаста аст. Шакли рекурсивии ин алгоритм рақамҳои манфиро дуруст коркард намекунад. Яъне, аз сабаби он, ки раванди баргардонидан то сифр шудани адади аслӣ идома меёбад, баръакси рақами вуруди манфӣ дуруст ҳисоб карда намешавад.
Барои бомуваффақият бартараф кардани ин мушкилот, мо бояд кодро тағир диҳем, то арзиши мутлақи рақами аслиро ба даст орем. Пеш аз иҷрои якуми амалиёти баровардани рақами охирини адад арзиши мутлақи адади аслиро ҳисоб кардан лозим аст. Ин кафолат медиҳад, ки арзиши боқимонда ҳамеша мусбат аст ва ҳисобкунаки баръакс дуруст кор мекунад.
Татбиқи алгоритми ҳисобкунии баръакси рақамҳои манфӣ
Дар коди зер, мо як мисоли хурди тағир додани алгоритмро барои ба даст овардани арзиши баръакси рақамҳои манфӣ амалӣ кардем. Ин мисол низ мисли мисолҳои қаблӣ бо забони Си навишта шудааст.
Тавре ки хеле намоён аст, мо модули stdlib.h-ро барои дастрасӣ ба функсияи abs() дар сарлавҳаи файли марбут ба код дохил кардем. Ин функсия барои ҳисоб кардани арзиши мутлақи рақамҳо истифода мешавад. Дар коди боло арзиши мутлақи адад нақши хеле муҳим мебозад. Зеро бо ёрии рамзи abs(number) % 10 мо метавонем ба дуруст иҷро шудани амалиёти Модуло боварӣ ҳосил кунем. Новобаста аз он ки рақами воридотӣ мусбат ё манфӣ аст, дар ниҳоят коди марбут ба алгоритм дақиқ кор мекунад.
Аз ин рӯ, алгоритми амалӣ ҳоло метавонад рақамҳои манфиро дуруст идора кунад ва баръакси алоқаманди онҳоро дуруст созад.
Хулоса
Роҳҳои зиёде барои гирифтани рақами мутақобилан вуҷуд доранд. Фарқ надорад, ки мо барои иҷрои ин амал ҳалқа ё функсияро истифода мебарем, мантиқи рамзҳо доимӣ боқӣ мемонад. Баргардонидани рақамҳо яке аз мафҳумҳои асосии машқҳои барномасозӣ мебошад. Бо машқ кардани тарроҳии алгоритмҳои оддӣ ба монанди ин, барномасозони навкор ва донишҷӯён чизҳои омӯхтаашонро зери шубҳа мегузоранд.
Дар ин мақола аз маҷаллаи Ф мо дар бораи алгоритми баргардонидани адад ва усулҳои татбиқи он сӯҳбат кардем. Мо алгоритми дилхоҳро бо ду усули асосии истифодаи ҳалқаҳо ва функсияҳои рекурсивӣ амалӣ кардем ва рамзҳои марбут ба ҳарду ҳолатро бо забони барномасозии C намоиш додем. Ниҳоят, мо мушкилоти маъмултарини марбут ба ин алгоритмро баррасӣ кардем, яъне кор бо рақамҳои манфӣ. Дар аввал, мо ин мушкилотро шарҳ додем ва сипас ҳалли мувофиқро ба шунавандагони худ пешниҳод кардем ва инчунин рамзгузории марбутаро нишон додем.
Share this content: