Algoritmin suorittaminen tietylle toimeenpanijapäätökselle. Tietojenkäsittelytiede ja tietotekniikka. Tapoja kuvata algoritmeja

Avainsanat:

  • algoritmi
  • algoritmin ominaisuudet
    • diskreetti
    • selkeys
    • varmuutta
    • tehokkuutta
    • massahahmo
  • toimeenpanija
  • esiintyjän ominaisuudet
    • erilaisia ​​ratkaistavia tehtäviä
    • keskiviikko
    • toimintatila
    • komentojärjestelmä
  • algoritmin muodollinen suoritus

3.1.1. Algoritmin käsite

Jokainen mukana oleva henkilö Jokapäiväinen elämä, opiskelussa tai työssä, ratkaisee valtavan määrän vaihtelevan monimutkaisia ​​ongelmia. Monimutkaiset ongelmat vaativat paljon ajattelua ratkaisun löytämiseksi; Ihminen ratkaisee yksinkertaisia ​​ja tuttuja tehtäviä ajattelematta, automaattisesti. Useimmissa tapauksissa kunkin ongelman ratkaisu voidaan jakaa yksinkertaisiin vaiheisiin (vaiheisiin). Moniin tällaisiin tehtäviin (asennus ohjelmisto, kaapin kokoaminen, verkkosivujen luominen, teknisen laitteen käyttö, lentolipun ostaminen Internetin kautta jne.) on jo kehitetty ja tarjottu vaiheittaiset ohjeet, joka johdonmukaisesti suoritettuna voi johtaa haluttuun tulokseen.

Esimerkki 1. Tehtävä "Etsi kahden luvun aritmeettinen keskiarvo" ratkaistaan ​​kolmessa vaiheessa:

  • ajattele kahta numeroa;
  • lisää kaksi numeroa mielessä;
  • jaa saatu summa 2:lla.

Esimerkki 2. Tehtävä "Talleta rahaa puhelintilillesi" on jaettu seuraaviin vaiheisiin:

  • mene maksupäätteelle;
  • valitse teleoperaattori;
  • Lisää puhelinnumero;
  • tarkista, että syötetty numero on oikein;
  • aseta seteli setelin vastaanottajaan;
  • odota viestiä rahan hyvityksestä tilillesi;
  • saada shekki.

Esimerkki 3. "Piirrä hauska siili" -tehtävän ratkaisuvaiheet esitetään graafisesti:

Aritmeettisen keskiarvon löytäminen, rahan tallettaminen puhelintilille ja siilin piirtäminen ovat ensi silmäyksellä täysin erilaisia ​​prosesseja. Mutta niillä on yhteinen piirre: jokainen näistä prosesseista on kuvattu lyhyillä ohjeilla, joiden tiukka noudattaminen mahdollistaa vaaditun tuloksen saavuttamisen. Esimerkeissä 1-3 esitetyt käskysarjat ovat algoritmeja vastaavien ongelmien ratkaisemiseksi. Näiden algoritmien toteuttaja on henkilö.

Algoritmi voi olla kuvaus tietystä laskutoimitussarjasta (esimerkki 1) tai ei-matemaattisista vaiheista (esimerkit 2-3). Mutta joka tapauksessa, ennen sen kehitystä alkuolosuhteet(syöttötiedot) ja mitä halutaan saada (tulos). Voidaan sanoa, että algoritmi on kuvaus ongelman ratkaisuvaiheiden sarjasta, joka johtaa lähtötiedoista vaadittuun tulokseen.

Yleisesti ottaen algoritmin toimintakaavio voidaan esittää seuraavasti (kuva 3.1):

Riisi. 3.1.
Algoritmin yleinen kaavio

Algoritmit ovat koulussa opittuja lukujen yhteen-, vähennys-, kerto- ja jakolasääntöjä, kielioppisääntöjä, geometristen rakenteiden sääntöjä jne.

