Pagkukumpuni Disenyo Muwebles

Ano ang konsepto ng isang algorithm? Algorithm, katangian ng mga algorithm, mga pamamaraan ng paglalarawan ng mga algorithm. Mga serbisyo para sa pagbuo ng mga flowchart

Sa computer science, tinatawag na action plan algorithm.
Ang algorithm ay binubuo ng magkakahiwalay na mga hakbang - mga koponan. Wala sa kanila ang maaaring laktawan, kadalasan ay walang mga koponan ang maaaring palitan.
Tagapagpatupad- isang tao, hayop o makina na may kakayahang umunawa at magsagawa ng ilang partikular na utos.
Kapaligiran ng Artista– mga bagay na nakapaligid sa gumaganap at kung saan siya nagtatrabaho.
Listahan ng mga Executor Command (SKI)– isang hanay ng mga utos na naiintindihan ng tagaganap. Ang gumaganap ay maaari lamang isagawa ang mga utos na kasama sa kanyang SKI.

Upang malutas ang karamihan sa mga problema, hindi sapat na magbigay ng isang utos sa tagapalabas; kailangan mong lumikha ng isang algorithm para sa kanya - isang plano ng aksyon na binubuo ng mga utos na naiintindihan niya (kasama sa kanyang SKI).
Algorithm- isang tiyak na tinukoy na plano ng aksyon para sa tagapalabas, na naglalayong lutasin ang isang problema. Ang algorithm ay maaari lamang isama ang mga utos na nasa SKI.

Ano ang mga algorithm?

Linear algorithm
Sa isang linear algorithm, ang mga utos ay isinasagawa nang sunud-sunod, isa-isa. Ang isang halimbawa ng isang linear algorithm ay ang tea brewing algorithm.

Algoritmo ng sumasanga

Sa isang branching algorithm, ang pagkakasunud-sunod ng mga command ay maaaring iba depende sa kapaligiran. Ang isang halimbawa ng isang branching algorithm ay ang street crossing algorithm.

Round robin algorithm
Sa isang cyclic algorithm, ang ilang mga aksyon ay paulit-ulit nang maraming beses (sa computer science sinasabi nila na ang isang loop ay naisakatuparan). Mayroong dalawang uri ng cyclic algorithm. Sa isa sa kanila alam natin nang maaga kung gaano karaming beses na kailangan nating gawin ang mga pagkilos na ito, sa isa pa ay dapat tayong huminto lamang kapag natapos natin ang gawain, iyon ay, ang ating mga aksyon ay huminto kapag natugunan ang ilang kundisyon.
Ang isang halimbawa ng isang cycle ng unang uri ay ang aming buhay sa mga karaniwang araw (mula Lunes hanggang Sabado) - nagsasagawa kami ng halos parehong mga aksyon nang 6 na beses.
Ang isang halimbawa ng isang cycle ng pangalawang uri ay ang algorithm para sa paglalagari ng isang log: hindi natin masasabi nang maaga kung gaano karaming beses kailangan nating ilipat ang lagari palayo sa atin at patungo sa ating sarili - depende ito sa density ng puno, ang kalidad ng ang lagari at ang aming mga pagsisikap. Gayunpaman, alam naming sigurado na kailangan naming tapusin ang trabaho kapag ang susunod na sawn log ay bumagsak sa lupa.

Mga paraan upang magsulat ng mga algorithm

Mayroong tatlong pinakakaraniwang paraan ng pagsulat ng mga algorithm sa pagsasanay:

  • pasalita(pagre-record sa natural na wika);
  • graphic(pag-record gamit ang mga graphic na simbolo);
  • programa(mga teksto sa mga programming language).

Berbal na paraan ng pagsulat ng mga algorithm

Verbal na pamamaraan - isang paraan upang magsulat ng isang algorithm sa natural na wika. Ang pamamaraang ito ay napaka-maginhawa kung kailangan mong humigit-kumulang na ilarawan ang kakanyahan ng algorithm. Gayunpaman, sa isang pandiwang paglalarawan ay hindi laging posible na malinaw at tumpak na ipahayag ang lohika ng mga aksyon.

Bilang isang halimbawa ng isang pandiwang paraan ng pagsulat ng isang algorithm, isaalang-alang ang isang algorithm para sa paghahanap ng lugar ng isang parihaba

kung saan ang S ay ang lugar ng parihaba; a, b - ang haba ng mga gilid nito.

Malinaw, ang a, b ay dapat na tinukoy nang maaga, kung hindi, ang problema ay hindi malulutas.

Ang berbal na paraan ng pagsulat ng algorithm ay ganito:

  • Ang simula ng algorithm.
  • Itakda ang numerical value ng side a.
  • Itakda ang numerical value ng side b.
  • Kalkulahin ang lugar S ng parihaba gamit ang formula S=a*b.
  • I-output ang resulta ng mga kalkulasyon.
  • Pagtatapos ng algorithm.

Graphical na paraan upang ilarawan ang mga algorithm

Para sa isang mas visual na representasyon ng algorithm, isang graphical na paraan ang ginagamit. Mayroong ilang mga paraan upang ilarawan ang mga algorithm nang graphic. Ang pinakamalawak na ginagamit na graphical na paglalarawan ng mga algorithm sa pagsasanay ay ang paggamit ng mga flowchart. Ang walang alinlangan na bentahe ng mga block diagram ay ang kalinawan at pagiging simple ng pagsulat ng algorithm.

Ang bawat aksyon ng algorithm ay tumutugma sa isang geometric na pigura (simbolo ng bloke). Ang isang listahan ng mga pinakakaraniwang ginagamit na simbolo ay ibinibigay sa talahanayan sa ibaba.

Dahil sa linear algorithm ang mga command ay isinasagawa nang sunud-sunod, ang block diagram ay magiging ganito:

Dahil sa isang branching algorithm ang pagkakasunud-sunod ng mga command ay maaaring mag-iba depende sa kapaligiran, ang flowchart ay kukuha ng form:

Sa isang paikot na algorithm, ang ilang mga aksyon ay paulit-ulit nang maraming beses at para dito ang flowchart ay kukuha ng anyo:

Paraan ng software ng pagsulat ng mga algorithm

Upang ang isang algorithm ay maunawaan ng isang robot, computer o iba pang makina, hindi sapat na magsulat lamang ng mga utos; kinakailangan din na gawing pormal ang algorithm sa isang form kung saan naiintindihan ito ng makina (magsulat ng isang programa), i.e. isulat ito gamit ang mga utos mula sa SKI, na sumusunod sa mga panuntunan sa disenyo.

Mga panuntunan sa disenyo ng programa:

  1. anumang algorithm ay may pangalan;
  2. ang algorithm ay nagsisimula sa isang pambungad na curly brace "(" at nagtatapos sa isang closing curly brace ")"; ang mga utos na matatagpuan sa pagitan ng mga bracket na ito ay tinatawag na katawan ng algorithm;
  3. ang algorithm ay maaari lamang isama ang mga utos na nasa SKI ng tagapagpatupad;
  4. ang bawat utos ay nagtatapos sa isang tanda na ";", na nagpapahiwatig ng pagtatapos ng utos;
  5. Upang gawing mas madali para sa amin na maunawaan ang mga programa, gumagamit kami ng mga komento - mga paliwanag sa teksto na nagsisimula sa mga palatandaan na "/*" at nagtatapos sa mga palatandaan na "*/"; hindi binibigyang pansin ng tagapalabas ang mga komento sa algorithm.

Mga praktikal na gawain:

  1. Gumawa ng flowchart upang mahanap ang perimeter ng isang parisukat.
  2. Gumawa ng block diagram para sa paggawa ng tsaa.
  3. Gumawa ng block diagram para sa pagtawid sa isang intersection na may ilaw ng trapiko.

Materyal na ginamit mula sa mga aklat:

  1. "Mga modernong teknolohiya ng impormasyon", mga may-akda: mga guro ng sentro ng "Turbo".
  2. "Mga algorithm at tagapagpatupad", may-akda na si Polyakov K.

