Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Greške
  • Koncept izvršioca algoritma je sistem komandi za izvršioca. Vrste algoritama - Hipermarket znanja

Koncept izvršioca algoritma je sistem komandi za izvršioca. Vrste algoritama - Hipermarket znanja

Algoritam i njegova svojstva.

Algoritam- jasna i precizna instrukcija izvođaču da izvrši konačnu sekvencu naredbi koja vodi od početnih podataka do željenog rezultata.

Algoritamski izvođač- ovo je objekat ili subjekt za koji je algoritam dizajniran.

Izvođačev komandni sistem (SCI) je čitav skup naredbi koje izvođač može izvršiti.

Svojstva algoritma: jasnoća, tačnost, konačnost.

jasnoća: algoritam se sastoji samo od naredbi uključenih u izvršni USP.

tačnost: svaka komanda kontrolnog algoritma određuje nedvosmislenu akciju izvršioca.

Konačnost (ili efektivnost): izvršenje algoritma mora dovesti do rezultata u konačnom broju koraka.

Okruženje izvođača: Okruženje u kojem izvođač djeluje.

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

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

Načini pisanja algoritama.

Najčešće metode su: grafički, verbalno i u formi kompjuterski programi.

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

Naziv bloka Oznaka bloka Sadržaj
Proces
Obrada podataka
Odlučivanje
Logički blok za provjeru istinitosti ili neistinitosti nekog stanja
Prijenos podataka
Unos ili izlaz informacija
Počni, stani
Početak ili kraj programa
Modifikacija
Organizacija cikličkog procesa - zaglavlje ciklusa

Zbirka blokova čini tzv blok dijagram algoritma.

Unos riječi algoritma je orijentisan, prije svega, na čovjeka izvođača i omogućava različito snimanje recepata, ali istovremeno snimanje mora biti dovoljno precizno.

Prilikom pisanja algoritama u formu programe za računare se koriste programski jezici - sistemi kodiranja za recepte i pravila za njihovu upotrebu. Za pisanje algoritama u obliku programa karakterističan je visok stepen formalizacije.

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

Vrijednost je jedan informacijski objekt koji ima ime, vrijednost i tip.

Izvršilac algoritama za rad sa količinama može biti osoba ili poseban tehnički uređaj, kao što je računar. Ovaj izvođač mora imati memorija za pohranjivanje vrijednosti.

Vrijednosti su fiksne i varijabilne.

Konstantna vrijednost (konstanta) ne mijenja svoju vrijednost tokom izvršavanja algoritma. Konstanta se može označiti svojom vrijednošću (brojevi 10, 3.5) ili simboličkim imenom (broj ).

varijabla može promijeniti vrijednost tokom izvršavanja algoritma. Varijabla je uvijek označena simboličkim imenom (X, A, R5, itd.).

Vrsta vrijednosti definira skup vrijednosti koje vrijednost može poduzeti i skup radnji koje se mogu izvršiti na toj vrijednosti. Osnovne vrste veličina: 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)

Komanda dodjeljivanja je naredba izvršitelja koja rezultira da varijabla prima novu vrijednost. Format komande:

ime 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?
Odluka. Izraz 2 * A - 1 sa A = 6 će dati broj 11. Dakle, nova vrijednost varijable A će biti 11.

U nastavku će se pretpostaviti da izvršilac algoritama za rad sa veličinama je računar. Bilo koji algoritam se može izgraditi iz naredbi zadaci, unos, izlaz, grananje i ciklus.

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

primjer: unos A - unos vrijednosti varijable A sa tastature računara.

Izlazna komanda: Komanda kojom se vrijednost vrijednosti prikazuje na izlaznom uređaju računara (kao što je monitor).

primjer: zaključak X - vrijednost varijable X se prikazuje na ekranu.

Komanda podružnice- dijeli algoritam na dva puta u zavisnosti od nekog uslova; tada izvođenje algoritma ide u zajednički nastavak. Grananje je potpuno i nepotpuno. Opis grananja u dijagramima toka i na algoritamskom jeziku:

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

Naredba petlje obezbeđuje ponovljeno izvršavanje niza naredbi (tijelo petlje) prema nekom uslovu.

Petlja s preduvjetom- petlja čije se izvršavanje ponavlja dok je uslov petlje tačan:

Petlja s parametrom- ponavljano izvršavanje tijela petlje dok cijeli broj parametar prolazi kroz skup svih vrijednosti od početne (In) do konačne (Ik):

Primjer. Date su dva prosta razlomka. Napišite algoritam za dobijanje razlomka koji je rezultat njihovog dijeljenja.
Odluka. U algebarskom obliku, rješenje problema je sljedeće:
a / c: c / d \u003d a * d / b * c \u003d m / n
Početni podaci su četiri cjelobrojne vrijednosti: a, b, c, d. Rezultat su dva cijela broja m i n.

alg podjela razlomaka
cijeli a, b, c, d, m, n
start input a b c d
m:=a*d
n:=b*c
izlaz "Numerator=", m
izlaz "Denominator=", n
koi

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

  1. Efimova O., Morozov V., Ugrinovič N. Kurs računarske tehnologije sa osnovama informatike. Udžbenik za starije razrede. - M.: DOO "AST Izdavačka kuća"; ABF, 2000
  2. Zadatak-radionica iz informatike. U 2 toma / Ed. I.Semakina, E.Khenner. - M.: Laboratorija za osnovna znanja, 2001
  3. Ugrinovich N. Informatika i informacione tehnologije. 10-11 razred - M.: Laboratorija za osnovna znanja, JSC "Moskovski udžbenici", 2001.

Zadaci i testovi na temu "Algoritmi i izvođači"

  • Izvršni direktor nacrta - Algoritmi 6. razred

    Lekcije: 4 Zadaci: 9 Testovi: 1

  • 2 zadatka: 9 testova: 1

Dragi studente!

Poznavanje teme "Algoritmi i izvođači" neophodno je prije svega za dalje proučavanje programiranja. Programski jezik QBasic izabran je kao osnova za učenje programiranja. Odustali smo od ideje da u naš kurs uključimo Visual Basic ili bilo koji drugi objektno orijentirani programski jezik, budući da takav pristup još nije široko korišten u većini srednjih škola u Ruskoj Federaciji. Pored toga, principi klasičnog programiranja u Dosu su u srcu objektno orijentisanog programiranja.

Naš kurs je osmišljen za program opšteg obrazovanja. Prilikom pripreme za prijemne ispite iz informacionih tehnologija na fakultetima, potrebno je upoznati se sa specifičnostima studiranja programiranja na ovom fakultetu. U nekim slučajevima, potrebno je dubinsko proučavanje brojnih tema, kao što su, na primjer, "Nizovi". Ovo treba uzeti u obzir prilikom proučavanja literature o programiranju, možda bi trebalo koristiti metodološke preporuke za pripremu ispita koje se trenutno objavljuju u većini visokoškolskih ustanova.

U zaključku 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 iz 9. stoljeća al-Khwarizmija, koji je formulirao pravila za izvođenje aritmetičkih operacija.

Algoritam- tačna i razumljiva instrukcija izvođaču da izvrši konačnu sekvencu naredbi koja vodi od početnih podataka do početnog rezultata.

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

Algoritamski izvođač je onaj koji izvršava algoritam (čovek, životinja, mašina, kompjuter).

Sistem komandi izvršioca- ovo je cijeli skup naredbi koje izvođač može izvršiti (razumjeti). Algoritam se može izgraditi samo od komandi uključenih u komandni sistem izvršioca.

na primjer, executor Robot može izvršavati komande naprijed, nazad, lijevo, desno, farbati. Kreće se kroz ćelijsko polje ograničeno zidom i koje sadrži zidove. Robot ne može proći kroz zid.

Svojstva algoritma:

1.Efikasnost (konačnost)– mogućnost dobijanja rezultata iz početnih podataka u konačnom broju koraka. (Na primjer, kada se izvršava algoritam sabiranja, 2 broja bi trebala dobiti zbir).

2.masovni karakter– mogućnost primjene algoritma na veliki broj različitih početnih podataka. (Na primjer, možete dodati bilo koja 2 broja, poznavajući algoritam sabiranja.)

3.determinizam(definiranost, tačnost) - svaki tim mora jedinstveno odrediti akciju izvođača.

4.Jasnoća- komanda mora biti napisana na jeziku razumljivom računaru.

