Tengeneza mchoro wa block ya y x. Algorithms na chati za mtiririko. Ukuzaji wa mchoro wa block ya algorithm ya kutatua shida

Chati mtiririko wa algorithm

Mfano wa mchoro wa kuzuia wa algorithm ya kuhesabu factorial ya nambari N

Mpango- uwakilishi wa kielelezo wa ufafanuzi, uchambuzi, au njia ya kutatua tatizo, ambayo hutumia alama kuonyesha shughuli, data, mtiririko, vifaa, nk (GOST 19.701-90).

Mchoro wa kuzuia- aina ya kawaida ya mchoro inayoelezea algorithms au taratibu, inayoonyesha hatua kwa namna ya vitalu vya maumbo mbalimbali, yanayounganishwa na mishale.

Viwango vya Utendaji

Sheria za utekelezaji wa miradi imedhamiriwa na hati zifuatazo:

Kwa nyaraka za programu:

Nyaraka hizi, hasa, zinasimamia mbinu za kujenga nyaya na kuonekana kwa mambo yao.

Vipengele vya msingi vya nyaya za algorithm

Jina Uteuzi Kazi
Terminator
(kuanza)
Kipengele kinaonyesha ingizo kutoka au pato kutoka kwa mazingira ya nje (matumizi ya kawaida ni mwanzo na mwisho wa programu). Hatua inayolingana imeandikwa ndani ya takwimu.
Mchakato Kufanya shughuli moja au zaidi, kuchakata data ya aina yoyote (kubadilisha thamani ya data, fomu ya uwasilishaji, eneo). Ndani ya takwimu, shughuli zenyewe zimeandikwa moja kwa moja, kwa mfano, operesheni ya mgawo: a = 10*b + c.
Suluhisho Huonyesha uamuzi wa aina ya swichi au chaguo za kukokotoa kwa ingizo moja na matokeo mawili au zaidi mbadala, ambayo ni moja tu inayoweza kuchaguliwa baada ya kutathmini masharti yaliyobainishwa ndani ya kipengele. Kuingia kwa kipengele kunaonyeshwa kwa mstari, kwa kawaida huingia kwenye vertex ya juu ya kipengele. Ikiwa kuna njia mbili au tatu, basi kwa kawaida kila njia ya kutoka inaonyeshwa na mstari unaotoka kwenye wima iliyobaki (upande na chini). Ikiwa kuna zaidi ya njia tatu za kutoka, basi zinapaswa kuonyeshwa kama mstari mmoja unaotoka juu (kawaida chini) ya kipengele, ambacho kisha matawi. Matokeo yanayolingana ya hesabu yanaweza kuandikwa kando ya mistari inayowakilisha njia hizi. Mifano ya suluhisho: katika hali ya jumla - kulinganisha (matokeo matatu: > , < , = ); katika programu - taarifa za masharti kama(matokeo mawili: kweli, uongo) Na kesi(njia nyingi za kutoka).
Mchakato uliofafanuliwa awali Ishara inaonyesha utekelezaji wa mchakato unaojumuisha shughuli moja au zaidi, ambayo inaelezwa mahali pengine katika programu (katika subroutine, moduli). Jina la mchakato na data iliyohamishwa kwake imeandikwa ndani ya ishara. Kwa mfano, katika programu - kuita utaratibu au kazi.
Data
(Ingizo la pembejeo)
Kubadilisha data katika fomu inayofaa kwa usindikaji (pembejeo) au kuonyesha matokeo ya usindikaji (pato). Ishara hii haitambui njia ya kuhifadhi (alama maalum hutumiwa kuonyesha aina ya njia ya kuhifadhi).
Mpaka wa kitanzi Ishara ina sehemu mbili - kwa mtiririko huo, mwanzo na mwisho wa mzunguko - shughuli zinazofanyika ndani ya mzunguko zimewekwa kati yao. Masharti ya kitanzi na nyongeza yameandikwa ndani ya alama ya mwanzo au mwisho wa kitanzi, kulingana na aina ya shirika la kitanzi. Mara nyingi, ili kuonyesha mzunguko kwenye mchoro wa kuzuia, badala ya ishara hii, ishara ya ufumbuzi hutumiwa, inayoonyesha hali ndani yake, na moja ya mistari ya pato imefungwa juu ya mchoro wa kuzuia (kabla ya shughuli za mzunguko).
Kiunganishi Ishara inawakilisha pato kwa sehemu ya mzunguko na pembejeo kutoka kwa sehemu nyingine ya mzunguko huo. Inatumika kuvunja mstari na kuuendeleza mahali pengine (mfano: kugawanya chati ya mtiririko ambayo haifai kwenye laha). Alama zinazolingana za kuunganisha lazima ziwe na jina moja (na la kipekee).
Maoni Hutumika kuelezea hatua, mchakato, au kikundi cha michakato kwa undani zaidi. Ufafanuzi umewekwa kwenye upande wa bracket ya mraba na inafunikwa kwa urefu wake wote. Mstari wa nukta huenda kwa kipengele kinachoelezewa, au kwa kikundi cha vipengele (kikundi kinaangaziwa na mstari wa alama uliofungwa). Pia, ishara ya maoni inapaswa kutumika katika hali ambapo kiasi cha maandishi katika ishara nyingine (kwa mfano, ishara ya mchakato, ishara ya data, nk) inazidi kiasi chake.

Maelezo ya vipengele vingine vya mzunguko yanaweza kupatikana katika GOSTs husika (zilizoorodheshwa hapo juu).

Mpangilio wa vitendo umebainishwa kwa kuunganisha wima na arcs, ambayo huturuhusu kuzingatia chati za mtiririko sio tu kama tafsiri ya kuona ya algorithm, inayofaa kwa mtazamo wa mwanadamu, lakini pia kama grafu iliyoelekezwa yenye uzani. Walakini, sio grafu yoyote iliyoelekezwa inayojumuisha wima ya aina zilizo hapo juu ni algorithm sahihi. Kwa mfano, zaidi ya safu moja haiwezi kupanuka kutoka kwa vertex ya opereta. Kwa hivyo, katika mazoezi, kwa kawaida tunajiwekea kikomo kwa kuzingatia aina ndogo ya mifumo ya grafu ya algoriti ambayo inakidhi sifa za usalama, uhai na uthabiti.

Mipango ya joka

Hivi majuzi, michoro za muundo, ngumu za kihesabu zimeonekana, ambazo huitwa "michoro ya joka". Pamoja na ujio wa michoro za joka, chati za mtiririko zilianza kupoteza umuhimu wao, kwa kuwa ni duni kwa michoro za joka kwa njia zote.

Vidokezo

Angalia pia

  • Mchoro wa uunganisho

Wikimedia Foundation. 2010.

Tazama "chati ya mtiririko wa algorithm" ni nini katika kamusi zingine:

    chati ya algorithm- chati ya udhibiti - [L.G. Sumenko. Kamusi ya Kiingereza-Kirusi juu ya teknolojia ya habari. M.: State Enterprise TsNIIS, 2003.] Mada teknolojia ya habari kwa ujumla Visawe kudhibiti mchoro EN kudhibiti mchoro ...

    mchoro wa kuzuia- - mchoro wa kuzuia [Luginsky Ya. N. et al. Toleo la 2 M.: RUSSO, 1995 616 pp.] mchoro wa kizuizi Uwakilishi wa ishara wa algoriti, ... ... Mwongozo wa Mtafsiri wa Kiufundi

    chati ya mtiririko (ya programu au algoriti)- - [Ya.N.Luginsky, M.S.Fezi Zhilinskaya, Yu.S.Kabirov. Kamusi ya Kiingereza-Kirusi ya uhandisi wa umeme na uhandisi wa nguvu, Moscow, 1999] Mada za uhandisi wa umeme, dhana za msingi Mchoro wa mtiririko wa EN ... Mwongozo wa Mtafsiri wa Kiufundi

    Katika programu, uwakilishi wa kielelezo wa mpango au algorithm kwa kutumia vipengele vya kawaida vya picha (rectangles, almasi, trapezoid, nk) inayoonyesha amri, vitendo, data, nk. Kwa Kiingereza: Flowchart Tazama pia:… … Kamusi ya Fedha

    Mchoro wa kuzuia- - picha ya kawaida ya algoriti, programu ya kompyuta, mchakato wa kufanya maamuzi, mtiririko wa hati, n.k., inayokusudiwa kutambua muundo wao na mlolongo wa jumla wa shughuli. Mfano B. s. tazama Algorithm ya kifungu ... Kamusi ya kiuchumi na hisabati

    Neno hili lina maana zingine, angalia Block. Mfano wa mchoro wa algoriti ya kukokotoa kipengele cha nambari N. Mchoro ni kielelezo cha kielelezo cha ufafanuzi, uchambuzi, au mbinu ya kutatua tatizo linalotumia ishara ... Wikipedia

    ZUIA MCHORO- picha ya kawaida ya algorithm ya kutatua tatizo, mtiririko wa hati, mlolongo wa shughuli za kazi au taratibu kwa kutumia mishale, mistari ya kuunganisha na maumbo ya kijiometri ya maumbo mbalimbali yenye alama za udhibiti au ... Kamusi kubwa ya kiuchumi

    mchoro wa hatua kwa hatua wa kuzuia- ni uwakilishi wa kina wa graphic wa shirika la kimuundo la algorithm, ambayo kila hatua ya mchakato wa usindikaji wa data inawasilishwa kwa namna ya maumbo ya kijiometri (au vitalu) ... Kamusi ya tafsiri ya ufafanuzi

    Zuia mchoro wa algorithm ya Dijkstra. Tafuta algoriti za gr... Wikipedia

    uthibitisho wa teknolojia ya habari katika uwanja wa ubora wa habari za huduma- Uthibitisho rasmi na shirika la uidhinishaji au shirika lingine lililoidhinishwa mahususi la uwepo wa masharti muhimu na ya kutosha kwa matumizi ya teknolojia ya habari, kuhakikisha uthabiti wa kufuata viwango vya ubora wa huduma... ... Mwongozo wa Mtafsiri wa Kiufundi