Ngayon ay sasagutin natin ang tanong kung ano ang isang algorithm.

Kadalasan, ang isang algorithm ay isang hanay ng mga tagubilin na naglalarawan ng mga kinakailangang aksyon (pati na rin ang pagkakasunud-sunod kung saan sila ginanap) upang malutas ang isang partikular na problema. Sa panahong ito, ang mga algorithm ay ginagamit hindi lamang sa engineering at agham, kundi pati na rin sa iba pang mga lugar ng buhay.

Ano ang tinatawag na algorithm

Ang konsepto ng isang algorithm ay medyo sinaunang at kabilang sa isa sa mga pangunahing at pangunahing konsepto din sa matematika. Ang termino ay nagmula sa Latin na spelling ng pangalan ng sikat na eastern mathematician ng 787-850 Muhammad al-Khwarizmi - Algorithmi. Ang siyentipikong ito ang unang bumalangkas ng mga tumpak na panuntunan para sa pagsulat ng mga natural na numero, pati na rin ang mga panuntunan para sa pagbubuod ng mga bilang sa isang column. Ang isang medyo kawili-wiling katotohanan ay na, sa kabila ng mga sinaunang ugat nito, ang konsepto mismo ay tiyak na nabuo lamang sa simula ng ikadalawampu siglo. Sa ngayon, ang algorithm ay ang pangunahing bahagi ng modernong negosyo, anumang prosesong pang-edukasyon o pananaliksik. Iyon ang dahilan kung bakit kailangan lang malaman ng bawat modernong tao kung ano mismo ang ibig sabihin ng algorithm.

Ang isang algorithm ay kadalasang tumpak na nakabalangkas na mga tagubilin, isang pamamaraan para sa ilang mga aksyon na dapat tiyakin ang pagkamit ng isang nakatakdang layunin.

Ano ang mga katangian ng mga algorithm

Ngunit ito ay nagkakahalaga ng pag-alala na hindi lahat ng pagkakasunud-sunod ng mga aksyon ay maaaring tawaging isang algorithm. Ang isang sequence ay isang algorithm lamang kung ito ay may ilang mga katangian. Ilista natin sila:

  1. Ang isa sa pinakamahalagang katangian ay ang discreteness. Titingnan natin ito nang kaunti sa ibaba.
  2. Ang parehong mahalaga ay ang katiyakan. Ayon sa property na ito, ang bawat command ay dapat na hindi malabo at idirekta ang tagapalabas sa isang partikular na aksyon.
  3. Ito ay nagkakahalaga ng pag-alala na ang algorithm ay naiintindihan. Ang algorithm ay dapat gumamit lamang ng mga kinakailangang utos na may kaugnayan sa gawaing nasa kamay.
  4. Ang isang mahalagang katangian ay ang pagiging epektibo (madalas ding tinatawag na finiteness) ng algorithm. Ang pag-aari na "epektibo" ay nagpapahiwatig na ang algorithm ay may isang tiyak, naunang tinukoy na bilang ng mga hakbang, ang pagpapatupad nito ay hahantong sa pagkumpleto ng gawain.
  5. Gayundin, ang anumang algorithm ay dapat na mayroong katangiang tulad ng mass availability. Kung tinitiyak ng isang algorithm ang pagpapatupad ng lahat ng mga gawain ng isang tiyak na uri, kung gayon mayroon itong pag-aari ng mass production.

Ano ang isang algorithm sa computer science

Ang lahat ng mga siyentipiko ay sumasang-ayon na ang konsepto ng isang algorithm ay pangunahing sa modernong computer science. Kapag lumilikha ng software, ang unang hakbang ay palaging lumikha ng isang algorithm.

Ang isang algorithm na nakasulat sa isang pormal na wika ay karaniwang tinatawag na isang programa. Kadalasan, ang konsepto ng isang algorithm ay malapit na nauugnay sa proseso ng pagsulat nito sa isang programa. Iyon ang dahilan kung bakit ang mga terminong algorithm at programa ay madalas na itinuturing na magkasingkahulugan.

Paano lumikha ng isang algorithm

Upang lumikha ng isang epektibo at mataas na kalidad na algorithm, maraming mga patakaran ang dapat sundin:

  1. Ang algorithm ay dapat na nakasulat sa isang pormal at malinaw na wika. Ang kalabuan o kalinawan ng mga tagubilin ay hindi katanggap-tanggap.
  2. Kapag nag-compile ng isang algorithm, kinakailangang isaalang-alang kung para kanino ito ini-compile. Dapat na maunawaan ng tagapalabas ang lahat ng mga punto ng algorithm at maipatupad ang mga ito.
  3. Maipapayo na panatilihing maigsi, tumpak at malinaw ang algorithm.

Ano ang linear algorithm

Sa lahat ng mga algorithm, ang isang pagkakaiba ay ginawa sa pagitan ng linear at nonlinear. Ang isang algorithm ay itinuturing na linear kung ito ay nagpapanatili ng isang pare-parehong pagkakasunud-sunod ng mga aksyon sa buong proseso ng pagpapatupad.

Sa computer science, ang programming language kung saan inilalarawan ang isang algorithm ay karaniwang tinatawag na operator. May mga simple at structured na operator. Ang mga simpleng pahayag ay naglalarawan lamang ng isang aksyon.

Ito ay mga simpleng operator na kadalasang ginagamit sa mga linear na algorithm.

Ang discreteness property ng algorithm at ang kahalagahan nito

Nauna naming nabanggit na ang anumang algorithm ay may katangian tulad ng discreteness. Ngayon tingnan natin ang konsepto ng discreteness nang mas detalyado.

Ang discreteness ay kadalasang pinapalitan ng mga terminong gaya ng discontinuity at paghihiwalay ng algorithm. Sa esensya, ang lahat ng tatlong termino ay nangangahulugan ng parehong bagay, ibig sabihin, ang sunud-sunod (halili) na pagpapatupad ng lahat ng mga utos ng algorithm. Kung ang discreteness ay sinusunod, ang bawat aksyon ay isinasagawa lamang pagkatapos makumpleto ang nauna, at ang pagpapatupad ng lahat ng mga nakasaad na punto ay humahantong sa dati nang tinukoy na huling resulta (sa isang kumpletong solusyon sa problema).

Ngayon ay tiningnan natin ang mga pangunahing termino at konsepto na nauugnay sa ating paksa ngayon. Tiyak na hindi na problema para sa iyo na sagutin ang tanong kung ano ang isang algorithm. Ang kaalaman na nakuha ay magiging kapaki-pakinabang nang higit sa isang beses kapwa sa iyong propesyonal na larangan at sa pang-araw-araw na buhay. Gaya ng dati, maaari mong linawin ang mga detalye o hanapin ang sagot sa iyong tanong gamit ang maginhawang sistema ng komento sa ibaba.

Ang salitang "Algorithm" ay nagmula sa algorithmi - ang Latin na spelling ng pangalang al-Khorezmi, kung saan sa medieval Europe ang pinakadakilang mathematician mula sa Khorezm (isang lungsod sa modernong Uzbekistan) na si Muhammad ben Musa, na nanirahan noong 783-850, ay kilala. Sa kanyang aklat na "On Indian Counting," binalangkas niya ang mga patakaran para sa pagsulat ng mga natural na numero gamit ang Arabic numerals at ang mga patakaran para sa pagpapatakbo sa mga ito sa isang column. Nang maglaon, nagsimula ang isang algorithm na tawaging isang tumpak na reseta na tumutukoy sa isang pagkakasunud-sunod ng mga aksyon na nagsisiguro na makuha ang kinakailangang resulta mula sa paunang data. Ang algorithm ay maaaring idinisenyo upang maisakatuparan ng isang tao o ng isang awtomatikong aparato. Ang paglikha ng isang algorithm, kahit na ang pinakasimpleng isa, ay isang malikhaing proseso. Ito ay magagamit lamang sa mga nabubuhay na nilalang, at sa loob ng mahabang panahon ay pinaniniwalaan na sa mga tao lamang. Ang isa pang bagay ay ang pagpapatupad ng isang umiiral na algorithm. Maaari itong ipagkatiwala sa isang paksa o bagay na hindi obligadong bungkalin ang kakanyahan ng bagay, at marahil ay hindi ito kayang unawain. Ang ganitong paksa o bagay ay karaniwang tinatawag pormal na tagapalabas. Ang isang halimbawa ng isang pormal na tagapalabas ay isang awtomatikong washing machine, na mahigpit na nagsasagawa ng mga aksyon na inireseta dito, kahit na nakalimutan mong maglagay ng pulbos dito. Ang isang tao ay maaari ding kumilos bilang isang pormal na tagapalabas, ngunit una sa lahat, ang iba't ibang mga awtomatikong aparato, kabilang ang isang computer, ay mga pormal na tagapalabas. Ang bawat algorithm ay nilikha na may isang napaka tiyak na tagapalabas sa isip. Ang mga kilos na maaaring gawin ng isang tagapalabas ay tinatawag na kanya kanyang pinahihintulutang mga aksyon. Bumubuo ang hanay ng mga pinahihintulutang pagkilos sistema ng mga utos ng tagapalabas. Ang algorithm ay dapat maglaman lamang ng mga pagkilos na katanggap-tanggap para sa isang partikular na tagapalabas.