5.diskretnost– razdvajanje algoritma u zasebne komande.

Metode pisanja algoritama:

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

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

3) Na algoritamskom jeziku - jezik za pisanje algoritama za nastavu programiranja. Timovi su napisani na ruskom jeziku.

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

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

Algoritamske konstrukcije. Unutar algoritama mogu se izdvojiti grupe koraka koji se razlikuju po unutrašnjoj strukturi – algoritamske konstrukcije.

Osnovne algoritamske konstrukcije su linearni niz koraka (ili slijedećih), grana i petlja.

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

Ovako izgleda linearni algoritam u jeziku dijagrama toka:

Primjer: algoritam za uključivanje računara:

  1. Uključite napajanje računara (pritisnite dugme na štitniku od prenapona).
  2. Uključite monitor, štampač.
  3. Pritisnite dugme za napajanje na sistemskoj jedinici.
  4. Sačekajte da se operativni sistem učita i da se pojavi radna površina.
  5. Na posao.

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

u algoritamsku strukturu grananje» uključeno stanje, u zavisnosti od istinitosti uslova, izvršava se jedan ili drugi niz naredbi (serija).

Uslov je izjava koja može biti istinita ili lažna. U uslovu se dva broja, dva niza, dvije varijable ili izrazi niza međusobno upoređuju pomoću operatora poređenja (>,<, =, >=, <=).

Algoritamska notacija: IfCondition Then Serija 1 (Ako Stanje istina, onda se izvršava Serija 1, ako Stanje lažno, ništa se ne radi). Primjer: Ako je danas nedjelja, onda ne morate ići u školu. Potpuna forma grananja

U algoritamskim strukturama ciklus uključuje niz naredbi koje se ponavljaju. Ovaj niz naredbi se zove tijelo petlje.

Ciklične algoritamske strukture su dvije vrste:

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

Petlja sa brojačem- koristi se kada se unaprijed zna koliko ponavljanja tijela petlje mora biti izvedeno.

Koncept algoritma. Realizatori algoritma. Svojstva algoritama

Koncept algoritma je fundamentalan 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 različitim oblastima nauke, tehnologije i svakodnevnog života.

Algoritam je jasan i precizan niz radnji koji opisuje proces transformacije objekta iz početnog stanja u konačno.

Algoritam je tačan opis niza radnji usmjerenih na rješavanje datog problema namijenjenog određenom izvođaču.

Izvođač Algoritam može biti ili osoba (recepti za kuhanje, razne upute, algoritmi za matematičke proračune) ili tehnički uređaj. Postoje razne mašine (računari, industrijski roboti, savremeni kućni aparati). formalni izvršioci algoritmi. Formalni izvršilac nije potreban da bi razumeo suštinu problema koji se rešava, ali je potrebno tačno izvršenje niza 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 napisan u njemuprogramski jezik .

Da biste kreirali algoritam (program), morate znati:

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

    svrha kreiranja algoritma (konačno stanje objekta);

    sistem komandi izvršioca (tj. skup komandi koje izvršilac razume i može da izvrši).

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

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

    jedinstvenost (svaka komanda određuje jedinu moguću radnju izvođača);

    razumljivost (sve komande algoritma su uključene u komandni sistem izvršioca);

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

Većina algoritama također ima svojstvo masovni karakter (koristeći isti algoritam, možete riješiti mnoge probleme istog tipa).

Načini opisivanja algoritama

Gore je napomenuto da se isti algoritam može napisati na različite načine. Možete napisati algoritam prirodni jezik. U ovom obliku koristimo recepte, upute itd. Za pisanje algoritama namijenjenih formalnim izvršiocima, specijal programski jezici. Bilo koji algoritam se može opisati grafički u obliku blok dijagrama. Za to je razvijen poseban sistem notacije:

Oznaka

Opis

Bilješke

Početak i kraj algoritma

Unos i izlaz podataka.

Izlaz podataka se ponekad naziva drugačije:

Akcija

U računskim algoritmima, ovo je zadatak

Viljuška

Vilica - komponenta neophodna za implementaciju grana i petlji

Pokretanje petlje s parametrom

Sample Process

U programiranju, procedurama ili potprogramima

Prijelazi između blokova