Animaatiot "Työskentely algoritmin kanssa", "Suurin yhteinen jakaja", "Pienin yhteinen kerrannainen" (http://school-collection.edu.ru/) auttavat sinua muistamaan joitain venäjän kielen ja matematiikan tunneilla opittuja algoritmeja.

Esimerkki 4. Jotkut algoritmit johtavat siihen, että yhdestä merkkiketjusta saadaan uusi ketju seuraavasti:

  1. Lähdemerkkijonon pituus (merkeissä) lasketaan.
  2. Jos alkuperäisen ketjun pituus on pariton, niin numero 1 lisätään oikeaan alkuperäiseen ketjuun, muuten ketju ei muutu.
  3. Symbolit vaihdetaan pareittain (ensimmäinen toisen kanssa, kolmas neljännen kanssa, viides kuudennen kanssa jne.).
  4. Numero 2 lisätään tuloksena olevan ketjun oikealle puolelle.

Tuloksena oleva ketju on algoritmin tulos.

Joten jos alkuketju oli A#B, niin algoritmin tulos on ketju #A1B2, ja jos alkuketju oli ABC@, niin algoritmin tulos on ketju BA@B2.

3.1.2. Algoritmin toteuttaja

Jokainen algoritmi on suunniteltu tietylle esiintyjälle.

On virallisia ja epävirallisia esiintyjiä. Muodollinen esiintyjä suorittaa aina saman komennon samalla tavalla. Epävirallinen toimeenpanija voi suorittaa komennon eri tavoin.

Tarkastellaanpa yksityiskohtaisemmin muodollisten esiintyjien joukkoa. Muodolliset suorittajat ovat erittäin erilaisia, mutta jokaiselle heistä voidaan määrittää seuraavat ominaisuudet: ratkaistavien tehtävien kirjo (tarkoitus), ympäristö, komentojärjestelmä ja toimintatapa.

Erilaisia ​​tehtäviä ratkaistavaksi. Jokainen esiintyjä on luotu ratkaisemaan tiettyjä ongelmia - rakentamaan symboliketjuja, suorittamaan laskelmia, rakentamaan piirustuksia tasolle jne.

Taiteilijaympäristö. Aluetta, ympäristöä, olosuhteita, joissa esiintyjä toimii, kutsutaan yleensä tietyn esiintyjän ympäristöksi. Minkä tahansa algoritmin lähdetiedot ja tulokset kuuluvat aina sen esiintyjän ympäristöön, jolle algoritmi on tarkoitettu.

Executor komentojärjestelmä. Esiintyjälle annettua ohjetta suorittaa erillinen suoritettu toiminto kutsutaan komennoksi. Joukko kaikkia komentoja, jotka joku suorittaja voi suorittaa, muodostaa tämän suorittajan komentojärjestelmän (SKI). Algoritmi on koottu ottaen huomioon tietyn esiintyjän kyvyt, toisin sanoen sen suorittavan esiintyjän komentojärjestelmässä.

Esittäjän toimintatilat. Useimmille esiintyjille suorat ohjaustilat ja ohjelman ohjaus. Ensimmäisessä tapauksessa esiintyjä odottaa käskyjä henkilöltä ja suorittaa välittömästi jokaisen vastaanotetun komennon. Toisessa tapauksessa esiintyjälle annetaan ensin täydellinen komentosarja (ohjelma), jonka jälkeen hän suorittaa kaikki nämä komennot automaattinen tila. Useat esiintyjät työskentelevät vain yhdessä nimetyistä tiloista.

Katsotaanpa esimerkkejä esiintyjistä.

Esimerkki 5. Esiintyjä Kilpikonna liikkuu tietokoneen näytöllä jättäen jäljen viivan muodossa. Kilpikonnan komentojärjestelmä koostuu kahdesta komennosta:

    Eteenpäin n (jossa n on kokonaisluku) - saa kilpikonnan liikkumaan n askelta liikkeen suuntaan - suuntaan, johon sen pää ja vartalo ovat päin;

    Oikea m (missä m on kokonaisluku) - saa kilpikonnan liikesuunnan muuttumaan m astetta myötäpäivään.

Nauhoita toisto k [<Команда1> <Команда2> ... <Командаn>] tarkoittaa, että suluissa oleva komentosarja toistetaan k kertaa.

Ajattele, mikä kuva ilmestyy näytölle, kun kilpikonna suorittaa seuraavan algoritmin.

    Toista 12 [oikea 4 5 eteenpäin 20 oikea 45]

Esimerkki 6. Suoritinkomentojen järjestelmä Tietokone koostuu kahdesta komennosta, joille on annettu numerot:

    1 - vähennä 1
    2 - kerro 3:lla

Ensimmäinen niistä pienentää numeroa yhdellä, toinen lisää numeroa 3 kertaa. Algoritmeja kirjoitettaessa ilmoitetaan lyhyyden vuoksi vain komentojen numerot. Esimerkiksi algoritmi 21212 tarkoittaa seuraavaa komentosarjaa:

    kerro 3:lla
    vähennä 1
    kerro 3:lla
    vähennä 1
    kerro 3:lla

Tällä algoritmilla luku 1 muunnetaan 15:ksi: ((1-3-1)-3-1)-3 = 15.

Esimerkki 7. Performer Robot toimii ruudullisella kentällä, vierekkäisten solujen välissä voi olla seiniä. Robotti liikkuu kentän soluja pitkin ja voi suorittaa seuraavat komennot, jotka on numeroitu:

    1 - Ylös
    2 - Alas
    3 - Oikein
    4 jäljellä

Kun jokainen tällainen komento suoritetaan, robotti siirtyy viereiseen soluun osoitettuun suuntaan. Jos solujen välissä on seinä tähän suuntaan, robotti tuhoutuu. Mitä tapahtuu robotille, jos se suorittaa komentosarjan 32323 (tässä numerot osoittavat komentonumeroita) ja alkaa liikkua solusta A? Millainen komentosarja robotin tulee suorittaa siirtyäkseen solusta A soluun B ilman, että se romahtaa osuessaan seiniin?

Kun kehität algoritmia:

  1. tunnistetaan ongelmassa esiintyvät objektit, objektien ominaisuudet, objektien väliset suhteet ja mahdollisia toimia esineiden kanssa;
  2. alkutiedot ja vaadittu tulos määritetään;
  3. esiintyjän toimintojen järjestys määritetään varmistaen siirtymisen lähtötiedoista tulokseen;
  4. toimintojen järjestys tallennetaan suorittajan komentojärjestelmään sisältyvillä komennoilla.

Voidaan sanoa, että algoritmi on malli algoritmin suorittajan toiminnasta.

3.1.3. Algoritmin ominaisuudet

Jokaista ohjetta, käskysarjaa tai toimintasuunnitelmaa ei voida pitää algoritmina. Jokaisella algoritmilla on välttämättä seuraavat ominaisuudet: diskreetti, ymmärrettävyys, varmuus, tehokkuus ja massaluonne.

Diskreettisyyden ominaisuus tarkoittaa, että polku ongelman ratkaisemiseen on jaettu erillisiin vaiheisiin (toimiin). Jokaisella toiminnolla on vastaava käsky (komento). Vasta yhden komennon suorittamisen jälkeen suorittaja voi aloittaa seuraavan komennon suorittamisen.

Ymmärrettävyyden ominaisuus tarkoittaa, että algoritmi koostuu vain esittäjän komentojärjestelmään kuuluvista käskyistä, eli sellaisista komennoista, jotka esiintyjä voi havaita ja joiden mukaan hän voi suorittaa vaaditut toiminnot.

Varmuuden ominaisuus tarkoittaa, että algoritmi ei sisällä komentoja, joiden merkitystä esiintyjä voi tulkita moniselitteisesti; Tilanteita ei voida hyväksyä, kun seuraavan komennon suorittamisen jälkeen suorittajalle on epäselvää, mikä komento suoritetaan seuraavassa vaiheessa.

Tehokkuusominaisuus tarkoittaa, että algoritmin on kyettävä saamaan tulos äärellisen, mahdollisesti hyvin suuren askelmäärän jälkeen. Tässä tapauksessa tuloksena ei pidetä vain ongelman lausunnon määräämää vastausta, vaan myös johtopäätöstä siitä, että tämän ongelman ratkaisemista on mahdotonta jatkaa mistä tahansa syystä.

Massatuotannon ominaisuus tarkoittaa, että algoritmin on tarjottava mahdollisuus soveltaa sitä minkä tahansa ongelman ratkaisemiseen tietyn luokan tehtävästä. Esimerkiksi toisen asteen yhtälön juurien löytämisalgoritmia tulisi soveltaa mihin tahansa toisen asteen yhtälöön, kadun ylittämisalgoritmia tulisi soveltaa missä tahansa kadulla, lääkkeen valmistusalgoritmia tulisi soveltaa minkä tahansa määrän valmistamiseen, jne.

Esimerkki 8. Tarkastellaan yhtä tapaa löytää kaikki alkuluvut, jotka eivät ylitä n:ää. Tätä menetelmää kutsutaan "Eratosthenesin seulaksi", joka on nimetty sitä ehdottaneen antiikin kreikkalaisen tiedemiehen Eratosthenesin mukaan.

Jos haluat löytää kaikki alkuluvut, jotka eivät ole suurempia kuin annettu luku n, seuraamalla Eratosthenes-menetelmää, sinun on suoritettava seuraavat vaiheet:

  1. kirjoita kaikki kokonaisluvut 2:sta n:ään peräkkäin (2, 3, 4, ..., n);
  2. kehys 2 - ensimmäinen alkuluku;
  3. yliviivaa luettelosta kaikki viimeisellä löydetyllä alkuluvulla jaolliset luvut;
  4. etsi ensimmäinen merkitsemätön numero (merkityt numerot ovat yliviivattuja tai kehyksen sisällä olevia numeroita) ja sulje se kehykseen - tämä on toinen alkuluku;
  5. toista vaiheita 3 ja 4, kunnes merkitsemättömiä numeroita ei ole jäljellä.

Voit saada visuaalisemman käsityksen alkulukujen löytämismenetelmästä animaatiolla "The Sieve of Eratosthenes" (http://school-collection.edu.ru/).

Tarkasteltu toimintosarja on algoritmi, koska se täyttää seuraavat ominaisuudet:

  • diskreetti - alkulukujen löytämisprosessi on jaettu vaiheisiin;
  • ymmärrettävyys - jokainen komento on ymmärrettävissä 9. luokan oppilaalle, joka suorittaa tätä algoritmia;
  • varmuus - esiintyjä tulkitsee ja suorittaa jokaisen komennon yksiselitteisesti; on ohjeet komentojen suoritusjärjestyksestä;
  • tehokkuus - tulos saavutetaan tietyn määrän vaiheita jälkeen;
  • massamerkki - toimintosarja on sovellettavissa mille tahansa luonnolliselle n:lle.

Tarkasteltavien algoritmin ominaisuuksien avulla voimme antaa tarkemman määritelmän algoritmille.

3.1.4. Mahdollisuus automatisoida ihmisen toimintaa

Algoritmin kehittäminen on yleensä työvaltainen tehtävä, joka vaatii henkilöltä syvää tietoa, kekseliäisyyttä ja paljon aikaa.

Ongelman ratkaiseminen valmiilla algoritmilla edellyttää vain, että esiintyjä noudattaa tarkasti annettuja ohjeita.

Esimerkki 9. Pinosta, joka sisältää minkä tahansa määrän esineitä enemmän kuin kolme, kaksi pelaajaa ottaa vuorotellen yhden tai kaksi esinettä kumpikin. Voittaja on se, joka voi noutaa kaikki jäljellä olevat esineet seuraavalla siirrollaan.

Tarkastellaan algoritmia, jonka jälkeen ensimmäinen pelaaja varmistaa varmasti voiton.

  1. Jos pinossa olevien esineiden määrä on 3:n kerrannainen, anna periksi vastustajalle, muuten aloita peli.
  2. Lisää seuraavalla siirrollasi joka kerta vastustajasi ottamien esineiden lukumäärä kolmeen (jäljellä olevien objektien määrän on oltava 3:n kerrannainen).

Esiintyjä ei saa syventyä tekemisensä tarkoitukseen eikä perustella, miksi hän toimii näin eikä toisin, eli hän voi toimia muodollisesti. Esiintyjän kyky toimia muodollisesti tarjoaa mahdollisuuden automatisoida ihmisen toimintaa. Tätä varten:

  1. ongelman ratkaisuprosessi esitetään yksinkertaisten toimintojen sarjana;
  2. kone luodaan ( automaattinen laite), joka pystyy suorittamaan nämä toiminnot algoritmissa määritetyssä järjestyksessä;
  3. henkilö vapautetaan rutiinitoiminnasta, algoritmin suorittaminen uskotaan automaattiseen laitteeseen.

Tärkein

Esiintyjä - jokin esine (henkilö, eläin, tekninen laite), joka pystyy suorittamaan tietyn joukon komentoja. Muodollinen esiintyjä suorittaa aina saman komennon samalla tavalla. Jokaiselle muodolliselle suorittajalle voit määrittää: ratkaistavien tehtävien valikoiman, ympäristön, komentojärjestelmän ja toimintatavan.

Algoritmi on kuvaus tietylle suorittajalle tarkoitetusta toimintosarjasta, joka johtaa lähtötiedoista vaadittuun tulokseen, jolla on diskreettisyys, ymmärrettävyys, varmuus, tehokkuus ja massaluonne.

Esiintyjän kyky toimia muodollisesti tarjoaa mahdollisuuden automatisoida ihmisen toimintaa.

Kysymyksiä ja tehtäviä

  1. Mitä kutsutaan algoritmiksi?
  2. Etsi synonyymejä sanalle "resepti".
  3. Anna esimerkkejä koulussa opiskelemistasi algoritmeista.
  4. Kuka voi olla algoritmin toteuttaja?
  5. Anna esimerkki muodollisesta esiintyjästä. Anna esimerkki, kun henkilö toimii muodollisena esiintyjänä.
  6. Mitä komentoja robotin tulee suorittaa: a) kassanhoitaja kaupassa; b) talonmies; c) vartija?
  7. Mikä määrittää "tietokoneen" suorittajan suorittamien tehtävien kirjon?
  8. Ajattele esiintyjänä tekstinkäsittelyohjelma, saatavilla tietokoneellasi. Kuvaile tämän esiintyjän ja hänen ympäristönsä ratkaisemia tehtäviä.
  9. Mikä on tiimi, esiintyjien komentojärjestelmä?
  10. Listaa algoritmin tärkeimmät ominaisuudet.
  11. Mihin algoritmin ominaisuuden puuttuminen voi johtaa? Antaa esimerkkejä.
  12. Miksi on tärkeää pystyä suorittamaan algoritmi muodollisesti?
  13. Numerosarja muodostetaan seuraavan algoritmin mukaan: sekvenssin kaksi ensimmäistä numeroa on yhtä suuri kuin 1; Sarjan jokaisen seuraavan numeron katsotaan olevan yhtä suuri kuin kahden edellisen luvun summa. Kirjoita muistiin tämän sarjan 10 ensimmäistä termiä.
  14. Jotkin algoritmit hankkivat uuden ketjun yhdestä merkkijonosta seuraavasti. Ensin kirjoitetaan alkuperäinen merkkiketju, sen jälkeen kirjoitetaan alkuperäinen merkkiketju käänteisessä järjestyksessä, sitten kirjoitetaan se kirjain, joka seuraa venäjän aakkosissa alkuperäisen ketjun viimeisellä sijalla olleen kirjaimen jälkeen. Jos alkuperäisen ketjun viimeinen paikka on kirjain Z, niin seuraavaksi kirjaimeksi kirjoitetaan kirjain A. Tuloksena oleva ketju on algoritmin tulos. Esimerkiksi, jos alkuperäinen merkkiketju oli DOM, algoritmin tulos on ketju DOMMODN. Merkkijono COM annetaan. Kuinka monta kirjainta O on merkkiketjussa, joka saadaan, jos käytät algoritmia tähän ketjuun ja sitten soveltat algoritmia uudelleen sen työn tulokseen?
  15. Etsi Internetistä animaatio Eratosthenesin algoritmin vaiheista. Käytä Eratosthenesin algoritmia löytääksesi kaikki alkuluvut, jotka eivät ylitä 50:tä.
  16. Mikä on Turtlen suorittaman algoritmin tulos (katso esimerkki 5)?
      Toista 8 [Oikea 45 Eteenpäin 45]
  17. Kirjoita muistiin algoritmi Laskin-suorittimelle (esimerkki 6), joka sisältää enintään 5 komentoa:
      a) vastaanottaa numerosta 3 numeron 16;
      b) saada numerosta 1 numero 25.
  18. Suoritinkomentojen järjestelmä Konstruktori koostuu kahdesta komennosta, joille on annettu numerot:
      1 - määritä 2
      2 - jaa 2:lla

    Ensimmäisen mukaan oikealla olevaan numeroon lisätään 2, toisen mukaan luku jaetaan kahdella. Miten luku 8 muunnetaan, jos esiintyjä suorittaa algoritmin 22212? Luo tämän suorittimen komentojärjestelmään algoritmi, jonka mukaan luku 1 muunnetaan luvuksi 16 (algoritmi saa sisältää enintään 5 komentoa).

  19. Mihin soluun Robotin esiintyjä (esimerkki 7) tulisi sijoittaa, jotta se palaa siihen algoritmin 3241 suorittamisen jälkeen?