Ang mga bagay kung saan maaaring magsagawa ng mga aksyon ang tagapalabas ay bumubuo sa tinatawag na kapaligiran ng performer. Para sa mga algorithm na matatagpuan sa matematika, ang kapaligiran ng isang partikular na tagapalabas ay maaaring mga numero ng iba't ibang kalikasan - natural, totoo, atbp., mga titik, literal na expression, equation, pagkakakilanlan, atbp.

Ang kahulugan ng isang algorithm na ibinigay sa itaas ay hindi maaaring ituring na mahigpit - ito ay hindi lubos na malinaw kung ano ang isang "eksaktong reseta" o "isang pagkakasunud-sunod ng mga aksyon na tinitiyak ang kinakailangang resulta". Samakatuwid, ang ilang mga pangkalahatang katangian ng mga algorithm ay karaniwang binuo upang makilala ang mga algorithm mula sa iba pang mga tagubilin.

Ang mga katangiang ito ay:

    Discreteness (discontinuity, separateness)- ang algorithm ay dapat kumatawan sa proseso ng paglutas ng isang problema bilang isang sunud-sunod na pagpapatupad ng mga simpleng (o dati nang tinukoy) na mga hakbang. Ang bawat aksyon na ibinigay ng algorithm ay isinasagawa lamang pagkatapos makumpleto ng nauna ang pagpapatupad.

    Katiyakan- Ang bawat panuntunan ng algorithm ay dapat na malinaw, hindi malabo at walang puwang para sa arbitrariness. Dahil sa ari-arian na ito, ang pagpapatupad ng algorithm ay mekanikal sa kalikasan at hindi nangangailangan ng anumang karagdagang mga tagubilin o impormasyon tungkol sa problemang niresolba.

    Pagganap (limb)- ang algorithm ay dapat humantong sa paglutas ng problema sa isang tiyak na bilang ng mga hakbang.

    karakter ng masa- ang algorithm para sa paglutas ng problema ay binuo sa isang pangkalahatang anyo, iyon ay, dapat itong naaangkop para sa isang tiyak na klase ng mga problema na naiiba lamang sa paunang data. Sa kasong ito, maaaring mapili ang paunang data mula sa isang partikular na lugar na tinatawag lugar ng kakayahang magamit ng algorithm.

Batay sa mga katangiang ito, minsan ay binibigyan ang isang kahulugan ng isang algorithm, halimbawa: "Ang isang algorithm ay isang sequence ng matematika, lohikal o pinagsamang mga operasyon na nakikilala sa pamamagitan ng kanilang determinismo, mass character, direksyon at humahantong sa solusyon ng lahat ng mga problema ng isang ibinigay na klase sa isang tiyak na bilang ng mga hakbang." Ang interpretasyong ito ng konsepto ng "algorithm" ay hindi kumpleto at hindi tumpak. Una, hindi tama na iugnay ang isang algorithm sa solusyon ng anumang problema. Maaaring hindi malulutas ng algorithm ang anumang problema. Pangalawa, ang konsepto ng "masa" ay hindi tumutukoy sa mga algorithm tulad nito, ngunit sa mga pamamaraan ng matematika sa pangkalahatan. Ang paglutas ng mga problema na dulot ng pagsasanay gamit ang mga pamamaraan ng matematika ay batay sa abstraction - tinutukoy namin ang isang bilang ng mga mahahalagang tampok na katangian ng isang tiyak na hanay ng mga phenomena, at bumuo ng isang modelo ng matematika batay sa mga tampok na ito, itinatapon ang mga hindi mahalagang tampok ng bawat partikular na phenomenon. Sa ganitong kahulugan, ang anumang modelo ng matematika ay may pag-aari ng mass production. Kung, sa loob ng balangkas ng itinayong modelo, malulutas namin ang isang problema at ipinakita ang solusyon sa anyo ng isang algorithm, kung gayon ang solusyon ay magiging "napakalaking" dahil sa likas na katangian ng mga pamamaraan ng matematika, at hindi dahil sa "mass character" ng algorithm.

Kapag ipinapaliwanag ang konsepto ng isang algorithm, madalas silang nagbibigay ng mga halimbawa ng "mga algorithm ng sambahayan": pakuluan ang tubig, buksan ang pinto gamit ang isang susi, tumawid sa kalye, atbp.: ang mga recipe para sa paghahanda ng anumang gamot o mga recipe sa pagluluto ay mga algorithm. Ngunit upang makapaghanda ng isang gamot ayon sa isang reseta, kailangan mong malaman ang pharmacology, at upang maghanda ng isang ulam ayon sa isang culinary recipe, kailangan mong malaman kung paano magluto. Samantala, ang pagpapatupad ng isang algorithm ay isang walang pag-iisip, awtomatikong pagpapatupad ng mga tagubilin, na, sa prinsipyo, ay hindi nangangailangan ng anumang kaalaman. Kung ang mga recipe sa pagluluto ay mga algorithm, kung gayon hindi kami magkakaroon ng gayong espesyalidad bilang isang lutuin.

Ang mga panuntunan para sa pagsasagawa ng mga pagpapatakbo ng aritmetika o mga geometric na konstruksyon ay mga algorithm. Kasabay nito, ang tanong ay nananatiling hindi nasasagot: paano naiiba ang konsepto ng isang algorithm mula sa mga konsepto tulad ng "pamamaraan", "paraan", "panuntunan". Maaari mo ring makita ang pahayag na ang mga salitang "algorithm", "pamamaraan", "panuntunan" ay nagpapahayag ng parehong bagay (ibig sabihin, ang mga ito ay kasingkahulugan), bagaman ang naturang pahayag ay malinaw na sumasalungat sa "mga katangian ng algorithm".

Ang expression na "mga katangian ng isang algorithm" mismo ay hindi tama. Ang Objectively umiiral na mga katotohanan ay may mga katangian. Maaari nating pag-usapan, halimbawa, ang tungkol sa mga katangian ng isang sangkap. Ang algorithm ay isang artipisyal na istraktura na aming binuo upang makamit ang aming mga layunin. Para sa isang algorithm upang matupad ang layunin nito, dapat itong itayo ayon sa ilang mga patakaran. Samakatuwid, kailangan nating pag-usapan hindi ang tungkol sa mga katangian ng algorithm, ngunit tungkol sa mga patakaran para sa pagbuo ng algorithm, o tungkol sa mga kinakailangan para sa algorithm.

Unang tuntunin– kapag gumagawa ng isang algorithm, una sa lahat ay kinakailangan upang tukuyin ang isang hanay ng mga bagay kung saan gagana ang algorithm. Ang pormal (naka-code) na representasyon ng mga bagay na ito ay tinatawag na data. Ang algorithm ay nagsisimula upang gumana sa isang tiyak na hanay ng data, na tinatawag na input, at bilang isang resulta ng trabaho nito ay gumagawa ng data, na tinatawag na output. Kaya, ang algorithm ay nagko-convert ng data ng input sa data ng output.