Vitabu

  • Masharti ya ufanisi wa uzalishaji, Nikolai Aleksandrovich Zhdankin. Kulingana na utafiti uliofanywa, masuala ya kuendeleza mkakati wa kampuni kubwa katika madini yanazingatiwa. Mifano ya uchambuzi wa mazingira ya ndani na nje ya biashara hutolewa. Imetolewa... Kitabu pepe

Katika dunia ya kisasa ya teknolojia ya digital, programu ni msingi wa uendeshaji wa kompyuta mbalimbali, gadgets na vifaa vingine vya elektroniki. Na uwezo wa haraka na kwa usahihi kuteka mtiririko wa algorithm ndio msingi, msingi wa sayansi hii. Mchoro huu ni mfano wa kielelezo wa michakato ambayo vifaa vinahitaji kufanya. Inajumuisha vizuizi tofauti vya utendakazi ambavyo hufanya madhumuni tofauti (kuanza/kumaliza, ingizo/pato, simu ya kukokotoa, n.k.).

Algorithm na algorithmization

Kwa asili, algorithm ni maagizo rahisi kuhusu mlolongo ambao vitendo fulani lazima vifanyike wakati wa usindikaji data ya chanzo katika matokeo yanayohitajika. Pamoja na neno hili, hutumiwa mara nyingi kama seti ya mbinu na mbinu za kuunda mlolongo wa kutatua matatizo maalum.

Mara nyingi algorithm haitumiki kama maagizo kwa kompyuta, lakini kama mpango wa kufanya kitendo fulani. Hii inakuwezesha kutambua ufanisi na ufanisi wa njia hii ya ufumbuzi, kurekebisha makosa iwezekanavyo, na pia kulinganisha na ufumbuzi mwingine sawa kabla ya kuiingiza kwenye kompyuta. Kwa kuongeza, algorithm inawakilisha msingi wa kuandaa programu ambayo lazima iandikwe katika lugha ya programu ili kutekeleza mchakato wa usindikaji wa habari kwenye PC. Hadi sasa, mbinu mbili za vitendo za kuunda mlolongo huo zimejulikana. Ya kwanza ni maelezo ya hatua kwa hatua ya maneno, na ya pili ni mtiririko wa algorithm ya kazi. Wa kwanza wao amepokea usambazaji mdogo sana. Hii ni kutokana na kukosekana kwa uwazi na kitenzi. Njia ya pili, kinyume chake, ni njia rahisi sana ya kuonyesha mlolongo. Imeenea katika fasihi ya kielimu na kisayansi.

Vipengele vya chati mtiririko

Mtiririko wa algorithm ya programu ni mlolongo wa alama za picha ambazo zinaagiza utekelezaji wa shughuli maalum, pamoja na viunganisho kati yao. Ndani ya kila picha kama hiyo, habari kuhusu kazi inayopaswa kufanywa imeonyeshwa. Vipimo na usanidi wa alama za picha, pamoja na utaratibu wa utekelezaji wa mlolongo umewekwa na GOST 19003-80 na GOST 19002-80.

Hebu tuangalie mambo makuu ya mchoro wa kuzuia algorithm (picha inaonyesha mifano ya muundo wao).

1. Mchakato - hatua ya computational au mlolongo wa vitendo vile.

2. Suluhisho - kuangalia hali iliyotolewa.

3. Marekebisho - kichwa cha mzunguko.

4. Mchakato uliofafanuliwa - kuita utaratibu.

5. Hati - uchapishaji na pato la data.

6. Kadi iliyopigwa - kuingiza habari.

7. Pembejeo / Pato - Pembejeo / Pato la data.

8. Kiunganishi - kuvunja mistari ya mtiririko.

9. Anza / Mwisho - kuanza, mwisho, kuacha, kuanza, kuingia na kuondoka hutumiwa katika algorithms msaidizi.

10. Maoni - hutumika kuweka maelezo ya maelezo.

11. Mitiririko ya wima na ya usawa - mwelekeo wa mlolongo, mstari wa mawasiliano kati ya vitalu.

12. Kuunganisha - kuunganisha nyuzi.

13. Kiunganishi cha Interpage - alama inayoashiria mpito kwa karatasi nyingine.

Kanuni za mtindo

Ujenzi wa mchoro wa block ya algorithm unafanywa kulingana na mahitaji maalum yaliyowekwa na GOST. Kwa mfano, wakati wa kuunganisha alama za picha, mistari ya usawa au ya wima pekee hutumiwa. Mtiririko unaoelekezwa kutoka kulia kwenda kushoto na kutoka chini kwenda juu lazima uweke alama kwa mishale. Mistari mingine inaweza isiwe na alama. Umbali kati ya mtiririko wa sambamba haipaswi kuwa chini ya milimita tatu, na kati ya vipengele vingine - angalau milimita tano. Ukubwa wa vitalu lazima ziwe nyingi kati ya tano. Uwiano wa mlalo na wima wa ishara ya picha ni 1.5. Wakati mwingine sawa na mbili inaruhusiwa. Kwa urahisi wa maelezo, alama za picha zinapaswa kuhesabiwa. Kulingana na asili ya viunganisho, aina za michoro ya block ya algorithms ya muundo wa mstari, wa mzunguko na wa matawi hutofautishwa.

Vigezo, vidhibiti na seli za kumbukumbu

Ili kuelewa vizuri kanuni ya uendeshaji wa algorithm, unaweza kuzingatia automaton rahisi zaidi. Inajumuisha kumbukumbu, inayojumuisha seli; andika/soma kichwa; CPU. Ni kanuni gani ya uendeshaji wa kifaa kama hicho? Kichwa, baada ya kupokea amri kutoka kwa processor, huandika data kwa seli au kusoma mara kwa mara. Katika kesi rahisi zaidi itakuwa nambari ya hesabu. Kwa kuongeza, mara kwa mara inaweza kuwa kamba za wahusika, nk Tofauti ni seli ya kumbukumbu ambayo habari huhifadhiwa. Wakati wa utekelezaji wa algorithm, data mbalimbali zinaweza kurekodi katika seli hiyo. Kompyuta za kibinafsi na vifaa vingine vya elektroniki vinajengwa juu ya kanuni hii. Algorithm ya kufanya kazi ni seti ya amri za kusoma au kuandika habari kwenye seli hizi za kumbukumbu.

Safu

Safu ni aina nyingine ya kutofautisha kwa faharasa. Kimsingi, huu ni mkusanyiko wa seli ambazo zimeunganishwa na sifa ya kawaida. Safu zimegawanywa katika mbili-dimensional, tatu-dimensional, nk Rahisi kati yao ni mfululizo wa seli mfululizo. Safu kama hiyo ina jina lake mwenyewe. Kila kipengele kina nambari yake - index. Mara kwa mara iliyoandikwa kwa seli inaitwa kipengele cha safu.

Aina mbili-dimensional inafanana na tumbo katika mpangilio wake wa vipengele. Seli katika safu kama hiyo zina sifa ya fahirisi mbili (hii inafanana na ubao wa chess na nambari za seli). Miundo ya tatu-dimensional na kubwa inatekelezwa kwa kutumia kanuni sawa.

Algorithms ya mstari