| § 2.1. Algoritmit ja toteuttajat

Oppitunti 14
§ 2.1. Algoritmit ja toteuttajat

Avainsanat:

Algoritmi
algoritmin ominaisuudet (diskreettisyys; ymmärrettävyys; varmuus; tehokkuus; massaluonne)
toimeenpanija
suorittajan ominaisuudet (ratkaistavien tehtävien valikoima; ympäristö; toimintatapa; komentojärjestelmä)
algoritmin muodollinen suoritus

2.1.1. Algoritmin käsite

Jokainen ihminen jokapäiväisessä elämässä, opiskelussa tai työssä ratkaisee valtavan määrän vaihtelevan monimutkaisia ​​ongelmia. Monimutkaiset ongelmat vaativat paljon ajattelua ratkaisun löytämiseksi; Ihminen ratkaisee yksinkertaisia ​​ja tuttuja tehtäviä ajattelematta, automaattisesti. Useimmissa tapauksissa kunkin ongelman ratkaisu voidaan jakaa yksinkertaisiin vaiheisiin (vaiheisiin). Moniin näistä tehtävistä (ohjelmiston asennus, kaapin kokoaminen, verkkosivuston luominen, teknisen laitteen käyttö, lentolipun ostaminen Internetin kautta jne.) on jo kehitetty ja tarjotaan vaiheittaiset ohjeet. joiden toteuttaminen voi johtaa haluttuun tulokseen.

Esimerkki 1. Tehtävä "Etsi kahden luvun aritmeettinen keskiarvo" ratkaistaan ​​kolmessa vaiheessa:

1) ajattele kahta numeroa;
2) lisää kaksi suunniteltua numeroa;
3) jaa saatu summa kahdella.

Esimerkki 2. Tehtävä "Talleta rahaa puhelintilillesi" on jaettu seuraaviin vaiheisiin:

1) mene maksupäätteelle;
2) valita teleoperaattori;
3) syötä puhelinnumero;
4) tarkista, että syötetty numero on oikein;
5) aseta seteli setelin vastaanottajaan;
6) odota viestiä rahan hyvityksestä tilillesi;
7) saada shekki.

