Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Pogreške
  • Koncept izvršitelja algoritma je sustav izvršnih naredbi. Vrste algoritama - Hipermarket znanja

Koncept izvršitelja algoritma je sustav izvršnih naredbi. Vrste algoritama - Hipermarket znanja

Algoritam i njegova svojstva.

Algoritam- razumljiva i precizna uputa izvođaču da izvrši konačni slijed naredbi koji vodi od početnih podataka do željenog rezultata.

Izvršitelj algoritma- ovo je objekt ili subjekt za koji je sastavljen algoritam.

Izvođačev naredbeni sustav (SKI) je cijeli skup naredbi koje izvođač može izvršiti.

Svojstva algoritma: razumljivost, točnost, konačnost.

razumljivost: algoritam je sastavljen samo od naredbi uključenih u izvođačev SKI.

Točnost: svaka naredba kontrolnog algoritma određuje jednoznačno djelovanje izvršitelja.

Konačnost (ili izvedba): izvođenje algoritma treba dovesti do rezultata u konačnom broju koraka.

Izvođačevo okruženje: okruženje u kojem izvođač funkcionira.

Za neke uvijek vrijedi određeni slijed radnji izvođača osnovni podaci... Na primjer, za pripremu jela prema receptu potrebni su vam odgovarajući proizvodi (podaci). Za rješavanje matematičkog problema (rješavanje kvadratne jednadžbe) potrebni su vam početni numerički podaci (koeficijenti jednadžbe).

Kompletan skup podataka: potreban i dovoljan skup podataka za rješavanje problema (dobivanje željenog rezultata).

Metode za pisanje algoritama.

Najčešće metode su: grafički, verbalni i u obliku računalni programi.

Grafički način pretpostavlja korištenje određenih grafičkih simbola – blokova.

Naziv bloka Oznaka bloka Sadržaj
Postupak
Obrada podataka
Odlučivanje
Logička jedinica za provjeru istinitosti ili netočnosti nekog uvjeta
Prijenos podataka
Unos ili izlaz informacija
Počni, stani
Početak ili kraj programa
Izmjena
Ciklična organizacija procesa - zaglavlje ciklusa

Zbirka blokova tvori tzv dijagram toka.

Verbalni zapis algoritma je prvenstveno usmjeren na čovjeka izvođača i omogućuje različito bilježenje instrukcija, ali snimka mora biti dovoljno točna.

Prilikom pisanja algoritama u obrascu programe za računala se koriste programski jezici - sustavi kodiranja na recept i pravila za njihovu upotrebu. Pisanje algoritama u obliku programa karakterizira visok stupanj formalizacije.

Algoritmi za rad s količinama. Osnovne algoritamske strukture.

Količina je zaseban informacijski objekt koji ima ime, vrijednost i vrstu.

Izvršitelj algoritama za rad s veličinama može biti osoba ili poseban tehnički uređaj, kao što je računalo. Takav izvođač mora imati memorija za pohranjivanje vrijednosti.

Količine su konstantne i promjenjive.

Konstantna vrijednost (konstanta) ne mijenja svoju vrijednost tijekom izvođenja algoritma. Konstanta se može označiti vlastitom vrijednošću (brojevi 10, 3.5) ili simboličkim imenom (broj).

Varijabilna može promijeniti vrijednost tijekom izvođenja algoritma. Varijabla je uvijek označena simboličkim imenom (X, A, R5, itd.).

Vrsta količine definira skup vrijednosti koje vrijednost može poduzeti i skup radnji koje se mogu izvesti na toj vrijednosti. Osnovne vrste vrijednosti: cjelobrojne, realne, simboličke, logičke.

Izraz- zapis koji definira slijed radnji na vrijednostima. Izraz može sadržavati konstante, varijable, znakove operacije, funkcije. Primjer:

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

Naredba dodjele je naredba izvršitelja, kao rezultat koje varijabla dobiva novu vrijednost. Format naredbe:

naziv varijable>: = izraz>

Naredba dodjele se izvršava sljedećim redoslijedom: prvo se izračunava, a zatim se rezultirajuća vrijednost dodjeljuje varijabli.

Primjer. Neka varijabla A ima vrijednost 6. Koju će vrijednost dobiti varijabla A nakon izvršenja naredbe: A: = 2 * A - 1?
Riješenje. Evaluacija izraza 2 * A - 1 s A = 6 dat će broj 11. Dakle, nova vrijednost varijable A bit će jednaka 11.

U nastavku će se pretpostaviti da izvršitelj algoritama za rad s veličinama je računalo... Bilo koji algoritam može se izgraditi iz naredbi zadaci, ulazni, povlačenje, grananje i ciklus.

Naredba za unos- naredba kojom se vrijednosti varijabli postavljaju putem ulaznih uređaja (na primjer, tipkovnice).

Primjer: ulazni A - unos vrijednosti varijable A s tipkovnice računala.

Izlazna naredba: naredba kojom se vrijednost neke vrijednosti prikazuje na izlaznom uređaju računala (na primjer, na monitoru).

Primjer: izlaz X - na ekranu se prikazuje vrijednost varijable X.

