Kako postaviti pametne telefone i računala. Informativni portal

Vrste algoritama. Linearni tip algoritama

Programiranje je pisanje nečega korištenjem tuđeg nepoznatog jezika. S razvojem ovog područja znanja, programeri su otišli još dalje i naučili kako napisati "nešto", a da uopće nisu razumjeli kako to zvuči na ruskom. Početnici nauče pisati kod odmah u C++ ili PHP-u, koristeći mnoge biblioteke, a uopće ne razumiju zapravo kako im zvuči ono što stvaraju materinji jezik. Algoritmizacija se bavi pojašnjenjem i dovođenjem do razumijevanja tog "nečega".

Algoritmizacija

Većina primjera algoritama u informatici, čak i na sveučilištima, proučava se na osrednjoj razini. Uobičajena je praksa beskrajno pisati sve složeniji kod. Pokušaji neiskusnih programera da odmah počnu pisati programe u programskom jeziku mogu se usporediti s radom novinara koji je jedva savladao osnove strani jezik piše članak za časopis. Izbjeći sličan problem možete, ako svoj rad prvo počnete pisati na svom materinjem jeziku, urediti ga, provjeriti ima li grešaka i na kraju prevesti na željeni jezik.

Prednost ovog pristupa leži uglavnom u činjenici da će programer biti angažiran na prijevodu samo 25% vremena, dok će prilikom pisanja programa na novom jeziku svih 100% provesti radeći s nepoznatim jezikom. U isto vrijeme, on će biti u skučenim uvjetima i neće moći dirigirati dobar ček za greške i reviziju projekta.

Algoritmizacija pomaže, prilikom implementacije projekta na računalu, opisati proces rješenja u izvornom i razumljiv jezik u obliku dijagrama međusobno povezanih algoritama, analizirati ideje i dobiti najkvalitetniji i promišljeni kod koji će biti otporniji na pogreške i raditi učinkovitije.

Pojam algoritma

Računalo ne može riješiti probleme, ono samo može izvesti jednostavnih koraka tim redom. "Što kažete na kalkulator?" - pitaš. I on je plod rada programera koji su stvorili program koji koristi određene algoritme za postizanje željenih rezultata. Razmotrite apstraktnu situaciju. Što trebate učiniti ako se od vas traži da nađete korijene kvadratnog trinoma osobe koja nije upoznata s metodama rješavanja jednadžbi?

Očito, treba ga osposobiti za rješavanje kvadratnih jednadžbi. To se događa prema sljedećoj shemi:

  1. Odaberite rješenje.
  2. Saznajte sve detalje odabrane metode.
  3. Objasnite prve dvije točke budućem izvođaču na jeziku koji razumije.

Tada će biti moguće izvođaču dati zadatke za rješavanje kvadratne jednadžbe. I ako su prva dva koraka jednostavna i jasna – sva rješenja opisana u relevantnoj literaturi, onda je treći korak težak.

Kako možete osigurati da će ideje korištene u rješavanju problema izvođač percipirati na isti način na koji ga vi razumijete? Ovdje se približavamo pojmu algoritma. Praksa pokazuje da je, da bi se nekome nešto ispravno objasnilo, potrebno promatrati Sljedeći koraci:

  • odrediti polazne podatke (varijablu i koeficijente kvadratne jednadžbe);
  • rastaviti proces rješavanja na jedinstveno poznate komponente za izvođača (formule diskriminacije i pronalaženje korijena);
  • navesti redoslijed izvođenja faza (prvo izračunati diskriminant, zatim korijene);
  • postaviti uvjet pod kojim se rješenje smatra potpunim (provjeriti pronađene korijene zamjenom u jednadžbu umjesto varijabli);
  • naznačiti kakav točno treba biti rezultat rješenja (korijeni pripadaju skupu realnih brojeva).

Opisani niz koraka u opći smisao i algoritam je. Dakle, algoritam se može shvatiti kao metoda za rješavanje zadanog problema, napisana korištenjem određena pravila, omogućujući nedvosmisleno razumijevanje izvršenih radnji i njihov redoslijed. Algoritmi i primjeri zadataka bit će detaljnije razmotreni u nastavku.

Osnovna svojstva algoritma

diskretnost. Proces rješavanja problema uvijek se sastoji od međusobno strogo odvojenih radnji, nazvanih koraci, koji imaju određeni redoslijed izvršavanja.

Sigurnost. Svaki korak treba biti jasan i nedvosmislen, kako u smislu tako iu ključu akcije koju treba poduzeti.

Učinkovitost. Algoritam mora dati rezultat. Istovremeno, broj koraka može biti u tisućama ili milijunima, ali oni uvijek trebaju dovesti do rezultata.

Masovni karakter. Svaki algoritam dizajniran za rješavanje problema mora biti primjenjiv na sve probleme te vrste za sve valjane ulaze.

Mogućnosti računala

Za pravo stvaranje algoritama za računala, važno je razumjeti njihove mogućnosti. Prvo razmotrite količine s kojima računalo radi. NA opći slučaj mogu se podijeliti na numeričke i tekstualne, konstantne i varijable.

Pod konstantnim brojevima podrazumijevaju se svi brojevi: 3.15, 100, 10 5 , njihova je značajka nepromjenjivost kroz program. Varijable mijenjaju svoju vrijednost tijekom izvođenja koda i obično se označavaju slovima: x, y, max, min itd.

Tekstualne varijable, kao i numeričke, mogu biti konstantne ili promjenjive. U prvom slučaju, to je samo tekst: "dobro", "a i b", itd. U drugom, to je ista simbolička oznaka kao za numeričke varijable: ime, grad itd. Razlika između njih leži uglavnom u dodijeljena računalna memorija pod pohranu takve varijable.