Esimerkki 3."Piirrä hauska siili" -tehtävän ratkaisuvaiheet esitetään graafisesti:


Aritmeettisen keskiarvon löytäminen, rahan tallettaminen puhelintilille ja siilin piirtäminen ovat ensi silmäyksellä täysin erilaisia ​​prosesseja. Mutta niillä on yhteinen piirre: jokainen näistä prosesseista on kuvattu lyhyillä ohjeilla, joiden tiukka noudattaminen mahdollistaa vaaditun tuloksen saavuttamisen. Esimerkeissä 1-3 esitetyt käskysarjat ovat algoritmeja vastaavien ongelmien ratkaisemiseksi. Näiden algoritmien toteuttaja on henkilö.

Algoritmi voi olla kuvaus tietystä laskutoimitussarjasta (esimerkki 1) tai ei-matemaattisista vaiheista (esimerkit 2-3). Mutta joka tapauksessa, ennen sen kehittämistä alkuehdot (alkutiedot) ja saavutettava (tulos) on määriteltävä selvästi. Voidaan sanoa, että algoritmi on kuvaus ongelman ratkaisuvaiheiden sarjasta, joka johtaa lähtötiedoista vaadittuun tulokseen.

Yleisesti ottaen algoritmin toimintakaavio voidaan esittää seuraavasti (kuva 2.1).

Riisi. 2.1. Algoritmin yleinen kaavio

Algoritmit ovat koulussa opittujen lukujen yhteen-, vähennys-, kerto- ja jakolasääntöjä, monia kielioppisääntöjä, geometristen rakenteiden sääntöjä jne.

Animaatiot "Työskentely algoritmin kanssa" (193576), "Suurin yhteinen jakaja" (170363), "Pienin yhteinen kerrannainen" (170390) auttavat sinua muistamaan joitain venäjän kielen ja matematiikan tunneilla opittuja algoritmeja (http://sc.edu. ru /).

Esimerkki 4. Jotkut algoritmit johtavat siihen, että yhdestä merkkiketjusta saadaan uusi ketju seuraavasti:

1. Alkuperäisen merkkijonon pituus (merkeissä) lasketaan.
2. Jos alkuperäisen ketjun pituus on pariton, niin numero 1 lisätään oikeaan alkuperäiseen ketjuun, muuten ketju ei muutu.
3. Symbolit vaihdetaan pareittain (ensimmäinen toisen kanssa, kolmas neljännen kanssa, viides kuudennen kanssa jne.).
4. Numero 2 lisätään tuloksena olevan ketjun oikealle puolelle.

Tuloksena oleva ketju on algoritmin tulos.

Joten jos alkuketju oli A#B, niin algoritmin tulos on ketju #A1B2, ja jos alkuketju oli ABC@, niin algoritmin tulos on ketju BA@B2.

2.1.2. Algoritmin toteuttaja

Jokainen algoritmi on suunniteltu tietylle esiintyjälle.

Suoritin on esine (henkilö, eläin, tekninen laite), joka pystyy suorittamaan tietyn joukon komentoja.

Erottaa virallisia ja epävirallisia esiintyjiä. Muodollinen esiintyjä suorittaa aina saman komennon samalla tavalla. Epävirallinen toimeenpanija voi suorittaa komennon eri tavoin.

Tarkastellaanpa yksityiskohtaisemmin muodollisten esiintyjien joukkoa. Muodolliset suorittajat ovat erittäin erilaisia, mutta jokaiselle heistä voidaan määrittää seuraavat ominaisuudet: ratkaistavien tehtävien kirjo (tarkoitus), ympäristö, komentojärjestelmä ja toimintatapa.

Erilaisia ​​tehtäviä ratkaistavaksi. Jokainen esiintyjä on luotu ratkaisemaan tiettyjä ongelmia - rakentamaan symboliketjuja, suorittamaan laskelmia, rakentamaan piirustuksia tasolle jne.

Taiteilijaympäristö. Aluetta, ympäristöä, olosuhteita, joissa esiintyjä toimii, kutsutaan yleensä tietyn esiintyjän ympäristöksi. Minkä tahansa algoritmin lähdetiedot ja tulokset kuuluvat aina sen esiintyjän ympäristöön, jolle algoritmi on tarkoitettu.

Executor komentojärjestelmä. Esiintyjälle annettua ohjetta suorittaa erillinen suoritettu toiminto kutsutaan komennoksi. Joukko kaikkia komentoja, jotka joku suorittaja voi suorittaa, muodostaa tämän suorittajan komentojärjestelmän (SKI). Algoritmi on koottu ottaen huomioon tietyn esiintyjän kyvyt, toisin sanoen sen suorittavan esiintyjän komentojärjestelmässä.

Esittäjän toimintatilat. Useimmille esiintyjille tarjotaan suora ohjaus ja ohjelman ohjaustilat. Ensimmäisessä tapauksessa esiintyjä odottaa käskyjä henkilöltä ja suorittaa välittömästi jokaisen vastaanotetun komennon. Toisessa tapauksessa esiintyjälle annetaan ensin täydellinen komentosarja (ohjelma), jonka jälkeen hän suorittaa kaikki nämä komennot automaattisesti. Useat esiintyjät työskentelevät vain yhdessä nimetyistä tiloista.

Katsotaanpa esimerkkejä esiintyjistä.

Esimerkki 5. Esiintyjä Kilpikonna liikkuu tietokoneen näytöllä jättäen jäljen viivan muodossa.

Turtle-komentojärjestelmä koostuu seuraavista komennoista:

1. Eteenpäin n (jossa n on kokonaisluku) - saa kilpikonnan liikkumaan n askelta liikkeen suuntaan - suuntaan, johon sen pää ja vartalo ovat päin;
2. Oikea m (missä m on kokonaisluku) - aiheuttaa muutoksen kilpikonnan liikkeen suuntaan t astetta myötäpäivään.
Ennätys Toista k [<Команда1> <Команда2> ... <Командаn>] tarkoittaa, että suluissa oleva komentosarja toistetaan k kertaa.

Ajattele, mikä kuva ilmestyy näytölle, kun kilpikonna suorittaa seuraavan algoritmin.
Toista 12 [oikea 45 eteenpäin 20 oikea 45]

Esimerkki 6. Suoritinkomentojen järjestelmä Tietokone koostuu kahdesta komennosta, joille on annettu numerot:

1 - vähennä 1
2 - kerro 3:lla

Ensimmäinen niistä pienentää numeroa yhdellä, toinen lisää numeroa 3 kertaa. Algoritmeja kirjoitettaessa ilmoitetaan lyhyyden vuoksi vain komentojen numerot. Esimerkiksi algoritmi 21212 tarkoittaa seuraavaa komentosarjaa:

Kerro 3:lla
vähennä 1
kerro 3:lla
vähennä 1
kerro 3:lla

Tällä algoritmilla luku 1 muunnetaan 15:ksi:

((1 3 - 1) 3 - 1) 3 = 15.

Esimerkki 7. Performer Robot toimii ruudullisella kentällä, vierekkäisten solujen välissä voi olla seiniä. Robotti liikkuu kentän soluja pitkin ja voi suorittaa seuraavat komennot, jotka on numeroitu:


1 - ylöspäin
2 - alas
3 - oikea
4 jäljellä

Kun jokainen tällainen komento suoritetaan, robotti siirtyy viereiseen soluun osoitettuun suuntaan. Jos solujen välissä on seinä tähän suuntaan, robotti tuhoutuu.

Mitä tapahtuu robotille, jos se suorittaa komentosarjan 32323 (tässä numerot osoittavat komentonumeroita) ja alkaa liikkua solusta A? Millainen komentosarja robotin tulee suorittaa siirtyäkseen solusta A soluun B ilman, että se romahtaa osuessaan seiniin?

Kun kehität algoritmia:

1) tunnistetaan ongelmassa esiintyvät objektit, määritetään objektien ominaisuudet, objektien väliset suhteet ja mahdolliset toimet kohteiden kanssa;
2) lähtötiedot ja vaadittu tulos määritetään;
3) määritetään esiintyjän toimintojen järjestys, joka varmistaa siirtymisen lähtötiedoista tulokseen;
4) toimintojen järjestys tallennetaan suorittajan komentojärjestelmään sisältyvillä komennoilla.