Naredba podružnice- dijeli algoritam na dva puta ovisno o određenom uvjetu; tada izvođenje algoritma ide u opći nastavak. Grananje je potpuno i nepotpuno. Opis grananja u blok dijagramima i na algoritamskom jeziku:

Ovdje se niz odnosi na jednu ili više uzastopnih naredbi; kv - kraj grananja.

Naredba ciklusa omogućuje ponovno izvršavanje niza naredbi (tijelo petlje) prema nekom uvjetu.

Petlja s preduvjetom- petlja čije se izvođenje ponavlja sve dok je uvjet petlje istinit:

Petlja s parametrom- ponavljano izvođenje tijela petlje dok se cjelobrojni parametar provlači kroz skup svih vrijednosti od početne (In) do konačne (Ik):

Primjer. Zadana su dva jednostavna razlomka. Napravite algoritam za dobivanje razlomka koji je rezultat njihovog dijeljenja.
Riješenje. U algebarskom obliku, rješenje problema izgleda ovako:
a / b: c / d = a * d / b * c = m / n
Početni podaci su četiri cjelobrojne vrijednosti: a, b, c, d. Rezultat su dva cijela broja m i n.

alg podjela razlomaka
netaknuta a, b, c, d, m, n
početak unosa a, b, c, d
m: = a * d
n: = b * c
izlaz "Numerator =", m
izlaz "Nazivnik =", n
koi

Imajte na umu da za izlaz teksta (bilo koji niz znakova), on mora biti napisan u navodnicima u naredbi izlaz.

  1. Efimova O., Morozov V., Ugrinovich N. Tečaj računalne tehnologije s osnovama informatike. Udžbenik za starije razrede. - M .: OOO "AST izdavačka kuća"; ABF, 2000
  2. Knjiga zadataka iz informatike. U 2 sveska / Ed. I. Semakin, E. Henner. - M .: Laboratorij za temeljna znanja, 2001
  3. Ugrinovich N. Informatika i informacijske tehnologije. 10-11 razred - M .: Laboratorij za osnovna znanja, JSC "Moskovski udžbenici", 2001.

Zadaci i testovi na temu "Algoritmi i izvršitelji"

  • Sastavljač upravljanja izvođačima - Algoritmi 6. razreda

    Lekcije: 4 Zadaci: 9 Testovi: 1

  • 2 zadatka: 9 testova: 1

Dragi studente!

Poznavanje teme "Algoritmi i izvršitelji" potrebno je prije svega za daljnje proučavanje programiranja. Kao temelj za učenje programiranja odabran je programski jezik QBasic. Odustali smo od ideje uključivanja Visual Basica ili bilo kojeg drugog objektno orijentiranog programskog jezika u naš tečaj, budući da ovaj pristup još nije široko korišten u većini srednjih škola u Ruskoj Federaciji. Osim toga, objektno orijentirano programiranje temelji se na principima klasičnog programiranja u Dosu.

Naš tečaj je osmišljen za program općeg obrazovanja. Prilikom pripreme za prijemne ispite iz informacijske tehnologije na sveučilište, morate se upoznati sa specifičnostima studiranja programiranja na ovom sveučilištu. U nekim slučajevima je potrebno dubinsko proučavanje niza tema, kao što su npr. "Nizovi". Na to treba obratiti pažnju prilikom proučavanja literature o programiranju, možda bi se trebali poslužiti metodološkim preporukama za pripremu ispita koje su trenutno objavljene na većini visokih učilišta.

Zaključno napominjemo da je postizanje "akrobatike" u programiranju moguće samo uz stalnu praksu i rješavanje konkretnih primijenjenih problema.

Riječ "algoritam" dolazi od imena arapskog matematičara al-Khwarizmija iz 9. stoljeća, koji je formulirao pravila za izvođenje aritmetičkih operacija.

Algoritam- točna i razumljiva uputa izvođaču da izvrši konačni slijed naredbi koji vodi od početnih podataka do početnog rezultata.

Primjeri: dnevna rutina, postupak kuhanja, upute itd.)

Izvršitelj algoritma Je onaj koji izvršava algoritam (čovjek, životinja, stroj, računalo).

Izvršiteljev zapovjedni sustav- to je cijeli skup naredbi koje izvođač zna izvesti (razumije). Algoritam se može izgraditi samo od naredbi uključenih u sustav naredbi izvršitelja.

Na primjer, izvođač Robot može izvršavati naredbe naprijed, natrag, lijevo, desno, preslikati. Kreće se oko staničnog polja, omeđenog zidom i koji sadrži zidove. Robot ne može proći kroz zid.

Svojstva algoritma:

1.Učinkovitost (ud)- mogućnost dobivanja rezultata iz početnih podataka u konačnom broju koraka. (Na primjer, kada se izvodi algoritam zbrajanja, 2 broja bi trebala dobiti zbroj).

2.Masovni karakter- mogućnost primjene algoritma na veliki broj različitih ulaznih podataka. (Na primjer, možete dodati bilo koja 2 broja, poznavajući algoritam zbrajanja.)