Operacije koje računalo može izvesti:

  1. Čitanje podataka s ulaznih uređaja (tipkovnica, miš, datoteke).
  2. Izračunavanje vrijednosti korištenjem matematičke funkcije: zbrajanje, oduzimanje, sin, cos, ln itd. - svaki programski jezik ima vlastiti skup ugrađenih funkcija.
  3. Izlaz podataka (na ekranu, na papiru, u mrežno sučelje).
  4. Prijelaz između faza izvođenja programa.
  5. Usporedba dviju vrijednosti (veće od, manje od, jednako).

Ovo su osnovne operacije koje može izvesti većina programskih jezika.

Načini opisivanja algoritama

Verbalni. Ovo je najlakši način. Njegov primjer je recept. Dopuštena je uporaba jednostavnih matematičkih formula.

Grafički. Opis sa dijagramima. Ovo je poseban način pisanja algoritama koristeći neku vrstu uobičajenog algoritamski jezik- oblici i blokovi koji imaju određeno značenje: pravokutnik je jednostavna radnja, kosi paralelogram je ulaz / izlaz, romb je uvjet itd.

Korištenje algoritamskog jezika. Slično grafičkom, to je također poseban način pisanja algoritma. Postoji mnogo algoritamskih jezika. Njihova pravila nisu stroga, inače bi to bio programski jezik. Razmotrite primjer algoritma za izračun plaća ovisno o radnom stažu, napisanog algoritamskim jezikom.

alg plaća(int ST, pravi ZP) arg ST res ZP start if ST< 5 то zp = 150 иначе если ST <= 15 то ZP = 180 иначе ZP = 180 + (ST - 15)*10 конец

Algoritamski jezik može se nazvati strožim oblikom notacije u usporedbi s verbalnim. Koristi se ograničen skup riječi i njihovih struktura, kao i uvučeni dizajn. Loša strana verbalnog oblika i algoritamskog jezika je sve lošija vidljivost algoritma s povećanjem njegove veličine. Stoga se ove metode mogu koristiti samo za prenošenje značenja malih algoritama.

Vrste algoritama

Postoji veliki izbor algoritama dizajniranih za rješavanje raznih problema. Na primjer, svaki udžbenik više matematike sadrži stotine algoritama: rješavanje sustava linearnih jednadžbi, pronalaženje ekstrema funkcije, izračunavanje integrala itd. Međutim, nakon detaljnog ispitivanja njihove strukture, ispada da se svi algoritmi mogu podijeljen u nekoliko tipova. Razmotrite ove vrste algoritama s primjerima.

  • linearni (izračun rezultata zbrajanja ili množenja, razmjena vrijednosti nekoliko varijabli);
  • grananje (određivanje najvećeg od nekoliko brojeva);
  • ciklički (sortiranje nizova, izračun faktorijela).

Ovo su osnovne vrste. Također je vrijedno napomenuti da u nizu literature postoji i četvrti tip - rekurzivni. Ali nema posebnu oznaku u shematskom zapisu i provodi se kroz osnovne.

Više detalja o svakom algoritmu izračuna s primjerima bit će opisano u nastavku.

Principi algoritmizacije

  1. Odredite izvorne podatke.
  2. Odaberite rješenje.
  3. Odabranu metodu razdvojite na korake ovisno o mogućnostima računala (programski jezik).
  4. Pokrenite algoritam u obliku dijagrama, definirajući jasan redoslijed koraka.
  5. Izlaz rezultata proračuna.
  6. Označite prijelaz na izlaz kruga.

Otklanjanje pogrešaka algoritma

Ljudi griješe i to je činjenica. Glavni parametar svakog algoritma trebala bi biti ispravnost njegovog rada. Debugging je proces identificiranja i ispravljanja grešaka u algoritmu. Za to se uzima određeni skup početnih podataka koji se nazivaju testni podaci. Oni predstavljaju, u pravilu, različite vrste početnih podataka. Na primjer, ako je unos broj, tada treba provjeriti ispravnost algoritma, uzimajući u obzir: pozitivne, negativne, cijele i realne brojeve, nulte vrijednosti itd.

Glavni alat za provjeru točnosti algoritma ostaje ljudski mozak. Naravno, prihvatljivo je koristiti druge računalne alate za automatizaciju testa, ali na ovaj ili onaj način, osoba je uključena u pripremu testova i analizu rezultata. U ovom slučaju postavlja se pitanje zašto nam treba algoritam ako osoba sve radi sama? Zatim, da je glavna zadaća algoritma višestruko rješavanje određene vrste problema.

Linearni algoritmi

Linearni je algoritam u kojem koraci idu sekvencijalno jedan za drugim. Svaki algoritam koji ne sadrži grananje i petlje je linearan. Razmotrite primjer algoritma koji rješava sljedeći problem: vuk i zec sjede u dva kaveza, morate ih zamijeniti.

Ključ za rješavanje ovog problema je dodatni privremeni kavez, koji bi se trebao koristiti za izmjenu životinja.

Algoritmi grananja

Kao što naziv implicira, algoritam ima nekoliko grana. Bit rada je odabrati jednu od mogućih varijanti računskog procesa, ovisno o bilo kojim uvjetima. Shematski grananje je prikazano kao blok u obliku dijamanta, unutar kojeg je naznačeno stanje, a na njegovim stranama nalaze se selekcijske grane ovisno o tome je li uvjet istinit ili lažan. Algoritam grananja i primjeri njegove primjene mogu se naći posvuda. U programiranju, ovo je tipična if-else konstrukcija koja se nalazi u gotovo svakom jeziku.

Navedimo primjer algoritma za rješavanje problema traženja najvećeg među tri broja.

Ciklični algoritam