Ang panuntunang ito ay nagpapahintulot sa iyo na agad na paghiwalayin ang mga algorithm mula sa "mga pamamaraan" at "mga pamamaraan". Hanggang hindi namin napormal ang data ng pag-input, hindi kami makakabuo ng algorithm.

Pangalawang tuntunin– ang algorithm ay nangangailangan ng memorya upang gumana. Iniimbak ng memorya ang data ng input kung saan nagsimulang gumana ang algorithm, intermediate data at output data na resulta ng algorithm. Ang memorya ay discrete, i.e. na binubuo ng mga indibidwal na selula. Ang pinangalanang memory cell ay tinatawag na variable. Sa teorya ng mga algorithm, ang mga sukat ng memorya ay hindi limitado, ibig sabihin, pinaniniwalaan na maaari naming ibigay ang algorithm ng anumang dami ng memorya na kinakailangan para sa operasyon.

Sa paaralan "teorya ng mga algorithm" ang dalawang panuntunang ito ay hindi isinasaalang-alang. Kasabay nito, ang praktikal na gawain sa mga algorithm (programming) ay nagsisimula sa pagpapatupad ng mga patakarang ito. Sa mga programming language, ang memory allocation ay isinasagawa ng mga declarative operators (variable declaration operators). Sa BASIC na wika, hindi lahat ng mga variable ay inilarawan; karaniwang mga arrays lamang ang inilalarawan. Gayunpaman, kapag inilunsad ang programa, sinusuri ng tagasalin ng wika ang lahat ng mga pagkakakilanlan sa teksto ng programa at naglalaan ng memorya para sa kaukulang mga variable.

Pangatlong tuntunin– discreteness. Ang algorithm ay binuo mula sa mga indibidwal na hakbang (mga aksyon, pagpapatakbo, mga utos). Mayroong maraming mga hakbang na bumubuo sa algorithm, siyempre.

Ikaapat na tuntunin– determinismo. Pagkatapos ng bawat hakbang, dapat mong ipahiwatig kung aling hakbang ang susunod na gagawin, o magbigay ng stop command.

Ikalimang tuntunin– tagpo (effectiveness). Ang algorithm ay dapat na wakasan pagkatapos ng isang tiyak na bilang ng mga hakbang. Sa kasong ito, kinakailangan upang ipahiwatig kung ano ang itinuturing na resulta ng algorithm.

Kaya, ang isang algorithm ay isang hindi natukoy na konsepto sa teorya ng mga algorithm. Iniuugnay ng algorithm ang bawat partikular na set ng input data sa isang partikular na set ng output data, ibig sabihin, kinakalkula (ipinatupad) ang isang function. Kapag isinasaalang-alang ang mga partikular na isyu sa teorya ng mga algorithm, palagi naming nasa isip ang ilang partikular na modelo ng algorithm.

Ang anumang gawain sa isang computer ay pagproseso ng impormasyon. Ang pagpapatakbo ng isang computer ay maaaring ilarawan sa eskematiko tulad ng sumusunod:

Ang "impormasyon" sa kaliwa at "impormasyon" sa kanan ay magkaibang impormasyon. Nakikita ng computer ang impormasyon mula sa labas at gumagawa ng bagong impormasyon bilang resulta ng trabaho nito. Ang impormasyon na ginagamit ng isang computer ay tinatawag na "data".

Binabago ng computer ang impormasyon ayon sa ilang mga patakaran. Ang mga patakarang ito (mga operasyon, mga utos) ay nakaimbak nang maaga sa memorya ng computer. Sama-sama, ang mga patakarang ito para sa pagbabago ng impormasyon ay tinatawag na isang algorithm. Ang data na pumapasok sa computer ay tinatawag na input data. Ang resulta ng trabaho ng isang computer ay output data. Kaya, ang algorithm ay nagko-convert ng data ng input sa data ng output:


Ngayon ay maaari nating itanong ang tanong: maaari bang magproseso ng impormasyon ang isang tao? Syempre pwede. Ang isang halimbawa ay isang regular na aralin sa paaralan: ang guro ay nagtatanong (input), ang mag-aaral ay sumasagot (output). Ang pinakasimpleng halimbawa: ang guro ay nagbibigay ng isang gawain - i-multiply ang 6 sa 3 at isulat ang resulta sa pisara. Narito ang mga numero 6 at 3 ay ang input data, ang pagpaparami ng operasyon ay ang algorithm, ang resulta ng multiplikasyon ay ang output data:


Konklusyon: ang paglutas ng mga problema sa matematika ay isang espesyal na kaso ng pagbabago ng impormasyon. Ang isang computer (sa Ingles ay nangangahulugang calculator, sa Russian - computer, electronic computer) ay partikular na nilikha para sa pagsasagawa ng mga kalkulasyon sa matematika.

Isaalang-alang natin ang sumusunod na problema.

Ang haba ng klase ay 7 metro, lapad - 5 metro, taas - 3 metro. Mayroong 25 na mag-aaral sa klase. Ilang sq. m ng lugar at kung gaano karaming metro kubiko. m ng hangin bawat estudyante?

Ang solusyon sa problema:

1. Kalkulahin ang lugar ng klase:

2. Kalkulahin ang dami ng klase:

3. Kalkulahin kung gaano karaming metro kuwadrado ng lugar bawat mag-aaral:

4. Kalkulahin kung gaano karaming metro kubiko. metro ng hangin bawat mag-aaral:

105: 25 = 4,2
Sagot: bawat mag-aaral ay may 1.4 square meters. metro ng lugar at 4.2 metro kubiko. metro ng hangin.

Kung aalisin na namin ngayon ang mga kalkulasyon at iiwan lamang ang "mga aksyon," makakakuha kami ng isang algorithm—isang listahan ng mga operasyon na dapat gawin upang malutas ang isang partikular na problema.

Lumalabas na kapag nilulutas ang anumang problema sa matematika, lumikha kami ng isang algorithm ng solusyon. Ngunit bago, ginawa namin ang algorithm na ito sa aming sarili, iyon ay, dinala namin ang solusyon sa sagot. Ngayon ay isusulat lamang namin kung ano ang kailangang gawin, ngunit hindi kami magsasagawa ng mga kalkulasyon. Gagawin ng computer ang mga kalkulasyon. Ang aming algorithm ay isang hanay ng mga tagubilin (mga utos) sa computer.

Kapag kinakalkula namin ang anumang halaga, isinusulat namin ang resulta sa papel. Itinatala ng computer ang resulta ng trabaho nito sa memorya sa anyo ng isang variable. Samakatuwid, ang bawat utos ng algorithm ay dapat magsama ng isang indikasyon kung aling variable ang isinulat ng resulta. Ang algorithm para sa paglutas ng aming problema ay magiging ganito:

1. Kalkulahin ang lugar ng klase at isulat ito sa variable na S.

2. Kalkulahin ang dami ng klase at isulat ito sa variable na V.

3. Kalkulahin kung ilang metro kuwadrado ang lawak ng bawat mag-aaral at isulat ito sa variable S1.

4. Kalkulahin kung gaano karaming metro kubiko. metro ng hangin bawat mag-aaral at naitala sa variable V1.

5. Ipakita ang mga halaga ng mga variable na S1 at V1.

Ngayon ang lahat na natitira ay upang isalin ang mga utos ng algorithm mula sa Russian sa isang wika na naiintindihan ng computer, at makakakuha ka ng isang programa. Ang programming ay ang pagsasalin ng isang algorithm mula sa "tao" na wika sa "computer" na wika.

Ang interpretasyon ng pagpapatakbo ng algorithm bilang isang pagbabago ng input data sa output data ay natural na humahantong sa amin upang isaalang-alang ang konsepto ng "problem statement". Upang lumikha ng isang algorithm para sa paglutas ng isang problema, kinakailangan upang piliin mula sa kundisyon ang mga dami na magiging data ng pag-input at malinaw na bumalangkas kung ano mismo ang mga dami na kailangang matagpuan. Sa madaling salita, ang kondisyon ng problema ay dapat na mabalangkas sa form na "Given... Required" - ito ang pahayag ng problema.