Aina hii ya chati mtiririko (mifano imetolewa katika makala haya) ina sifa ya utekelezaji kuanzia mwanzo hadi mwisho kutoka juu hadi chini. Katika kesi hii, mashine hufanya shughuli zilizowekwa kwa hatua kwa hatua. Kila kitendo kinachakatwa na processor. Mbali na mahesabu, ikiwa ni lazima, inaamuru kichwa cha kurekodi / kusoma wapi na nini kinapaswa kuandikwa na kutoka wapi kusoma. Matokeo ya mwisho yameandikwa kwa seli za kumbukumbu, ambayo kila moja ina index yake na huhifadhi mara kwa mara yake.

Algorithms ya matawi

Kwa mazoezi, aina ya mstari ni nadra sana. Mara nyingi inahitajika kupanga mlolongo ambao, kulingana na hali fulani, unapita kando ya tawi moja au lingine. Mchoro wa kuzuia wa algorithm ya aina ya matawi ina kipengele cha "Uamuzi", shukrani ambayo hali fulani inachunguzwa, na zaidi kuna, matawi zaidi ya mlolongo unao.

Chati za mtiririko wa algorithm: mifano

Wacha tuchunguze jinsi algorithm ya matawi inavyofanya kazi. Kama mfano, hebu tuchukue chaguo la kukokotoa: z = y/x. Kutoka kwa hali ni wazi kuwa equation hii ina kizuizi kimoja - huwezi kugawanya kwa sifuri. Kwa hivyo ni muhimu kuwatenga suluhisho hili na kuonya mtumiaji kuhusu kosa ambalo limetokea. Kwanza, mchoro wa kuzuia wa algorithm hutolewa. Itakuwa na vitalu saba. Ishara ya kwanza ya picha ni "Anza", ya pili ni "Ingiza", hapa unapaswa kuweka maadili ya X na Y. Kisha inakuja kizuizi cha "Suluhisho", ambacho hali hiyo imeangaliwa: X = 0. Katika kesi hii, mashine huangalia na kiini cha mara kwa mara; ikiwa thamani iliyoingia inafanana nayo, basi suluhisho la algorithm litafuata tawi la "Ndiyo". Katika kesi hii, udhibiti huhamishiwa kwenye kizuizi cha nne, na mashine hutoa "kosa" kazi inaisha katika ishara ya saba "Mwisho". Ikiwa matokeo ya mtihani ni hasi, basi katika ishara ya tano ya graphic mchakato wa mgawanyiko unafanywa na thamani ya Z imedhamiriwa Katika kizuizi cha sita matokeo yanaonyeshwa kwenye skrini.

Algorithms ya baiskeli

Mara nyingi, wakati wa kutatua shida, inahitajika kurudia utekelezaji wa operesheni fulani kwa utegemezi sawa wa maadili tofauti ya anuwai na kutekeleza kifungu kinachorudiwa kupitia sehemu hiyo hiyo ya mzunguko. Sehemu kama hizo kawaida huitwa mizunguko, na algorithm inaitwa mzunguko. Kutumia njia hii kwa kiasi kikubwa hupunguza mlolongo yenyewe. Ni desturi ya kugawanya katika aina mbili: na haijulikani mapema na idadi inayojulikana mapema ya vifungu vile.

Mfano wa suluhisho la algorithm ya matawi

Hebu fikiria mfano ambao mchoro wa kuzuia wa algorithm na idadi isiyojulikana ya kupita hutolewa. Ili kufanya hivyo, unahitaji kutatua tatizo - onyesha idadi ndogo ya masharti ya mfululizo ambao jumla yake huzidi nambari K. Mchoro huo wa kuzuia wa algorithm una alama nane. Kwanza, ingiza thamani ya nambari K (No. 2). Kisha katika block 3 variable P inapokea thamani "moja", ambayo ina maana kwamba kuhesabu idadi ya asili itaanza nayo. Na jumla ya jumla C mwanzoni inapokea thamani "sifuri". Ifuatayo, udhibiti huhamishiwa kwenye kizuizi cha tano, ambapo amri inatekelezwa: C=C+P. Hiyo ni, maadili ya seli C na P yanafupishwa, na matokeo yake yameandikwa tena katika C. Baada ya kuongeza mwanachama wa kwanza wa mlolongo huu, katika block No. 6 hali imeangaliwa - je, jumla huzidi nambari maalum K. ? Ikiwa hali haijafikiwa, basi udhibiti huhamishiwa kwenye kizuizi cha nne, ambapo mtu huongezwa kwa kutofautiana P na mpito unafanywa tena ili kuzuia No. Utaratibu huu utaendelea hadi hali itakapofikiwa: C>K, yaani, kiasi kilichokusanywa kinazidi thamani maalum. Tofauti P ni kihesabu cha kitanzi. Ifuatayo, kuna mpito wa kuzuia Nambari 7, ambapo matokeo ya kazi yanachapishwa.

Algorithms iliyo na miundo ya kitanzi iliyowekwa

Mara nyingi, wakati wa kutatua tatizo lililopewa algorithmically, haja hutokea ili kuunda mzunguko unao na mzunguko mwingine katika mwili wake. Hii inachukuliwa kuwa ya kawaida. Vipengele vile huitwa miundo ya kitanzi kilichowekwa kiota. Agizo lao linaweza kuwa kubwa kabisa. Imedhamiriwa na njia ambayo suluhisho la tatizo linalohitajika linapatikana. Kwa mfano, wakati wa usindikaji, kama sheria, mchoro wa kuzuia wa algorithm hujengwa bila vitanzi vya nesting. Na bado, katika hali kadhaa, wakati wa kutatua shida kama hizo, inakuwa muhimu kuchagua suluhisho kama hilo. Ikumbukwe kwamba loops zote za kiota, ikiwa ni pamoja na kwanza (nje) moja, lazima iwe na counters na majina tofauti. Nje ya kitanzi chao, zinaweza kutumika kama vigezo vya kawaida.

Algorithms msaidizi

Aina hii ya mfuatano ni sawa na utaratibu mdogo wa lugha. Algorithm ya msaidizi ina jina na vigezo vinavyoitwa rasmi. Jina limetolewa ili kutofautisha kutoka kwa wengine, na vigezo hufanya kama pato na kazi za hisabati za pembejeo. Wao huchaguliwa kwa namna ambayo seti kamili ya kiasi kinachohitajika imechoka. Mara nyingi parameter hiyo rasmi inageuka kuwa pembejeo na pato. Kwa mfano, katika algorithm kama hiyo safu ya usindikaji inaweza kutolewa kama pembejeo. Na katika sehemu inayosababisha inaweza kuwasilishwa kwa fomu iliyobadilishwa kama parameta ya pato. Miongoni mwa algorithms ya aina ya msaidizi, tofauti hufanywa kati ya kazi na taratibu.

Mtengano wa algorithm

Neno hili linamaanisha mtengano wa mpango wa jumla wa algorithm kuwa msaidizi (kazi na taratibu) na moja kuu. Njia hii ni rahisi sana wakati algorithm inatajwa na mchoro wa kuzuia - kwanza, sehemu zinazohusika na kazi kuu zimetengwa nayo. Hatua ngumu zaidi zinarasimishwa kama kazi na taratibu za ngazi ya juu. Wamegawanywa zaidi katika sehemu za msingi za kiwango cha chini. Kanuni "kutoka ngumu hadi rahisi" inafanya kazi hapa. Hii inafanywa hadi algorithm itachanganuliwa kwa kawaida, utatuzi wa mtengano wa mlolongo una hatua tatu kuu: ingizo la data, pato la safu iliyopangwa. Hatua za kwanza na za mwisho, kwa sababu ya asili yao ya msingi, haziitaji mtengano, kwa hivyo hufanywa katika algorithm kuu. Lakini ya pili ni kipande ngumu sana cha mahesabu, kwa hivyo kawaida huonyeshwa kwenye kizuizi tofauti. Hatua za kupanga, kwa upande wake, zimegawanywa katika sehemu mbili: kuanzisha hitaji la kutekeleza utaratibu wa (N-1)-fold kifungu kupitia safu fulani na kupata kipengee kidogo zaidi kwenye kipande kinachozingatiwa cha safu, ikifuatiwa na kupanga upya. na kipengele cha awali cha sehemu hiyo. Kwa kuwa hatua ya mwisho inarudiwa mara kadhaa, inarasimishwa kama utaratibu tofauti.

Nakala hii itaangalia mifano ya chati za mtiririko ambazo unaweza kukutana nazo katika vitabu vya kiada vya sayansi ya kompyuta na fasihi zingine. Chati ya mtiririko ni algorithm ambayo shida yoyote iliyopewa msanidi hutatuliwa. Kwanza unahitaji kujibu swali la nini algorithm ni, jinsi inawakilishwa graphically, na muhimu zaidi, jinsi ya kutatua, kujua vigezo fulani. Inapaswa kuzingatiwa mara moja kuwa kuna aina kadhaa za algorithms.

Algorithm ni nini?