Ciklički algoritam je algoritam u kojem se isti koraci ponavljaju mnogo puta, u kojem se može promijeniti samo vrijednost određene varijable na kojoj se rade izračuni. O vrstama cikličkog algoritma i primjeru raspravljat ćemo u nastavku, ali za sada navodimo glavne korake za izgradnju ciklusa.

  1. Dodjeljivanje početne vrijednosti varijablama. Bez ovog uvjeta, petlja najvjerojatnije neće moći raditi ili će stvarati pogreške.
  2. Blok za izračunavanje rezultata. Ovo je glavni dio petlje.
  3. Provjera krajnjeg stanja cikličkog procesa. Ako zaboravite navesti uvjet pod kojim bi petlja trebala završiti, algoritam će raditi neograničeno.
  4. Mijenjanje varijabli. Ova blokada stupa na snagu nakon provjere uvjeta prekida ako je lažan. Ako zaboravite na ovaj blok, tada će petlja zauvijek izvoditi jednu radnju i nikada neće završiti. Stoga je važno da varijable pretrpe neku vrstu promjene pri svakoj iteraciji petlje.

Postoji nekoliko vrsta ciklički algoritmi: s postuvjetom, preduvjetom i parametrom.

Izgradimo ciklički algoritam na primjeru pronalaženja faktorijela broja N.

Druge vrste algoritama

Postoji niz drugih algoritama koji se razlikuju po klasifikaciji ili podrijetlu.

  • Mehanički algoritmi. Na primjer, rad motora s unutarnjim izgaranjem ili pokretne trake.
  • Probabilistički algoritmi. Njihov rad temelji se na teoriji vjerojatnosti i matematičkoj statistici.
  • Heuristički algoritmi. U svom radu koriste praktična razmišljanja, bez strogog matematičkog opravdanja.
  • Genetski algoritmi. Primijeniti biološke ideje u svom radu.

Algoritmi mogu biti jednostavni, složeni, ali svi imaju zajedničke značajke. Upravo prema tim značajkama uobičajeno je razlikovati tri vrste algoritama s kojima ćemo se upoznati.

U algoritmima se naredbe pišu jedna za drugom određenim redoslijedom. Ne moraju se izvršiti prema pisanom nalogu. Mogu postojati interne reference na razne naredbe.

Općenito, izvršavanje naredbi prema algoritmu pomalo podsjeća na društvene igre u kojima sudionici izmjenjuju bacanje kockica i hodanje po poljima. Štoviše, na marginama se mogu nalaziti komentari u stilu: “Idi 2 ćelije unazad” ili “Idi 5 ćelija naprijed” (slika 1).

Riža. 1. Društvena igra ()

Složeniji model za izvođenje algoritma je dobro poznata igra "Monopol" ili "Menadžer" (slika 2).

Riža. 2. Igra "Monopol" ()

Bitna razlika između ove igre i jednostavnog izvršavanja algoritma je u tome što krajnji cilj sudionika nije proći stazu, već akumulirati novac određenim radnjama.

Ovisno o redoslijedu izvršavanja naredbi, razlikuju se tri vrste algoritama:

Linearni algoritmi;

Algoritmi grananja;

Algoritmi s ponavljanjima.

"Monopol"

Monopoly je jedna od najpopularnijih društvenih igara. Njegova su pravila prilično jednostavna i razumljiva svima koji su ga barem jednom igrali (slika 4).

Riža. 4. Igra "Monopol" ()

Na početku, igrači imaju jednak iznos gotovine. Bacajući kockice i pomičući svoje žetone po zaokruženom polju za igru, oni dobivaju parcele nekretnina različitih boja. Nakon što dođe na mjesto koje je osvojio neprijatelj, igrač je dužan platiti utvrđenu najamninu. Kupnjom svih parcela iste skupine boja, sudionik može na njima graditi kuće i hotele, što povećava veličinu zakupnine. Cilj svega što se događa je banalan - uništiti sve suparnike.

Prema službenim izvorima - tvrtki Parker Brothers, koja izdaje Monopoly od 1935. do danas - legendarna društvena igra rođena je na sljedeći način. Godine 1934. nezaposleni inženjer Charles Darrow (slika 5) predložio je gore spomenutom uredu da puste igru ​​s nekretninama koju je on izmislio.

Riža. 5. Charles Darrow ()

Otkrivši 52 pogreške u dizajnu društvene igre, braća Parker su odbila izumitelja. On je, s čisto američkim poduzetništvom, otišao u tiskaru, naručio 5000 primjeraka igre i prilično ih brzo prodao. Uvidjevši da im zarada ide ispred nosa, Parker Brothers je žurno preuzeo prava na Monopoly, koji je već iduće godine postao najprodavanija društvena igra u Sjedinjenim Državama, a Darrow živo utjelovljenje američkog sna.

Međutim, u isto vrijeme poznate su i ranije igre koje zapanjujuće podsjećaju na Monopoly. Ispada da je Darrow samo ispao prvi koji se furao i dobio patent za "narodnu" zabavu? Da i ne. Istrage posljednjih godina rasvijetlile su misterij podrijetla Monopolyja.

U drugoj polovici pretprošlog stoljeća politički ekonomist Henry George živio je i radio u Sjedinjenim Državama. Predložio je da se sve iznude zamijene jednim porezom - na zemlju. Prožeta njegovim idejama, Magie je u siječnju 1904. godine dobila patent za društvenu igru ​​The Landlord's Game, koja i pravilima i izgledom podsjeća na sadašnji Monopol. Vjeruje se da je "Igra vlasnika zemlje" imala dvije verzije pravila: nakon igranja igre prema važećim zakonima oporezivanja, igrači su prelazili na model koji je predložio George - i navodno se uvjerio u njegove neophodne prednosti. Dakle, igra nije bila zabava, već instrument ideološke borbe.

Stvari nisu dosegle masovnu proizvodnju, ali se The Landlord's Game postupno proširila Sjevernom Amerikom u rukotvorinama. Do porasta interesa za društvene igre došlo je tijekom godina Velike depresije: tisuće nezaposlenih rado su se zamišljale kao vreće novca barem za igraćim stolom. Pojava poduzetnog čovjeka poput Charlesa Darrowa bila je stvar nekoliko mjeseci - a pojavio se, desetljećima, prisvojivši slavu jedinog izumitelja Monopola.