Voidaan sanoa, että algoritmi on malli algoritmin suorittajan toiminnasta.

2.1.3. Algoritmin ominaisuudet

Jokaista ohjetta, käskysarjaa tai toimintasuunnitelmaa ei voida pitää algoritmina. Jokaisella algoritmilla on välttämättä seuraavat ominaisuudet: diskreetti, ymmärrettävyys, varmuus, tehokkuus ja massaluonne.

Diskreetti omaisuus tarkoittaa, että ongelman ratkaisupolku on jaettu erillisiin vaiheisiin (toimiin). Jokaisella toiminnolla on vastaava käsky (komento). Vasta yhden komennon suorittamisen jälkeen suorittaja voi aloittaa seuraavan komennon suorittamisen.

Ymmärrettävyysominaisuus tarkoittaa, että algoritmi koostuu vain esittäjän komentojärjestelmään kuuluvista komennoista, eli sellaisista komennoista, jotka esiintyjä voi havaita ja joiden mukaan hän voi suorittaa vaaditut toiminnot.

Varmuuden ominaisuus tarkoittaa, että algoritmi ei sisällä komentoja, joiden merkityksen esittäjä voi tulkita moniselitteisesti; Tilanteita ei voida hyväksyä, kun seuraavan komennon suorittamisen jälkeen esiintyjälle on epäselvää, mikä komento suorittaa seuraavaksi. Tämän ansiosta algoritmin tulos määräytyy yksiselitteisesti alkutietojoukon mukaan: jos algoritmia sovelletaan useita kertoja samaan alkutietosarjaan, tulos tuottaa aina saman tuloksen.

Suorituskykyominaisuus tarkoittaa, että algoritmin on annettava tulos äärellisen, mahdollisesti erittäin suuren askelmäärän jälkeen. Tässä tapauksessa tuloksena ei pidetä vain ongelman lausunnon määräämää vastausta, vaan myös johtopäätöstä siitä, että tämän ongelman ratkaisemista on mahdotonta jatkaa mistä tahansa syystä.

Massaluonteen ominaisuus tarkoittaa, että algoritmin on tarjottava sovelluksensa mahdollisuus ratkaista mikä tahansa ongelma tietyn luokan ongelmasta. Esimerkiksi toisen asteen yhtälön juurien löytämisalgoritmia tulisi soveltaa mihin tahansa toisen asteen yhtälöön, kadun ylittämisalgoritmia tulisi soveltaa missä tahansa kadulla, lääkkeen valmistusalgoritmia tulisi soveltaa minkä tahansa määrän valmistamiseen, jne.

Esimerkki 8. Tarkastellaan yhtä tapaa löytää kaikki alkuluvut, jotka eivät ylitä jotakin luonnollista lukua n. Tätä menetelmää kutsutaan "Eratosthenesin seulaksi" sen ehdottaneen antiikin kreikkalaisen tiedemiehen Eratosthenesin (3. vuosisadalla eKr.) mukaan.

Jos haluat löytää kaikki alkuluvut, jotka eivät ole suurempia kuin annettu luku n, seuraamalla Eratosthenes-menetelmää, sinun on suoritettava seuraavat vaiheet:

1) kirjoita peräkkäin kaikki luonnolliset luvut 2:sta n:ään (2, 3, 4, ..., n);
2) kehys 2 - ensimmäinen alkuluku;
3) yliviivaa luettelosta kaikki viimeisellä löydetyllä alkuluvulla jaolliset luvut;
4) etsi ensimmäinen merkitsemätön numero (merkityt numerot ovat yliviivattuja tai kehyksen sisällä olevia numeroita) ja sulje se kehykseen - tämä on toinen alkuluku;
5) toista vaiheita 3 ja 4, kunnes merkitsemättömiä numeroita ei ole jäljellä.

Voit saada visuaalisemman käsityksen alkulukujen löytämismenetelmästä käyttämällä animaatiota "Sieve of Eratosthenes" (180279), joka on julkaistu Unified Collection of Digital Educational Resources -kokoelmassa.

Tarkasteltu toimintosarja on algoritmi, koska se täyttää seuraavat ominaisuudet:

diskreetti- alkulukujen etsimisprosessi on jaettu vaiheisiin;
ymmärrettävyyttä- jokainen komento on tämän algoritmin suorittavan 8. luokan oppilaan ymmärrettävissä;
varmuutta- esiintyjä tulkitsee ja suorittaa jokaisen komennon yksiselitteisesti; on ohjeet komentojen suoritusjärjestyksestä;
tehokkuutta- tulos saavutetaan tietyn määrän vaiheita jälkeen;
massahahmo- toimintosarja on sovellettavissa mille tahansa luonnolliselle luvulle n.

Tarkasteltavien algoritmin ominaisuuksien avulla voimme antaa tarkemman määritelmän algoritmille.

Algoritmi on kuvaus tietylle suorittajalle tarkoitetusta toimintosarjasta, joka johtaa lähtötiedoista vaadittuun tulokseen, jolla on diskreettisyys, ymmärrettävyys, varmuus, tehokkuus ja massaluonne.

2.1.4. Mahdollisuus automatisoida ihmisen toimintaa

Algoritmin kehittäminen on yleensä työvaltainen tehtävä, joka vaatii henkilöltä syvää tietoa, kekseliäisyyttä ja paljon aikaa.

Ongelman ratkaiseminen valmiilla algoritmilla edellyttää vain, että esiintyjä noudattaa tarkasti annettuja ohjeita.

Esimerkki 9. Pinosta, joka sisältää minkä tahansa määrän esineitä enemmän kuin kolme, kaksi pelaajaa ottaa vuorotellen yhden tai kaksi esinettä kumpikin. Voittaja on se, joka voi noutaa kaikki jäljellä olevat esineet seuraavalla siirrollaan.

Tarkastellaan algoritmia, jonka jälkeen ensimmäinen pelaaja varmistaa varmasti voiton.

1. Jos pinossa olevien esineiden määrä on 3:n kerrannainen, anna periksi vastustajalle, muussa tapauksessa aloita peli ottamalla 1 tai 2 esinettä niin, että jäljellä olevien esineiden määrä on 3:n kerrannainen.
2. Lisää seuraavalla siirrollasi vastustajasi omien esineiden lukumäärä joka kerta kolmeen (jäljellä olevien objektien määrän on oltava 3:n kerrannainen).

Esiintyjä ei saa syventyä tekemisensä tarkoitukseen eikä perustella, miksi hän toimii näin eikä toisin, eli hän voi toimia muodollisesti. Esiintyjän kyky toimia muodollisesti tarjoaa mahdollisuuden automatisoida ihmisen toimintaa. Tätä varten:

1) ongelman ratkaisuprosessi esitetään yksinkertaisten operaatioiden sarjana;
2) luodaan kone (automaattilaite), joka pystyy suorittamaan nämä toiminnot algoritmissa määritellyssä järjestyksessä;
3) henkilö vapautetaan rutiinitoiminnasta, algoritmin suorittaminen uskotaan automaattiseen laitteeseen.

TÄRKEIN

Toteuttaja- jokin esine (henkilö, eläin, tekninen laite), joka pystyy suorittamaan tietyn komentosarjan.

Muodollinen esiintyjä suorittaa aina saman komennon samalla tavalla. Voit määrittää kullekin viralliselle toimeenpanijalle: ratkaistavat tehtävät, ympäristö, komentojärjestelmä ja toimintatapa.