3.Determinizam(sigurnost, točnost) - svaki tim mora nedvosmisleno definirati radnju izvođača.

4.Shvatljivost- naredba mora biti napisana na jeziku razumljivom računalu.

5.Diskretnost- dijeljenje algoritma u zasebne naredbe.

Metode snimanja algoritma:

1) Na prirodnom jeziku - snimanje u obliku zasebnih naredbi na jeziku razumljivom osobi.

2) Grafički - na jeziku blok dijagrama, koristeći geometrijske oblike (oval, pravokutnik, paralelogram, romb).

3) U algoritamskom jeziku - jezik za pisanje algoritama za nastavu programiranja. Ekipe su snimljene na ruskom jeziku.

4) U programskom jeziku – program. Programski jezici: Basic, Pascal, C, Visual Basic.

B7. Osnovne algoritamske strukture: praćenje, grananje, petlja; sliku na blok dijagramima. Podjela zadataka na podzadatke. Pomoćni algoritmi.

Algoritamske konstrukcije. Unutar algoritama mogu se razlikovati skupine koraka koje se razlikuju po svojoj unutarnjoj strukturi – algoritamske konstrukcije.

Osnovne algoritamske konstrukcije su linearni slijed koraka (ili sekvenciranja), grananja i petlje.

Poziva se algoritam u kojem se naredbe izvršavaju uzastopno jedna za drugom linearni algoritam.

Ovako izgleda linearni algoritam na jeziku blok dijagrama:

Primjer: algoritam za uključivanje računala:

  1. Uključite napajanje računala (pritisnite gumb na štitniku od prenapona).
  2. Uključite monitor, pisač.
  3. Pritisnite gumb za napajanje na jedinici sustava.
  4. Pričekajte dok se operativni sustav ne učita i pojavi se radna površina.
  5. Baci se na posao.

U ovom algoritmu sve se radnje moraju izvoditi uzastopno jedna za drugom: ne možete započeti rad ako napajanje ili monitor nisu uključeni.

Algoritamska struktura" grananje„Uključeno stanje, ovisno o istinitosti uvjeta, izvršava se jedan ili drugi slijed naredbi (serija).

Uvjet je izjava koja može biti istinita ili lažna. U uvjetu se dva broja, dva niza, dvije varijable ili izrazi niza međusobno uspoređuju pomoću operacija usporedbe (>,<, =, >=, <=).

Pisanje algoritamskim jezikom: Ako je uvjet onda serija 1 (Ako Stanje istina je, dakle Serija 1, ako Stanje je lažna, onda se ništa ne izvršava). Primjer: Ako je danas nedjelja, onda ne morate ići u školu. Potpuni oblik grananja

U algoritamskim strukturama ciklus uključuje niz naredbi koje se izvršavaju više puta. Ovaj slijed naredbi se zove tijelo ciklusa.

Ciklične algoritamske strukture su dvije vrste:

  • brojač ciklusa, u kojem se tijelo petlje izvršava određeni broj puta;
  • uvjetne petlje, u kojem se tijelo petlje izvršava sve dok je uvjet ispunjen.

Ciklus sa brojačem- koristi se kada se unaprijed zna koliko se ponavljanja tijela ciklusa mora izvesti.

Koncept algoritma. Izvršitelji algoritama. Svojstva algoritma

Koncept algoritma jednako je temeljan za informatiku kao i koncept informacije. Postoji mnogo različitih definicija algoritma, budući da je ovaj koncept prilično širok i koristi se u raznim područjima znanosti, tehnologije i svakodnevnog života.

Algoritam je razumljiv i precizan slijed radnji koji opisuje proces transformacije objekta iz početnog stanja u konačno stanje.

Algoritam je precizan opis niza radnji usmjerenih na rješavanje zadanog problema, namijenjen određenom izvođaču.

Izvođač algoritam može biti ili osoba (recepti, razne upute, algoritmi za matematičke izračune) ili tehnički uređaj. Razni strojevi (računala, industrijski roboti, moderni kućanski aparati) su formalni izvođači algoritmi. Formalni izvršitelj nije dužan razumjeti bit problema koji se rješava, ali je potrebno točno izvršenje slijeda naredbi.

Algoritam se može napisati na različite načine (verbalni opis, grafički opis - blok dijagram, program na nekom od programskih jezika itd.). Program je algoritam napisanprogramski jezik .

Za izradu algoritma (programa) morate znati:

    kompletan skup početnih podataka problema (početno stanje objekta);

    svrha izrade algoritma (konačno stanje objekta);

    sustav naredbi izvršitelja (odnosno skup naredbi koje izvršitelj razumije i može izvršiti).

Rezultirajući algoritam (program) mora imati sljedeći skup svojstava:

    diskretnost (algoritam je podijeljen u zasebne korake - naredbe);

    jednoznačnost (svaka naredba određuje jedinu moguću radnju izvođača);

    razumljivost (sve naredbe algoritma uključene su u sustav naredbi izvršitelja);

    učinkovitost (izvođač mora riješiti problem u konačnom broju koraka).

Većina algoritama također ima svojstvo masovni karakter (koristeći isti algoritam, mnogi slični problemi se mogu riješiti).

