Computer, Programming
Programming. Basic algorithmic konstruksyon
Aron sa paghimo sa bisan unsa nga mga programa nga gikinahanglan nag-unang mga algorithmic disenyo. Mosunod nga mao ang labing sayon nga kapilian alang sa pagsulbad sa mga problema. kini mahimong gamiton, pananglitan, alang sa operasyon uban sa pare-pareho nga mga ehemplo. Adunay uban nga mga matang: branching ug laang. Nga gitabonan sa niini nga artikulo. Apan una nga kamo kinahanglan nga makasabut kon unsa ang usa ka algorithm anaa sa kinatibuk-ang.
algorithm
Ang pulong "algorithm" gikan sa Latin nga algoritmi. Unsay kahulogan niini? Tinuod nga pulong naggikan sa ngalan sa matematika, mga kalihokan nga gikuha sa dapit sa IX nga siglo. Tungod basahon al Khorezmi katawhan mahimong masinati uban sa mga nag-unang mga matang sa algorithmic design ug sa kinatibuk-uban sa mga kinatibuk-ang konsepto.
Sa sayo pa nga porma sa espeling gisagop - "algorithm". Karon kini gigamit lamang sa pipila ka mga kaso.
Algorithm - sa usa ka proseso nga nagpasabot sa pag-usab sa orihinal nga data, nga mahitabo sa magkalahi nga mga lakang. Uban niini nga konsepto, ang matag tawo-atubang sa kinabuhi, bisan kinsa nga siya mao. Algorithms mahimong gihulagway nga tsa ug pagkaon, multiplication o Dugang pa, solusyon sa mga pagbalanse, ug sa ingon sa. D. Ang tanan nga appliances kansang buhat proseso automated, naglihok pinaagi sa tin-aw nga mga lakang nga gilatid diha sa processor sa panumduman. Ang maong mga algorithms gitawag panimalay. Adunay uban nga mga matang. Atong susihon kanila.
matang sa algorithms
Basic algorithmic istruktura gibahin ngadto sa pipila ka mga matang, nga gihisgotan sa niini nga parapo. Unsa sila?
- Impormasyon. Ang maong mga algorithms nagtrabaho uban sa dako nga kantidad sa data, apan ang gidaghanon sa gidaghanon sa pagproseso sa gamay diha sa gitas-on ug uncomplicated.
- Control. Ang operasyon sa maong algorithms gilangkit sa impormasyon nga anaa gikan sa usa ka partikular nga tinubdan. Sa resibo gipadala espesyal nga signal aron sa pagsiguro sa operasyon sa mga lalang.
- Computing. Dili sama sa mga algorithms impormasyon gibatbat sa pagtrabaho uban sa gagmay nga kantidad sa mga data, apan og usa ka dako nga proseso sa trabaho.
Sa pagkatinuod, ang algorithm mao ang tukma sa kinagamyang pahamatngon detalye. Apan, dili tanan nga data mahimong gitawag nagpatin-aw sa konsepto. Aron masabtan ang algorithm nga panudlo o dili, kini kinahanglan nga gitan-aw sa sa atubangan sa pipila ka mga kabtangan.
kabtangan sa algorithms
Ang tanan nga mga mayor nga algorithmic disenyo kinahanglan nga adunay mga buhat nga sila "mosunod." Tagda kini nga pangutana sa dugang nga detalye.
Kon bug-os nga track sa performance sa mga algorithms ug sa ilang mga kabtangan, nga kamo mahimo tan-awa nga dili kinahanglan makasabut sa ilang mga katawhan, tin-aw nga igo sa mohaom sa plano. Ang husto nga resulta mao nga nakuha, bisan kon ikaw lang moipon sa sa gitinguha nga mekanikal nga aksyon. Gikan niini kita makaingon nga tungod sa kakulang sa kahulogan sa mga kalihokan sa awareness, ang algorithm mao ang na posible nga sa pagbayad alang sa pagpatuman sa usa ka computer. Sa laing mga pulong, alang sa automated lalang nagkinahanglan anaa sa niini nga proseso.
Unsa nga mga kabtangan kinahanglan nga adunay usa ka nag-unang mga algorithmic design alang sa maximum tukma nga buhat?
- Understandability. Ang matag team kinahanglan nga ingon sa tin-aw nga running butang. Kini daw nga walay bisan unsa nga mas sayon kay sa, alang sa panig-ingnan, butangig tulbok diha sa sentro, adunay, apan kini dili espeling sa team, nga sa pagbuhat sa usa ka aksyon, kini dili nga buhaton.
- Epektibo. Nga nagpasabot nga kabtangan niini? Gikinahanglan sa pag-angkon sa usa ka resulta. algorithm Ang dili apan mosangpot sa pipila ka matang sa tubag. Tungod sa usa ka sayop, nga imong mahimo sa pagkuha sa mga sayop nga resulta nga gitinguha, apan siya. Dugang pa, ang tubag kinahanglan nga nadawat human sa usa ka pipila ka mga gidaghanon sa mga lakang.
- Misa. Sa bisan unsa nga algorithm kinahanglan nga magamit sa bisan unsa nga klase sa mga problema. Sa taliwala kanila aron sila magkalainlain data input.
- Pagkatinuod. Ang matag aksyon kinahanglan nga adunay usa lamang ka kahulugan, ug dili sa paghatag sa mga posibilidad alang sa gikopya nga decryption. Sa minithi, bisan sa unsa nga paagi daghan ang programa gilunsad, ang resulta kinahanglan nga sa mao usab nga sa tanan nga panahon.
- Magkalahi. Algorithm - makanunayon sa pagpatuman lakang. Ang matag lakang mao ang usa ka sugo sa skip o pagdugang sa bag-ong mga dili mahimo.
- Kahusto. Sa bisan unsa nga algorithm nga magamit sa bisan unsa nga matang sa mga buluhaton, kinahanglan nga husto alang sa tanan. Sa programa, adunay mga sagad nga mga problema mao ang wala diha sa mga lakang sa pagsulat, nga sagad wala magkinahanglan og usa ka daghan sa panahon, ug sa pagtuman sa ilang mga alang sa tanan nga mga matang sa mga pangutana. Busa, ang usa ka importante nga lakang mahimong sa debug sa algorithm. Makatabang sa uban sa niini ug sa nag-unang mga algorithmic disenyo, ang pagbalik-balik sa nga mosangpot ngadto sa mas maayo nga mga resulta.
Paghulagway sa algorithms
Kon kita maghisgot sa unsa nga paagi sa pagsulat algorithms, kini kinahanglan nga highlight sa mosunod:
- Berbal. Sa laing mga pulong, sa pinulongan, nga mao ang sayon sa pagsulti component.
- Table. Makataronganon nga, ang algorithm nahisulat diha sa usa ka lamesa ug sa kasagaran nga gigamit ingon nga usa ka auxiliary elemento.
- Pormula-binaba. basehan ang gikuha binaba izyasneniya pamaagi, apan ang maong mga lihok usab sa natala nga mga karakter o mga pormula sa matematika.
- Graphic. Ang maong usa ka algorithm nahisulat diha sa usa ka espesyal nga flowcharts pinulongan.
Kini mao ang gikinahanglan aron sa pagpatin-aw sa katapusan nga punto. Unsa ang usa ka flowchart? Kini nga linear o dili diretso algorithm, ang mga lakang sa nga gisulat sa paggamit espesyal nga mga yunit. Sila adunay ilang kaugalingon nga kontorno, katuyoan ug function. Sa kaso sa paghulagway niini, ang algorithm nga gisulat block diagram, nga mao ang mga interconnected mga linya. Kinahanglan usab sila nga pagsulat sa usa ka partikular nga aksyon (lakang).
algorithmic design
Ang pipila makiglalis nga ang algorithms wala 3 matang, ug 4. Ang nag-unang mga algorithmic disenyo: linear, branched, cyclic. Unsa ang rason sa maong usa ka sayop nga pagtuo, kini mao ang dili tin-aw. Apan, alang sa yano nga solusyon sa complex problema sa paggamit sa algorithms computer alang niining tulo ka minatarong, sa maayohon dagkong mga grupo. Atong susihon kanila.
- Linear. Kini nga computational nga proseso na niini nga ngalan tungod sa kamatuoran nga ang tanan nga mga buhat nga gidala sa gawas sa usa ka linear ay, diin ang matag lakang ang gihimo sa labaw pa kay sa makausa. Kon atong hunahunaon ang mga laraw sa mga problema, nan kini bloke gibutang sa usa sa ibabaw sa uban nga mga, depende sa performance sa mga numero han-ay. Linear algorithms pagtrabaho sa ingon nga paagi nga ang orihinal nga data wala mag-usab sa direksyon ug sa pagbati sa aksyon. Ang maong mga solusyon angay nga pamaagi alang sa pagkwenta sa kantidad o kalainan, maglaro porma, o sa perimeter niini, ug sa ingon sa. N. Ang nag-unang matang sa algorithmic design mao gayud kini.
- Branching. Kini nga computational proseso nagpasabot sa atubangan sa usa ka makataronganon nga ekspresyon (ang LP) ug usa ka pagpili sa mga kahimtang (sanga "bakak nga" ug "tinuod"). Sa matag kaso, kini nakaamgo lamang usa sa duha ka o labaw pa nga teams. Walay problema ug dili mahimo, nga ipatuman ang mga pa sa uban nga mga kapilian. Kon ang duha ka mga sanga sa algorithm, kini mao ang yano nga, kon labaw pa kay sa duha ka - complex. Ang ulahing proseso daw sayon sa gasto sa unang. Ang nag-unang matang sa algorithmic disenyo mao ang unang punto ug ang ikaduha. Ang mosunod nga porma gilakip usab diha sa listahan niini.
- Balik-balik. algorithm Kini kinahanglan nga elemento gisubli, samtang sa paggamit sa lain-laing data input. Sa laing mga pulong, ingon nga usa ka proseso nga gitawag nga usa ka siklo.
Kini kinahanglan nga nakita nga ang tanan nga mga mayor nga algorithmic design (mosunod, mga sanga, galong) konektado sa usag usa, bisan sila mahimo nga gamiton sa gilain.
Pagmugna galong ug sa ilang mga matang
Unsay kini sa paghimo sa usa ka laang?
- Ang laang counter. Kini mao ang usa ka baryable nga naghubit sa inisyal nga bili, ug ang pagbalik-balik sa mga aksyon kini sa pag-usab. Kini kinahanglan gayud nga kinahanglan mosulod ngadto sa algorithm. Basic algorithmic pagtukod sa frame-type nga buhat nga wala kini dili.
- Ang pag-usab sa index sa ibabaw sa mga data sa atubangan sa usa ka bag-o nga pagbalik-balik sa mga siklo.
- Susiha mga kahimtang sa computer nga nakahukom ba sa pag-usab "basahon nga linukot" laang o labaw pa walay panginahanglan.
Siklo mahimong deterministic ug iterative. Ang una mao ang usa ka usabon sa mga nailhan nga gidaghanon sa mga pagbalik-balik. Iterative cycle - usa nga gibalik-balik sa usa ka walay tino nga kantidad sa panahon hangtud nga ang kahimtang mao ang tinuod o bakak.
Ang nag-unang mga algorithm
Kini mao ang bili sa paghinumdom nga ang mga nag-unang mga algorithmic istruktura wala maglakip sa mga nag-unang mga algorithm. Unsa kini? Kini nga konsepto wala na makita diha sa modernong literatura, apan wala kini magpasabot nga kini ug dili na anaa. Tungod nga ang solusyon sa mga problema mahimo nga nasugatan sa pipila ka mga sanga o mga pagbalik-balik, sa mosunod nga konklusyon. Basic algorithmic konstruksyon (linear, branched, cyclic) ang mga nag-unang mga. Sa pagkatinuod, sila nagrepresentar "structural yunit" sa matag gitawag nga mga panudlo.
linear algorithms
Ingon nga mao ang tin-aw nga gikan sa ibabaw, usa ka algorithms mga linear ug non-linear. Tagda ang unang larawan. Nganong sila motawag niini? Ang tanan nga kaayo nga mga walay-pagtagad. Ang kamatuoran mao nga ang tanan nga ang mga lihok nga nanaghoni sa algorithm, mga tin-aw nga makanunayon pagpatuman sa tanan nga mga lakang nga hugot ang usa human sa usa. Kasagaran, kini nga mga buluhaton mao ang mga gagmay ug sa usa ka ubos nga ang-ang sa komplikado.
Usa ka panig-ingnan sa usa ka linear algorithm mahimong usa ka proseso sa pag-andam sa tsa:
- Ibubo sa tubig ngadto sa kettle.
- Ibutang ang kettle sa stove sa lutoon mo ang.
- Kuhaa ang copa.
- Ibubo ngadto sa usa ka tasa sa tsa.
- Idugang ang mga asukar.
- Human sa Nagabukal sa init nga tubig gibubo ngadto sa kopa.
- Dad-a sa usa ka cuchara.
- Pagpalihok sa asukar.
Programming nag-unang mga algorithmic istruktura - bug-at nga igo deal, apan kon kini mao ang usa ka linear algorithm, kini mao ang kanunay nga sayon kaayo sa pagpatuman sa kanila.
branching algorithms
Unsa nga paagi sa nga makasabut nga ang algorithm nga branching? Kini mao ang igo aron sa pagsiguro nga kamo adunay usa ka pagpili sa duha ka o labaw pa nga mga kurso sa aksyon, depende sa performance sa o kahimtang sa kapakyasan. Ang matag dalan nga gitawag nga usa ka sanga.
Ang nag-unang bahin sa branching algorithm mao ang pagkaanaa sa usa ka conditional sanga. Kini mahitabo sa panahon sa pagsulay ekspresyon sa kamatuoran o sa usa ka bakak.
Kasagaran, ang mga makataronganon mga ekspresyon girepresentahan ilhanan "dili kaayo kay sa", "mas", "ubos pa kay sa o patas", "mas dako pa kay sa o katumbas sa", "nga sama", "dili magsama." Usahay adunay mga embodiments diin ang kahimtang nakig-uban sa matag usa pinaagi sa sa sugo ug sa (u) o (o).
Usa ka panig-ingnan sa maong usa ka algorithm mahimong ang solusyon sa mga mosunod nga problema: kon ang ekspresyon ((x + 3) / 1) mao ang katumbas sa usa ka positibo nga gidaghanon, unya ipakita ang resulta sa screen, kon negatibo nga - aron sa pagpahibalo user sa bahin sa kasaypanan.
Yano nga igo sa praktis sa paggamit sa mga nag-unang mga algorithmic disenyo. Branching mao ang usa sa labing komon nga mga pamaagi alang sa pagsulbad.
Deterministic cycle o gikan sa cycle counter
Ang pagbalik-balik sa mga kontra - cycle nga naglakip sa usa ka baryable nga mga kausaban sa usa ka bili nga lakang. gihubit pinaagi sa user sa o gimando sa programmer sa diha nga pagsulat software Lakang. Kadaghanan sa mga pinulongan alang sa pagbalik-balik niini nga gigamit sa usa ka operator sa.
Sa programa sa pagpakita sa duha ka laray nga gihulma sa 4 nga mga panahon:
- "Sa unsang paagi ikaw?"
- "Aw, salamat!"
- "Sa unsang paagi ikaw?"
- "Aw, salamat!"
Kamo kinahanglan gayud nga sa paghimo sa usa ka deterministic cycle. Sa unsang paagi tan-awon niini? Kita sa paggamit sa sa pinulongan "Pascal" alang sa usa ka mas maayo nga panglantaw sa disenyo.
1. Kay i: = 1 ngadto sa 2 pagabuhaton:
- i ang usa ka counter cycle, kini motino sa gidaghanon sa mga pagbalik-balik sa usa ka laang.
2. Sugdi (bukas curly bracket sa duha ka hugpong sa mga pulong mao ang lawas cycle ug gisubli sa tingub.)
3. Writeln ( 'Unsaon ikaw?'):
- ang pulong nagpasabot writeln konklusyon hugpong sa mga pulong nga sa ka kinutlo.
4. Writeln ( 'Maayong, salamat').
5. Katapusan.
6. i: = i + 1.
Samtang kamo mahimo tan-awa, na sayon ug bisan makalingaw sa paggamit sa nag-unang mga algorithmic disenyo. Basic algorithms gayud maayo ang nailhan, wala sila imposible sa pagsulat sa mga programa.
Cycle uban sa postcondition
Cycle uban sa postcondition mahimong gisubli sa usa ka walay tino nga gidaghanon sa mga buhat nga dili pagsal-ot sa operator brace o compound mga pulong. Siya gipatay sa labing menos makausa. Kini nagtrabaho cycle hangtud nga ang kahimtang mao ang bakak nga mga. Siya pag-undang sa pagtukod sa mga husto nga mga indicators. Sa algorithm kini gitukod. Basic algorithmic pagtukod sa niini nga matang sa buhat sa niini nga partikular nga lakang.
Kay katumanan sa pagbalik-balik niini nga nagkinahanglan disenyo Repeat A hangtud B. literal nga kini nagpasabut nga "sublion ang mga lakang hangtud sa kahimtang bakak." Busa, kini gipahayag pinaagi sa usa ka sa iyang kaugalingon pagsubli proseso pinaagi sa B - data nga moresulta kinahanglan sa usa ka husto nga bili.
Cycle uban sa pauna nga kundisyon
Cycle uban sa postcondition ang gitukod sa ingon nga paagi nga kini gihimo sa labing menos makausa sa bisan unsa nga kaso. Apan, adunay mga kaso sa diha nga ang pagbalik-balik mao ang gikinahanglan sa kaso sa usa ka kahimtang, ug dili kinahanglan nga gidala sa gawas sa wala sa pagbalik. Kay kon dili, ang mga resulta mahimong sayop. Kini mao ang sa niini nga kaso sa usa ka laang sa usa ka kondisyon. Aron sa paghimo sa gikinahanglan nga design «samtang usa ka buhaton B». Ang unang team sa literal gihubad nga "taas nga." A - kondisyon, ug - mga buhat nga gisubli. Ang tibuok nga plano nagpasabot "hangtud nga ang kahimtang mao ang tinuod nga, sa pagbuhat sa usa ka aksyon."
Ang tanan nga mga mayor nga algorithmic design buhat lamang sa pipila ka mga kaso. Unsa sila sa laang sa usa ka kondisyon? Kon kinahanglan nga gisubli labaw pa kay sa usa ka aksyon, apan sa pipila ka, unya ikaw kinahanglan nga mogamit sa o compound mga pamahayag, o espesyal nga bracket. siklo ang mahimo dili gipatay kon ang kahimtang nga dili tinuod sa dihang pagsulod ngadto niini. Busa, ang aksyon nga gisubli kon kini mao ang husto.
Ang auxiliary algorithm
Ang auxiliary algorithm gigamit sa ubang mga proseso pinaagi sa pagpaila lamang ang ngalan niini. Siya mao ang usa ka mayor nga algorithmic mga laraw dili magamit. Sa programming mga pinulongan sama nga aksyon proseso gitawag nga rutina. Aron sa pagpahigayon sa buhat sa mga code, ug unya mas daling pagsulbad sa mga problema sa matag aksyon ang hiniusa nga ngadto sa usa ka yunit, nga mao ang usa ka auxiliary algorithm. Ang matag usa kanila nga mangutana sa iyang ngalan, nga nagtugot sunod balik-balik sa pagkontak kaniya.
Similar articles
Trending Now