Neno hili lilianzishwa na mwanahisabati Muhammad al-Khwarizmi, aliyeishi katika kipindi cha 763-850. Yeye ndiye mtu aliyeunda sheria za kufanya shughuli za hesabu (na kuna nne tu kati yao). Lakini GOST kutoka 1974, ambayo inasema kwamba:

Algorithm ni maagizo sahihi ambayo hufafanua mchakato wa hesabu. Kwa kuongezea, kuna anuwai kadhaa zilizo na maadili fulani ambayo husababisha mahesabu kwa matokeo unayotaka.

Algorithm hukuruhusu kuashiria wazi kwa mtendaji kutekeleza kazi ngumu ili kutatua kazi hiyo na kupata matokeo. Kutengeneza algoriti ni kuvunja kazi moja kubwa katika mlolongo fulani wa hatua. Aidha, msanidi wa algorithm lazima ajue vipengele vyote na sheria za mkusanyiko wake.

Vipengele vya algorithm

Kwa jumla, sifa nane za algorithm zinaweza kutofautishwa (bila kujali aina yake):

  1. Kuna kazi ya kuingiza data ya awali.
  2. Kuna pato la matokeo fulani baada ya kukamilika kwa algorithm. Ni lazima ikumbukwe kwamba algorithm inahitajika ili kufikia lengo fulani, yaani, kupata matokeo ambayo yanahusiana moja kwa moja na data ya awali.
  3. Algorithm lazima iwe na muundo wa aina tofauti. Inapaswa kuwasilishwa kwa hatua mfululizo. Aidha, kila hatua inayofuata inaweza kuanza tu baada ya kukamilika kwa uliopita.
  4. Algorithm lazima iwe wazi. Kila hatua imefafanuliwa wazi na hairuhusu tafsiri ya kiholela.
  5. Algorithm lazima iwe na mwisho - lazima itekelezwe kwa idadi iliyoainishwa kabisa ya hatua.
  6. Algorithm lazima iwe sahihi - lazima itoe suluhisho sahihi kwa shida.
  7. Ujumla (au tabia ya wingi) - lazima ifanye kazi na data mbalimbali za awali.
  8. Wakati uliotolewa wa kutatua algorithm inapaswa kuwa ndogo. Hii huamua ufanisi wa kutatua tatizo.

Na sasa, tukijua ni chati gani za algorithms zipo, tunaweza kuanza kuzingatia njia za kuziandika. Na hakuna wengi wao.

Kurekodi kwa maneno

Fomu hii kawaida hutumiwa wakati wa kuelezea utaratibu kwa mtu: "Nenda huko, sijui wapi. Lete kitu, sijui nini."

Bila shaka, hii ni fomu ya comic, lakini kiini ni wazi. Kwa mfano, tunaweza kutaja, kwa mfano, maandishi ya kawaida kwenye madirisha ya basi: "Ikitokea ajali, vuta kamba na kusukuma glasi."

Hapa hali imewekwa wazi ambayo vitendo viwili vinapaswa kufanywa kwa mlolongo mkali. Lakini hizi ni algorithms rahisi zaidi; Wakati mwingine fomula na uteuzi maalum hutumiwa, lakini chini ya hali ya lazima - mtendaji lazima aelewe kila kitu.

Inawezekana kubadili utaratibu wa vitendo ikiwa unahitaji kurudi, kwa mfano, kwa operesheni ya awali au kupuuza amri fulani chini ya hali fulani. Katika kesi hii, inashauriwa kuhesabu amri na uhakikishe kuonyesha amri ambayo mpito hutokea: "Baada ya kumaliza udanganyifu wote, rudia hatua 3 hadi 5."

Kurekodi kwa fomu ya picha

Rekodi hii inahusisha vipengele vya chati mtiririko. Vipengele vyote ni sanifu, kila timu ina ingizo maalum la picha. Na amri maalum lazima iandikwe ndani ya kila moja ya vitalu katika lugha ya kawaida au fomula za hisabati. Vitalu vyote lazima viunganishwe na mistari - zinaonyesha utaratibu halisi wa amri zinazotekelezwa. Kwa kweli, aina hii ya algoriti inafaa zaidi kwa matumizi katika msimbo wa programu kuliko ya maneno.

Kurekodi katika lugha za programu

Ikiwa algorithm ni muhimu kwa tatizo kutatuliwa na programu iliyowekwa kwenye PC, basi lazima iandikwe kwa kanuni maalum. Kuna lugha nyingi za programu kwa hili. Na algorithm katika kesi hii inaitwa mpango.

Zuia michoro

Chati mtiririko ni kiwakilishi cha picha cha algoriti. Amri zote na vitendo vinawakilishwa na maumbo ya kijiometri (vitalu). Ndani ya kila takwimu imeandikwa taarifa zote kuhusu vitendo vinavyotakiwa kufanywa. Viunganisho vinaonyeshwa kama mistari ya kawaida na mishale (ikiwa ni lazima).

Kwa muundo wa chati za mtiririko wa algorithms, kuna GOST 19.701-90. Inaelezea utaratibu na sheria za kuunda kwa fomu ya picha, pamoja na njia za msingi za kuzitatua. Makala hii inatoa vipengele vya msingi vya flowcharts ambazo hutumiwa katika kutatua matatizo, kwa mfano, katika sayansi ya kompyuta. Sasa hebu tuangalie sheria za ujenzi.

Sheria za msingi za kuchora chati ya mtiririko

Tunaweza kuangazia huduma zifuatazo ambazo mchoro wowote wa block unapaswa kuwa nao:

  1. Lazima kuwe na vitalu viwili - "Anza" na "Mwisho". Na katika nakala moja.
  2. Mistari ya mawasiliano lazima itolewe kutoka kwa kizuizi cha mwanzo hadi kizuizi cha mwisho.
  3. Vitalu vyote isipokuwa ile ya mwisho inapaswa kuwa na mistari ya mtiririko inayotoka kwao.
  4. Vitalu vyote lazima vihesabiwe: juu hadi chini, kushoto kwenda kulia. Nambari ya serial lazima iwekwe kwenye kona ya juu kushoto, na kufanya mapumziko katika mtindo.
  5. Vitalu vyote lazima viunganishwe kwa kila mmoja kwa mistari. Wao ndio wanapaswa kuamua mlolongo ambao vitendo vinafanywa. Ikiwa mtiririko unasonga kutoka chini kwenda juu au kutoka kulia kwenda kushoto (kwa maneno mengine, kwa mpangilio wa nyuma), basi mishale lazima itolewe.
  6. Mistari imegawanywa kuwa inayotoka na inayoingia. Ikumbukwe kwamba mstari mmoja unatoka kwa block moja, na unaingia kwa mwingine.
  7. Mstari wa mtiririko hutoka tu kutoka kwa kizuizi cha awali kwenye mchoro, kwa kuwa ni wa kwanza kabisa.
  8. Lakini kizuizi cha mwisho kina pembejeo tu. Hii inaonyeshwa wazi katika mifano ya mchoro wa block iliyotolewa katika makala.
  9. Ili kurahisisha kusoma michoro ya block, mistari inayoingia inaonyeshwa juu na mistari inayotoka chini.
  10. Kuacha kuendelea katika mistari ya mtiririko kunakubalika. Lazima ziweke alama na viunganishi maalum.
  11. Ili kurahisisha mtiririko wa chati, inaruhusiwa kujumuisha maelezo yote kwenye maoni.

Vipengele vya picha vya chati za utatuzi wa algorithms vinawasilishwa kwenye jedwali:

Aina ya mstari wa algoriti

Hii ni aina rahisi zaidi, ambayo inajumuisha mlolongo fulani wa vitendo; Kuna amri kadhaa ambazo zinatekelezwa mara moja na tu baada ya ile ya awali kukamilika. Mchoro wa block ya mstari unaonekana kama hii:

Kwa kuongeza, viunganisho vinaweza kutoka juu hadi chini na kutoka kushoto kwenda kulia. Mchoro kama huo wa kuzuia hutumiwa kuandika algorithms ya hesabu kwa kutumia fomula rahisi ambazo hazina vizuizi juu ya maadili ya vijiti vilivyojumuishwa katika fomula za hesabu. Algorithm ya mstari ni sehemu muhimu ya michakato changamano ya hesabu.

Algorithms ya matawi

Michoro ya kuzuia iliyojengwa kwa kutumia algorithms kama hiyo ni ngumu zaidi kuliko ile ya mstari. Lakini kiini haibadilika. Algorithm ya matawi ni mchakato ambao kile kinachofuata inategemea jinsi hali inavyotimizwa na ni suluhisho gani linapatikana. Kila mwelekeo wa hatua ni tawi.