Algorithm na inilapat sa isang computer– eksaktong reseta, i.e. isang hanay ng mga operasyon at mga patakaran para sa kanilang paghahalili, sa tulong kung saan, simula sa ilang paunang data, posible na malutas ang anumang problema ng isang nakapirming uri.

Ang mga uri ng mga algorithm bilang mga tool na lohikal-matematika ay sumasalamin sa ipinahiwatig na mga bahagi ng aktibidad at uso ng tao, at ang mga algorithm mismo, depende sa layunin, ang mga paunang kondisyon ng problema, mga paraan upang malutas ito, at matukoy ang mga aksyon ng tagapalabas, ay hinati tulad ng sumusunod:

    Mga mekanikal na algorithm, o kung hindi man ay deterministiko, matibay (halimbawa, isang algorithm para sa pagpapatakbo ng isang makina, makina, atbp.);

    Flexible Algorithm, halimbawa stochastic, i.e. probabilistiko at heuristic.

Ang isang mekanikal na algorithm ay tumutukoy sa ilang mga aksyon, na nagtatalaga sa mga ito sa isang solong at maaasahang pagkakasunud-sunod, sa gayon ay nagbibigay ng isang hindi malabo na kinakailangan o nais na resulta kung ang mga kondisyon ng proseso at mga gawain kung saan ang algorithm ay binuo ay natutugunan.

    Probabilistic (stochastic) algorithm ay nagbibigay ng isang programa para sa paglutas ng isang problema sa ilang mga paraan o mga pamamaraan na humahantong sa posibleng pagkamit ng isang resulta.

    Heuristic algorithm(mula sa salitang Griyego na "eureka") ay isang algorithm kung saan ang pagkamit ng pangwakas na resulta ng programa ng aksyon ay hindi malinaw na natukoy, tulad ng ang buong pagkakasunud-sunod ng mga aksyon ay hindi ipinahiwatig, at ang lahat ng mga aksyon ng gumaganap ay hindi natukoy. . Kasama sa mga heuristic algorithm, halimbawa, ang mga tagubilin at reseta. Gumagamit ang mga algorithm na ito ng mga unibersal na lohikal na pamamaraan at mga pamamaraan sa paggawa ng desisyon batay sa mga pagkakatulad, asosasyon, at nakaraang karanasan sa paglutas ng mga katulad na problema.

    Linear algorithm– isang hanay ng mga utos (mga tagubilin) ​​na isinagawa nang sunud-sunod sa oras ng isa-isa.

    Algoritmo ng sumasanga– isang algorithm na naglalaman ng hindi bababa sa isang kundisyon, bilang resulta ng pagsuri kung aling computer ang nagbibigay ng paglipat sa isa sa dalawang posibleng hakbang.

    Round robin algorithm– isang algorithm na nagsasangkot ng paulit-ulit na pag-uulit ng parehong aksyon (parehong mga operasyon) sa bagong paunang data. Karamihan sa mga paraan ng pagkalkula at enumeration ng mga opsyon ay binabawasan sa cyclic algorithm.

Ikot ng programa– isang pagkakasunud-sunod ng mga utos (serye, loop body) na maaaring paulit-ulit na maisagawa (para sa bagong source data) hanggang sa masiyahan ang isang partikular na kundisyon.

Ipinapakita ng figure sa mga simbolo ang mga diagram ng mga pangunahing disenyo ng mga algorithm:

A). linear algorithm;

b, c, d). branching algorithm (b-branch, c-bifurcation, d-switching);

d, f, g). cyclic algorithm (d, g-check sa simula ng cycle, e-check sa dulo ng cycle).

Auxiliary (alipin) algorithm(procedure) – isang algorithm na dati nang binuo at ganap na ginagamit sa algorithmization ng isang partikular na gawain. Sa ilang mga kaso, kung may magkaparehong pagkakasunud-sunod ng mga tagubilin (mga utos) para sa iba't ibang data, isang pantulong na algorithm ay inilalaan din upang mabawasan ang pag-record.

Sa lahat ng mga yugto ng paghahanda para sa algorithmization ng isang problema, ang istrukturang representasyon ng algorithm ay malawakang ginagamit.

Structural (block, graph) diagram ng algorithm– isang graphic na representasyon ng algorithm sa anyo ng isang diagram ng mga bloke na konektado sa bawat isa gamit ang mga arrow (mga linya ng paglipat) - mga graphic na simbolo, na ang bawat isa ay tumutugma sa isang hakbang ng algorithm. Sa loob ng block ay ibinigay ang isang paglalarawan ng kaukulang aksyon.

Ang isang graphical na representasyon ng algorithm ay malawakang ginagamit bago ang pagprograma ng isang gawain dahil sa kalinawan nito, dahil Karaniwang pinapadali ng visual na perception ang proseso ng pagsulat ng isang programa, pagwawasto nito kung sakaling may mga pagkakamali, at pag-unawa sa proseso ng pagproseso ng impormasyon.

Maaari mo ring makita ang sumusunod na pahayag: "Sa panlabas, ang algorithm ay isang diagram - isang hanay ng mga parihaba at iba pang mga simbolo, sa loob kung saan nakasulat, kung ano ang kinakalkula, kung ano ang ipinasok sa makina at kung ano ang naka-print at iba pang paraan ng pagpapakita. impormasyon.” Narito ang anyo ng pagtatanghal ng algorithm ay halo-halong sa algorithm mismo.

Ang prinsipyo ng programming na "top-down" ay nangangailangan na ang block diagram ay tinukoy nang hakbang-hakbang at ang bawat bloke ay "inilarawan" hanggang sa elementarya na mga operasyon. Ngunit ang pamamaraang ito ay maaaring ipatupad kapag nilutas ang mga simpleng problema. Kapag nilulutas ang anumang seryosong problema, ang flowchart ay "kakalat" sa isang lawak na imposibleng masakop ito sa isang sulyap.

Maginhawang gumamit ng mga flowchart ng mga algorithm upang ipaliwanag ang pagpapatakbo ng isang handa na algorithm, habang ang aktwal na mga bloke ng algorithm ay kinuha bilang mga bloke, ang pagpapatakbo nito ay hindi nangangailangan ng paliwanag. Ang flowchart ng isang algorithm ay dapat magsilbi upang gawing simple ang paglalarawan ng algorithm, at hindi upang gawing kumplikado ito.

Kapag nilulutas ang mga problema sa isang computer, hindi mo kailangan ang kakayahang sumulat ng mga algorithm bilang kaalaman sa mga pamamaraan para sa paglutas ng mga problema (tulad ng sa matematika sa pangkalahatan). Samakatuwid, kailangan mong pag-aralan hindi ang programming bilang tulad (at hindi algorithmization), ngunit mga pamamaraan para sa paglutas ng mga problema sa matematika sa isang computer. Ang mga gawain ay hindi dapat iuri ayon sa uri ng data, gaya ng karaniwang ginagawa (mga gawain para sa mga array, para sa mga variable ng character, atbp.), ngunit ayon sa seksyong "Kinakailangan".

Sa computer science, ang proseso ng paglutas ng isang problema ay ipinamamahagi sa pagitan ng dalawang paksa: ang programmer at ang computer. Ang programmer ay lumilikha ng isang algorithm (program), ang computer ay nagpapatupad nito. Sa tradisyunal na matematika ay walang ganoong dibisyon; ang problema ay nalutas ng isang tao na lumikha ng isang algorithm para sa paglutas ng problema at isinasagawa ito sa kanyang sarili. Ang kakanyahan ng algorithmization ay hindi na ang solusyon sa isang problema ay ipinakita bilang isang hanay ng mga elementarya na operasyon, ngunit ang proseso ng paglutas ng isang problema ay nahahati sa dalawang yugto: malikhain (programming) at hindi malikhain (pagpapatupad ng programa). At ang mga yugtong ito ay ginagampanan ng iba't ibang paksa - ang programmer at ang tagapalabas