Algoritmi- kuvaus tietylle esiintyjälle tarkoitetusta toimintosarjasta, joka johtaa lähtötiedoista vaadittuun tulokseen, jolla on diskreetin, ymmärrettävyyden, varmuuden, tehokkuuden ja massaluonteen ominaisuuksia.

Esiintyjän toimintakyky muodollisesti tarjoaa mahdollisuuden automatisoida ihmisen toimintaa.

Kysymyksiä ja tehtäviä

1. Lue kappaleen esitysmateriaalit sähköinen hakemus oppikirjaan. Täydentääkö esitys kappaleen tekstin sisältämää tietoa? Millä dioilla voisit täydentää esitystäsi?

2. Mitä kutsutaan algoritmiksi?

3. Valitse synonyymit sanalle "resepti".

4. Anna esimerkkejä koulussa opiskelemistasi algoritmeista.

5. Kuka voi olla algoritmin toteuttaja?

6. Anna esimerkki muodollisesta esiintyjästä. Anna esimerkki, kun henkilö toimii muodollisena esiintyjänä.

7. Mikä määrittää "tietokoneen" suorittajan suorittamien tehtävien kirjon?

8. Ajattele tietokoneesi tekstinkäsittelyohjelmaa suorittajana. Kuvaile tämän esiintyjän ja hänen ympäristönsä ratkaisemia tehtäviä.

9. Mikä on tiimi, esiintyjien komentojärjestelmä?

10. Mitä komentoja robotin tulee suorittaa seuraavat toiminnot:

a) kassalla liikkeessä;
b) talonmies;
c) vartija?

11. Listaa algoritmin pääominaisuudet.

12. Mihin algoritmin ominaisuuden puuttuminen voi johtaa? Antaa esimerkkejä.

13. Mitä merkitystä on kyvyllä suorittaa muodollisesti algoritmi?

14. Numerosarja muodostetaan seuraavan algoritmin mukaan: sekvenssin kaksi ensimmäistä numeroa on yhtä suuri kuin 1; Sarjan jokaisen seuraavan numeron katsotaan olevan yhtä suuri kuin kahden edellisen luvun summa. Kirjoita muistiin tämän sarjan 10 ensimmäistä termiä. Ota selvää, mikä tämän sarjan nimi on.

15. Tietty algoritmi saa uuden ketjun yhdestä merkkijonosta seuraavasti. Ensin kirjoitetaan alkuperäinen merkkiketju, sen jälkeen kirjoitetaan alkuperäinen merkkiketju käänteisessä järjestyksessä, sitten kirjoitetaan se kirjain, joka seuraa venäjän aakkosissa alkuperäisen ketjun viimeisellä sijalla olleen kirjaimen jälkeen. Jos kirjain “I” on alkuperäisen ketjun viimeisellä paikalla, kirjain “A” kirjoitetaan seuraavaksi kirjaimeksi. Tuloksena oleva ketju on algoritmin tulos. Esimerkiksi, jos alkuperäinen merkkiketju oli "HOUSE", algoritmin tuloksena on ketju "DOMMODN". Merkkijono "COM" annetaan. Kuinka monta kirjainta "O" on merkkiketjussa, joka saadaan, jos käytät algoritmia tähän ketjuun ja käytät sitten algoritmia uudelleen sen työn tulokseen?

16. Etsi Internetistä animaatio Eratosthenes-algoritmin vaiheista. Käytä Eratosthenesin algoritmia löytääksesi kaikki alkuluvut, jotka eivät ylitä 50:tä.

17. Mikä on Turtle-algoritmin suorittamisen tulos (katso esimerkki 5)?

18. Kirjoita muistiin Calculator-suoritusohjelman algoritmi (katso esimerkki 6), joka sisältää enintään 5 komentoa:

a) vastaanottaa numerosta 3 numeron 16;
b) saada numerosta 1 numero 25.

19. Esittäjien komentojärjestelmä Konstruktori koostuu kahdesta komennosta, joille on annettu numerot:

1 - määritä 2
2 - jaa 2:lla

Ensimmäisen mukaan oikealla olevaan numeroon lisätään 2, toisen mukaan luku jaetaan kahdella. Miten luku 8 muunnetaan, jos esiintyjä suorittaa algoritmin 22212? Luo tämän suorittimen komentojärjestelmään algoritmi, jonka mukaan luku 1 muunnetaan luvuksi 16 (algoritmi saa sisältää enintään 5 komentoa).

20. Mihin soluun Robotin esiintyjä (esimerkki 7) tulee sijoittaa palatakseen siihen algoritmin 3241 suorittamisen jälkeen?

Ilmaiset ohjelmistot:

KuMir-järjestelmä - Joukko koulutusmaailmoja (lataa ohjelma-arkisto verkkosivustolta) tai vieraile KuMir-sivulla ((http://www.niisi.ru/kumir/)

Keskeytä AdBlock tällä sivustolla.

Tällä oppitunnilla tarkastellaan joitain teoreettisia käsitteitä, jotka formalisoivat ohjelmoinnin käsitteen. Samalla muotoilemme tarkemmin koulutuksesi päätehtävän.

Aluksi ehdotan, että pelaat hieman seuraavalla lasten lelulla. Suorita viisi ensimmäistä tehtävää, palaa takaisin ja jatka oppitunnin lukemista.

Kuva 1 Kuvakaappaus pelikentästä code.org:ssa

Toivon, että kaikki meni sinulle. Kuvaamme nyt tämän esimerkin avulla useita peruskäsitteitä:

  • toimeenpanija;
  • esiintyjien komentojen järjestelmä;
  • algoritmi.

Lelussa ohjaamme punaista lintua. Jokaisen vaiheen tavoitteena on saada lintu sian luo. Lintu voi suorittaa tiettyjä komentoja, esimerkiksi: aja eteenpäin, käänny vasemmalle, käänny oikealle jne.

Henkilöä, konetta tai laitetta, joka voi suorittaa joitain komentoja, kutsutaan toimeenpanijaksi. Tässä lelussa esiintyjä on ilmeisesti lintu. Kutsutaan komentojoukko, jonka esiintyjä ymmärtää ja voi suorittaa toteuttajakomentojen järjestelmä.

Komentosarjaa, joka esiintyjän on suoritettava ratkaistakseen ongelman, kutsutaan algoritmiksi.

On tarpeen keskittyä useisiin kohtiin.

Suorittaja voi suorittaa vain ne komennot, jotka sisältyvät hänen komentojärjestelmäänsä.

Tämä tarkoittaa esimerkiksi sitä, että et voi kirjoittaa lintuesiintyjälle: "Mene sikalle!" Voit kirjoittaa sen tarkemmin, mutta mitään ei tapahdu, koska... tällaisten komentojen suorittaja ei tiedä.

Voit kirjoittaa muistiin käytettävissä olevat komennot missä tahansa oikeaksi katsomassasi järjestyksessä. Tehtäväsi ohjelmoijana on jakaa suuri monimutkainen tehtävä pieniin yksittäisiin vaiheisiin, joista jokainen on esiintyjälle ymmärrettävissä. "Haja ja hallitse" -periaate toimii jälleen.

Esiintyjä tekee täsmälleen sen, mitä algoritmi käskee hänen tekemään.

Lintuesiintyjä on erittäin luottavainen. Hän ei kyseenalaista mitä kirjoitat ohjelmaan. Jos esimerkiksi unohdat kääntää linnun, se törmää seinään. Siksi sinun on seurattava kaikkea itse.

Tulevat ohjelmasi eivät usein toimi toivotulla tavalla. Virheitä sattuu kaikille. Tässä on tärkeää ymmärtää, että tietokone ei ole tyhmä, vaan teit virheen algoritmissa. Älä ole kuin huonot ohjelmoijat, joille ohjelma on aina syyllinen kaikkeen.

Siirrytään nyt kuvaavasta esimerkistä tietokonetodellisuuteen. Kirjoitamme ohjelmia tietokoneelle, mikä tarkoittaa, että tietokone meidän tapauksessamme on esiintyjä. Komentojärjestelmä on C-kielen vakiofunktioita ja -rakenteita.

Mikä on ohjelmoinnin perusteiden opettamisen päätavoite? Hallitse algoritmisen ajattelun taito. Eli opettele kirjoittamaan ratkaisu erilaisiin ongelmiin tietyn esiintyjän (meidän tapauksessamme tietokoneen) algoritmin muodossa.

Eli yhteenvetona:

Tietokoneohjelma– ohjelmointikielellä kirjoitettu algoritmi ongelman ratkaisemiseksi.

Algoritmi on tarkka kuvaus toimintojen järjestyksestä, jotka esiintyjän on suoritettava ratkaistakseen ongelman.

Suoritin on henkilö tai jokin laite, joka voi ymmärtää ja suorittaa tietyn joukon komentoja.

Sana "algoritmi" tulee 800-luvun arabimatemaatikon al-Khwarizmin nimestä, joka muotoili säännöt aritmeettisten operaatioiden suorittamiselle.

Algoritmi– tarkka ja ymmärrettävä ohje esiintyjälle suorittaa lopullinen komentosarja, joka johtaa alkutiedoista alkutulokseen.

Esimerkkejä: päivittäinen rutiini, ruoanlaittojärjestys, ohjeet jne.)

Algoritmin toteuttaja– tämä on se, joka suorittaa algoritmin (ihminen, eläin, kone, tietokone).

Executor komentojärjestelmä- tämä on koko joukko komentoja, jotka esiintyjä osaa suorittaa (ymmärtää). Algoritmi voidaan rakentaa vain suorittimen komentojärjestelmään sisältyvistä komennoista.

Esimerkiksi, esiintyjä Robotti voi suorittaa komentoja eteenpäin, taaksepäin, vasemmalle, oikealle, maalata. Se liikkuu seinän rajoittaman solukentän poikki, joka sisältää seinät. Robotti ei voi mennä seinän läpi.

Algoritmin ominaisuudet:

1.Suorituskyky (raaja)– kyky saada tulos lähtötiedoista äärellisessä määrässä vaiheita. (Esimerkiksi suoritettaessa algoritmia 2 luvun lisäämiseksi, summa pitäisi saada).

2.Massahahmo– kyky soveltaa algoritmia suureen määrään erilaisia ​​lähdetietoja. (Voit esimerkiksi lisätä mitkä tahansa 2 numeroa, kun tiedät summausalgoritmin.)

3.Determinismi(varmuus, tarkkuus) – jokaisen komennon tulee yksilöllisesti määrittää esiintyjän toiminta.

4.Ymmärrettävyys– komento on kirjoitettava kielellä, jota tietokone ymmärtää.

5.Diskreetti– algoritmin jakaminen erillisiin komentoihin.

Tapoja kirjoittaa algoritmi:

1) Luonnollisella kielellä – tallennus erillisten komentojen muodossa ihmisille ymmärrettävällä kielellä.