Michoro inaonyesha vitalu vinavyoitwa "Suluhisho". Ina matokeo mawili, na hali ya kimantiki imeandikwa ndani. Harakati zaidi kulingana na mpango wa algorithm inategemea jinsi inafanywa. Algorithms ya matawi inaweza kugawanywa katika vikundi vitatu:

  1. "Bypass" - katika kesi hii, moja ya matawi haina waendeshaji. Kwa maneno mengine, vitendo kadhaa kwenye tawi lingine hupitishwa.
  2. "Tawi" - kila tawi lina seti maalum ya vitendo vya kufanya.
  3. "Chaguo nyingi" ni tawi ambalo kuna matawi kadhaa na kila moja ina seti maalum ya vitendo vya kufanywa. Kwa kuongezea, kuna upekee mmoja - uchaguzi wa mwelekeo moja kwa moja inategemea maadili yaliyopewa ya misemo iliyojumuishwa kwenye algorithm.

Hizi ni algorithms rahisi ambazo zinaweza kutatuliwa kwa urahisi sana. Sasa hebu tuendelee kwenye zile ngumu zaidi.

Algorithm ya mzunguko wa robin

Kila kitu hapa ni wazi sana - mchoro wa kuzuia mzunguko unawakilisha algorithm ambayo mahesabu sawa yanarudiwa mara nyingi. Kwa ufafanuzi, mzunguko ni mlolongo maalum wa vitendo vinavyofanywa mara kwa mara (zaidi ya mara moja). Na kuna aina kadhaa za mzunguko:

  1. Ambayo idadi ya marudio ya vitendo inajulikana (pia huitwa mizunguko na counter).
  2. Ambayo idadi ya marudio haijulikani - na hali ya posta na sharti.

Bila kujali ni aina gani ya kitanzi kinachotumiwa kutatua algorithm, lazima iwe na kutofautiana ambayo matokeo hutokea. Huamua idadi ya marudio ya mzunguko. Sehemu ya kazi (mwili) ya mzunguko ni mlolongo fulani wa vitendo unaofanywa kwa kila hatua. Sasa hebu tuchunguze kwa undani zaidi aina zote za vitanzi ambazo zinaweza kukutana wakati wa kuunda algorithms na kutatua matatizo katika sayansi ya kompyuta.

Loops na counters

Takwimu inaonyesha mchoro rahisi wa kuzuia ambayo kuna kitanzi na counter. Aina hii ya algorithm inaonyesha kwamba idadi ya marudio ya mzunguko fulani inajulikana mapema. Na nambari hii imewekwa. Katika kesi hii, variable ambayo inahesabu idadi ya hatua (kurudia) inaitwa counter. Wakati mwingine katika vitabu vya kiada unaweza kupata ufafanuzi mwingine - parameta ya kitanzi, tofauti ya kudhibiti.

Mchoro wa kuzuia unaonyesha kwa uwazi sana jinsi kitanzi cha kukabiliana kinavyofanya kazi. Kabla ya kuanza hatua ya kwanza, unahitaji kugawa thamani ya awali kwa counter - hii inaweza kuwa nambari yoyote, inategemea algorithm maalum. Katika kesi wakati thamani ya mwisho ni chini ya thamani ya kukabiliana, kikundi fulani cha amri zinazounda mwili wa kitanzi kitaanza kutekelezwa.

Baada ya mwili kutekelezwa, counter inabadilishwa na thamani ya hatua ya kukabiliana, iliyoonyeshwa na h. Ikiwa thamani inayotokana ni chini ya thamani ya mwisho, mzunguko utaendelea. Na itaisha tu wakati thamani ya mwisho ni chini ya counter ya kitanzi. Ni katika kesi hii tu ambapo hatua inayofuata mzunguko itatekelezwa.

Kwa kawaida, nukuu ya chati mtiririko hutumia kizuizi kinachoitwa "Maandalizi". Counter imeandikwa ndani yake, na kisha data zifuatazo zinaonyeshwa: maadili ya awali na ya mwisho, mabadiliko ya hatua. Katika mchoro wa kuzuia haya ni vigezo I n, Ik na h, kwa mtiririko huo. Katika kesi wakati h = 1, saizi ya hatua haijarekodiwa. Katika hali nyingine, hii ni ya lazima. Sheria rahisi lazima ifuatwe - mstari wa mtiririko lazima uingie kutoka juu. Na mstari wa mtiririko unaotoka chini (au kutoka kulia, kulingana na algorithm maalum) inapaswa kuonyesha mpito kwa taarifa inayofuata.

Sasa umejifunza kikamilifu maelezo ya mchoro wa block iliyoonyeshwa kwenye takwimu. Unaweza kuendelea na masomo zaidi. Wakati wa kutumia kitanzi na counter, masharti fulani lazima yakamilishwe:

  1. Mwili hauruhusiwi kubadilisha (kulazimisha) thamani ya kaunta.
  2. Ni marufuku kuhamisha udhibiti kutoka nje hadi kwa opereta wa mwili. Kwa maneno mengine, unaweza tu kuingiza mzunguko kutoka mwanzo wake.

Vitanzi vilivyo na masharti

Aina hii ya mzunguko hutumiwa katika matukio ambapo idadi ya marudio haijulikani mapema. Kitanzi cha masharti ni aina ya algorithm ambayo, mara moja kabla ya utekelezaji wa mwili kuanza, hali inakaguliwa ambayo mpito kwa hatua inayofuata inaruhusiwa. Zingatia jinsi vipengele vya chati mtiririko vinavyoonyeshwa.

Katika kesi wakati hali inakabiliwa (kauli ni kweli), mpito hadi mwanzo wa mwili wa kitanzi hutokea. Inabadilisha moja kwa moja thamani ya angalau kigezo kimoja kinachoathiri thamani ya hali iliyoelezwa. Ikiwa hutazingatia sheria hii, utaishia na kitanzi. Ikiwa, baada ya hundi inayofuata ya hali ya utekelezaji wa mwili wa kitanzi, inageuka kuwa ni uongo, basi kuondoka hutokea.

Katika michoro ya block ya algorithms, inaruhusiwa kuangalia sio ukweli, lakini uwongo wa hali ya awali. Katika kesi hii, kitanzi kitatoka tu ikiwa thamani ya hali itageuka kuwa kweli. Chaguzi zote mbili ni sahihi; matumizi yao inategemea ni ipi ambayo ni rahisi kutumia kutatua shida fulani. Aina hii ya kitanzi ina kipengele kimoja - mwili hauwezi kutekelezwa ikiwa hali ni ya uongo au kweli (kulingana na chaguo ambalo linatumika kutatua algorithm).

Ifuatayo ni mtiririko wa chati inayoelezea hatua hizi zote:

Je, kitanzi kilicho na hali ya posta ni nini?

Ikiwa unatazama kwa karibu, aina hii ya mzunguko ni sawa na uliopita. Sasa tutajaribu kuunda mchoro wa kizuizi unaoelezea mzunguko huu sisi wenyewe. Upekee ni kwamba idadi ya marudio haijulikani mapema. Na hali hiyo imewekwa baada ya kuondoka kwenye mwili. Kutokana na hili tunaweza kuona kwamba mwili, bila kujali uamuzi, utatekelezwa angalau mara moja. Kwa uwazi, angalia mchoro wa block inayoelezea utekelezaji wa hali na waendeshaji:

Hakuna chochote ngumu katika kuunda algorithms na vitanzi, unahitaji tu kuzielewa mara moja. Sasa hebu tuendelee kwenye miundo ngumu zaidi.

Vitanzi Ngumu

Ngumu ni zile miundo ambayo ina loops moja au zaidi rahisi ndani yao. Wakati mwingine huitwa nested. Aidha, ujenzi huo unaofunika mizunguko mingine huitwa "nje". Na zile ambazo zimejumuishwa katika muundo wa zile za nje ni za ndani. Wakati kila hatua ya kitanzi cha nje inatekelezwa, kitanzi cha ndani kinasonga kabisa, kama inavyoonyeshwa kwenye takwimu:

Hiyo yote, umepitia sifa kuu za kuunda chati za mtiririko kwa ajili ya kutatua algorithms, unajua kanuni na sheria. Sasa tunaweza kuangalia mifano maalum ya mtiririko wa chati kutoka kwa maisha. Kwa mfano, katika saikolojia miundo kama hii hutumiwa kumsaidia mtu kutatua swali:

Au mfano kutoka kwa biolojia kutatua shida:

Kutatua matatizo na chati za mtiririko

Sasa hebu tuangalie mifano ya matatizo na flowcharts ambayo yanaweza kupatikana katika vitabu vya sayansi ya kompyuta. Kwa mfano, mchoro wa kuzuia hupewa kulingana na ambayo algorithm fulani hutatuliwa:

Katika kesi hii, mtumiaji huingia kwa uhuru maadili ya vigezo. Wacha tuseme x=16 na y=2. Mchakato wa utekelezaji ni kama ifuatavyo:

  1. Thamani za x na y zimeingizwa.
  2. Operesheni ya kubadilisha inafanywa: x=√16=4.
  3. Masharti yametimizwa: y=y 2 =4.
  4. Hesabu imefanywa: x=(x+1)=(4+1)=5.
  5. Ifuatayo, kigezo kifuatacho kinahesabiwa: y=(y+x)=(5+4)=9.
  6. Suluhisho ni pato: y=9.

Mfano huu wa chati ya mtiririko wa sayansi ya kompyuta unaonyesha wazi jinsi algorithm inavyotatuliwa. Inahitajika kuzingatia ukweli kwamba maadili ya x na y yameainishwa katika hatua ya awali na inaweza kuwa chochote.

Algorithm na sifa zake

Kutatua matatizo kwenye kompyuta ni msingi wa dhana ya algorithm. Algoriti ni maagizo sahihi ambayo hufafanua mchakato wa kukokotoa unaoongoza kutoka kwa kutofautiana kwa data ya awali hadi matokeo ya awali.

Algorithm inamaanisha maelezo kamili ya mchakato fulani, maagizo ya utekelezaji wake. Ukuzaji wa algorithm ni mchakato mgumu na unaotumia wakati. Algorithmization ni mbinu ya kutengeneza (kutunga) algorithm ya kutatua matatizo kwenye kompyuta.

Njia za kuona za kuelezea (kuwakilisha) algorithm

Ili kurekodi algorithm ya kutatua shida, njia zifuatazo za kuona za kuwawakilisha hutumiwa:

Maelezo ya maneno na fomula

Mchoro wa kuzuia (chati ya alama za picha)

Lugha za algoriti

Mizunguko ya waendeshaji

Msimbo wa uongo

Kuna mbinu ya jumla ya kuandika algorithm:

Kila algorithm lazima iwe na jina linaloonyesha maana yake.

Ni muhimu kuonyesha mwanzo na mwisho wa algorithm.

Eleza data ya pembejeo na pato.

Taja amri zinazokuwezesha kufanya vitendo maalum kwenye data iliyochaguliwa

Mtazamo wa jumla wa algorithm

Algorithm:

Jina la algorithm

Maelezo ya data

Njia ya maandishi-ya maneno ya kuandika algorithm ina sifa ya ukweli kwamba maelezo hufanywa kwa kutumia maneno na fomula. Maudhui ya mlolongo wa hatua za utekelezaji wa algorithm imeandikwa katika lugha ya kitaalamu ya asili ya eneo la somo kwa fomu ya bure.

Njia ya kielelezo ya kuelezea algorithm (mchoro wa kuzuia) imekuwa inayotumiwa sana. Kwa maelezo ya mchoro ya algorithms, michoro za algorithm au alama za kuzuia (vitalu) hutumiwa, ambazo zimeunganishwa na mistari ya mawasiliano.

Kila hatua ya mchakato wa computational inawakilishwa na takwimu za kijiometri (vitalu). Zimegawanywa katika hesabu au hesabu (mstatili), kimantiki (almasi) na vizuizi vya pato la data (parallelogram).

Utaratibu wa hatua unaonyeshwa na mishale inayounganisha vitalu. Maumbo ya kijiometri yanawekwa kutoka juu hadi chini na kutoka kushoto kwenda kulia. Vitalu vinahesabiwa kwa utaratibu ambao wamewekwa kwenye mchoro.

Lugha za algorithmic ni zana maalum iliyoundwa kwa kuandika algorithms katika fomu ya uchambuzi. Lugha za algorithmic ziko karibu na misemo ya hisabati na lugha asilia. Kila lugha ya algoriti ina msamiati wake. Algorithm iliyoandikwa kwa lugha ya algoriti hutekelezwa kulingana na sheria kali za lugha hiyo.

Mipango ya waendeshaji wa algorithms. Kiini cha njia hii ya kuelezea algorithm ni kwamba kila operator huteuliwa na barua (kwa mfano, A ni operator wa hesabu, P ni operator wa mantiki, nk).

Waendeshaji wameandikwa kutoka kushoto kwenda kulia katika mlolongo wa utekelezaji wao, na kila operator ana index inayoonyesha nambari ya mlolongo wa operator. Algorithm imeandikwa katika mstari mmoja kama mlolongo wa waendeshaji.

Pseudocode ni mfumo wa amri kwa mashine ya kufikirika. Hii ni njia ya kuandika algoriti kwa kutumia waendeshaji karibu na lugha za algoriti.

Kanuni za kuendeleza algorithms na programu

Aina za Michakato ya Algorithmic

Kulingana na muundo wa utekelezaji, algorithms na mipango imegawanywa katika aina tatu:

Linear

Kuweka matawi

Mzunguko

Algorithm ya mstari (muundo wa mstari) ni algorithm ambayo vitendo vyote hufanywa kwa mlolongo mmoja baada ya mwingine na mara moja tu. Mchoro ni mlolongo wa vitalu vinavyopangwa kutoka juu hadi chini kwa utaratibu ambao wanatekelezwa. Data ya msingi na ya kati haiathiri mwelekeo wa mchakato wa kuhesabu.

Algorithms ya muundo wa matawi

Katika mazoezi, mara nyingi kuna matatizo ambayo, kulingana na hali ya awali au matokeo ya kati, ni muhimu kufanya mahesabu kwa kutumia formula moja au nyingine.

Shida kama hizo zinaweza kuelezewa kwa kutumia algorithms ya muundo wa matawi. Katika algorithms vile, uchaguzi wa mwelekeo wa kuendelea na hesabu unafanywa kulingana na matokeo ya kuangalia hali fulani. Michakato ya matawi inaelezewa na taarifa ya IF (hali).

Michakato ya kompyuta ya baiskeli

Kutatua matatizo mengi ni sifa ya kurudia mara kwa mara ya sehemu ya mtu binafsi ya mahesabu. Ili kutatua matatizo hayo, algorithms ya muundo wa mzunguko (algorithms ya mzunguko) hutumiwa. Mzunguko ni mlolongo wa amri unaorudiwa hadi hali maalum imetimizwa. Maelezo ya mzunguko wa michakato ya kurudia mara kwa mara hupunguza kwa kiasi kikubwa ugumu wa programu za kuandika.

Kuna mifumo miwili ya michakato ya mzunguko wa kompyuta.


Kipengele cha mpango wa kwanza ni kwamba hali ya kuondoka kwa kitanzi inakaguliwa kabla ya mwili wa kitanzi kutekelezwa. Ikiwa hali ya kuondoka kwa kitanzi imeridhika, basi mwili wa kitanzi haujatekelezwa kamwe.

Kipengele cha mpango wa pili ni kwamba kitanzi kinatekelezwa angalau mara moja, kwa kuwa hundi ya kwanza ya hali ya kuondoka kwa kitanzi inafanywa baada ya mwili wa kitanzi kutekelezwa.

Kuna vitanzi vilivyo na idadi inayojulikana ya marudio na vitanzi vya kurudia. Katika kitanzi cha kurudia, kutoka kwa mwili wa kitanzi, kama sheria, hufanyika wakati usahihi maalum wa hesabu unapatikana.

Lugha za programu

Lugha za programu ni lugha bandia za kuandika algoriti za utekelezaji kwenye kompyuta. Kupanga (coding) - kuandaa programu kulingana na algorithm fulani.

Uainishaji wa lugha za programu. Kwa ujumla, lugha za programu zimegawanywa katika vikundi viwili: operator na kazi. Zinazofanya kazi ni pamoja na LISP, PROLOG, nk.

Lugha za waendeshaji zimegawanywa katika utaratibu na zisizo za kitaratibu (Smalltalk, QBE). Zile za kiutaratibu zimegawanywa kuwa zinazoelekezwa kwa mashine na zinazotegemea mashine.

Lugha zinazoelekezwa na mashine ni pamoja na: lugha za mashine, misimbo otomatiki, lugha za ishara za usimbaji, viunganishi.

Lugha zinazotegemea mashine ni pamoja na:

Iliyoelekezwa kwa utaratibu (Pascal, Fortran, nk.)

Inayoelekezwa kwa shida (LISP, n.k.)

Inayolenga kitu (C++, Visual Basic, Java, n.k.)


Zana na sheria za kuunda chati za mtiririko

Chati mtiririko ni aina ya kuwakilisha algoriti kwa kutumia alama za picha. Alama za picha, saizi zao, pamoja na sheria za ujenzi wa michoro ya block imedhamiriwa na viwango vya serikali. Wacha tuangalie alama za picha zinazotumiwa mara kwa mara (orodha kamili inajumuisha alama 42).

Mchakato. Kufanya operesheni au kikundi cha shughuli zinazobadilisha thamani, aina ya uwasilishaji au mpangilio wa data.