Sa mga aklat-aralin sa computer science karaniwan nilang isinusulat na ang isang tao ay maaari ding maging tagapagpatupad ng algorithm. Sa katunayan, walang nagsusulat ng mga algorithm para sa mga tao (huwag nating kalimutan na hindi lahat ng hanay ng mga discrete operation ay isang algorithm). Ang isang tao, sa prinsipyo, ay hindi maaaring kumilos ayon sa isang algorithm. Ang pagpapatupad ng isang algorithm ay isang awtomatiko, walang isip na pagpapatupad ng mga operasyon. Ang isang tao ay palaging kumikilos nang makabuluhan. Upang maisagawa ng isang tao ang isang tiyak na hanay ng mga operasyon, kailangan niyang ipaliwanag kung paano ito ginagawa. Ang isang tao ay makakagawa lamang ng anumang gawain kapag naiintindihan niya kung paano ito ginagawa.

Dito - "paliwanag at pag-unawa" - na ang pagkakaiba sa pagitan ng mga konsepto ng "algorithm" at "pamamaraan", "pamamaraan", "panuntunan" ay namamalagi. Ang mga patakaran para sa pagsasagawa ng mga pagpapatakbo ng aritmetika ay mga panuntunan lamang (o mga pamamaraan), hindi mga algorithm. Siyempre, ang mga patakarang ito ay maaaring ipahayag sa anyo ng mga algorithm, ngunit hindi ito magiging kapaki-pakinabang. Upang ang isang tao ay makapagbilang ayon sa mga tuntunin ng aritmetika, kailangan siyang turuan. At kung mayroong isang proseso ng pag-aaral, kung gayon ang pakikitungo namin ay hindi sa isang algorithm, ngunit sa isang pamamaraan.

Kapag lumilikha ng isang algorithm, ang programmer ay hindi nagpapaliwanag ng anuman sa sinuman, at ang tagapalabas ay hindi sinusubukan na maunawaan ang anuman. Ang algorithm ay matatagpuan sa memorya ng computer, na kumukuha ng mga tagubilin nang paisa-isa at isinasagawa ang mga ito. Iba ang kilos ng isang tao. Upang malutas ang isang problema, kailangang isaisip ng isang tao ang pamamaraan para sa paglutas ng problema sa kabuuan, at lahat ay naglalaman ng pamamaraang ito sa kanilang sariling paraan.

Ang tampok na ito ng sikolohiya ng tao - di-algorithmic na pag-iisip - ay napakalinaw na ipinakita sa manu-manong pamamaraan ng A. G. Gein at V. F. Sholokhovich. Ang manwal ay nagpapakita ng mga solusyon sa mga problema mula sa isang kilalang aklat-aralin. Ang mga solusyon sa mga problema ay dapat iharap sa anyo ng mga algorithm. Gayunpaman, nauunawaan ng mga may-akda ng manwal na kung sumulat ka lamang ng isang algorithm para sa paglutas ng isang problema, magiging mahirap na maunawaan ang solusyon mismo. Samakatuwid, nagbibigay muna sila ng "malabo na pahayag ng algorithm" (i.e., ipaliwanag ang solusyon sa problema), at pagkatapos ay isulat ang algorithm mismo.



L I T E R A T U R A

1. Nesterenko A.V. Mga Computer at ang propesyon ng isang programmer.

M., Edukasyon, 1990.

2. Brudno A.L., Kaplan L.I. Moscow Olympiads sa programming.

M., Nauka, 1990.

3. Kuznetsov O. P., Adelson-Velsky G. M. Discrete mathematics para sa isang engineer.

M., Energoatomizdat, 1988.

4. Gein A.G. at iba pa.Mga Batayan ng computer science at computer technology.

M., Edukasyon, 1994.

5. Computer science. Lingguhang suplemento sa pahayagan na "Una ng Setyembre". 1998, blg.

6. Radchenko N. P. Mga sagot sa mga tanong ng huling pagsusulit. – Informatics at

Edukasyon, 1997, No. 4.

7. Kasatkin V.N. Impormasyon, algorithm, computer. M., Edukasyon, 1991.

8. Kanygin Yu. M., Zotov B. I. Ano ang computer science?

M., Panitikang Pambata, 1989.

9. Gein A.G., Sholokhovich V.F. Pagtuturo ng kursong “Fundamentals of Informatics and Computer Science” sa high school. Patnubay ng Guro.

Ekaterinburg, 1992.

10. Izvozchikov V.A. Computer science sa mga konsepto at termino.

11. Pahayagang “Informatics”, Blg. 35, 1997.

12. L.Z. Shautsukov Fundamentals ng computer science sa mga tanong at sagot.


May-akda: Bogashova Tatyana, Donets Sergey (KPI, FAX), Kiev, 1999.
Rating:mahusay
Pinaupahan: Vocational school No. 34
Email: [email protected]





















Bumalik pasulong

Pansin! Ang mga slide preview ay para sa mga layuning pang-impormasyon lamang at maaaring hindi kumakatawan sa lahat ng mga tampok ng pagtatanghal. Kung interesado ka sa gawaing ito, mangyaring i-download ang buong bersyon.

Layunin ng aralin: Ang pagbuo sa mga mag-aaral ng isang tamang pag-unawa sa mga algorithm, ang kanilang mga katangian, mga uri at praktikal na kasanayan sa pagbuo ng mga algorithm.

Mga layunin ng aralin:

Didactic: Magbigay ng mga kondisyon:

  • pag-aralan at pagsama-samahin ang mga pangunahing konsepto sa paksa;
  • para sa asimilasyon at konsolidasyon ng paksa.

Pang-edukasyon: Magbigay ng mga kondisyon:

  • upang pagyamanin ang isang pakiramdam ng kolektibismo at mutual na tulong, isang kultura ng komunikasyon;
  • para sa isang kritikal na saloobin sa trabaho ng isang tao, ang kakayahang suriin ito.

Pag-unlad: Magbigay ng mga kondisyon:

  • para sa pagpapaunlad ng aktibidad ng pag-iisip ng mga mag-aaral, ang kakayahang pag-aralan, ihambing, gawing pangkalahatan at gumawa ng mga konklusyon;
  • para sa pagpapaunlad ng kalayaan, lohikal na pagtatanghal ng mga kaisipan.

Demonstration material para sa aralin:

  1. Presentasyon ng multimedia
  2. Larawan ni Mohammed Ben Moussa al-Khawarizmi.

Sa panahon ng mga klase

  1. Oras ng pag-aayos. (2 minuto.)
  2. Pag-update ng kaalaman. Pagtatakda ng gawain sa pag-aaral. (3 min.)
  3. Pagtatanghal ng bagong materyal. ( 30 minuto.)
  4. Pagsasama-sama ng bagong materyal (10 min.)

Konsepto ng algorithm

Ang hitsura ng mga algorithm ay nauugnay sa mga pinagmulan ng matematika.

Mahigit sa 1000 taon na ang nakalilipas (825), isang siyentipiko mula sa lungsod ng Khorezm, Abdullah (o Abu Zhdafar) na si Muhammad bin Mussa al-Khorezmi, ay lumikha ng isang libro sa matematika, kung saan inilarawan niya ang mga paraan upang maisagawa ang mga operasyon ng aritmetika sa mga multi-digit na numero .

Algorithm – paglalarawan ng isang pagkakasunud-sunod ng mga aksyon, ang pagpapatupad nito ay humahantong sa solusyon ng isang naibigay na problema sa isang tiyak na bilang ng mga hakbang.

Algorithm- isang malinaw at tumpak na pagtuturo sa gumaganap upang maisagawa ang isang pangwakas na pagkakasunud-sunod ng mga utos na humahantong mula sa paunang data hanggang sa nais na resulta.