Bilo je, naravno, i onih koji su smatrali potrebnim oteti komad od nositelja autorskih prava. Nelicencirani "Monopoli" preplavili su Kinu. I kod nas su se proizvodili i proizvode uredni redovi klonova - "Broker", "Zadruga", "Menadžer" (slika 6) ...

Riža. 6. Igra "Menadžer" ()

U svjetlu nedavnog promišljanja Darrowove uloge u stvaranju Monopolyja i isteka autorskih prava, neće biti moguće tužiti takve tvrtke. Čak i pod pretpostavkom da na svijetu ne postoji Elizabeth Magee, pravila Monopola odavno su postala javna domena. Međutim, Hasbro i dalje zadržava dio patenta za sebe: dizajn čipova, grafički dizajn, redoslijed ćelija na igralištu.

Algoritam u kojem se naredbe izvršavaju redoslijedom kojim su napisane, to jest sekvencijalno jedna za drugom, naziva se linearni.

Riža. 3. Žarulja ()

Na primjer, sljedeći algoritam za zamjenu pregorjele žarulje je linearan (slika 3):

1. isključiti prekidač za svjetlo;

2. odvrnuti pregorjelu žarulju;

3. zavrnite novu žarulju;

4. Uključite prekidač kako biste provjerili je li žarulja uključena.

Uz pomoć blok dijagrama, ovaj algoritam se može prikazati na sljedeći način:

(blok dijagram (slika 7.) vidi na kraju sažetka)

Situacije u kojima je redoslijed potrebnih radnji poznat unaprijed izuzetno su rijetke. U životu često morate donijeti odluku ovisno o trenutnoj situaciji. Ako pada kiša, uzmemo kišobran i obučemo kabanicu; Ako je vruće, nosite laganu odjeću. Postoje i složeniji uvjeti odabira. U nekim slučajevima sudbina osobe ovisi o odabranoj odluci.

Logika odluke može se opisati na sljedeći način:

AKO<условие>, ONDA<действия 1>,

INAČE<действия 2>

AKO ima para, ONDA kupi kruh, INAČE ne kupuj.

AKO ste danas u centru, ONDA me nazovite, INAČE nemojte birati.

AKO su lekcije naučene, ONDA idite u šetnju, INAČE naučite lekcije.

U nekim slučajevima<действия 2>može biti odsutan. To može biti zbog njegove očitosti (kao, na primjer, u prvom primjeru - jasno je da ako nemate novca, onda jednostavno ne možete kupiti kruh), ili zbog nedostatka potrebe za njim.

AKO<условие>, ONDA<действия 1>

AKO se nazvao utovarivačem, ONDA se popni straga.

AKO želiš biti zdrav, onda se kali.

Oblik organizacije radnji, u kojem se, ovisno o ispunjenju ili neispunjenju određenog uvjeta, izvodi jedan ili drugi niz radnji naziva se grananje.

Prikažimo u obliku dijagrama slijed radnji učenika 6. razreda koji je zaboravio ključeve od stana, a koje on zamišlja na sljedeći način: „Ako je mama kod kuće, ja ću doći i sjesti da obavim moja domaća zadaća. Ako mama nije kod kuće, onda ću ići igrati nogomet s prijateljima dok mama ne dođe. Ako nema prijatelja na ulici, onda ću se voziti na ljuljački dok moja majka ne dođe.

(blok dijagram (slika 8.) vidi na kraju sažetka)

Potrebni i dovoljni uvjeti

Već smo s vama razgovarali da postoje potrebni i dovoljni uvjeti.

Primjer neophodnog uvjeta bio bi:

Da biste postali liječnik, morate steći medicinsko obrazovanje.

Uvjet medicinske stručne spreme je neophodan za rad liječnika, ali nije dovoljan. Doista, ne postaju svi diplomirani medicinari liječnici.

Primjer dovoljnog uvjeta bio bi:

Da biste se rashladili, samo uključite klima uređaj.

Ovaj uvjet je dovoljan: ako uključite klima uređaj, stvarno će postati hladnije. Međutim, ovaj uvjet nije neophodan, jer za postizanje ovog cilja možete uključiti ventilator, otvoriti prozor itd.

Naravno, postoje nužni i dovoljni uvjeti u isto vrijeme (takvi uvjeti se nazivaju ekvivalent). Na primjer:

Da bi došlo ljeto potrebno je i dovoljno da završi proljeće.

Zaista, ako je proljeće gotovo, onda dolazi ljeto, a ako proljeće nije završilo, onda ljeto ne može doći. Odnosno, uvjeti za kraj proljeća i početak ljeta su jednaki.

Koncepti nužnih, dovoljnih i ekvivalentnih uvjeta vrlo su važni u takvoj grani matematike kao što je matematička logika. Osim toga, vrlo se često susreću pri dokazivanju raznih teorema.

U praksi često postoje zadaci u kojima se jedna ili više radnji moraju ponoviti nekoliko puta dok se ne ispuni neki unaprijed postavljeni uvjet.

Na primjer, ako trebate sortirati kutiju jabuka kako biste odvojili trule od zrelih, tada moramo ponoviti sljedeće korake:

1. Uzmite jabuku.

2. Vidi je li pokvaren.

3. Ako je trulo - bacite, ako nije - prebacite u drugu kutiju.

Potrebno je izvršiti ovaj skup radnji sve dok jabuke u kutiji ne ponestane.

Oblik organizacije radnji u kojem se izvršavanje istog niza radnji ponavlja dok je ispunjen neki unaprijed zadani uvjet naziva se ciklus (ponavljanje).

Poziva se situacija u kojoj izvođenje petlje nikad ne završava petlje.