2) Graafinen – vuokaavioiden kielellä geometrisia muotoja käyttäen (soikea, suorakaide, suuntaviiva, rombi).

3) Algoritmisella kielellä - kieli ohjelmoinnin opetuksen algoritmien kirjoittamiseen. Komennot kirjoitetaan venäjäksi.

4) Ohjelmointikielellä - ohjelma. Ohjelmointikielet: Basic, Pascal, C, Visual Basic.

B7.Perusalgoritmiset rakenteet: seuraaminen, haarautuminen, silmukka; kuva lohkokaavioissa. Tehtävien jakaminen osatehtäviin. Apualgoritmit.

Algoritminen suunnittelu. Algoritmien sisällä voidaan erottaa askelryhmiä, jotka eroavat sisäiseltä rakenteeltaan - algoritmiset rakenteet.

Algoritmisen perusrakenteet ovat lineaarinen vaihesarja (tai seuraavat), haarautuminen ja silmukka.

Kutsutaan algoritmi, jossa komennot suoritetaan peräkkäin peräkkäin lineaarinen algoritmi.

Tältä lineaarinen algoritmi näyttää lohkokaaviokielellä:

Esimerkki: algoritmi tietokoneen käynnistämiseksi:

  1. Kytke tietokoneeseen virta (paina virtapainiketta ylijännitesuoja).
  2. Kytke näyttö ja tulostin päälle.
  3. Klikkaus Virtanappi päällä järjestelmän yksikkö.
  4. Odota latausta käyttöjärjestelmä ja työpöydän ulkonäkö.
  5. Mene töihin.

Tässä algoritmissa kaikki toiminnot on suoritettava peräkkäin peräkkäin: et voi aloittaa työtä, jos virtaa tai näyttöä ei ole kytketty päälle.

Algoritmiseen rakenteeseen" haarautuminen» mukana kunto, ehdon totuudesta riippuen suoritetaan yksi tai toinen komentosarja (sarja).

Ehto on väite, joka voi olla totta tai epätosi. Ehdossa kahta numeroa, kahta merkkijonoa, kahta muuttujaa tai merkkijonolauseketta verrataan toisiinsa käyttämällä vertailuoperaattoreita (>,<, =, >=, <=).

Tallennus algoritmisella kielellä: IfCondition Then Series 1 (If Kunto totta, sitten totta Jakso 1, Jos Kunto epätosi, mitään ei suoriteta). Esimerkki: Jos tänään on sunnuntai, sinun ei tarvitse mennä kouluun. Täysi haarautuminen

Algoritmisissa rakenteissa sykli sisältää joukon komentoja, jotka suoritetaan toistuvasti. Tätä komentosarjaa kutsutaan silmukan runko.

Syklisiä algoritmirakenteita on kahdenlaisia:

  • vastakkaiset silmukat, jossa silmukan runko suoritetaan tietyn määrän kertoja;
  • ehdolliset silmukat, jossa silmukan runkoa suoritetaan niin kauan kuin ehto täyttyy.

Lenkki laskurilla– käytetään, kun on etukäteen tiedossa, kuinka monta toistoa silmukan rungosta on suoritettava.

Algoritmi ja sen ominaisuudet.

Algoritmi- selkeä ja tarkka ohje esiintyjälle suorittaa lopullinen komentosarja, joka johtaa alkutiedoista haluttuun tulokseen.

Algoritmin toteuttaja- tämä on kohde tai kohde, jota algoritmi on suunniteltu ohjaamaan.

Esiintyjän komentojärjestelmä (SCS) on koko joukko komentoja, jotka esiintyjä voi suorittaa.

Algoritmin ominaisuudet: ymmärrettävyys, tarkkuus, rajallisuus.

Selkeys: algoritmi koostuu vain suorittajan SKI:ssä olevista komennoista.

Tarkkuus: Jokainen ohjausalgoritmin komento määrittää suorittajan yksiselitteisen toiminnan.

Viimeistely (tai suorituskyky): Algoritmin suorittamisen on johdettava tulokseen äärellisessä määrässä vaiheita.

Esittäjän ympäristö: ympäristö, jossa esiintyjä toimii.

Esiintyjän tietty toimintosarja koskee aina joitain lähdetiedot. Esimerkiksi ruoanvalmistukseen kulinaarisen reseptin mukaan tarvitset asianmukaiset tuotteet (tiedot). Matemaattisen ongelman ratkaisemiseksi (neliöyhtälön ratkaiseminen) tarvitset alustavat numeeriset tiedot (yhtälön kertoimet).

Täysi tietojoukko: tarvittava ja riittävä tietojoukko tehtävän ratkaisemiseksi (halutun tuloksen saavuttamiseksi).

Menetelmät algoritmien kirjoittamiseen.

Yleisimmät menetelmät ovat: graafinen, sanallinen ja muodossa tietokoneohjelmat.

Graafinen menetelmä sisältää tiettyjen graafisten symbolien - lohkojen - käytön.