Ndani ya ishara au kwa namna ya maoni katika lugha ya asili au kwa namna ya fomula, vitendo vinavyofanywa wakati wa kufanya operesheni au kikundi cha shughuli zimeandikwa.

Suluhisho. Kuchagua mwelekeo wa utekelezaji wa algorithm au mpango kulingana na hali fulani za kutofautiana.

Alama hutumiwa kuonyesha miundo iliyounganishwa:

Uma UMEJAA

UMA USIKAMILIKA

CYCLE-BYE

Marekebisho. Kufanya shughuli zinazobadilisha amri au kikundi cha amri zinazobadilisha programu.

Alama inatumika kuonyesha muundo uliounganishwa wa LOOP WITH PARAMETER. Ndani ya ishara, parameter ya mzunguko imeandikwa inayoonyesha maadili ya awali na ya mwisho, pamoja na hatua ya mabadiliko ya mzunguko ikiwa si sawa na moja.

Mchakato uliofafanuliwa awali. Matumizi ya algorithms au programu zilizoundwa hapo awali na tofauti (taratibu, kazi, moduli za programu).

Uingizaji wa mwongozo. Ingizo la data na opereta katika mchakato wa kuchakata kwa kutumia kifaa kilichounganishwa moja kwa moja na kompyuta (kwa mfano, kibodi).


Onyesho. Ingizo - matokeo ya data katika tukio ambalo kifaa kilichounganishwa moja kwa moja na kichakataji kitatoa tena data na kumruhusu opereta kufanya mabadiliko wakati wa kuchakata.

Hati. Pembejeo - pato la data, carrier ambayo ni karatasi.

Mstari wa mtiririko. Inabainisha mlolongo wa uhusiano kati ya alama.

Wacha tuorodheshe sheria kadhaa za kuonyesha mistari ya mtiririko:

1) mistari ya mtiririko lazima iwe sawa na mistari ya sura ya nje ya mchoro wa kuzuia (mipaka ya karatasi ambayo mchoro wa kuzuia unaonyeshwa);

2) mwelekeo wa mstari wa mtiririko kutoka juu hadi chini na kutoka kushoto kwenda kulia unachukuliwa kama kuu na hauonyeshwa kwa mishale katika hali nyingine, mwelekeo wa mstari wa mtiririko unaonyeshwa na mishale;

3) mabadiliko katika mwelekeo wa mstari wa mtiririko hufanywa kwa pembe ya digrii 90.

Kiunganishi. Inaonyesha uhusiano kati ya mistari ya mtiririko iliyovunjika inayounganisha alama. Ikiwa mtiririko wa mtiririko una sehemu kadhaa ziko kwenye ukurasa mmoja, basi mstari wa mtiririko wa sehemu moja huisha na ishara CONNECTOR, na mstari wa mtiririko wa kuendelea kwa mchoro wa mtiririko huanza na ishara sawa. Ndani ya alama za CONNECTOR, nambari za serial sawa zimewekwa, zinazofanana na mstari wa mtiririko uliovunjika.

Kiunganishi cha kurasa. Dalili ya uunganisho kati ya sehemu zilizokatwa za algorithms na michoro za programu ziko kwenye laha tofauti.

Alama hii hutumikia kusudi sawa na kiunganishi, lakini kwa kuweka sehemu za chati ya mtiririko kwenye kurasa tofauti.

Anza - kuacha. Anza, mwisho, usumbufu wa usindikaji wa data au utekelezaji wa programu.

Maoni. Uhusiano kati ya vipengele vya mchoro na maelezo.

Hukuruhusu kujumuisha maelezo, fomula na maelezo mengine katika mtiririko wa chati.


Ukubwa wa alama lazima kukidhi uwiano b = 1.5a (a na b zinaonyeshwa kwenye Mchoro 1). Kielelezo sawa kinaonyesha mfano wa kutumia alama ya MAONI.

Mchele. 1. Kipande cha mchoro wa kuzuia

Kila ishara kwenye mchoro wa block imepewa nambari ya serial. Kwa mfano katika Mtini. Alama 1 PROCESS imepewa nambari ya serial 4.

Chati mtiririko ni ile sehemu ya hati ya programu ambayo karibu kila mara inapatikana kwa wingi. Wakati huo huo, programu nyingi hazihitaji mtiririko wa chati hata kidogo, na chache sana zinahitaji zaidi ya karatasi moja.

Chati mtiririko zinaonyesha muundo wa matawi ya programu katika kipengele kimoja tu. Lakini hata muundo huu unaonekana wazi vya kutosha ikiwa chati nzima ya mtiririko inafaa kwenye ukurasa mmoja, na ni ngumu sana kupata wazo nzuri ikiwa chati ya mtiririko imeenea kwenye karatasi kadhaa zilizounganishwa pamoja na mishale iliyohesabiwa.

Chati ya mtiririko wa ukurasa mmoja kwa programu kubwa inakuwa muhtasari wa programu, orodha ya hatua zake kuu au vizuizi, na kwa hivyo ni rahisi sana. Katika Mtini. Mchoro 15.1 unaonyesha jedwali kama hilo la utiishaji wa kawaida.

Bila shaka, grafu kama hiyo haifuati wala haihitaji viwango vya mtiririko wa chati. Sheria hizi zote kuhusu kuonekana kwa vipengele, mishale, utaratibu wa nambari, nk ni muhimu tu ili mtiririko wa kina uweze kueleweka.

Kielelezo 15.1. Mfano wa muundo wa programu

Chati za kina, hata hivyo, zimepitwa na wakati; wanaingia tu kwenye njia, na bora zaidi wanafaa kwa kufundisha Kompyuta ambao bado hawajui jinsi ya kufikiria algorithmically. Wakati mmoja, miraba ndogo kwenye michoro ya block iliyopendekezwa na Goldstein na Neumann, pamoja na yaliyomo, ilifanya kama lugha za kiwango cha juu, ikichanganya waendeshaji wa lugha ya mashine isiyoeleweka kabisa katika vikundi ambavyo vilikuwa na maana fulani. Kama Iverson alivyodokeza muda mrefu uliopita, lugha ya utaratibu wa kiwango cha juu tayari hufanya aina hii ya uwekaji kambi, ili kila kisanduku kilingane na taarifa (Mchoro 15.2). Kisha mraba wenyewe hugeuka kuwa zoezi la kuchora random na lisilo la lazima, na linaweza kuachwa. Lakini sasa hakuna kitu kilichobaki isipokuwa mishale. Mishale inayounganisha opereta na anayeifuata haihitajiki, wacha tuifute. Ni waendeshaji wa mpito pekee waliosalia. Lakini ukifuata mazoezi mazuri na kutumia miundo ya kuzuia ili kupunguza idadi ya waendeshaji wa kuruka, basi kutakuwa na mishale machache sana iliyobaki, na hufanya iwe rahisi sana kuelewa. Mishale hii inaweza kuhamishwa moja kwa moja kwenye uchapishaji wa programu na kuondokana kabisa na mtiririko wa mtiririko.

Kwa kweli, chati za mtiririko zinatukuzwa zaidi kuliko zinavyotumiwa katika mazoezi. Sijawahi kuona mtayarishaji mwenye ujuzi akichora chati za mtiririko kabla ya kuandika programu. Wakati viwango vya shirika vinahitaji chati za mtiririko, karibu kila mara huchorwa. Mashirika mengi ya programu kwa kiburi hutumia programu maalum kujenga "chombo cha lazima cha programu" kutoka kwa programu ya mashine iliyopangwa tayari. Sioni uzoefu huu wa ulimwengu wote kuwa udhihirisho wa bahati mbaya wa stomp mbaya, utambuzi ambao unaambatana na kicheko cha neva. Badala yake, ni ushuhuda wa akili ya kawaida, somo linalotoa mwanga juu ya faida za kweli za chati za mtiririko.


Sehemu ya ukalimani katika lugha ya chati mtiririko ndio kizuizi. Uendeshaji wa mkalimani mzima unadhibitiwa na kipengele cha kukokotoa ambacho husogeza lengo la ukalimani kando ya mchoro wa kuzuia, inatambua aina ya kizuizi ambacho lengo linalenga, na kuendesha kazi ya usindikaji (ufafanuzi) ya kuzuia sambamba. Baada ya kazi ya usindikaji wa kuzuia imekamilisha utekelezaji wake, huhamisha udhibiti kwa kazi ya udhibiti wa mkalimani. ...

Kwa sambamba, aina mbalimbali za uwasilishaji wa algorithm, ambayo itawawezesha mbinu rasmi zaidi ya algorithm maalum. 2. Sifa za kimbinu za kusoma sehemu ya “Algorithm na Watekelezaji” 2.1 Yaliyomo katika sehemu hiyo katika kiwango Kwanza kabisa, ni lazima isemekana kwamba kiwango cha jumla cha elimu katika sayansi ya kompyuta ni hati ya kawaida inayofafanua mahitaji: · kwa mahali. bila shaka ya msingi...