Treba razviti algoritme koji takve situacije ne dopuštaju.

Razmotrite algoritam budilice na telefonu, koja bi trebala zvoniti u 8:00 ujutro, a zatim zvoniti svakih 10 minuta dok se ne isključi.

U ovom slučaju, njegov blok dijagram izgleda ovako: (vidi blok dijagram (Sl. 9.) na kraju sažetka)

U ovoj lekciji raspravljali smo o tri vrste algoritama - linearni algoritmi, algoritmi grananja i algoritmi ponavljanja.

U sljedećoj lekciji ćemo u praksi raspravljati o sastavljanju algoritama.

Eratostenovo sito

Prisjetimo se definicije prostog prirodnog broja.

Prirodni broj nazivamo prostim ako ima samo dva djelitelja: jedan i sam broj. Ostali brojevi su pozvani sastavni. Broj 1 nije ni prost ni složen.

Primjeri prostih brojeva: 2, 3, 5, 7.

Primjeri složenih brojeva: 4, 6, 8.

U 3. stoljeću prije Krista grčki matematičar Eratosten predložio je sljedeći algoritam za pronalaženje svih prostih brojeva manjih od zadanog broja P:

1. zapiši sve prirodne brojeve od 1 do n;

2. precrtati 1;

3. podcrtaj najmanji od neoznačenih brojeva;

4. precrtati sve višekratnike broja podcrtanog u prethodnom koraku;

5. ako na listi ima neoznačenih brojeva, idite na korak 3, inače su svi podcrtani brojevi prosti.

Ovo je ciklički algoritam. Kada se izvrši, koraci 3-5 se ponavljaju sve dok na izvornom popisu ne ostanu neoznačeni brojevi.

Razmotrimo rezultat ovog algoritma. Zapiši sve proste brojeve od 1 do 25.

Zapiši brojeve od 1 do 25.

Precrtajmo 1. Sada ćemo podcrtati dva. Precrtaj sve parne brojeve.

Budući da nisu označeni svi brojevi, podvlačimo 3. Sada precrtavamo sve brojeve koji su djeljivi s 3.

Budući da nisu označeni svi brojevi, podvlačimo 5. Sada precrtavamo broj 25.

Budući da nisu označeni svi brojevi, podvlačimo 7.

Ništa se ne može prekrižiti, ali nisu označeni svi brojevi, pa podvlačimo 11.

Ništa se ne može prekrižiti, ali nisu svi brojevi označeni, pa podcrtavamo 13. Opet se ništa ne može precrtavati - podcrtavamo 17, pa 19 i 23.

Sada su svi brojevi označeni.

Dobili smo proste brojeve: 2, 3, 5, 7, 11, 13, 17, 19, 23.

Riža. 7.Dijagram toka za promjenu žarulje

Riža. 8. Dijagram toka postupaka učenika šestog razreda


Riža. 9. Blok shema rada budilice


Bibliografija

1. Bosova L.L. Informatika i ICT: Udžbenik za 6. razred. - M.: BINOM. Laboratorija znanja, 2012. (enciklopedijska natuknica).

2. Bosova L.L. Informatika: Radna bilježnica za 6. razred. - M.: BINOM. Laboratorija znanja, 2010. (monografija).

3. Bosova L.L., Bosova A.Yu. Nastava informatike u 5.-6. razredu: Metodičko uputstvo. - M.: BINOM. Laboratorija znanja, 2010. (monografija).

1. Internet portal "Naša mreža" ()

2. Internet portal "Hipermarket znanja" ()

3. Internet portal "kaz.docdat.com" ()

Domaća zadaća

1. §3.4 (Bosova L.L. Informatika i ICT: Udžbenik za 6. razred).

2. Stranica 81 zadatak 2, 6 (Bosova L.L. Informatika i ICT: Udžbenik za 6. razred).

3. Stranica 82 zadatak 9, 11, 13, 14 (Bosova L.L. Informatika i ICT: Udžbenik za 6. razred).

4. * Str. 83 zadatak 15 (Bosova L.L. Informatika i ICT: Udžbenik za 6. razred).

Glavni Svojstva algoritmi su:

1.

2.

3.

4.

·linearno;

grananje;

· ciklički.

Linearno

grananje

ciklički

Struktura Pascal programa.

Pascal je jezik koji uči točnosti i jasnoći (dijelovi programa se ne mogu međusobno mijenjati, potrebno je jasno prikazati rad programa itd.). Zato je potrebno jasno poznavati i razumjeti strukturu Pascal programa.

PROGRAM naziv programa;
(engleskim slovima, jedna riječ. Želite ići dublje? Onda morate koristiti pravila za pisanje identifikatora)

UPOTREBE biblioteke dodataka (moduli);
(dodatne značajke, mogu se povezati s programom u ovom retku)

OZNAČITI popis oznaka;
(s jednog mjesta programa za "skakanje" na drugo)



USTAV odjeljak stalnog opisa;
(fiksne vrijednosti, ne mogu se mijenjati)

TIP opis tipova varijabli; (tip)

VAR definicija globalnih varijabli;
(opis svih varijabli koje se mogu mijenjati u programu)

DEFINICIJA PROCEDURA;

DEFINICIJA FUNKCIJA;

glavni programski blok

Gotovo svaki redak slijedi " ; ". Ovaj znak označava da je linija završila. " ; " ne stavlja se iza službene riječi POČETI i zadnji KRAJ.(što znači kraj programa), nakon čega slijedi točka.

3. Uvjetni operator, operator selekcije. Logičke operacije u Pascalu, tablice istine, osnovni zakoni algebre logike.
Uvjetne izjave

IF [boolean izraz] Then [naredba 1]; Drugo [izjava 2];