Dajemo primjer opisa algoritma za zbrajanje dvije veličine u obliku blok dijagrama:

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

Tipične algoritamske strukture

Programer ima sposobnost da konstruiše i koristi netipične algoritamske strukture, međutim, to nije neophodno. Bilo koji proizvoljno složen algoritam može se razviti na osnovu tri tipične strukture: praćenje, grananje i ponavljanje. U ovom slučaju, strukture mogu biti locirane uzastopno jedna za drugom ili ugniježđene jedna u drugu.

Linearna struktura (slijedeći)

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

grananje

AT potpuno grananje postoje dve opcije za radnje izvršioca u zavisnosti od vrednosti logičkog izraza (uslova). Ako je uslov tačan, tada će se izvršiti samo prva grana, u suprotnom samo druga grana.

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

Iz nekoliko grana možete izgraditi strukturu " izbor” (višestruko grananje), koji će birati ne između dvije, već između više opcija za izvođača, ovisno o nekoliko uvjeta. Bitno je da se izvrši samo jedna grana - u takvoj strukturi redosled uslova postaje važan: ako je ispunjeno nekoliko uslova, onda će samo jedan od njih raditi - prvi odozgo.

Ciklus (ponavljanje)

Ciklusomogućava vam da organizirate ponovljeno ponavljanje istog niza naredbi- zove se telo ciklusa. U različitim tipovima cikličkih algoritama, broj ponavljanja može zavisiti od vrednosti logičkog izraza (uslova) ili može biti strogo specificiran u samoj strukturi. Postoje ciklusi: prije», « ćao», ciklusi sa brojačem. U petljama "until" i "while", logički izraz (uslov) može prethoditi tijelu petlje ( petlja sa preduslovom) ili prekinuti petlju ( petlja sa postuslovom).

Ciklusi« prije» - ponavljanje tijela petlje dok se ne ispuni uslov:

Ciklusi « ćao» - ponavljanje tijela petlje dok je uslov ispunjen(istinito):

Ciklusi sa brojačem(sa parametrom)– ponavljanje tijela petlje određeni broj puta:

Pomoćni algoritam (potprogram, procedura)

Algoritam pomoćnika je modul kojem se može više puta pristupiti iz glavnog algoritma. Upotreba 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 sekvencijalnog detaljisanja problema(„top-down”) je da je originalni složeni zadatak podijeljen na podzadatke. Svaki od podzadataka se posebno razmatra i rješava. Ako je neki od podzadataka složen, oni se također dijele na podzadatke. Proces se nastavlja sve dok se podzadaci ne svode na elementarne. Rješenja pojedinačnih podzadataka se zatim sklapaju u jedan algoritam za rješavanje originalnog problema. Metoda se široko koristi, jer omogućava nekoliko programera da razviju zajednički algoritam u isto vrijeme, rješavajući lokalne podzadatke. Ovo je neophodan uslov za brzi razvoj softverskih proizvoda.

način montaže(„odozdo prema gore“) je kreiranje 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 mnogima sistemi za programiranje Slični setovi modula već postoje, što uvelike pojednostavljuje i ubrzava kreiranje složenog algoritma.

Algoritmi i procesi upravljanja

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

U najjednostavnijem slučaju, postoje dva takva objekta:

Sa stanovišta informatike kontrolne akcije se mogu smatrati kontrolnom informacijom. Informacije se mogu prenijeti u obliku naredbi. Poziva se niz naredbi za kontrolu objekta, koji vodi do unaprijed određenog cilja kontrolni algoritam. Stoga se kontrolni objekat može nazvati izvršiocem kontrolnog algoritma. U razmatranom primjeru, kontrolni objekt radi "bez gledanja" šta se dešava sa kontrolnim objektom ( kontrola otvorene petlje otvoren. Druga kontrolna shema može uzeti u obzir informacije o procesima koji se dešavaju u kontrolnom objektu:

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

Detaljnije se razmatraju procesi upravljanja kibernetika. Ova nauka tvrdi da se najraznovrsniji procesi upravljanja u društvu, prirodi i tehnologiji odvijaju na sličan način, poštuju iste principe.

Početak teme

Molimo pauzirajte AdBlock na ovoj stranici.

U ovoj lekciji ćemo analizirati neke teorijske koncepte koji formalizuju koncept programiranja. Istovremeno ćemo preciznije formulirati glavni zadatak vaše obuke.

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

Sl.1 Snimak ekrana polja za igru ​​na code.org

Nadam se da ti je sve uspjelo. Sada ćemo, koristeći ovaj primjer, opisati nekoliko osnovnih koncepata:

  • izvršilac;
  • sistem komandi izvršioca;
  • algoritam.

U igrački kontrolišemo crvenu pticu. Zadatak svake faze je dovesti pticu do svinje. Ptica može izvoditi određene komande, na primjer: krenuti naprijed, skrenuti lijevo, skrenuti desno itd.

Osoba, mašina ili uređaj koji može izvršiti neku naredbu naziva se izvršilac. U ovoj igrački, očigledno, izvođač je ptica. Poziva se skup naredbi koje izvršitelj razumije i može izvršiti sistem komandi izvršioca.

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

Potrebno je fokusirati se na nekoliko tačaka.

Izvršilac može izvršiti samo one naredbe koje su uključene u njegov komandni sistem.

To znači, na primjer, da ne možete pisati izvođaču ptica: „Idi do svinje!“. Možete to preciznije zapisati, ali ništa se neće dogoditi, jer. izvršilac takvih komandi ne zna.

Dostupne naredbe možete napisati bilo kojim redoslijedom koji smatrate ispravnim. Vaš zadatak kao programera je da podijelite veliki složeni zadatak na male odvojene korake, od kojih će svaki biti razumljiv izvođaču. Princip "zavadi pa vladaj" ponovo funkcioniše.

Izvođač izvodi tačno ono što mu algoritam propisuje.

Ptica izvođač je vrlo povjerljiva. Ne dovodi u pitanje šta pišete u programu. Ako, na primjer, zaboravite da okrenete pticu, ona će se zabiti u zid. Dakle, morate sami da se pobrinete za sve.

Vaši budući programi često neće raditi onako kako ste namjeravali. Greške se dešavaju svima. Ovdje je važno shvatiti da ovo nije kompjuterska budala, već ste pogriješili u algoritmu. Nemojte biti kao loši programeri koji uvijek krive program za sve.

Pređimo sada sa vizuelnog primera na kompjutersku stvarnost. Mi pišemo programe za računar, što znači da je računar u našem slučaju izvršitelj. Komandni sistem su standardne funkcije i konstrukcije jezika C.

Koji je glavni cilj vašeg učenja osnova programiranja? Savladajte vještinu algoritamskog razmišljanja. Odnosno, naučiti kako zapisati rješenja različitih problema u obliku algoritma za određenog izvođača (u našem slučaju, kompjuter).

Dakle, da rezimiramo:

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

Algoritam je precizan opis redosleda radnji koje izvršilac mora da izvrši da bi rešio problem.

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

TEMA 8. OSNOVE ALGORITAMA I PROGRAMIRANJA

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

"Algoritam" je fundamentalni koncept računarske nauke. Ideja o tome je neophodna za efikasnu primenu računarske tehnologije na rešavanje praktičnih problema. Algoritam je instrukcija izvršiocu (osobi ili automatu) da izvrši precizno definisani niz radnji u cilju postizanja zadatog cilja. Algoritam je pravilo formulirano na određenom jeziku koje ukazuje na radnje čije uzastopno izvršavanje vodi od početnih podataka do željenog rezultata. Značenje te riječi algoritam vrlo slično značenju riječi recept, proces, metod, metod. Međutim, svaki algoritam, za razliku od recepta ili metode, nužno ima sljedeća svojstva.
Svojstva algoritma (po čemu se razlikuju od svih drugih propisa): razumljivost(za određenog umjetnika); diskretnost(komande su sekvencijalne, sa preciznim fiksiranjem trenutaka početka i kraja izvršenja naredbe); tačnost(nakon izvršenja svake komande, pouzdano se zna da li je izvršenje algoritma završeno ili koja naredba treba da se izvrši); efikasnost(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 ujednačeno primjenjuje na bilo koju konkretnu izjavu problema za koju je dizajniran).
1. Diskretnost - dijeljenje algoritma na više odvojenih dovršenih akcija - koraka. Izvršenje algoritma je podijeljeno na niz dovršenih radnji - koraka. Svaku radnju mora izvršiti izvršilac algoritma prije nego što pređe na izvršenje sljedeće akcije.
2. Tačnost - nedvosmislene indikacije. U svakom koraku, transformacija objekata okruženja izvršioca dobijena u prethodnim koracima algoritma je jedinstveno definisana. Ako se algoritam više puta primjenjuje na isti skup ulaznih podataka, onda je izlaz svaki put isti rezultat. Zapis algoritma treba da bude takav da se u svakom koraku njegovog izvršavanja zna koja naredba treba da se izvrši sledeća.
3. Jasnoća – nedvosmisleno razumijevanje i izvršenje svakog koraka algoritma od strane njegovog izvršioca. Algoritam mora biti napisan na jeziku razumljivom izvođaču.
4. Efikasnost - obavezno primanje rezultata u konačnom broju koraka. Svaki korak (i ​​algoritam u cjelini) nakon njegovog završetka osigurava okruženje u kojem su svi objekti jedinstveno definirani. Ako je to iz nekog razloga nemoguće, algoritam bi trebao prijaviti da nema rješenja za problem. Rad algoritma mora biti završen u konačnom broju koraka. Računarska nauka operiše samo sa konačnim objektima i konačnim procesima, tako da pitanje razmatranja beskonačnih algoritama ostaje izvan okvira teorije algoritama. 5. Masovni karakter - primjena algoritma za rješavanje cijele klase zadataka istog tipa.
Izvršiočev komandni sistem je precizno opisano okruženje, uključujući formulaciju problema koji treba riješiti, listu objekata uključenih u stanje problema i njegovo rješavanje, te sposobnosti izvršitelja: svojstva objekata koje on može prepoznati i radnje. da može da izvede. Formalno izvršenje algoritma izvodi kompajler ili interpreter, provjeravajući semantiku.

8.2. Načini pisanja algoritma

U praksi su najčešći sljedeći oblici pisanja algoritama:
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 u širokoj upotrebi, jer takvi opisi nisu striktno formalizirani i dozvoljavaju dvosmisleno tumačenje pojedinačnih recepata. Algoritam napisan korišćenjem pseudokoda je poluformalizovan opis u uslovnom algoritamskom jeziku, uključujući i glavne elemente programskog jezika i fraze prirodnog jezika, uobičajenu matematičku notaciju i druge.
Grafički oblik zapisa, koji se naziva i dijagram algoritma, je slika algoritma u obliku niza međusobno povezanih funkcionalnih blokova, od kojih svaki odgovara izvršenju jedne ili više radnji. Grafička notacija je kompaktnija i vizualnija od verbalne notacije. U šemi algoritma, svaka vrsta radnje odgovara geometrijskoj figuri. Figure su povezane prijelaznim linijama koje određuju slijed radnji.
Grafički oblik zapisa, koji se naziva i blok dijagram ili dijagram toka algoritma, je slika algoritma u obliku niza međusobno povezanih funkcionalnih blokova, od kojih svaki odgovara izvršenju jedne ili više radnji.
U nastavku ćemo koristiti blok dijagrami in. Omogućuju vam da algoritme predstavite u vizuelnijoj formi, što omogućava analizu njihovog rada, traženje grešaka u njihovoj implementaciji itd. Dijagrami toka uvijek imaju Počni i kraj, označena elipsama, između njih - niz stepenice algoritam povezan strelice.

Koraci se dešavaju bezuslovno(predstavljeno pravokutnicima, paralelogramima) i uslovno(predstavljena dijamantima). Dve strelice uvek izlaze iz romba - jedna označava dalji put, ako je uslov ispunjen (obično se označava rečju "da" ili "+"), druga - neispunjenje (rečju "ne" ili " -"). Unos sa tastature ili prikaz vrednosti izraza na ekranu je predstavljen paralelogramom. Naredba koja vrši obradu radnji (komanda dodjele) je prikazana u pravokutniku.

Ako je rješenje problema složeno i dovoljno dugo, onda se algoritam može pokazati vrlo velikim. Ovo se može izbjeći zamjenom nekog kompletnog niza koraka algoritma blokovima koji će biti pomoćni algoritmi. Blok obično nije elementaran, njegove dimenzije se biraju ovisno o potrebi, međutim, ako je pravilno sastavljen, ima sve potrebne karakteristike algoritamskog koraka: ima ulaznu točku (jasno definiran početak) i može biti uvjetovan ili bezuslovno. Različiti blokovi algoritma su međusobno povezani samo preko ulaznih i izlaznih tačaka, tako da ako blok ispravno rješava svoj problem, onda njegova unutrašnja struktura nije bitna za ostatak algoritma. Takva reprezentacija blokova je posebno korisna u ranim fazama rješavanja složenih problema, kada se detalji blokova vrše kasnije i, eventualno, od strane drugih programera.
Programski jezik je jezik koji se koristi za formalno pisanje algoritama. Većina programskih jezika su algoritamski jezici. Pisanje algoritma na algoritamskom jeziku naziva se program.
Jezik koji se koristi za formalno pisanje algoritama se zove 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. Zove se niz abecednih znakova riječ. Pravila po kojima se riječi formiraju iz abecede nazivaju se gramatikom. On sam jezik je skup svih riječi napisanih datom azbukom prema datoj gramatici.
Sintaksa- ovo je skup pravila koji određuju moguće kombinacije (konstrukcije) slova abecede. Za opisivanje sintakse jezika po pravilu se koristi drugi jezik (metajezik) ili sintaktički dijagrami.
Semantika je skup pravila koja određuju značenje (značenje) pojedinačnih jezičkih konstrukcija.
Jedan od najčešćih algoritamskih jezika je Pascal, koji je koristan i za početnike i za iskusne programere. Obuka programiranja se najčešće bazira na ovom jeziku.

8.3. Osnovne algoritamske konstrukcije

Najrazumljivija struktura algoritma može se predstaviti pomoću dijagrama toka, koji koristi geometrijske oblike (blokove) međusobno povezane strelicama koje pokazuju redoslijed akcija. Određeni standardi za blok grafiku su usvojeni. Na primjer, naredba za obradu informacija smještena je u blok u obliku pravokutnika, provjera stanja je postavljena u romb, ulazne ili izlazne naredbe su smještene 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 instrukcija na shematskom jeziku je predstavljena kao funkcionalni blok.

Ovaj blok ima jedan unos i jedan izlaz. Od jednostavnih naredbi i uvjeta provjere formiraju se složene komande koje imaju složeniju strukturu i takođe jedan ulaz i jedan izlaz.
Strukturalni pristup razvoju algoritama određuje upotrebu samo osnovnih algoritamskih struktura (konstrukcija): praćenje, grananje, ponavljanje, koje treba formalizirati na standardni način.

Razmotrite osnovne strukture algoritma.
Tim prateći 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 bi bio pronalaženje zbroja dva broja unesena s tastature.

Tim grananje- ovo je kompozitna komanda algoritma, u kojoj, u zavisnosti od uslova P, bilo koja S1, ili drugo S2 akcija. Algoritmi grananja (algoritmi grananja) se sastoje od sljedećih naredbi i naredbi grananja. Primjer algoritma grananja bi bio pronalaženje većeg od dva broja unesena s tastature.

Komanda grananja može biti potpuna ili nepotpuna. Nepotpuni oblik naredbe grananja se koristi kada treba izvršiti radnju. S samo ako su ispunjeni uslovi P. Ako stanje P se ne poštuje, tada se naredba grananja završava bez izvođenja radnje. Primjer nepotpune naredbe grananja obrasca bio bi prepoloviti samo paran broj.

Tim ponavljanje je kompozitna komanda algoritma, u kojoj, u zavisnosti od uslova R moguće je izvršiti radnju više puta S. Ciklični algoritmi (algoritmi ponavljanja) se sastoje od naredbi za praćenje i naredbi za ponavljanje. Na slici je prikazana naredba za ponavljanje sa preduvjetom. Zove se tako jer se prvo provjerava uvjet, a tek onda se izvodi radnja. Štaviše, radnja se izvodi dok je uvjet ispunjen. Primjer cikličkog algoritma može biti sljedeći. Dok se pozitivni brojevi unose sa tastature, algoritam vrši izračunavanje njihovog zbira.
Komanda ponavljanja sa preduslovom nije jedina moguća. Varijacija naredbe za ponavljanje s preduvjetom je naredba za ponavljanje s parametrom. Koristi se kada je poznat broj ponavljanja radnje. U blok dijagramu komande ponavljanja sa parametrom, uslov nije napisan u romb, već u heksagon. Primjer cikličkog algoritma s parametrom bi bio pronalaženje zbira prvih 20 prirodnih brojeva.

U naredbi za ponavljanje sa postuslovom, akcija se prvo izvodi S i tek tada se provjerava stanje P. Štaviše, radnja se ponavlja sve dok se ne ispuni uslov. Primjer naredbe ponavljanja s postuvjetom bi bio smanjenje pozitivnog broja sve dok ne bude negativan. Čim broj postane negativan, komanda za ponavljanje završava svoj rad.
Povezivanjem samo ovih elementarnih konstrukcija (uzastopno ili ugniježđenjem), moguće je "sastaviti" algoritam bilo kojeg stepena složenosti.


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

8.4. Linearni algoritam

Navedimo primjer pisanja algoritma u obliku dijagrama toka, pseudokodova i na jeziku Pascal. Ručno testiranje i odabir test sistema se izvode slično prethodnom zadatku.


8.5. Algoritam grananja

Dajemo primjer pisanja algoritma grananja za pronalaženje najvećeg od dva broja.


8.6. Ciklični algoritam

Razmotrite algoritam za pronalaženje zbira prvih prirodnih neparnih brojeva do n. Hajde da predstavimo algoritam na tri načina: u obliku dijagrama toka, školskog algoritamskog jezika i u programskom jeziku Pascal.


Dijagram toka se sastoji od sljedećih osnovnih struktura: dvije složene naredbe (naredba prati i naredba ponavljanja sa preduvjetom), zatim jednostavna naredba. Sve komande su povezane u seriju. Konstrukcije su dizajnirane na standardni način, tako da ih je lako prepoznati i prevesti u programski jezik. Svaki dizajn ima jedan ulaz i jedan izlaz.
Isprekidane strelice u tabeli odražavaju redoslijed izvođenja tehnološkog lanca. Nakon pisanja algoritma u obliku dijagrama toka, svaka naredba se prevodi u školski algoritamski jezik, a tek onda u programski jezik.
Pišemo algoritam za izračunavanje zbira prvih n prirodnih brojeva. Da bismo to učinili, koristimo petlju sa parametrom, jer je unaprijed poznato koliko puta će se izvršiti naredba za pronalaženje sume. U svim karikama lanca promijenit ćemo petlju "while" u petlju "for" i dati primjer prijevoda algoritma iz jezika dijagrama toka u školski algoritamski jezik i u programski jezik Pascal.


Razmislite o pronalaženju broja prirodnih brojeva čiji zbir nije veći od datog. Da bismo to učinili, koristimo naredbu ponavljanja sa postuslovom.


Pitanja za samokontrolu

  1. Koncept algoritma. Svojstva algoritma. Primjer algoritma. Koncept "varijable".
  2. operator dodjeljivanja. Primjeri.
  3. Stilovi programiranja (logički, funkcionalni).
  4. Koncept potprograma, modula i objekta
  5. Šta je varijabla? Konvencije imenovanja varijabli u Pascalu. Primjeri.
  6. operator dodjeljivanja. Pisanje izraza u Pascalu. Primjeri. Objasnite kako operator x:=x+1;
  7. Ulazni i izlazni operatori u Pascalu. Primjeri. Formatirani izlaz.
  8. Uslovni operator ( ako). Primjer. Uporedite sa operaterom slučaj.
  9. Izbor operatera. Primjer. Uporedite sa operaterom ako.
  10. Boolean izrazi. Operacije ili, i i ne. Primjeri. Tabela istine.
  11. Numerički tipovi varijabli u Pascalu. Upišite pravila konverzije. Primjeri.
  12. Boolean tip podataka. Primjer upotrebe u programu. Tip podataka karaktera. Primjer. Funkcije chr 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. Procedure. Definicija. Zašto su potrebne procedure? Primjeri. Pravila opisa procedure. Uporedite procedure i funkcije.

Top Related Articles