Estä nimi Lohkon nimitys Sisältö
Käsitellä asiaa
Tietojenkäsittely
Päätöksenteko
Looginen lohko tietyn ehdon totuuden tai valheellisuuden tarkistamiseksi
Tiedonsiirto
Tietojen syöttö tai tulostus
Aloita, lopeta
Ohjelman alku tai loppu
Muokkaus
Jaksottaisen prosessin organisointi - sykliotsikko

Lohkojen kokoelma muodostaa ns algoritmin vuokaavio.

Sanallinen tallennus Algoritmit keskittyvät ensisijaisesti ihmisesittäjään ja mahdollistavat käskyjen erilaisen tallennuksen, mutta tallennuksen on oltava melko tarkkaa.

Kun kirjoitat algoritmeja muotoon ohjelmia tietokoneet käyttävät ohjelmointikieliä - järjestelmiä ohjeiden koodaukseen ja niiden käyttöä koskevia sääntöjä. Ohjelmien muodossa oleville algoritmeille on ominaista korkea formalisaatioaste.

Algoritmit määrien kanssa työskentelemiseen. Algoritmisen perusrakenteet.

Määrä on yksittäinen tietoobjekti, jolla on nimi, arvo ja tyyppi.

Summien kanssa työskentelyn algoritmien suorittaja voi olla henkilö tai erityinen tekninen laite, kuten tietokone. Tällaisella esiintyjällä täytyy olla muisti määrien varastointiin.

Määrät voivat olla vakioita tai muuttuvia.

Vakioarvo (vakio) ei muuta arvoaan algoritmin suorittamisen aikana. Vakio voidaan ilmaista omalla arvollaan (luvut 10, 3.5) tai symbolisella nimellä (luku ).

Muuttuva arvo voi muuttaa arvoa algoritmin suorittamisen aikana. Muuttuja merkitään aina symbolisella nimellä (X, A, R5 jne.).

Määrätyyppi määrittää arvojoukon, jonka arvo voi tehdä, ja joukon toimintoja, jotka voidaan suorittaa tällä arvolla. Suurten perustyypit: kokonaisluku, todellinen, symbolinen, looginen.

Ilmaisu- tietue, joka määrittää määrien toimintojen järjestyksen. Lauseke voi sisältää vakioita, muuttujia, operaatiomerkkejä ja funktioita. Esimerkki:

A + B; 2*X-Y; K + L - sin(X)

Asennuskomento on suorittajan komento, jonka tuloksena muuttuja saa uuden arvon. Komentomuoto:

muuttujan nimi>:=lauseke>

Asennuskomento suoritetaan seuraavassa järjestyksessä: ensin se lasketaan, sitten tuloksena oleva arvo annetaan muuttujalle.

Esimerkki. Olkoon muuttujan A arvo 6. Minkä arvon muuttuja A saa komennon suorittamisen jälkeen: A:= 2 * A - 1?
Ratkaisu. Laskemalla lausekkeen 2*A - 1, jossa on A=6, saadaan luku 11. Tämä tarkoittaa, että muuttujan A uusi arvo on 11.

Seuraavassa oletetaan, että määrien kanssa työskentelyn algoritmien suorittaja on tietokone. Mikä tahansa algoritmi voidaan rakentaa komennoista tehtäviä, syöttö, ulostulo, haarautuminen Ja sykli.

Syötä komento- komento, jolla muuttujien arvot asetetaan syöttölaitteiden (esimerkiksi näppäimistön) kautta.

Esimerkki: syöttö A - muuttujan A arvon syöttäminen tietokoneen näppäimistöltä.

Tulostuskomento: Komento, joka näyttää suuren arvon tietokoneen tulostuslaitteessa (kuten näytössä).

Esimerkki: johtopäätös X - X-muuttujan arvo näkyy näytöllä.

Haarakomento- jakaa algoritmin kahdeksi poluksi tietyn ehdon mukaan; sitten algoritmin suoritus siirtyy yleiseen jatkoon. Haaroittuminen voi olla täydellistä tai epätäydellistä. Haaroittamisen kuvaus lohkokaavioissa ja algoritmisella kielellä:

Tässä sarja tarkoittaa yhtä tai useampaa peräkkäistä komentoa; kv - haarautumisen loppu.

Loop-komento varmistaa komentosarjan (silmukan rungon) toistuvan suorittamisen tiettyjen ehtojen perusteella.

Silmukka ennakkoehdoin- silmukka, jonka suoritus toistetaan, kunnes silmukan ehto on tosi:

Silmukka parametrin kanssa- silmukan rungon toistuva suoritus, kun kokonaislukuparametri kulkee kaikkien arvojen joukon läpi alkuperäisestä (In) viimeiseen (Ik):

Esimerkki. Kaksi yksinkertaista murtolukua annetaan. Luo algoritmi murtoluvun saamiseksi, joka on tulos niiden jaosta.
Ratkaisu. Algebrallisessa muodossa ongelman ratkaisu näyttää tältä:
a/b: c/d = a*d/b*c = m/n
Alkutiedot ovat neljä kokonaislukusuuretta: a, b, c, d. Tuloksena on kaksi kokonaislukua m ja n.

alg jakamalla murtolukuja
ehjänä a, b, c, d, m, n
aloita syöttö a, b, c, d
m:=a*d
n:=b*c
lähtö "Numerator=", m
lähtö "Denominator=", n
koi

Huomaa, että tulostaaksesi tekstiä (mikä tahansa merkkijono), se on kirjoitettava lainausmerkeissä komennossa johtopäätös.

  1. Efimova O., Morozov V., Ugrinovich N. Tietotekniikan kurssi tietojenkäsittelytieteen perusteilla. Opetusohjelma lukiota varten. - M.: LLC "AST Publishing House"; ABF, 2000
  2. Tietojenkäsittelytieteen ongelmakirja-työpaja. 2 nidettä/toim. I. Semakina, E. Henner. - M.: Perustiedon laboratorio, 2001.
  3. Ugrinovich N. Tietojenkäsittelytiede ja tietotekniikka. 10-11 luokka - M.: Perustietojen laboratorio, JSC "Moscow Textbooks", 2001

Tehtävät ja testit aiheesta "Algoritmit ja suorittajat"

  • Artist Management valmistelija - Algoritmit 6. luokka

    Oppitunnit: 4 Tehtävät: 9 Tenttiä: 1

  • 2 tehtävää: 9 koetta: 1

Rakas opiskelija!

Aiheen "Algoritmit ja toteuttajat" tuntemus on välttämätöntä ensisijaisesti ohjelmoinnin jatko-opiskelua varten. Ohjelmoinnin opiskelun perustaksi valittiin QBasic-ohjelmointikieli. Hylkäsimme ajatuksesta Visual Basicin tai minkä tahansa muun olioohjelmointikielen sisällyttämisestä kurssillemme, koska tätä lähestymistapaa ei ole vielä käytetty laajasti useimmissa Venäjän federaation toisen asteen kouluissa. Lisäksi olioohjelmointi perustuu klassisen Dos-ohjelmoinnin periaatteisiin.

Kurssi on suunniteltu yleissivistävään koulutukseen. Kun valmistaudut yliopistojen tietotekniikan pääsykokeisiin, sinun on perehdyttävä ohjelmoinnin opiskelun erityispiirteisiin tietyssä yliopistossa. Joissakin tapauksissa tarvitaan perusteellinen tutkimus useista aiheista, esimerkiksi "Matriisit". Sinun tulee kiinnittää tähän huomiota ohjelmointikirjallisuutta opiskellessa; ehkä sinun kannattaa käyttää metodologisia suosituksia kokeisiin valmistautumisesta, jotka julkaistaan ​​tällä hetkellä useimmissa korkeakouluissa.

Yhteenvetona toteamme, että "lentoharrastuksen" saavuttaminen ohjelmoinnissa on mahdollista vain jatkuvalla harjoittelulla ja ratkaisemalla erityisiä sovellettavia ongelmia.




Ylös