Naredba IF funkcionira ovako: prvo se provjerava rezultat Booleovog izraza. Ako je rezultat TRUE, tada se [operator_1] nakon ključne riječi Then izvršava, a [operator_2] se preskače. Ako je rezultat FALSE, tada se [statement_1] preskače i [statement_2] se izvršava.

FOR [parametar_petlje] := [c_c_p_c] To [c_c_c_c] Do [operator];

ZA, Za, Učiniti - službene riječi. [parametar_petlje] – parametar petlje. [n_z_p_ts] – početna vrijednost parametra ciklusa. [k_z_p_ts] - konačna vrijednost parametar petlje. [operator] je proizvoljan operator.

Parametar petlje mora biti varijabla ordinalnog tipa. Početna i završna vrijednost parametra petlje moraju biti iste vrste kao i parametar petlje.

WHILE [uvjet] Do [izjava];

DOK, Do - službene riječi. [uvjet] je izraz Booleovog tipa. [operator] je običan operator.

Naredba While funkcionira na sljedeći način: prvo se provjerava rezultat logičkog uvjeta. Ako je rezultat istinit, tada se naredba izvršava, nakon čega se provodi povratak na test uvjeta s novom vrijednošću parametara u logičkom izrazu uvjeta. Ako je rezultat lažan, petlja završava.



REPEAT [tijelo_petlje]; DO [stanje];

Naredba REPEAT radi na sljedeći način: prvo se izvršavaju naredbe tijela petlje, nakon čega se provjerava rezultat logičkog uvjeta. Ako je rezultat lažan, tada se provodi povratak na izvođenje operatora tijela sljedećeg ciklusa. Ako je rezultat istinit, tada izjava izlazi.

Logička operacija I (I)

Logička operacija AND izvodi se na dva bita, nazovimo ih a i b. Rezultat izvođenja logičke operacije AND bit će jednak 1 ako su a i b jednaki 1, au svim ostalim (drugim) slučajevima rezultat će biti jednak 0. Gledamo tablicu istinitosti logičke operacije i .

a b a&b

Vrste podataka.

Redni:

cijeli; Mozgalica; Simboličan; nabrojano; Interval;

Stvaran:

Strukturirano:

nizovi; žice; setovi; Zapisi; Datoteke;

Pokazivači

6. Nizovi. Definicija, opis, čuvanje i uporaba.
Niz je strukturirani tip podataka koji se sastoji od fiksnog broja elemenata istog tipa.

Svojstvo:

svi elementi niza su istog tipa;

niz ima isto ime za sve elemente;

pristup pojedinom elementu niza provodi se pomoću indeksa (indeksa).

7. Procedure i funkcije. Naslov i tijelo postupaka i funkcija, klasifikacija parametara. Procedure i funkcije pozivanja, značajke njihove uporabe.

potprogram ovo je dio programa, dizajniran kao zasebna sintaktička konstrukcija i opremljen imenom. "Pozivanje" potprograma, tj. izvršenje radnji navedenih u potprogramu kao naredbi može se izvršiti u nekom trenutku u programu navođenjem imena ovog potprograma. Osim postavljanja slijeda radnji, bilo koji potprogram može sadržavati opis određenog skupa lokalni objekti - konstante, tipovi, varijable itd. Ti su objekti namijenjeni organiziranju aktivnosti unutar potprograma i smisleni su (tj. dostupni ili vidljivi) samo unutra ovaj potprogram

Mehanizam potprograma u Turbo Pascalu implementiran je u obliku procedura i funkcija. Imaju gotovo istu strukturu, isto značenje, ali se razlikuju po namjeni i načinu pozivanja.

Postupci služe za postavljanje slijeda radnji usmjerenih na promjenu vanjskog okruženja u odnosu na programsko okruženje. Procedura se poziva navođenjem njenog naziva na mjestu programa gdje se očekuje izvršenje naredbi navedenih u proceduri.

Funkcije služe, prije svega, za određivanje algoritma za izračunavanje neke vrijednosti (jednostavni tip). U skladu s tim, poziv funkcije je jedan od valjanih operanda izraza, označavajući u njemu vrijednost koju funkcija izračunava ("vraća").

POSTUPAK ProcedureName (popis formalnih parametara);
OZNAČITI
Popis oznaka unutar tijela procedure
USTAV
Opis lokalnih konstanti
TIP
Opis lokalnih tipova
VAR
Opis lokalnih varijabli
POČETI
tijelo postupka
KRAJ.

Pojam algoritma. Svojstva, metode opisa. Vrste algoritama.

Algoritam je točna i razumljiva uputa izvođaču da izvrši niz radnji usmjerenih na rješavanje zadatka.

Glavni Svojstva algoritmi su:

1. determinizam (izvjesnost). Pretpostavlja dobivanje jednoznačnog rezultata računskog procesa za dane početne podatke. Zbog ovog svojstva, proces izvršavanja algoritma je mehanički;

2. izvođenje. Označava prisutnost takvih početnih podataka za koje se računski proces implementiran prema zadanom algoritmu mora zaustaviti nakon konačnog broja koraka i dati željeni rezultat;

3. masovni karakter. Ovo svojstvo sugerira da algoritam mora biti prikladan za rješavanje svih problema danog tipa;

4. diskretnost. To znači podjelu računskog procesa određenog algoritmom u zasebne faze, čiju mogućnost izvršitelj (računalo) može izvesti je nedvojbena.

Uz svu raznolikost algoritama za rješavanje problema, u njima se mogu razlikovati tri glavne vrste računskih procesa:

·linearno;

grananje;

· ciklički.

Linearno je takav računalni proces u kojem se sve faze rješavanja problema izvode prirodnim redoslijedom zapisa tih faza.

grananje je takav računski proces u kojem izbor smjera obrade informacija ovisi o početnim ili međupodacima (o rezultatima provjere ispunjenja nekog logičkog uvjeta).