Mga katangian ng algorithm

  1. Diskrete
  2. Determinismo
  3. karakter ng masa
  4. Kahusayan
  5. Limb
  6. Discreteness (mula sa lat.Discretus –separated, discontinuous) – ang property na ito ay nagmumungkahi na ang anumang algorithm ay dapat na binubuo ng isang sequence ng mga hakbang na sumusunod sa bawat isa.
  7. Determinismo (mula sa Latin na Determinate - katiyakan, katumpakan) - ipinahihiwatig ng property na ito na ang anumang pagkilos sa algorithm ay dapat na mahigpit at hindi malabo na tinukoy at inilarawan para sa bawat kaso.
  8. karakter ng masa – ang property na ito ay nagpapahiwatig na ang parehong algorithm ay maaaring gamitin upang malutas ang isang buong klase ng mga problema na naiiba sa paunang data.
  9. Pagganap (limb) algorithm- Ang pagpapatupad ng algorithm ay dapat makumpleto sa isang tiyak na bilang ng mga hakbang.

Verbal na pamamaraan Ang mga talaan ng algorithm ay isang paglalarawan ng sunud-sunod na mga yugto ng pagproseso ng data. Ang algorithm ay tinukoy sa isang libreng form sa natural na wika.

Halimbawa: Algorithm "Pagsingil"

  1. Mag-stretch habang nakahiga sa kama.
  2. Umupo sa kama habang ang iyong mga paa ay nasa sahig.
  3. Yumuko pasulong, sinusubukang abutin ang iyong mga daliri sa paa gamit ang iyong mga kamay.
  4. I-arch ang iyong likod.
  5. Bilangin hanggang 10.
  6. Bumalik sa panimulang posisyon.

Sa verbal-formular paraan, ang algorithm ay isinulat sa anyo ng teksto na may mga formula point by point na tumutukoy sa pagkakasunud-sunod ng mga aksyon.

Hayaan, halimbawa, kailangan mong mahanap ang halaga ng sumusunod na expression:

Sa pasalita at pormula na paraan, ang algorithm para sa paglutas ng problemang ito ay maaaring isulat sa sumusunod na anyo:

  1. Ipasok ang mga halaga ng a at x.
  2. Idagdag ang x at 6.
  3. I-multiply ang a sa 2.
  4. Ibawas ang kabuuan (x+6) sa 2a.
  5. I-print ang y bilang resulta ng pagsusuri sa expression.

Sa graphic Sa representasyon, ang algorithm ay inilalarawan bilang isang pagkakasunud-sunod ng magkakaugnay na mga bloke ng pagganap, na ang bawat isa ay tumutugma sa pagpapatupad ng isa o higit pang mga aksyon.

Mga uri ng algorithm

Linear algorithm - ito ang isa kung saan ginagawa ang lahat ng mga operasyon

sunud-sunod.

Halimbawa: Algoritmo ng pagtatanim ng puno.

  1. Maghukay ng butas sa lupa;
  2. Ilagay ang punla sa butas;
  3. Punan ang butas ng punla ng lupa;
  4. Diligan ang punla ng tubig.

Algoritmo ng sumasanga ay isang algorithm kung saan ang alinman sa isa o isa pang pangkat ng mga aksyon ay isinasagawa depende sa katotohanan o kamalian ng isang kondisyon.

Buong anyo

Kung<условие>, Iyon<действие 1>, kung hindi<действие 2>

Hindi kumpletong anyo

Kung <условие>, Iyon<действия>

Halimbawa: Kung umuulan sa labas, mananatili kami sa bahay, at kung hindi, mamasyal kami.

Round robin algorithm– inuulit ang mga aksyon hanggang sa matugunan ang tinukoy na kundisyon.

Isang cycle na may alam na bilang ng mga pag-uulit

Ang isang cycle na may kilalang bilang ng mga pag-uulit ay madalas na tinatawag "cycle PARA»

Halimbawa: Algorithm "Ehersisyo sa mata"

  1. Kumuha ng lapis.
  2. Ilagay ito sa orihinal nitong posisyon sa dulo ng ilong
  3. Ulitin ng 10 beses, kasunod ng paggalaw ng lapis:
    • Ilipat ang lapis sa haba ng braso;
    • Ibalik ang lapis sa orihinal nitong posisyon
  4. Ibaba mo ang iyong lapis
  5. Pagtatapos ng algorithm

Loop na may postcondition

Ang isang cycle na may hindi alam na bilang ng mga pag-uulit, kung saan ang loop ay lumabas kapag natugunan ang isang kundisyon, ay karaniwang tinatawag na "cycle na may postcondition" o "PRI cycle"

Algorithm na "Pulse"

  1. Ilagay ang iyong kaliwang kamay nang kumportable, palad.
  2. Ilagay ang dalawang daliri ng iyong kanang kamay sa pulso ng iyong kaliwang kamay.
  3. Pansinin ang posisyon ng pangalawang kamay
  4. Bilangin ang susunod na beat
  5. Tumingin sa orasan
  6. Kung ang pangalawang kamay ay naging ganap na bilog, pagkatapos ay tapusin ang mga hakbang, kung hindi, pumunta sa hakbang 4

Pagtatapos ng algorithm

Loop na may precondition

Ang isang loop na may kilalang bilang ng mga pag-uulit, kung saan ang loop ay nagpapatuloy hangga't ang kundisyon ay natutugunan, ay karaniwang tinatawag "loop na may precondition" o "BYE cycle"

Barrel algorithm

  1. Pumunta sa bariles
  2. Kung ang bariles ay hindi kumpleto (may silid para sa tubig), pagkatapos ay pumunta sa hakbang 3, kung hindi man ang dulo ng algorithm.
  3. Punan ang isang balde ng tubig
  4. Ibuhos ang balde sa bariles
  5. Pumunta sa hakbang 2.

Pagtatapos ng algorithm

Mga gawain para sa pagsasama-sama ng materyal

  1. Ang pagkakasunud-sunod ng mga aksyon ng mag-aaral sa ika-6 na baitang na si Vasya: "Kung nasa bahay si Pavlik, malulutas namin ang mga problema sa matematika. Kung hindi, dapat mong tawagan si Marina at maghanda ng ulat ng biology nang magkasama. Kung wala si Marina sa bahay, kailangan mong umupo at magsulat."
  2. Gumawa ng flowchart ng mga aksyon ng isang mag-aaral na dapat kumpletuhin ang kanyang araling-bahay sa matematika bago maglakad sa gabi.

Sa buhay, madalas tayong nakatagpo ng iba't ibang mga sitwasyon kung saan ginagawa natin ang parehong mga partikular na aksyon. Upang magising sa oras, kailangan nating tandaan na i-on ang alarma. Upang mabusog ang ating gutom, kailangan nating sundin ang parehong mga hakbang sa paghahanda ng masarap na pagkain. Upang magawa ang gawaing pamilyar sa atin, madalas din nating gawin ang parehong bagay.

Maaaring iba ang tawag sa pag-uugaling ito, depende sa konteksto kung saan ito isinasaalang-alang. Kung titingnan natin ito mula sa pananaw ng kahusayan sa pagpapatakbo, ang mga pagkilos na ito ay matatawag na mga gawi o kasanayan. Kung isasaalang-alang natin ito mula sa punto ng view ng pagpapakita ng proseso, kung gayon ang paglalarawan ng pagkakasunud-sunod ng mga aksyon, ang mahigpit na pagpapatupad na humahantong sa solusyon ng mga nakatalagang gawain sa isang tiyak na bilang ng mga hakbang, ay tinatawag na algorithm ng pagkilos.

Paano nilikha ang mga algorithm ng pagkilos?

Palagi nating nararanasan ito sa pang-araw-araw na buhay. Anong mga aksyon ang gagawin namin para ma-top up ang aming mobile phone account? Iba-iba ang bawat isa sa atin. Dahil may ilang paraan para maglagay muli ng account, lahat tayo ay gumagawa nito nang iba. Ang resulta, gayunpaman, ay palaging pareho - ang hitsura ng mga pondo sa telepono.

O isa pang halimbawa: upang kopyahin ang isang larawan o teksto, i-right-click ang larawan, pagkatapos ay piliin ang "Kopyahin", ilagay ito sa nais na lokasyon, i-right-click ang "I-paste", at ang resulta ay nakamit.