Metode za opisivanje algoritama

Gore je napomenuto da se isti algoritam može napisati na različite načine. Algoritam se može napisati prirodni jezik. Kao takvi koristimo recepte, upute itd. Za snimanje algoritama namijenjenih formalnim izvođačima, specijal programski jezici... Bilo koji algoritam se može opisati grafički u obliku blok dijagrama... Za to je razvijen poseban sustav notacije:

Oznaka

Opis

Bilješke (uredi)

Početak i kraj algoritma

Unos i izlaz podataka.

Izlaz podataka se ponekad naziva drugačije:

Akcijski

U računskim algoritmima to je zadatak

Vilica

Vilica - komponenta potrebna za implementaciju grana i petlji

Početak ciklusa s parametrom

Tipičan proces

U programiranju, procedurama ili potprogramima

Prijelazi između blokova

Navedimo primjer opisa algoritma za zbrajanje dviju veličina u obliku blok dijagrama:

Ovakav način opisivanja algoritma je najgrafičniji i najrazumljiviji za ljude. Stoga se algoritmi formalnih izvršitelja obično prvo razvijaju u obliku blok dijagrama, a tek onda kreiraju program na jednom odprogramski jezici .

Tipične algoritamske strukture

Programer ima sposobnost dizajnirati i koristiti netipične algoritamske strukture, međutim, to nije potrebno. Svaki proizvoljno složen algoritam može se razviti na temelju tri tipične strukture: sukcesije, grananja i ponavljanja. U tom slučaju, strukture se mogu poredati jedna za drugom ili ugniježditi jedna u drugu.

Linearna struktura (slijedite)

Najjednostavnija algoritamska struktura je linearni. U njemu se sve operacije izvode jednom redom kojim su napisane.

Grananje

V potpuno grananje postoje dvije opcije za radnje izvršitelja, ovisno o vrijednosti logičkog izraza (uvjeta). Ako je uvjet istinit, tada će se izvršiti samo prva grana, inače će se izvršiti samo druga grana.

Druga grana može biti prazna. Ova struktura se zove nepotpuno grananje ili prelazak.

Iz nekoliko grana moguće je konstruirati strukturu “ izbor"(Višestruko grananje), koji će birati ne između dvije, već iz većeg broja opcija za radnje izvršitelja, ovisno o nekoliko uvjeta. Bitno je da se izvrši samo jedna grana - u takvoj strukturi redoslijed uvjeta postaje važan: ako je ispunjeno nekoliko uvjeta, tada će raditi samo jedan od njih - prvi odozgo.

Ciklus (ponavljanje)

Ciklusomogućuje vam organiziranje višestrukih ponavljanja istog slijeda naredbi- zove se tijelo ciklusa. U raznim vrstama algoritama za petlju, broj ponavljanja može ovisiti o vrijednosti logičkog izraza (uvjeta) ili može biti tvrdo kodiran u samoj strukturi. Postoje ciklusi: " prije», « dok», ciklusa s brojačem. U petljama "prije" i "while" logički izraz (uvjet) može prethoditi tijelu petlje ( petlja preduvjeta) ili završiti petlju ( petlja naknadnog uvjeta).

Ciklusi« prije"- ponavljanje tijela ciklusa dok se ne ispuni uvjet:

Ciklusi « dok"- ponavljanje tijela ciklusa dok je uvjet ispunjen(pravi):

Kontra petlje(s parametrom)- ponavljanje tijela petlje određeni broj puta:

Pomoćni algoritam (potprogram, procedura)

Algoritam pomoćnika je modul kojem se može pristupiti više puta iz glavnog algoritma. Korištenje pomoćnih algoritama može značajno smanjiti veličinu algoritma i pojednostaviti njegov razvoj.

Metode razvoja složenih algoritama

Postoje dvije metode za razvoj složenih algoritama:

Metoda uzastopnog detaljiranja zadataka("Top-down") je da je izvorni složeni problem podijeljen na podzadatke. Svaki od podproblema razmatra se i rješava zasebno. Ako je neki od podzadataka težak, oni se također dijele na podzadatke. Proces se nastavlja sve dok se podzadaci ne svedu na elementarne. Rješenja pojedinih podproblema tada se skupljaju u jedan algoritam za rješavanje izvornog problema. Metoda se široko koristi jer omogućuje nekoliko programera da istovremeno razviju opći algoritam koji rješava lokalne podzadatke. To je preduvjet za brzi razvoj softverskih proizvoda.

Način montaže("Bottom-up") je stvaranje skupa softverskih modula koji implementiraju rješenje tipičnih zadataka. Prilikom rješavanja složenog problema programer može koristiti razvijene module kao pomoćne algoritme (procedure). U mnogim programski sustavi Već postoje slični skupovi modula, što uvelike pojednostavljuje i ubrzava stvaranje složenog algoritma.

Upravljački algoritmi i procesi

Kontrolirati - svrsishodna interakcija objekata, od kojih su neki kontrolirani, drugi su kontrolirani.

U najjednostavnijem slučaju, postoje dva takva objekta:

Sa stajališta informatike kontrolne radnje mogu se smatrati kontrolnim informacijama. Informacije se mogu prenijeti u obliku naredbi. Slijed naredbi za upravljanje objektom, koji vodi do unaprijed određenog cilja, naziva se kontrolni algoritam... Prema tome, kontrolni objekt se može nazvati izvršiteljem kontrolnog algoritma. U gornjem primjeru, kontrolni objekt radi "bez gledanja" što se događa s kontrolnim objektom ( kontrola otvorene petlje otvorena... Druga upravljačka shema može uzeti u obzir informacije o procesima koji se događaju u kontrolnom objektu:

U tom slučaju algoritam upravljanja mora biti dovoljno fleksibilan da analizira ove informacije i donese odluku o svojim daljnjim radnjama ovisno o stanju kontrolnog objekta ( povratna kontrola). Ova kontrolna shema se zove zatvoreno.

Detaljnije se proučavaju procesi upravljanja. kibernetika... Ova znanost tvrdi da se najrazličitiji procesi upravljanja u društvu, prirodi i tehnologiji odvijaju na sličan način, pokoravaju istim principima.

Na početak teme

Molimo obustavite AdBlock na ovoj stranici.

U ovoj lekciji analizirat ćemo neke od teorijskih koncepata koji formaliziraju pojam programiranja. Ujedno ćemo preciznije formulirati glavni zadatak vašeg treninga.

Za početak predlažem da se malo poigrate sa sljedećom dječjom igračkom. Dovršite prvih pet zadataka, vratite se i nastavite čitati lekciju.

Slika 1 Snimka zaslona igrališta na code.org

Nadam se da ćeš uspjeti. Sada ćemo, koristeći ovaj primjer, opisati nekoliko osnovnih pojmova:

  • izvršitelj;
  • sustav izvršnih naredbi;
  • algoritam.

U igrački kontroliramo crvenu pticu. Zadatak svake faze: dovesti pticu do svinje. Ptica može izvršavati određene naredbe, na primjer: krenuti naprijed, skrenuti lijevo, skrenuti desno itd.

Osoba, stroj ili uređaj koji može izvršiti određene naredbe naziva se izvršitelj. U ovoj igrački, očito, izvođač je ptica. Zove se skup naredbi koje izvođač razumije i zna izvesti sustav zapovijedi izvršitelja.

Slijed naredbi koje izvršitelj mora izvršiti da bi riješio problem naziva se algoritam.

Potrebno je usredotočiti se na nekoliko točaka.

Izvođač može izvršiti samo one naredbe koje su uključene u njegov sustav naredbi.

To znači, na primjer, da ne možete pisati izvođaču ptica: "Idi na svinju!" Točnije, možete zapisati, ali ništa se neće dogoditi, tk. izvršitelj takvih naredbi ne zna.

Možete napisati postojeće naredbe bilo kojim redoslijedom koji smatrate ispravnim. Vaš zadatak kao programera je podijeliti veliki složeni zadatak u male zasebne korake, od kojih će svaki biti jasan izvršitelju. Zavadi pa vladaj opet radi.

Izvođač radi točno ono što mu algoritam nalaže.

Izvođač ptica je vrlo povjerljiv. Ne dovodi u pitanje ono što napišete u programu. Ako, na primjer, zaboravite rasklopiti pticu, ona će se zabiti u zid. Stoga se o svemu morate pobrinuti sami.

Vaši budući programi često neće raditi onako kako ste namjeravali. Greške se događaju svima. Važno je shvatiti da ovo nije kompjuterska budala, ali ste pogriješili u algoritmu. Nemojte biti kao loši programeri koji uvijek imaju krivnju za program.

Sada, od ilustrativnog primjera, prijeđimo na računalne stvarnosti. Mi pišemo programe za računalo, što znači da je računalo u našem slučaju izvršitelj. Sustav naredbi - standardne funkcije i konstrukcije jezika C.

Koji je glavni zadatak vašeg podučavanja osnova programiranja? Ovladajte vještinom algoritamskog razmišljanja. Odnosno, naučite kako zapisati rješenje raznih problema u obliku algoritma za određenog izvođača (u našem slučaju, računalo).

Dakle, da rezimiramo:

Kompjuterski program- algoritam za rješavanje problema, napisan u programskom jeziku.

Algoritam - točan opis redoslijeda radnji koje mora izvršiti izvođač kako bi riješio problem.

Izvršitelj - osoba ili neki uređaj koji može razumjeti i izvršiti određeni skup naredbi.

TEMA 8. OSNOVE ALGORITAMIZACIJE I PROGRAMIRANJA

8.1. Pojam algoritma i izvršilac algoritama. Svojstva algoritma

"Algoritam" je temeljni koncept u informatici. Razumijevanje je potrebno za učinkovitu primjenu računalne tehnologije u rješavanju praktičnih problema. Algoritam je nalog za izvršitelja (osobu ili automat) da izvrši točno određeni slijed radnji usmjerenih na postizanje zadanog cilja. Algoritam je pravilo formulirano na nekom jeziku koje označava radnje, čije uzastopno izvršavanje vodi od početnih podataka do željenog rezultata. Značenje riječi algoritam vrlo slično značenju riječi recept, postupak, metoda, način... Međutim, svaki algoritam, za razliku od recepta ili metode, nužno ima sljedeća svojstva.
Svojstva algoritma (razlikujući ga od svih drugih propisa): razumljivost(za određenog izvođača); diskretnost(naredbe su sekvencijalne, s točnim fiksiranjem trenutaka početka i kraja izvršenja naredbe); točnost(nakon izvršenja svake naredbe pouzdano se zna da li je izvršenje algoritma završeno ili koju naredbu treba izvršiti sljedeće); učinkovitost(nakon konačnog broja koraka, problem je riješen ili postaje jasno da se proces rješavanja ne može nastaviti): masovni karakter(algoritam se jednolično primjenjuje na bilo koju specifičnu formulaciju problema za koji je razvijen).
1. Diskretnost - dijeljenje algoritma u niz zasebnih cjelovitih radnji - koraka. Izvršenje algoritma podijeljeno je na niz dovršenih radnji - koraka. Svaku radnju mora izvršiti izvršitelj algoritma prije nego što nastavi s izvođenjem sljedeće akcije.
2. Točnost – nedvosmislene upute. U svakom koraku jedinstveno se određuje transformacija objekata izvršiteljevog okruženja dobivena u prethodnim koracima algoritma. Ako se algoritam više puta primjenjuje na isti skup ulaznih podataka, tada dobiva isti rezultat svaki put. Snimanje algoritma treba biti takvo da se u svakom koraku njegovog izvođenja zna koju naredbu treba izvršiti sljedeće.
3. Shvatljivost – jednoznačno razumijevanje i izvođenje svakog koraka algoritma od strane njegovog izvršitelja. Algoritam treba biti napisan na jeziku razumljivom izvođaču.
4. Učinkovitost - obvezno primanje rezultata u konačnom broju koraka. Svaki korak (i ​​algoritam u cjelini) nakon završetka daje okruženje u kojem su svi objekti jedinstveno definirani. Ako je to iz nekog razloga nemoguće, algoritam bi trebao izvijestiti da nema rješenja za problem. Algoritam se mora završiti u konačnom broju koraka. Računalna znanost operira samo s konačnim objektima i konačnim procesima, pa pitanje razmatranja beskonačnih algoritama ostaje izvan dosega teorije algoritama. 5. Masovni karakter - primjena algoritma na rješenje cijele klase problema istog tipa.
Izvršiteljev naredbeni sustav je precizno opisana situacija, uključujući formulaciju problema koji treba riješiti, popis objekata uključenih u stanje problema i njegovo rješenje, te sposobnosti izvršitelja: svojstva objekata koje on može prepoznati i radnje koje može izvršiti. Formalno izvršenje algoritma izvodi prevodilac ili interpreter, provjeravajući semantiku.

8.2. Metode snimanja algoritama

U praksi su najčešći sljedeći oblici algoritama pisanja:
1) grafički zapis (blok dijagrami);
2) verbalni zapis (pseudokodovi);
3) programski jezik.
Verbalni oblik algoritma je opis na prirodnom jeziku uzastopnih faza obrade podataka. Verbalna metoda nije raširena, budući da takvi opisi nisu strogo formalizirani, dopuštaju dvosmislenost u tumačenju pojedinih recepata. Algoritam napisan korištenjem pseudokoda je poluformalizirani opis u uvjetnom algoritamskom jeziku, uključujući i osnovne elemente programskog jezika i izraze prirodnog jezika, općeprihvaćene matematičke zapise i druge.
Grafički zapis, koji se također naziva dijagram algoritma, slika je algoritma u obliku niza međusobno povezanih funkcionalnih blokova, od kojih svaki odgovara izvršenju jedne ili više radnji. Grafički zapis je kompaktniji i vizualniji od verbalnog. U shemi algoritma, geometrijski lik odgovara svakoj vrsti radnje. Oblici su povezani prijelaznim linijama koje određuju redoslijed izvođenja radnji.
Grafički oblik snimanja, koji se naziva i blok dijagram ili blok dijagram algoritma, slika je algoritma u obliku niza međusobno povezanih funkcionalnih blokova od kojih svaki odgovara izvršenju jedne ili više radnji.
U nastavku ćemo koristiti algoritam dijagrama toka v. Omogućuju vam da algoritme predstavite u vizualnijem obliku, što omogućuje analizu njihovog rada, traženje pogrešaka u njihovoj implementaciji itd. Dijagrami toka uvijek imaju Početak i kraj, označena elipsama, između njih - niz korake algoritam povezan strelice.