Ciklus je dio izračuna koji se ponavlja mnogo puta. Računalni proces koji sadrži jedan ili više ciklusa naziva se ciklički. Po broju izvođenja ciklusi se dijele na cikluse s određenim (unaprijed određenim) brojem ponavljanja i cikluse s neodređenim brojem ponavljanja.

Cilj : Upoznati studente s osnovama algoritmizacije.

Pitanja za proučavanje:

1. Algoritam i njegova svojstva. Načini pisanja algoritama.

2. Glavne vrste algoritama. Blok dijagrami tipičnih algoritama.

Nakon proučavanja ove teme student mora:

Znati:

svojstva algoritma;

Blokovi za izradu dijagrama;

glavne vrste algoritama;

Biti u mogućnosti :

graditi algoritme prema uvjetu problema;

Pojam algoritma

Pojam algoritma jedan je od temeljnih pojmova računalne znanosti, koji se povijesno oblikovao u neovisnu disciplinu "teoriju algoritama", blisku drugoj disciplini "matematičkoj logici". S druge strane, disciplina "teorija algoritama" može se smatrati posredničkom između dvije discipline: matematike i računalne znanosti, vezane uz dio programiranja.

Algoritmizacija se odnosi na opće metode računalne znanosti, od velike je važnosti u rješavanju složenih problema. Prije nego što napišete program za rješavanje problema na računalu, potrebno je pregledati redoslijed radnji koje je potrebno izvršiti da bi se problem ispravno riješio.

Algoritam je niz aritmetičkih, logičkih i drugih operacija koje je potrebno izvesti na računalu.

Da bi se dobio ispravan rezultat, algoritam mora biti dizajniran tako da se prilikom izvođenja sve naredbe tumače nedvosmisleno. Stoga su se pojavili obvezni zahtjevi koji se moraju uzeti u obzir pri sastavljanju algoritama. Zahtjevi su formulirani kao svojstva.

Algoritam uvijek mora biti učinkovit, imati svojstvo ponovljivosti i mora biti dizajniran za određenog izvođača. U tehnici je takav izvršitelj računalo. Da bi se osigurala mogućnost implementacije na računalu, algoritam mora biti opisan računalno razumljivim jezikom, odnosno strojnim jezikom. Međutim, prije nego što se algoritam prikaže na računalu razumljivom jeziku (strojni jezik), potrebno je napisati program pomoću algoritamskog programskog jezika.

Algoritam se može prikazati na različite načine, a posebno:

1) verbalno (verbalni opis);

2) tablični;

3) u obliku blok dijagrama;

4) u algoritamskom jeziku.

Prilično uobičajen način predstavljanja algoritma je njegovo pisanje algoritamskim jezikom, koji je u općenitom slučaju sustav notacije i pravila za jednoobrazno i ​​točno bilježenje algoritama i njihovo izvođenje. Ovaj način predstavljanja algoritma uključuje njegovo pisanje u obliku programa.

Program je zapis algoritma u programskom jeziku koji dovodi do konačnog rezultata u konačnom broju koraka.

Poželjno je algoritam predstaviti u obliku blok dijagrama prije pisanja algoritamskim jezikom. Da biste izgradili algoritam u obliku blok dijagrama, morate znati svrhu svakog od blokova. Tablica 13 navodi tipove blokova i njihovu namjenu.

Tablica 13

Dodjela bloka

Komentar

(blok odgovara operatoru)

Početak ili kraj

blok dijagrami

Unos ili izlaz podataka

ulaz izlaz

Proces (osobito računski)

zadaci

Modifikator petlje

5.2. Glavne vrste algoritama

Algoritmizacija djeluje kao skup određenih praktičnih tehnika, posebnih specifičnih vještina racionalnog mišljenja unutar zadanih jezičnih sredstava. Algoritmizacija izračuna uključuje rješavanje problema u obliku slijeda radnji, tj. rješenje prikazano u obliku dijagrama toka. Mogu se identificirati tipični algoritmi. Tu spadaju: linearni algoritmi, algoritmi grananja, ciklički algoritmi.

Linearni algoritmi

Linearni algoritam je najjednostavniji. Pretpostavlja sekvencijalno izvršavanje operacija. Ovaj algoritam ne omogućuje provjere stanja ili ponavljanja.

Primjer : Računalna funkcija z= (x-y)/x + y2.

Napravite dijagram toka za izračun funkcije pomoću linearnog algoritma. Varijabilne vrijednosti x, na može biti bilo koji, osim nule, unesite ih s tipkovnice.

Rješenje: Linearni algoritam za izračunavanje funkcije dan je u obliku blok dijagrama na sl.8. Prilikom izvođenja linearnog algoritma, vrijednosti varijabli se unose s tipkovnice, zamjenjuju u zadanu funkciju, rezultat se izračunava, a zatim se rezultat prikazuje.

sl.8. Linearni algoritam

Svrha blokova u dijagramu na slici 8:

Blok 1 u dijagramu služi kao logičan početak.

· Blok 3 predstavlja aritmetičku operaciju.

Blok 4 ispisuje rezultat.

· Blok 5 u strujnom krugu služi kao logičan završetak strujnog kruga.

Algoritmi grananja

Algoritam grananja uključuje provjeru uvjeta za izbor rješenja. Sukladno tome, algoritam će imati dvije grane za svaki uvjet.

U primjeru je razmatran algoritam grananja, gdje se ovisno o uvjetu odabire jedno od mogućih rješenja. Algoritam je prikazan u obliku blok dijagrama.

Primjer : Kada stanje x>0 funkcija se izračunava: z= ul x+ g, inače, naime, kada x=0 ili x<0 , izračunava se funkcija: z= x+ g2 .

Napravite blok dijagram izračuna funkcije prema algoritmu grananja. Varijabilne vrijednosti X, na može biti bilo koji, unesite ih s tipkovnice.