Katika pseudocode inaitwa mpango wa muundo. Pseudocode ni rahisi kwa sababu huruhusu mpangaji programu kuzingatia kuunda algoriti bila kufikiria juu ya sifa za kisintaksia za lugha fulani ya programu. Maelezo ya algorithms kwa kutumia michoro ya block. Ili kukuza muundo wa programu, ni rahisi zaidi kutumia nukuu ya algorithm kwa namna ya mchoro wa kuzuia (katika ...




Tumia njia hizi kutumia Turbo Pascal na mizunguko tofauti. Kazi: kuendeleza algorithm, kuchora mchoro wa kuzuia na kuandika mpango wa kuhesabu thamani ya kazi, iliyopangwa katika mfululizo wa nguvu. Hesabu ya jumla ya washiriki wa safu hufanywa kwa idadi, hadi dhamana kamili ya mshiriki wa safu haipunguzi (kwa mfano,). Katika kesi hii, ni washiriki wangapi wa safu walijumuishwa katika ...

8.2. Chati za mtiririko wa algorithm

Wakati wa kuelezea algoriti, chati za mtiririko (Basic Flowchart) zimetumika kwa mafanikio kwa muda mrefu. Ujenzi wa flowcharts ya algorithms umewekwa na GOST 19.701-90 (ISO 5807-85) "Mfumo wa umoja wa nyaraka za programu. Michoro ya algorithm ya programu, data na mifumo. Mikataba na sheria za utekelezaji." Kiwango hiki cha hali kinategemea kiwango cha kimataifa "ISO 5807-85. Usindikaji wa habari - Alama za nyaraka na mikataba ya data, chati za mtiririko wa programu na mfumo, chati za mtandao wa programu na chati za rasilimali za mfumo".

Kulingana na GOST 19.701-90 chini mpango inarejelea uwakilishi wa picha wa ufafanuzi, uchanganuzi au mbinu ya kutatua tatizo. Michoro inaweza kutumika kuonyesha vipengele tuli na vinavyobadilika vya mfumo. Alama zilizotolewa katika kiwango cha serikali zinaweza kutumika katika zifuatazo aina za mizunguko :

Schemas za data - kuamua mlolongo wa usindikaji wa data na vyombo vyao vya habari;

Michoro ya programu - onyesha mlolongo wa shughuli katika programu (kwa kweli, hizi ni chati za mtiririko wa algorithms kwa maana ya jadi);

Michoro ya uendeshaji wa mfumo - onyesha usimamizi wa shughuli na mtiririko wa data katika mfumo;

Michoro ya mwingiliano wa programu - onyesha njia ya uanzishaji wa programu (moduli) na mwingiliano wao na data inayolingana;

Michoro ya rasilimali ya mfumo - onyesha usanidi wa vitalu vya data na vitalu vya usindikaji.

Kama inavyoonekana kutoka kwa aina zilizo hapo juu za michoro, zinaweza kutumika sio tu kwa kuiga kipengele cha tabia, lakini pia kwa shida za kazi, habari na muundo wa sehemu.

Wakati wa kujenga mfano wa tabia ya mfumo, kanuni za msingi za mbinu ya kimuundo hutumiwa - kanuni za utengano na utaratibu wa hierarchical. Mfano wa tabia ni seti ya michoro zilizounganishwa (michoro) yenye viwango tofauti vya maelezo, na kwa kila ngazi mpya ya maelezo mfumo hupata muhtasari kamili zaidi na kamili.

Michoro inaweza kujumuisha yafuatayo: vipengele vya nukuu za picha :

Alama za data - zinaonyesha uwepo wa data, aina ya vyombo vya habari, au njia ya pembejeo / pato la data;

Alama za mchakato - zinaonyesha shughuli zinazopaswa kufanywa kwenye data;

Alama za mstari - zinaonyesha mtiririko wa data kati ya michakato na / au vyombo vya habari vya kuhifadhi, pamoja na mtiririko wa udhibiti kati ya taratibu;

Wahusika maalum - hutumika kufanya michoro rahisi kuandika na kusoma.

Mbali na kugawanya kulingana na maudhui ya semantic, kila aina ya alama (isipokuwa maalum) imegawanywa katika alama za msingi na maalum. Alama ya msingi kutumika wakati aina halisi ya mchakato au njia ya kuhifadhi haijulikani au hakuna haja ya kuelezea njia halisi ya kuhifadhi (mchakato). Ishara maalum hutumika wakati aina kamili ya mchakato au njia ya kuhifadhi inajulikana na hii inahitaji kuonyeshwa kwenye mchoro. Jedwali lifuatalo linaonyesha vipengele vya nukuu ya chati mtiririko wa picha.

Jedwali 8.1. Alama kwenye michoro ya block

Hapana. Alama Jina Vidokezo
1. ALAMA ZA DATA
Msingi
1.1 Data Data ambayo mtoa huduma wake hajafafanuliwa
1.2 Kifaa cha kuhifadhi (kumbukumbu) Data iliyohifadhiwa katika fomu inayofaa kwa usindikaji wa moja kwa moja, kati haijafafanuliwa
Maalum
1.3 RAM Data iliyohifadhiwa kwenye RAM (kumbukumbu ya ufikiaji bila mpangilio)
1.4 Kumbukumbu ya serial Data iliyohifadhiwa kwenye mkanda wa sumaku (mkanda wa sumaku, kaseti ya tepi)
1.5 Kumbukumbu ya ufikiaji wa moja kwa moja Data iliyohifadhiwa kwenye diski ngumu au floppy, CD, DVD, ZIP, n.k.
1.6 Hati Data ambayo haijawasilishwa kwa njia ya kompyuta (kwenye karatasi, kwenye filamu, n.k.)
1.7 Uingizaji wa mwongozo Data iliyoingizwa kwa mikono kwa kutumia kibodi, kipanya, kalamu, n.k.
1.8 Ramani Data juu ya kadi zilizopigwa, kadi za sumaku, kadi za lebo zinazoweza kusomeka, n.k.
1.9 Mkanda wa karatasi Takwimu kwenye mkanda wa karatasi
1.10 Onyesho Data iliyoonyeshwa kwenye skrini ya kufuatilia, viashiria vya ishara, nk.
2. ALAMA ZA MCHAKATO
Msingi
2.1 Mchakato Uendeshaji wa usindikaji wa data ya msingi (atomiki) (kwa mfano, n:=n+1)
Maalum
2.2 Mchakato ulioainishwa (utaratibu) Mchakato unaojumuisha shughuli zilizoelezewa mahali pengine (kwenye mchoro mwingine)
2.3 Uendeshaji wa mwongozo Uendeshaji wa mwongozo
2.4 Maandalizi Shughuli za maandalizi zilizofanywa ili kurekebisha shughuli zinazofuata (kitanzi kilicho na parameta)
2.5 Suluhisho Operesheni iliyo na ingizo moja na matokeo kadhaa mbadala, ambayo moja huwashwa baada ya kujaribu hali iliyoandikwa ndani ya ishara (Kama-Basi-Vinginevyo au Taarifa za Kesi)
2.6 Shughuli sambamba Utekelezaji sambamba wa shughuli mbili au zaidi
2.7 Mipaka ya mzunguko Mwanzo na mwisho wa mzunguko. Vipengele vya kitanzi (uanzishaji, ongezeko, hali) hurekodiwa mwanzoni au mwisho, kulingana na mahali palipoangaliwa (mizunguko iliyo na hali ya awali au ya baada)
3. ALAMA ZA MISTARI
Msingi
3.1 Mstari Data au mtiririko wa udhibiti
Maalum
3.2 Kiungo Usambazaji wa data kupitia njia ya mawasiliano
3.3 Mstari wa nukta Uunganisho mbadala kati ya alama mbili au zaidi au kwa kuelezea sehemu ya maoni ya mchoro
4. ALAMA MAALUM
4.1 GOST Kiunganishi Inatumika kuvunja mistari na kuiendeleza mahali pengine.
Kawaida hutumika kuonyesha sehemu zilizounganishwa za mchoro kwenye laha tofauti. Nambari ya uunganisho imeandikwa ndani ya kontakt
ISO
4.2 Terminator Toka kwa mazingira ya nje au ingizo kutoka kwa mazingira ya nje (mwanzo na mwisho wa mchakato wa usindikaji wa data [katika kesi hii, "mwanzo" au "mwisho" imeandikwa ndani], chanzo au marudio ya data, mwanzo na mwisho wa data. mchakato uliowekwa tayari)
4.3 Mtumaji wa mpokeaji Kitendaji sawa na ishara ya "Terminator".
4.4