Postoje koraci bezuvjetna(prikazuje se pravokutnicima, paralelogramima) i uvjetno(prikazano rombovima). Dvije strelice uvijek izlaze iz romba - jedna znači daljnji put, ako je uvjet ispunjen (obično se označava riječju "da" ili "+"), druga - neispunjenje (riječ "ne" ili "- "). Unos s tipkovnice ili prikaz vrijednosti izraza prikazan je paralelogramom. Naredba koja vrši obradu radnje (naredba dodjele) prikazana je u pravokutniku.

Ako je rješenje problema složeno i dovoljno dugo, tada se algoritam može pokazati vrlo velikim. To se može izbjeći zamjenom nekog kompletnog slijeda koraka algoritma blokovima, koji će biti pomoćni algoritmi. Blok obično nije elementaran, njegove se dimenzije odabiru ovisno o potrebi, međutim, ako je pravilno sastavljen, ima sve potrebne znakove algoritamskog koraka: ima ulaznu točku (jasno definiran početak) i može biti uvjetovan ili bezuvjetna. Različiti blokovi algoritma međusobno su povezani samo preko ulaznih i izlaznih točaka, pa ako blok ispravno riješi svoj problem, onda je njegova unutarnja struktura beznačajna za ostatak algoritma. Takav prikaz blokova posebno je prikladan u ranim fazama rješavanja složenih problema, kada se detalji blokova rade kasnije i, eventualno, od strane drugih programera.
Programski jezik je jezik koji se koristi za formalno pisanje algoritama. Većina programskih jezika klasificira se kao algoritamski jezici. Pisanje algoritma u algoritamskom jeziku naziva se program.
Jezik koji se koristi za formalno pisanje algoritama naziva se algoritamski jezik... Kada se opisuje bilo koji jezik (uključujući prirodni, na primjer, ruski, engleski itd.), koriste se sljedeći koncepti: abeceda, sintaksa i semantika.
Abeceda jezik je skup najjednostavnijih znakova koji se mogu koristiti u tekstovima ovog jezika. Slijed znakova u abecedi naziva se riječ... Pravila prema kojima se riječi tvore iz abecede nazivaju se gramatikom. Sam Jezik je skup svih riječi napisanih određenom abecedom prema zadanoj gramatici.
Sintaksa je skup pravila koji određuju moguće kombinacije (konstrukcije) od slova abecede. Za opisivanje sintakse jezika u pravilu se koristi drugi jezik (metajezik) ili sintaktički dijagrami.
Semantika je skup pravila koja određuju značenje (značenje) pojedinih jezičnih konstrukcija.
Jedan od najčešćih algoritamskih jezika je Pascal, koji je koristan i za početnike i za iskusne programere. Obrazovanje programiranja najčešće se temelji na ovom jeziku.