Riješenje : Slika 9 prikazuje algoritam grananja, gdje će se, ovisno o stanju, izvršiti jedno od grananja. Pojavio se u blok dijagramu novi blok 3, koji provjerava stanje problema. Preostali blokovi poznati su iz linearnog algoritma.

https://pandia.ru/text/78/136/images/image008_57.gif" width="300" height="360 src=">

Sl.9. Algoritam grananja

Primjer : Pronađite najveću vrijednost od tri različita cijela broja unesena s tipkovnice. Napravite dijagram toka za rješavanje problema.

Riješenje : Ovaj algoritam uključuje provjeru stanja. Da biste to učinili, odabire se bilo koja od tri varijable i uspoređuje se s druge dvije. Ako je veći, tada je potraga za maksimalnim brojem završena. Ako uvjet nije ispunjen, tada se uspoređuju dvije preostale varijable. Jedan od njih bit će maksimum. Blok dijagram za ovaj zadatak prikazan je na slici 10.

https://pandia.ru/text/78/136/images/image010_48.gif" width="492" height="456 src=">

Riža. 10. Blok dijagram traženja maksimuma

Ciklički algoritmi

Ciklički algoritam predviđa ponavljanje jedne ili više operacija, ovisno o stanju problema.

Postoje dvije vrste cikličkih algoritama:

1) sa zadanim brojem ciklusa ili sa brojačem ciklusa;

2) broj ciklusa je nepoznat.

Primjer : Izračunajte vrijednost funkcije u petlji z=x*y uz uvjet da jedna od varijabli x mijenja se u svakom ciklusu za jednu, a drugu varijablu na se ne mijenja i može biti bilo koji cijeli broj. Kao rezultat izvođenja ciklusa početna vrijednost varijabla x=1 možete dobiti tablicu množenja. Broj ciklusa može biti bilo koji. Napravite dijagram toka za rješavanje problema.

Riješenje : U primjeru je naveden broj ciklusa. Sukladno tome, odabran je algoritam ciklusa prvog tipa. Algoritam za ovaj problem prikazan je na sl. jedanaest.

U drugom bloku upisuje se broj ciklusa n i bilo koje cijele brojeve x, g .

U blok dijagramu se pojavio novi blok 3 u kojem varijabla ja broji broj ciklusa, povećavajući se za jedan nakon svakog ciklusa, dok brojač ne bude jednak i=n . Na i=n posljednji ciklus će se izvršiti.

Treći blok označava raspon brojača ciklusa (od i=1 prije i=n).

U četvrtom bloku mijenjaju se vrijednosti varijabli: z, x.

U petom bloku prikazuje se rezultat. Četvrti i peti blok se ponavljaju u svakom ciklusu.

Sl.11. Ciklički algoritam s brojačem ciklusa

Ovaj tip algoritama petlji je poželjan kada je zadan brojem petlji.

Ako je broj ciklusa nepoznat, tada se blok dijagrami cikličkih algoritama mogu prikazati u obliku slika 12, 13.

Primjer : Izračunati y=y-x Pozdrav g> x, ako g=30 , x=4. Izbrojite broj završenih ciklusa, konačnu vrijednost varijable na . Prikaz vrijednosti varijable u petlji na, broj dovršenih ciklusa. Napravite dijagram toka za rješavanje problema.

Riješenje : U primjeru, broj ciklusa je nepoznat. Sukladno tome, odabran je algoritam ciklusa drugog tipa. Algoritam za ovaj problem prikazan je na sl. 12.

Stanje se provjerava na ulazu u petlju. Tijelo petlje izvršava dva bloka:

1) y=y-x;ja= ja+1 ;

2) izlaz varijabilnih vrijednosti ja, g.

Petlja se izvršava dok se uvjet ne ispuni y>x. Pod uvjetom da su te varijable jednake y=x ili g ciklus završava.

Algoritam prikazan na sl. 12 zove se algoritam petlje s preduvjetom, budući da se stanje provjerava na početku petlje ili na ulazu u petlju. > x na ulazu u ciklus. Ako je uvjet ispunjen, idite na blok 4, u suprotnom idite na blok 6.

U četvrtom bloku izračunava se vrijednost varijable na ja= ja+1 .

U petom bloku prikazuje se rezultat:

varijabilna vrijednost na,

ja.

Primjer : Nacrtajte primjer dijagrama toka (Slika 12), provjeravajući uvjet izlaza iz petlje. U ovom primjeru, stanje problema se ne mijenja, a rezultat će biti isti, ali će dijagram toka biti drugačiji.

Riješenje : U ovom slučaju provjerava se uvjet za izlazak iz petlje: g<=x . Pod ovim uvjetom, petlja se ne izvršava. Uvjet u dijagramu toka treba premjestiti na kraj petlje, nakon ispisa. Petlja se izvršava dok se uvjet ne ispuni y>x.

Algoritam se, ako se uvjet pomakne na kraj ciklusa, poziva algoritam petlje s postuvjetom. Algoritam za ovaj problem prikazan je na sl. 13.

U drugom bloku unesite g=30 , x=4 .

U trećem bloku izračunava se vrijednost varijable na , broji se broj završenih ciklusa ja= ja+1 .

U četvrtom bloku prikazuje se rezultat:

varijabilna vrijednost na,

Broj dovršenih ciklusa ja.

U petom bloku vrši se provjera stanja g <= x za izlazak iz ciklusa. Ako je uvjet ispunjen, prijeđite na blok 6, u protivnom idite na blok 3 i ciklus se ponavlja.

sl.13. Algoritam petlje s postuvjetom

ispitna pitanja

1. Pojam algoritma.

2. Vrste algoritama.

3. Osnovne algoritamske strukture.

4. Glavni blokovi grafičkog algoritma.

5. Linearna algoritamska struktura. Primjer.

6. Grananje. Primjer.

7. Cikličke algoritamske strukture. Primjer.

Najpopularniji povezani članci