Ang lahat ng ito ay isang tiyak na pagkakasunud-sunod ng mga aksyon, bilang isang resulta kung saan ang gawain ay nalutas sa pamamagitan ng iba't ibang paraan. Ngunit sa ngayon ito lamang ang ating kaalaman, na nagiging mga kasanayan at kakayahan, at kung ang prosesong ito ay ilalarawan, kung gayon ay malinaw nating makikita ang algorithm ng ating mga aksyon at ipapasa ito sa ibang tao. Hindi lahat ay malinaw sa salita at hindi laging malinaw.

Ilarawan ang pagkakasunod-sunod ng mga aksyon - ito ay maaalala

Lumikha algorithm ng mga aksyon posible sa pamamagitan ng paglalarawan o paglalarawan ng pagkakasunod-sunod nito. Alam ba ng lahat kung ano ang kailangang gawin upang magtanim ng puno? Marahil ang mga pangunahing hakbang ay malinaw sa lahat, ngunit hindi lahat ay naaalala kung kailan didiligan ang isang puno, bago o pagkatapos magtanim. Ang ginawang algorithm ay magbibigay-daan sa lahat ng mga aksyon na maisagawa sa tamang pagkakasunod-sunod.

Upang ilarawan ang isang mas kumplikadong pagkakasunud-sunod ng mga aksyon, kakailanganin mong subukan at isulat ang lahat ng ito nang detalyado. Maaaring kumuha ng isang halimbawa mula sa lahat ng uri ng mga panuntunan at tagubilin - napakalinaw nilang binabaybay ang mga hakbang na kailangan nating gawin. Ngunit may mga sitwasyon kung saan ang isang tiyak na aksyon ay sinusunod hindi ng isang hakbang, ngunit ng ilan, depende sa nakaraang resulta. Sa kasong ito, ang mga iminungkahing aksyon ay isinulat din upang ang tao ay madaling mag-navigate sa iba't ibang mga sitwasyon at malaman kung ano ang kailangang gawin.

Ang algorithm ng mga aksyon sa graphics ay isang flowchart

Kung graphical na inilalarawan namin ang mga algorithm ng pagkilos, gamit ang mga geometric na hugis na may mga linya ng koneksyon na nagpapakita ng pagkakasunud-sunod kung saan isinasagawa ang aksyon, makakakuha kami ng flowchart. Ang isang flowchart ay higit na nakahihigit sa mga panuntunan, mga tagubilin, at mga sequence na algorithm ng mga aksyon sa mga tuntunin ng kalinawan at pagiging madaling mabasa nito.

Isipin na kailangan mong magturo ng isang bagay sa ibang tao. Alam na alam mo ang lahat ng mga aksyon sa isang tiyak na pagkakasunud-sunod. Ang iyong gawain ay ipakita kung paano ito dapat gawin at ihatid ang iyong kaalaman upang maalala ito ng ibang tao at malaman ito tulad mo. Ang oral transmission ng kaalaman ay nagbibigay-daan para sa improvisasyon at ilang arbitrariness. Ang pinakamahusay na paraan ay ang paggamit ng isang flowchart na nagpapaliwanag sa pagkakasunud-sunod at mga posibleng opsyon. Bilang halimbawa, narito ang isang masayang gabay sa pag-aaral ng mga scheme sa pag-blog:

Ang pinakamahusay na kondisyon para sa pagkuha ng mga resulta ay ang pag-uulit ng mga aksyon. Tiyak na nakakaapekto ito sa bilis ng pagkamit ng mga resulta sa hinaharap. Kung mas madalas mong ulitin ang parehong mga aksyon, mas mabilis kang matututong gawin ang pagkakasunud-sunod ng mga aksyon, na nangangahulugan na sa bawat susunod na oras ay kakailanganin mo ng mas kaunting oras upang makumpleto.

Ang mga flowchart ay ginagamit sa mga benta

Sa mga benta, laganap ang naturang pagsasanay sa pamamagitan ng pagbuo ng mga algorithm at paglalarawan sa kanila sa anyo ng mga flowchart. Kadalasan ginagamit ang mga ito sa mga sitwasyon ng pag-uusap sa telepono sa mga call center at para sa "malamig" na mga tawag. Ang kultura ng korporasyon ay nakakakuha ng momentum, kaya maraming mga kumpanya ang hindi na nagpapahintulot sa mga empleyado na gumawa ng "gags", kahit na mga mahuhusay, ngunit nag-aalok sa kanila na kumilos ayon sa isang paunang binuo na senaryo, na kumakatawan sa "mukha ng kumpanya" sa iba't ibang yugto. Ang epekto ay literal na lumilitaw pagkatapos ng ilang araw ng paggawa ng mga bagay "sa papel". Sa paglipas ng panahon, marami sa mga inilarawan na algorithm ang naaalala ng empleyado, at sa hinaharap ay malaya siyang makakapag-usap nang walang takot kung saang direksyon mapupunta ang pag-uusap.

Ang mga algorithm ng pagkilos at mga scheme ng blog ay binuo hindi lamang sa mga benta. Malawakang ginagamit ang mga ito sa pagsasanay at pagsasanay ng mga doktor, programmer, computer scientist, at maraming teknikal na specialty.

Ito ay nagkakahalaga ng pagsubok na matutunan kung paano gumana gamit ang mga katulad na flowchart. Pagkatapos ng lahat, kapag una kang nakatagpo ng maraming mga aksyon at gawain na hindi maintindihan sa simula, iniisip mo kung gaano ka kulang sa isang binuo na flowchart. Pagkatapos ng maraming pagdurusa, hindi mo ito matiis, at nagsimula kang bumuo at lumikha sa iyong sarili. Ang mga epektibong tao ay hindi gusto ang downtime. At ang mga flowchart ay lubos na nagpapasimple sa buhay at nagbibigay-daan sa iyo na maunawaan ang paglutas ng mga kumplikadong problema.

Mga serbisyo para sa pagbuo ng mga flowchart

May mga serbisyo sa Internet na makakatulong sa iyong gumawa ng mga ganitong flowchart. Ang isa sa kanila ay si Сacoo. Sa tulong nito, madali mong gawing iba't ibang diagram, flowchart, at graph ang iyong mga algorithm. Malalaman mo na ito ay isang napaka-kaaya-aya at masayang aktibidad na gawing agham ang iyong nalalaman para sa ibang tao.

- isang magandang kalooban ay garantisadong sa iyo. Sa paunang yugto, maaari mong gamitin ang mga tampok ng isang libreng account, ngunit sa hinaharap ay kailangan mong magbayad para sa pag-access. Naturally, ang libreng pag-access ay may mga limitasyon kumpara sa mga bayad. Ngunit para sa pag-aaral at mga unang hakbang, ang pag-andar ay sapat na.

Ang pagkakaroon ng pagbuo ng mga algorithm ng pagkilos at na-convert ang mga ito sa mga block diagram sa tulong ng Cacoo, maaari kang lumikha ng isang magandang kalooban sa mahabang panahon hindi lamang para sa iyong sarili, kundi pati na rin para sa ibang mga tao na nag-aaral ng mga pangunahing kaalaman.

Gumawa ng mga play block diagram para sa iyong mga anak

Upang ibuod ang nasa itaas, tandaan ko na ngayon ay maaari kang gumamit ng mga algorithm ng pagkilos at mga flowchart sa iba't ibang sitwasyon sa buhay. Maging ang iyong mga anak ay magiging labis na kasiyahan sa pagsasagawa ng hindi ang pinakakawili-wiling mga gawain, na sumusunod sa malinaw na mga senyas. Kung mayroon kang anumang mga ideya kung saan at kung paano ito gamitin algorithm ng mga aksyon, ibahagi sa mga komento, mahal na mga mambabasa. Gusto ko talagang malaman ang tungkol sa iyong mga algorithm.

Aking flowchart

Ito ang flowchart na nabuo ko sa unang pagkakataon. Upang palakihin ang isang imahe, i-click ito. Pagkatapos pumunta sa Cacoo, sa ilalim ng entry na "view figure", i-click ang larawan. Magbubukas ito sa isang malaking bintana. Good luck!