8.3. Osnovne algoritamske konstrukcije

Struktura algoritma može se najjasnije prikazati pomoću blok dijagrama u kojem se koriste geometrijski likovi (blokovi), povezani strelicama koje označavaju slijed radnji. Usvojeni su određeni standardi za grafičke prikaze blokova. Na primjer, naredba za obradu informacija smještena je u blok koji izgleda kao pravokutnik, provjera uvjeta postavljena je u romb, naredba za ulaz ili izlaz se postavlja u paralelogram, a oval označava početak i kraj algoritma.
Strukturna elementarna jedinica algoritma je jednostavna naredba koja označava jedan elementarni korak obrade ili prikaza informacija. Jednostavna naredba na shematskom jeziku predstavljena je kao funkcionalni blok.

Ovaj blok ima jedan ulaz i jedan izlaz... Od jednostavnih naredbi i uvjeta provjere formiraju se složene naredbe koje imaju i složeniju strukturu jedan ulaz i jedan izlaz.
Strukturni pristup razvoju algoritama definira korištenje samo osnovnih algoritamskih struktura (konstrukcija): praćenje, grananje, ponavljanje, koje treba formatirati na standardni način.

Razmotrimo glavne strukture algoritma.
Naredba praćenje sastoji se samo od jednostavnih naredbi. Na slici jednostavne naredbe imaju simbol S1 i S2... Linearni algoritmi se formiraju iz sljedećih naredbi. Primjer linearnog algoritma bio bi pronalaženje zbroja dvaju brojeva unesenih s tipkovnice.

Naredba grananje je složena naredba algoritma, u kojoj, ovisno o uvjetu P, bilo koja od njih S1, ili drugi S2 akcijski. Algoritmi račvanja (algoritmi grananja) sastoje se od naredbi za praćenje i naredbi za grananje. Primjer algoritma grananja bio bi pronalaženje većeg od dva broja unesena s tipkovnice.

Naredba grananja može biti potpuna ili nepotpuna. Nepotpuni oblik naredbe grananje koristi se kada je potrebno izvršiti radnju S samo ako je uvjet ispunjen P... Ako uvjet P se ne poštuje, naredba grane izlazi bez poduzimanja radnje. Primjer nepotpune naredbe grananja bio bi prepolovljenje samo parnog broja.

Naredba ponavljanja je složena naredba algoritma, u kojoj, ovisno o uvjetu R moguće je višestruko izvođenje radnje S... Ciklični algoritmi (algoritmi ponavljanja) sastavljeni su od naredbi za praćenje i naredbi za ponavljanje. Slika prikazuje naredbu ponavljanja s preduvjetom. Tako se zove jer se prvo provjerava uvjet, a tek onda se izvodi radnja. Štoviše, radnja se izvodi sve dok je uvjet ispunjen. Primjer cikličkog algoritma može biti sljedeći. Dok se pozitivni brojevi unose s tipkovnice, algoritam pronalazi njihov zbroj.
Naredba ponavljanja s preduvjetom nije jedina moguća. Varijacija naredbe ponavljanja preduvjeta je naredba ponavljanja parametra. Koristi se kada je poznat broj ponavljanja radnje. U blok dijagramu naredbe ponavljanja s parametrom uvjet nije napisan u romb, već u šesterokut. Primjer cikličkog algoritma s parametrom bio bi pronalaženje zbroja prvih 20 prirodnih brojeva.

U naredbi ponavljanja s postuvjetom, radnja se najprije izvodi S a tek tada je uvjet P... Štoviše, radnja se ponavlja dok se uvjet ne ispuni. Primjer naredbe ponavljanja s postuvjetom bio bi smanjenje pozitivnog broja sve dok ne bude negativan. Čim broj postane negativan, naredba ponavljanja završava svoj rad.
Povezivanjem samo ovih elementarnih struktura (slijedom ili ugniježđenjem) moguće je "sastaviti" algoritam bilo kojeg stupnja složenosti.


Svaka navedena konstrukcija može se implementirati bez promjena u strukturi u bilo kojem programskom jeziku, na primjer, u Pascalu i BASIC-u. Stoga je potrebno pravilno sastaviti algoritam pomoću blok dijagrama, a tek onda, znajući kako su naredbe napisane u određenom programskom jeziku, utipkati program na računalu i dobiti rezultat tako što ćete ga pokrenuti za izvršenje.

8.4. Linearni algoritam

Navedimo primjer pisanja algoritma u obliku blok dijagrama, pseudokodova i u Pascalu. Ručno testiranje i odabir testnog sustava provode se na isti način kao u prethodnom zadatku.


8.5. Algoritam račvanja

Evo primjera pisanja algoritma grananja za pronalaženje najvećeg od dva broja.


8.6. Ciklični algoritam

Razmotrimo algoritam za pronalaženje zbroja prvih prirodnih neparnih brojeva do n... Zapis algoritma predstavljamo na tri načina: u obliku blok dijagrama, školskog algoritamskog jezika i u programskom jeziku Pascal.


Blok dijagram se sastoji od sljedećih osnovnih struktura: dvije složene naredbe (naredba za praćenje i naredba za ponavljanje s preduvjetom), zatim jednostavna naredba. Sve naredbe su povezane u seriju. Konstrukcije su dizajnirane na standardni način, pa ih je lako prepoznati i prevesti u programski jezik. Svaka građevina ima jedan ulaz i jedan izlaz.
Isprekidane strelice u tablici pokazuju slijed tehnološkog lanca. Nakon napisa algoritma u obliku blok dijagrama, svaki tim se prevodi na školski algoritamski jezik, a tek onda u programski jezik.
Napišimo algoritam za izračunavanje zbroja prvih n prirodnih brojeva. Da bismo to učinili, koristit ćemo petlju s parametrom, budući da je unaprijed poznato koliko puta će se izvršiti naredba za pronalaženje zbroja. U svim karikama lanca promijenit ćemo ciklus "pa" u ciklus "za" i dati primjer prevođenja algoritma iz jezika dijagrama toka u školski algoritamski jezik i u programski jezik Pascal.


Razmislite o pronalaženju broja prirodnih brojeva čiji zbroj nije veći od zadanog. Da bismo to učinili, koristit ćemo naredbu repeat s postuvjetom.


Pitanja za samokontrolu

  1. Koncept algoritma. Svojstva algoritma. Primjer algoritma. Koncept "varijable".
  2. Operator dodjele. Primjeri.
  3. Stilovi programiranja (logički, funkcionalni).
  4. Razumijevanje potprograma, modula i objekta
  5. Što je varijabla? Pravila imenovanja varijabli u Pascalu. Primjeri.
  6. Operator dodjele. Pisanje izraza u Pascalu. Primjeri. Objasni kako radi operator x: = x + 1;
  7. Ulazni i izlazni operatori u Pascalu. Primjeri. Formatirani izlaz.
  8. Uvjetni operator ( ako). Primjer. Usporedite s operatorom slučaj.
  9. Operater odabira. Primjer. Usporedite s operatorom ako.
  10. Logički izrazi. Operacije ili, i i ne... Primjeri. Tablica istine.
  11. Numerički tipovi varijabli u Pascalu. Upišite pravila pretvorbe. Primjeri.
  12. Booleov tip podataka. Primjer korištenja u programu. Vrsta podataka o znaku. Primjer. Funkcije hrv i red, succ i pred.
  13. Nizovi. Definicija. Indeksi niza. Deklaracije niza. Pristup elementima niza. Jednodimenzionalni i dvodimenzionalni nizovi. Primjeri. Sličnosti i razlike između nizova i nizova.
  14. Postupci. Definicija. Zašto su potrebni postupci? Primjeri. Pravila za opisivanje postupaka. Usporedite postupke i funkcije.

Vrhunski povezani članci