Algoritmizacija, algoritmi, jezik i programi. Algoritmi i programi Metode razvoja algoritama za presavijanje

Burakov P.V., Kosovtseva T.R. Informatika. Algoritmi i programiranje. Navchalny pos_bnik.-SPb NDU ITMO, 2013. - 83 str.

Primarni udžbenik zadataka za studente ekonomskih specijalnosti 080100 “Ekonomija” Fakulteta humanističkih znanosti koji studiraju disciplinu “Informatika”. Vodič je uvodni tečaj o algoritmima iz tjedna u dan i programiranju pomoću Turbo Pascala. Pos_bnik da se osveti na puno guzica. Prikazani su teorijski aspekti praktičnih algoritama i osnove programiranja. Drugi dio početnog asistenta je izvođenje laboratorijske radionice.

U 2009, Sveučilište je postalo pobjednik bogatog natjecanja, kao rezultat kojeg je odabrano 12 vodećih sveučilišta u Rusiji, kojima je dodijeljena kategorija „Nacionalno predposljednje sveučilište”. Ministarstvo obrazovanja i znanosti Ruske Federacije odobrilo je Program razvoja državne obrazovne ustanove za visoko stručno obrazovanje "St. Petersburg State University of Information Technologies, Fur Niki and Optics" za 2009.-2018.

© St. Petersburg National Research University of Information Technologies, Mechanics and Optics, 2013 © P.V. Burakov, T. R. Kosovceva

Izjava o problemu..................................................... ..................................................... ........... .......................

Razvoj matematičkog modela..................................................... .........................................................

Izbor metode numeričkog rješenja................................................. ......................................................... ....

Razumijevanje algoritma i strukture podataka ............................................ ........ ...................................

Implementacija algoritma kao programa..................................................... ....... ...................................

Postavljanje i testiranje programa..................................................... ......................................................... ..............

Rješavanje zadataka na računalu................................................. ....... .... ............................................ ................. .... ...

RAZVOJ ALGORITMA ZA RJEŠAVANJE PROBLEMA.................................................. ......................... ......................... ......

Opis algoritma..................................................... .......... ............................................ ................ ....................

Shema algoritma..................................................... ..................................................... ........... ........................

Strukturirane sheme algoritama..................................................... ...... ...................................

SPECIFIKACIJE IMPLEMENTACIJE ALGORITMA................................................. ......................................................... .

Kriteriji za odabir filmskog programa............................................. .........................................

STRUKTURA I ELEMENTI PROGRAMA.................................................. ...... ...................................

Osnovni elementi programiranja.................................................. ...... ...................................

Abeceda i vokabular TurboPascal (TPascal).................................................. ........ ............................

Struktura programa ................................................ ... ................................................ ......... ...............

VRSTE PODATAKA..................................................... .... ................................................ .......... ...................................

Skalarni tipovi podataka..................................................... ..................................................... ........... ............

Strukturirani tipovi podataka ............................................. ..................................................... ...........

UVOD-VISNOK PODACI.................................................. ...... ............................................ ............ .......................

Postupci uvođenja u posao................................................. .................... .............................. ........................ ..........

OPERATORI................................................. .. ................................................ .........................................................

Informacije iza kulisa..................................................... ................................................... ........................ ........................ .

Oprosti operaterima................................................. ... ................................................ ......... ...................

Strukturni operatori..................................................... ... ................................................ ......... ..........

Pametni operateri..................................................... ... ................................................ ......... .............

Operatori petlje................................................. ......... ................................................ ................. ............................

MASIVI................................................. .. ................................................ ......................................................... .

Díí nad masivima..................................................... ..................................................... ........... ............

Dii nad elementima niza..................................................... ......... ................................................ ...............

Operacije s matricama..................................................... ..................................................... ........... ...............

POSTUPCI I FUNKCIJE..................................................... ..................................................... ........... ...............

Potreba za strukturiranjem u programiranju................................................. ........................ ..............

Potprogrami za Movi TPascal ............................................. ...... ............................................ ............ ..

Postupci................................................. ......................................................... ............. ...................................

Funkcije ................................................. ......................................................... .............. .................................

Mehanizam za prijenos parametara..................................................... ...... ............................................ .......

DATOTEKE..................................................... ................................................. .. ................................................ ........

Informacije iza kulisa..................................................... ................................................... ........................ ........................ .

Opis vrste datoteke................................................. ...... ............................................ ............ .........

Značajke obrade datoteka.................................................. ...... ............................................ ............ ......

Tekstualne datoteke ................................................ ......................................................... .......................................

LABORATORIJSKI PRAKTIKUM................................................ ................. ................................. ....................... ........

Laboratorijski robot 1.

Programiranje linearnih

raspetljavanje mladoženja

računski procesi ................................................ ... ................................................ ......... ..........

Laboratorijski robot br. 2.

Ciklički računski procesi..................................................... .....

Laboratorijski robot br. 3.

Operacije s nizovima..................................................... ..... ...............

Laboratorijski robot br. 4.

Rad s datotekama..................................................... .................... ......................

Laboratorijski robot 5. Postupci i funkcije............................................. ......... ........................

Bibliografija................................................. ................................. ................. ....................................... ...

ELEMENTI PRAKTIČNOG RAZVOJA TEHNOLOGIJE NA RAČUNALU

Današnja proizvodnja osobnog računala uključuje sljedeće osnovne faze.

1. Izjava problema.

2. Razvoj matematičkog modela.

3. Odaberite metodu numeričkog rješenja za rozrakhunkov zadatke.

4. Rasprava o algoritmu za otkrivanje strukture podataka.

5. Implementacija algoritma kao programa.

6. Postavljanje i testiranje programa.

7. Rješavanje zadataka na računalu, numerički eksperimenti i analiza rezultata.

Izjava problema

Za stručnjaka koji dizajnira novi virus, tehnološki proces ili praktičnije rješenje za potrebe potrošača, spajaju se znanost i misterij.

Uz završnu vrećicu pronaći ćete odgovarajuće rješenje i pružiti joj ručni izgled za praktično sušenje. Učinkovitost odluke uvelike ovisi o jasnom razumijevanju potrebe i preciznoj verbalnoj formulaciji potrebe za namjeravanu svrhu (ili više svrha). Nakon toga se u predmetnom području istraživanja prikupljaju informacije o čimbenicima koji utječu na doseg krajnje oznake, o međusobnim vezama tih čimbenika, o međusobnoj povezanosti različitih strana problema, na što treba obratiti pažnju. Na taj se način stvara najveći mogući verbalni opis blaga i umova svijeta.

Potrebno je izračunati zadnji korak koji će proći kroz tijelo koje se urušava promjenjivom fluidnošću. Početna fluidnost tijela ostaje jednaka 0. Na sljedećoj razini pouzdanosti brzina se može jednako ubrzati. Vikoristan paketi standardnih programa se ne prenose.

Trenutno se najučinkovitija kombinacija zadataka temelji na različitim matematičkim modelima. Eliminirajući mogućnost rješavanja cijele klase problema, stagnacija matematičkih modela osigurat će implementaciju najrazličitijih razvoja, brzu prilagodbu promjeni mišljenja i potragu za najboljim rješenjima.

Razvoj matematičkog modela

Na temelju verbalne formulacije zadatka odabiru se promjene koje će sudjelovati u procesu rasta, određuje se njihova sfera promjene, matematički se opisuju veze između tih promjena i međusobne izmjene. Čini se i formalno opisuje one službenike koji su uključeni u ovu interakciju kao parametre. Kao rezultat toga, inženjerski zadatak poprima izgled formaliziranog matematičkog modela.

Matematički model zadatka, formuliran u Dodatku 1, je formula: S = 0,5 a t 2, gdje je glavna varijabla sat t s parametrom ubrzanja. Formula pokazuje talog između dovea staze i u skladu je sa zakonom mehanike.

Treba napomenuti da je iz matematičkog opisa naslaga moguće razlikovati različite razine detalja i različite oblike matematičkog opisa. Dakle, u slučaju zagalnym u Rusiji s promjenjivom likvidnošću, dovzhina broja određena je integralom

S = ∫ V (t) dt ,

U tom slučaju zakon promjene fluidnosti V(t) tijekom vremena može postati složen i vrijednost integrala se ne može analitički izračunati. Stoga je praktično u potpunosti naglasiti pristupne metode rješavanja.

Posebno se poštuje primjerenost matematičkog modela potpunog izlaznog opisa umova umova s ​​jedne strane. Neopravdano je dovesti do nepotrebnog gubitka truda i troškova u isto vrijeme. S druge strane, nedostatak točnosti matematičkog opisa (hrapavost modela) može dovesti do velikih grešaka u rješenju, kao i do oprosta zaključaka.

Odaberite metodu numeričkog rješenja

Za složeni problem potrebno je odabrati metodu numeričkog odvajanja koja svodi razdvojeni problem na niz aritmetičkih i logičkih operacija. Razvoj i razvoj takvih metoda provodi grana matematike, nazvana numerička analiza. Kao primjer numeričke metode za izračunavanje integralnih integrala možete koristiti pravokutnu metodu. U kojoj se metodi integral zamjenjuje završnom vrećicom

∫ f (x) dx ≈ ∆ x ∑ f (x i) , gdje je ∆h - vrijeme integracije (const), ∆h=(b-a)/n,

x i+1 =xi +∆ x, x1 =a, xn+1 =b

Izračun najbliže vrijednosti integralnog integrala ovom metodom svodi se na sukcesivno proširenje vrijednosti integralne funkcije koja se implicira i množi s vrijednošću vremena integracije.

Prilikom odabira metode morate uzeti u obzir mogućnosti koje su potrebne za postavljanje zadatka i izvedivost njegove implementacije na računalu: točnost rješenja, točnost rezultata, potrebnu potrošnju RAM-a za uštedu izlazni i međupodaci i rezultati (za zadatak velike svečanosti), složenost programske implementacije, poteškoće u pripremi programa i rješavanju zadatka.

Razumijevanje algoritma i strukture podataka

Budući da aplikacija za najvažniji zadatak uključuje numeričku metodu implementacije u obliku potprograma standardne knjižnice, algoritam se mora svesti na opis unosa izlaznih podataka, unosa standardnog potprograma i prikaza rezultate na ekranu ili negdje drugdje. Postoji više karakterističnih kvarova, ako su standardni potprogrami lišeni bilo kojeg dijela zadatka.

Jasno strukturiranje zadatka, rastavljanje zadataka u uzastopne zadatke, implementacija zadataka u zasebnim modulima, korak po korak detaljiziranje logike algoritma, izbor tipičnih logičkih konstrukcija na dobar način, što je dopušteno razumnim A onda izraditi praktične programe za izvršavanje složenih zadataka.

Važan algoritam razvoja skladišta je izbor skladišta i načina organizacije (strukture) podataka: izlaznih, međurezultata i konačnih rezultata. Filmsko programiranje omogućuje vam rad s numeričkim i simboličkim konstantama, varijablama, nizovima podataka (vektorima i matricama). Stoga Turbo Pascal omogućuje složene podatkovne strukture, ručnu obradu nenumeričkih podataka, kao što su tekstovi, za napredne kombinatorne zadatke i simulacijsko modeliranje. Stoga odabir tipova podataka, tipova podataka i struktura mora biti proveden u skladu sa specifičnostima implementacije algoritma i ostalih inputa. Budući da je programator programiran s različitim algoritamskim jezicima, moguće je odabrati jezik koji je najdosljedniji strukturi podataka zadatka.

Razvoj algoritma se dovršava ili u obliku grafičkog dijagrama ili zapisivanjem dodatnih simbola posebnog dizajnerskog programa, koji se naziva pseudokod. Istražuju se i drugi načini predstavljanja logike algoritmu: dijagrami, tablice rješenja, dijagrami.

Implementacija algoritma kao programa

Kada je program dovršen, dobit ćete opis značajki provedbe ovog programa. Od sada se preporuča držati se osnovnih konstrukcija i tipova podataka, proširujući raspon dostupnih značajki diljem svijeta do kraja programiranja i praktičnih uputa na računalu.

Kada razvijate i implementirate algoritme, nemojte se ustručavati ukloniti programe koji stoje iza šifre brzine, memorije i ručnog rukovanja podacima. Dodatni sati utrošeni na razvoj, programiranje i fino podešavanje složenog algoritma mogu dati rezultate od njegove stagnacije, fragmenti smrada bit će uklonjeni u vrlo kasnoj fazi.

Važno je ranije eliminirati izvorni program, čime se žrtvuje sofisticiranost, kompaktnost, a ponekad i računalna učinkovitost algoritma. Poboljšanje programa može se dovršiti do kasnijeg sata, ako se provode eksperimenti kako bi se razjasnila postavka zadatka, razjasnio opseg stagnacije

programi za lakši unos izlaznih podataka i obradu rezultata. S ove točke gledišta također je zanimljivo istaknuti načelo modularnosti u razvoju algoritma, budući da se fragmenti programa, sastavljeni od modula, lakše osuvremenjuju. Pregled modula programa za unos podataka, raščlambu karakteristika i prikaz rezultata omogućuje vam lokalizaciju trenutnih promjena u programu unutar modula kože, kao i analizu radnji iz njih kako biste pripremili "buduće" blokove za nove zadatke.

Postavljanje i testiranje programa

Prilikom programiranja i unosa podataka s tipkovnice mogu se dopustiti pogreške. Njihova identifikacija, lokalizacija i identifikacija završavaju se u fazi razvoja i testiranja programa.

Jedan od kriterija za profesionalno ovladavanje programera je njihova sposobnost da identificiraju i isprave probleme s napajanjem: programi u ranoj fazi ne mogu obaviti mnogo posla, a posebno je teško za napredne programe. Još uvijek ne vrište. Prote pomilovanja u programima zaustavit će sve.

Prema različitim autorima, faza razvoja i testiranja programa oduzima 50 do 70% vremena utrošenog na sve faze izrade programa i donošenja odluka. S obzirom na važnost i težinu faze razvoja, svi sustavi za dnevno programiranje imaju posebne značajke koje pomažu u otkrivanju i otklanjanju grešaka. Već u fazi razvoja potrebno je da algoritam prenese najjednostavnije upravljačke funkcije koje se uvode u program, a koje se dijele na: ostale unesene podatke odmah nakon što su učitani u memoriju stroja (luna-druk), i druge međurezultati u ključnim točkama. Osim toga, potrebno je što bolje razumjeti strukturu programa za način njegove podjele na module koji se implementiraju u obliku potprograma ili procedura, kao i strukturu jezika koji je najjednostavniji i svladao programer.

Rješavanje zadataka na računalu

U ovoj fazi računalo sprema sve prijenose u program za izračun i prikazuje rezultate na ekranu ili na drugom. Radi lakše daljnje obrade rezultata potrebno je rezultate prenijeti s objašnjenjima u trenutku izrade programa. Brojevi i tablice rezultata koji se prikazuju moraju imati zaglavlja, neke grupe podataka trebaju biti podržane iz drugih redaka. Pri tabeliranju funkcije svakako navedite vrijednosti argumenata i koja je funkcija uključena u parametre; prije unosa vrijednosti funkcije unesite vrijednosti parametara.

Ako nema dovoljno dokaza o programiranju, oblik prezentiranja rezultata bit će ugušen, ali s vremena na vrijeme i dalje treba dodati tragove toj hrani, ostavljajući ostatke u završnoj vrećici, što smanjuje poteškoće daljnje obrade podataka . Važno je razviti oblik prikaza podataka kroz probno pokretanje programa, analizirajući rezultate na ekranu.

Kontrolirajte hranu

1. Koji čimbenici utječu na učinkovitost računalnog programiranja?

2. Reorganizirajte korake za rješavanje zadataka na računalu.

3. Koje su glavne prednosti matematičkog modela problema?

4. Navedite glavne parametre algoritama.

5. Koje značajke treba uzeti u obzir pri razvoju programa na računalu?

6. Kako će završiti razvoj algoritma?

NAMETANJE ALGORITMA ZA ODLUČIVANJE ZADATKA

Opis algoritma

Algoritam se odnosi na konačni niz precizno formuliranih pravila za rješavanje određenih zadataka. Algoritam ima takvu snagu:

Važnost. Sve radnje koje je potrebno učiniti su strogo naznačene.

Duševno zdravlje. Sve radnje koje treba učiniti sigurno će biti razumljive kožom algoritma. Ova se moć može tumačiti kao jednoznačnost algoritma, što znači jedinstvo Viconovih pravila djelovanja i redoslijeda njihova vikoniranja.

Završenost. Viskoznost završetka procesa kože, koji uspostavlja algoritam i završetak algoritma s ciljem.

Produktivnost. Ako algoritam stagnira do kraja zadatka, tada nakon isteka broja sati rezultat može biti odbijen.

Masivnost. Ovaj algoritam moguće je primijeniti na najvišu klasu zadataka, ovisno o općoj formulaciji problema.

Ispravnost. Sposobnost algoritma da proizvede točne rezultate na temelju zadanih zadataka.

Svako je pravilo zapisano u algoritam kao prijedlog naredbe, što Viconnian algoritmu shvaća kao naredbu Viconnianu.

Pogledajmo algoritme za oslobađanje određenog broja naloga. Zavdannya 1. Sastavite algoritam za izračunavanje x pomoću formule

x = a (r − q) 2, gdje je p ≠ -12.

p+12

1. klip;

2. Izračunajte b: = p + 12;

3. Izračunajte c:= r – q;

4. Izračunajte d: = c;

5. Izračunajte e: = ad;

6. Izračunajte x:= e/b;

7. Zapišite rezultat: x;

U unosu algoritma za rješavanje zadatka 1 upisano je slovo zadatka

- Zminni. Dakle, kroz b označavamo p + 12 kroz c - razliku između r - q. Snimiti

b:= p+12 znači da se inicijalno nalazi zbroj p + 12 za prethodnu vrijednost p, a zatim se ta vrijednost dodjeljuje varijabli b.

S obzirom da a, p, q, r imaju različite vrijednosti, razliku možemo izračunati izračunom x. Stoga vam algoritam omogućuje odabir ne samo jednog, već cijele klase zadataka. Ova posebnost algoritma naziva se masovni algoritam. Mogući su algoritmi koji ovise o više zadataka.

Vrijednosti a, p, q, r, 12 zbrajaju izlazne podatke za algoritam, 12

- Konstantne informacije o skladištu, a, p, q, r - promjenjive informacije o skladištu. Vrijednosti b, c, d, e su dodatne varijable, x je rezultat algoritma.

Algoritam se naziva linearnim jer su sve njegove naredbe napisane sekvencijalno, bez narušavanja redoslijeda njihovog prosljeđivanja. Algoritam za rješavanje problema 1 je linearan.

Treba napomenuti da sama formula nije algoritam, budući da ne ukazuje na nedvosmislen redoslijed operacija.

Zavdannya 2. Iza formule

x = − b ± b 2 − 4 ac presavijte algoritam za razotkrivanje kvadratne jednadžbe

ax2 + bx + c = 0 (a ≠ 0).

1. klip;

2. p: = 2a;

3. D:= b 2 - 4ac;

4. Ako je D ≥ 0, prijeđite na korak 5 ili na korak 10;

5. d: = D;

6. x 1 : = − b − d; str

7. x 2 : = − b + d; str

8. Zapišite rezultat: x 1, x2;

9. Idite na korak 11;

10. Zapišite rezultat: rang aktivnih korijena nije bitan;

11. Kineti.

U budućnosti, algoritam je potpuno ovisan o naredbi, tako da algoritam za rješavanje problema 2 više nije linearan. Uz aritmetičke operacije i operacije kvadratnog korijena, računalni proces zamjenjuje pravilo 4 s operacijom okretanja uma: ovisno o odabranom umu (sic) ili neimenovanom umu (ima) odabire se jedan od dva moguća nastavka. Takav algoritam naziva se dešifriranje. Operacija koja može promijeniti slijed pravila u algoritmu naziva se keruvanny operator.

Naredbe koje označavaju redoslijed operacija dijele se na dvije vrste: naredbe mentalni prijelaz ta zapovijed luda tranzicija. Prije naredbi mentalnog prijelaza, primjerice, pravilo 4 primjenjuje se na algoritam za rješavanje zadatka 2. Pravilo 9: Osvetite se neprekinutim prijelazom.

Naredbe mentalnog prijelaza obvezne su i logične mentalnom tipu: ako je α ◊ β , tada ... (gdje je ◊ jedan od operatora > , ≥ ,< , ≤ , = , ≠ ).

Shema algoritma

Dijagram algoritma je grafički prikaz algoritma s dodatnom strukturom međusobno povezanih blokova. Kožni blok je prikazan kao figura koja pjeva. Blokovi kruga povezani su lukovima. Lukovi označavaju redoslijed blokova ravnanja prema algoritmu. Vrste blokova predstavljene su u Malyunki 1.

Sl. 1. Vrste blokova

Ravno glodalo bit će postavljeno na novu fazu proračuna S tzv funkcionalni blok, odnosno proces (slika 1, a). Romb postavljen u novi um P zove se jedinica za inverziju mozga, odnosno odluke (slika 1 b). Koristi se za kontrolu redoslijeda blokova u dijagramu algoritma. Iz funkcionalnog bloka izlazi jedna strelica, a iz bloka inverzije umivaonika dvije strelice. Ostaje za objasniti da se kao rezultat vikonske naredbe za provjeru uma uklanja ili vikonski (sic) ili ne-vikonski (ne) navedeni um P. Informacijski blok(Sl. 1, c) koristi se za uvođenje i uklanjanje A. Blokovi (Sl. 1, d) i (Sl. 1, e) nazivaju se klipasti i terminalni. Dijagram toka zadatka počinje u završnom bloku i završava u završnom bloku.

Algoritam za rješavanje problema prati krug duž ravne linije definirane lukovima od prednjeg bloka do krajnjeg bloka. Informacijski blokovi označavaju vrijednosti parametara koji su navedeni u ikoni i vrijednosti parametara koji su uneseni. Funkcionalni i logički blokovi imaju snimljene varijabilne operatore.

Broj funkcionalnih blokova nastavlja se dok se ne zabilježe radnje za njih. Za logičke blokove, kao rezultat analize, moguće je odabrati jedan od dva moguća luka “tako” ili “ne” i prenijeti kontrolu na blok kojemu je luk naznačen. Stoga, uz implementaciju algoritma, postoji samo jedan put od prednjeg bloka do krajnjeg bloka.

Kada se sheme algoritama formiraju, zadatak se oslobađa na temelju činjenice da su značenja operacija varijabli zapisanih u blokovima već navedena. Zbog razvoja algoritama nužni su posebni umeci, o čemu svjedoči i značaj ovih promjena.

Mališani 2 i 3 pokazuju dijagrame algoritama za rješavanje problema traženja zbroja n - brojeva: a1, a2, a3, a4,.., an.

Sažetak: Predmet znanosti je programiranje. Glavna snaga algoritma. Paradigme programiranja (direktivno, objektno i funkcionalno-logičko programiranje).

Ovaj dio, u kojem tečaj počinje, ima dvije glavne svrhe:

  • pripremiti potrebnu teorijsku osnovu za daljnji razvoj koristeći različite metode obrade informacija, vještine programiranja u malom i kreiranja ispravnih, učinkovitih programa;
  • Podaci su minimalno potrebni za praktično programersko znanje o jeziku Java i izradu malih tipskih programa.

U procesu učenja teoretskog gradiva, poglavlja mogu biti neuspješna zbog različitosti potreba prakse - svestranosti specifičnih zadataka u mojoj Javi. S druge strane, najviša zadaća programiranja može osvijestiti činjenicu da pisanje ispravnog i učinkovitog programa nije tako jednostavno kao što se na prvi pogled čini.

Poznavanje potrebnih teorijskih osnova omogućuje vam prijelaz s drugog odjeljka na razvoj metoda za poticanje programa da dokažu svoju ispravnost - teorije koje čine osnovu za praktično pisanje programa paralelno s učenjem o njima. Na taj se način to dvoje čini potpuno nepovezanim s jednim tokom nastavnog gradiva – teoretskim i praktičnim, koji će se spojiti u jedno već u sljedećem odjeljenju. U međuvremenu, čitatelj više neće moći vjerovati u ono što zna. sve Materijal prvog dijela sadrži potrebno razmišljanje za uspješan prijelaz na početak cijepljenja.

I ostaje pun poštovanja - više je tehnološki. U prvoj fazi učenja Jave korisno je prijeći preko činjenice da je objektno orijentirana i usredotočiti se na lokalne probleme ispravne implementacije algoritma. Međutim, to nije tako lako učiniti - napisano u najjednostavnijim programima na novoj osnovi bez razumijevanja osnovnih koncepata ORP-a. Za određeni problem ovog problema, kreacije su stvorene posebno za ovu klasu Xterm, koji programera početnika štiti od složenosti Java jezika u stvarnom svijetu.

Predmet programiranja znanosti

Dugo su vremena ljudi mogli stvarati inventare sekvenci radnji potrebnih za postizanje cilja pjesme. Takve zalihe mogu obrađivati ​​ljudi ili automatski uređaji. Tekstovi pisani za ljude u pravilu imaju određenu razinu beznačajnosti i neformalnosti. Stražnjica može biti fraza iz kulinarskog recepta o dribtsi soli Samo ljudi su već potvrdili da mogu pravilno soliti bilje prema ovoj preporuci.

Ovaj primjer u potpunosti objašnjava zašto opisi slijeda radnji potrebnih za automatski uređaj moraju biti nedvosmisleni i dodijeljeni bilo kojem formalnom sustavu značenja. Najčešće je stvaranje takvih opisa povezano sa značajnim tehničkim i važnim poteškoćama. Ovaj problem postao je iznimno aktualan u vezi sa širokim rasponom elektroničkih računalnih strojeva (ECM), koji se često koriste u wiki istraživanjima.

Opis slijeda radnji, dovršite pjesmu tako da se može povezati s bilo kojim drugim automatskim uređajem. algoritam. Naredite da se ovaj niz zapiše (kodira) uz određena formalna značenja. U tom se slučaju naziva formalni sustav namijenjen zapisivanju algoritama moj algoritam, sam tekst algoritmu - program, i proces njenog nastanka - programiran.

Informatika bavio se istraživanjem moći algoritama i razvojem metoda za pokretanje programa. Po svojim izvorima i metodama pripada području primijenjene matematike. Svi su pokušavali pristupiti programu kao tehničkoj disciplini, a prije izrade programa industrijske proizvodnje uvijek su doživljavali neuspjehe.

S poštovanjem, ono što je "važnije" za algoritam je često puniti vodu, a to zapravo nije namijenjeno. Matematika ima niz vrlo jasnih vrijednosti algoritama koji su međusobno ekvivalentni, a većinu njih nije teško razumjeti. Svi ti smradovi, međutim, zahtijevaju temeljito poznavanje raspjevane matematičke galame, pa stoga nećemo ulaziti u (čak i važne) detalje potrebne za temeljito razumijevanje algoritma. Zbog toga ćemo pogledati dio algoritma, a zatim ćemo preokrenuti glavne moći za koje je algoritam kriv.

Hajde, ako nemate dovoljno jasno razumijevanje pjesme za aktivno korištenje, znanost je još tipičnija. Na primjer, točna značenja prirodnih i realnih brojeva ne razumiju ne samo srednjoškolci, već i većina srednjoškolaca. Štoviše, čini se da je stonoga zaboravila hodati kada pomisli na redoslijed kojim premješta svoje noge.

Usprkos snazi ​​algoritma

Riješimo problem traženja najmanje proste derivacije prirodnog broja većeg od jedan. Pogodi što oprosti mi Broj se naziva jer ima brojeve koji su jednaki samom jedinici, a jedinica ne ulazi u jedinstvo prostih brojeva. Osovina ove knjige je sljedeća:

Zavdannya 1.1. Osmislite algoritam koji koristi prirodni broj veći od jedan da bi pronašao najmanji prosti razlomak tog broja.

Algoritam za rješavanje problema.

Algoritam P:

P1: Stavite cijeli broj u jednaka dva i prijeđite na korak P2.

P2: Ako potpuno podijelite s , dovršite algoritam nakon što vidite rezultat; U suprotnom, idite na croc P3.

P3: Povećajte vrijednost za jedan i idite na skalu P2.

Da biste razumjeli ovaj algoritam, morate se ponašati kao računalo (ili drugo univerzalni voditelj tima), ručno ću unijeti novi niz radnji za određene male vrijednosti. Bilježimo vrijednost vrijednosti nakon algoritma skin crocus.

k = 3 k = 4 k = 2
P1: i = 2 P1: i = 2 P1: i = 2
P2: i = 2 P2: i = 2 P2: i = 2
P3: i = 3
P2: i = 3

Takvo istraživanje čini važnim da nakon završetka rada algoritam može učinkovito pronaći najmanji prosti faktor izlaznog broja. Nije teško ovu situaciju dovesti do ove točke. Obov'yazkovo to zaraditi.

Glavni autoriteti bilo koji algoritam - njegov završetak, značaj, ulaz (uvod), izlaz (obnavljanje) i učinkovitost. Pogledajmo njihova izvješća jedno po jedno.

Kintsivka. Algoritam je odgovoran za završetak nakon isteka zadnjeg broja sati. Algoritam P zadovoljava ovo mišljenje, jer je vrijednost uzorka manja, njegova vrijednost raste za jedan do kutane vrijednosti P2, a algoritam će biti dodijeljen P2 kada je primarni broj, ili ranije kada je zaliha .

Važnost. Radnje koje treba poduzeti na kožnim lezijama su krive za osip i dvosmisleno u kožnim lezijama. U ovom slučaju sustav je postavljen da ispuni pjesmu, iako postoji potpuno formalan sustav vrijednosti. Najčešće, algoritmi zapisuju formalniji algoritamski jezik, koji se također naziva movami programiranje, u kojem tvrdoća kože zauzima svoje mjesto.

Nina ima tisuće programa, deseci njih aktivno pobjeđuju. Toliki broj činjenica posljedica je raznolikosti područja stagnacije, razlike u opremi za koju se programi pišu, te u razini obučenosti ljudi koji ih pišu, kao i brojnih činjenica o onima koji pišu programe (tzv paradigme programiranja).

Ulazni. Algoritam svaki dan generira (ponekad jednak nuli) određeni broj ulaznih podataka, kao što su količine koje se šalju robotu. U algoritmu P, na primjer, jedna ulazna vrijednost je cijeli broj veći od jedan. Primjer za algoritam koji uzima prazan skup ulaznih podataka može biti algoritam koji izračunava 1000 kao jednostavan broj.

Izlaz. Algoritam je uvijek kriv za jednu ili više izlaznih vrijednosti. Za algoritam P takva vrijednost je broj. Algoritmi koji proizvode izlazne podatke su praktični i možemo ih koristiti.

Učinkovitost. Algoritam mora biti učinkovit. To znači da sve operacije koje treba provesti u algoritmu moraju biti jednostavne, kako bi se u principu mogle izvesti točno i na kraju uz pomoć odgovarajućeg alata i papira. Algoritam P izvodi sljedeće operacije: dva cijela broja su jednaka, jedan pozitivan broj se dijeli s drugim, vrijednost cijelog broja dva se dodjeljuje kao varijabla i njegova vrijednost se povećava za jedan.

Sve ove operacije su učinkovite za naznačeni viši smisao, budući da se cijeli brojevi mogu pisati na papir krajnjim redoslijedom i mogu se prepoznati pomoću jedne metode dijeljenja i zbrajanja dva cijela broja. Osim ako same operacije nisu bile učinkovite, kao da su vrijednosti veličina koje se pojavljuju u algoritmu, radije su bile aktivne brojke, izražene razlomcima nebrojenih desetica, fragmenti takvih veličina ne mogu se zapisati na papiru na kraju sat

Rekavši to, što je praktično s EOM-om teško raditi s realnim brojevima, Ono što vam se možda čini nevjerojatnim. Istina je, istina je. Štoviše, tipkanje s referentnim cijelim brojevima na računalu se ne radi tako često. Potaknite zamjenu više cijelih brojeva i realnih brojeva koji će se koristiti njihovim zamjenama

Razumijevanje algoritma mora se razumjeti prije osnovnog razumijevanja informatike. Pogledajmo osnovne koncepte algoritma.

Kad god govorimo o algoritmu, uvijek moramo poštovati čast opjevanog Vikonavca kojemu algoritam pripada.

Vikonavec - osoba ili automatski stroj (na primjer, računalo) koji može poništiti konačno biranje radnji.

Pripisivanje - redoslijed pobjedničke akcije iz zadanog krajnjeg skupa.

Sustav narudžbe - Ukupnost dopuštenih kazni.

Program - krajnji redoslijed naloga u naznačenom redoslijedu njihovog izvršenja.

Ako Wikonavac ima računalo, račun se poziva tim , a sustav narudžbi se zove računalni komandni sustav . p align="justify"> Različita računala mogu imati različite sustave naredbi na temelju svojih uređaja.

Programiranje - Razvijen slijed naredbi, koji je neophodan za izvršenje dodijeljenog zadatka.

Sastav programa prenosi se na algoritam.

Algoritam - na precizniji i razumniji način moći ćete razraditi konačni redoslijed radnji za postizanje zadanog cilja i rješavanje zadatka.

Koji god algoritam ima takvu moć:

  • 1. Diskretnost. Algoritam je podijeljen na niz elementarnih procesa – procesa. Akciju kože može dovršiti Viconavian, prvi odozdo prijeći ćemo na Viconan početak. Radnja skina označena je posebnim umetkom u unosu algoritma koji se zove naredba.
  • 2. Točnost i determinizam. Snimanje algoritma treba izvršiti na način da je izdao vražju naredbu, znajući sigurno da naredbu treba napadno slijediti.
  • 3. Razumnost. Skin algoritam će biti razvijen za određenog korisnika, koji će algoritmu moći dodijeliti skin naredbu ovisno o njegovoj vrsti.
  • 4. Produktivnost. Uz točno izvršenje svih uputa algoritmu, proces mora biti dovršen u konačnom broju minuta, au tom slučaju može doći do gubitka izvršenja zadatka. Jedno od mogućih rješenja može biti utvrđivanje činjenice da se zadatak ne može riješiti
  • 5. mazovac. Uz pomoć istog algoritma moguće je izvršavati zadatke iste vrste i izvršavati ih više puta. Snaga mase značajno povećava praktičnu vrijednost algoritama.

p align="justify"> Velika vrijednost algoritama leži u činjenici da ne moraju ulaziti u mjesto onoga na čemu rade, a ujedno uklanjaju potrebu za više znanja, osim Viconaviana.

Najjednostavnije operacije, koje uključuju proces rješavanja zadatka, mogu implementirati automatski uređaj, posebno dizajniran za dodjeljivanje određenih naredbi algoritmu u dodjeljivanju niza. Nakon što je moguće izvesti algoritam za rješavanje zadanog zadatka, postaje moguće stvoriti stroj koji bi automatizirao svoje aktivnosti.

Algoritam kože prenosi vidljivost određenih izlaznih podataka. Na primjer, za medicinski recept (algoritam) izlazni podatak je lijek, a rezultat je bočica pripremljenih lijekova. Za algoritam, izlazni podatak je par dodataka, a rezultat je njihov zbroj. Za algoritam kože postoji klasa objekata prihvatljivih kao izlazni podaci. Neki izlazni podaci su materijalni objekti ili brojevi.

Algoritam je isto pravilo, kako je formulirano mojim djelom. Izlazni podaci i traženi rezultati također su rezultat opisa moje aktivnosti, moguće na podređen način, kao što je opis algoritma.

Također, algoritam je povezan s dvije riječi: jedna od same formulacije, propozicije druge, a druga prihvatljive varijante izlaznih podataka.

Razvoj algoritma za rješavanje problema naziva se algoritmizacija. U procesu algoritmizacije, zadaci se svode na konzistentan niz koraka, poredanih po redu.

Ne postoji jasna razlika između algoritama i programa. Programom se naziva algoritam za rješavanje zadatka, snimanje računalom i snimanje uz pomoć dodatnih prijedloga programiranja pobjedničkog jezika.

Algoritamska struktura Ovo je standardna metoda povezivanja susjednih koraka algoritma dok se ne formira tipičan slijed radnji.

Teorija algoritama kaže da se svaki algoritam može predstaviti kao kombinacija tri algoritamske strukture: ravne linije, račve i ciklusi.

To je slijed radnji (slika 12).

Mali 12.

Postaje teško u trenucima kada je, ovisno o istini logičkog uma, potrebno pobijediti ovo drugo (slika 13).


Mali 13.

Akcije 1 i 2 mogu, na svoj način, uključivati ​​druge algoritamske strukture.

Ciklus . Zapinje kada akcije treba više puta otkazati. Postoje dvije varijante ciklusa.

Postaje teško ako je potrebno ponavljati određene operacije na isti način kao u slučaju Milkove (slika 14).

Mali 14. Ciklus Prije.

Pod dodjelama klipa postoje operacije u kojima se izlazne vrijednosti dodjeljuju promjenjivim vrijednostima, poput onih u ciklusu. Niz radnji koje se često ponavljaju naziva se tijelom ciklusa.

Postaje teško ako određene operacije zahtijevaju ponavljanje sve dok djelovanje uma ne postane istinito (slika 15).

Mali 15. Ciklus Boo.

2.4.1. Razumijevanje osnovnih algoritama

2.4.2. Algoritmi linearne strukture

2.4.3. Osnovni algoritmi struktura koje se projektiraju i primjene njihovog programiranja

2.4.4. Osnovni algoritmi regularnih cikličkih struktura i primjene njihovog programiranja

2.4.5. Osnovni algoritmi iterativnih cikličkih struktura i primjene njihovog programiranja

2.4.6. Osnovni algoritmi za obradu jednodimenzionalnih nizova

2.4.7. Osnovni algoritmi za obradu dvodimenzionalnih nizova

2.4.8. Testna prezentacija na temu “Osnovni algoritmi i primjene njihove implementacije”

2.4.9. Testovi na temu "Osnovni algoritmi i primjene njihove implementacije"

2.4.1. Razumijevanje osnovnih algoritama

Osnovni algoritmi za obradu podataka rezultat su istraživanja i razvoja koji se provode desecima godina. Ale smrad će, kao i prije, nastaviti igrati važnu ulogu u stagnirajućim računalnim procesima koji su u ekspanziji.

Osnovni algoritmi za imperativno programiranje uključuju:

    Najjednostavniji algoritmi implementirati osnovne algoritamske strukture.

    Algoritmi Roboti s podatkovnim strukturama. Oni ukazuju na osnovne principe i metodologiju koja se koristi za implementaciju, analizu i usklađivanje algoritama. Dopušteno je odbaciti izjave o metodama i prikazu podataka. Takve strukture uključuju popise povezivanja, retke, stabla, apstraktne tipove podataka, kao što su hrpe i ladice.

    Algoritmi sortirnica, namijenjen za sređivanje nizova i datoteka, može biti od posebne važnosti. Algoritmi za sortiranje su povezani, zokrema, chergi s prioritetom, izbor izbora i zlo.

    Algoritmi samo šala Dizajniran za traženje određenih elemenata u velikim zbirkama elemenata. To uključuje osnovne i proširene metode pretraživanja stabala digitalnih ključeva, uključujući stabla digitalnog pretraživanja, uravnotežena stabla, raspršivanje, kao i metode koje su prikladne za rad s vrlo velikim datotekama.

    Algoritmi na grafovima smeđa s visinama, niskim, sklopivim i važnim narudžbama. Izvorna strategija pretraživanja na grafovima fragmentirana je i stagnira na temeljne probleme koherentnosti, uključujući problem pronalaženja najkraće rute, stvaranje minimalnog stabla kista, na problem tokova u granicama i problem stvaranja pare. Objedinjavanje pristupa ovim algoritmima pokazuje da se temelje na istoj proceduri, te da se ta procedura temelji na glavnom apstraktnom tipu podataka crteža s prioritetom.

    Algoritmi podrezivanje reda omogućiti niske metode obrade za (duge) uzastopne znakove. Šalu treba podići na razinu standarda, što na svoj način vodi sintaktičkoj analizi. Do koje klase se može nadograditi zadatak i tehnologije kompresije datoteka.

2.4.2. Algoritmi linearne strukture

Kundak 2.4.2-1.

de x = -1,4; y = 0,8; promjenjivi - cijeli tip, ostale promjene - govorni tip; [n] - cijeli dio broja n.

Dijagram algoritma i programa QBasic, Pascal, C++ prikazan je na sl. 2.4.2-1.

Pokažite poštovanje prema onima koji su bezvrijedni k zaokružene vrijednosti n, ali cijela stvar je promjenjiva m- skraćeno za dodatnu funkciju POPRAVITI() do cijelog dijela vrijednosti n.

Kundak 2.4.2-2. Izračunajte i prikažite na ekranu vrijednosti trenutnih količina:

de x = 2,9512; y = 0,098633; promjenjiv – cijeli tip; Ostale promjene su materijalnog tipa.

Dijagram algoritma i koda programa prikazan je na sl. 3.2.1-2.

Mali 2.4.2-2.

Rezultati programa pri dodjeljivanju viših vrijednosti izlaznim podacima izgledaju ovako:

Kundak 2.4.2-3. Izračunajte i na ekranu prikažite vrijednosti prvog kozmičkog fluida.

Provedimo formalizaciju. Minimalna fluidnost, za koju letjelica može postati komadni satelit u gravitacijskom polju Zemlje,

de – gravitacija je postala; M – masa Zemlje;
- Idi u središte Zemlje do svemirske letjelice.

Dijagram algoritma i koda programa prikazan je na sl. 3.2.1-3.

Mali 2.4.2-3.

Rezultati programa pri dodjeljivanju viših vrijednosti izlaznim podacima mogu izgledati ovako.

1. Razumijevanje algoritma

Algoritam – preciznije i mudrije naređivanje konačnog zadatka za provođenje redoslijeda radnji uključenih u zadatak. Ime " algoritam Sliči latinskom obliku imena srednjoazijskog matematičara al-Khorezma - Algorithmi.

Vikonavetsov algoritam- ovo je apstraktni ili stvarni (tehnički, biološki ili biotehnički) sustav, stvoren vykonati dii, koji je implementiran algoritmom. Vikonavtsy karakteriziraju: sredina, elementarne ideje, sustav zapovijedanja, mudrost. Sereda(ili okruženje) - ovo je "mjesto življenja" Vikonaviana . Kozhen vikonovets može vikonovati naredbe s danog popisa - sustavi zapovijedanja vikonavski. Za naredbu skin potrebno je postaviti stagnaciju uma (u nekim stanjima sredine može postojati naredba viconan) i opisati rezultate naredbe viconn. Nakon što kliknete naredbu, sada ćete nastaviti s dnevnim aktivnostima elementarno djelovanje. Vidmovi Vikonavtsya krivi jer je naredba pozvana u stanju sredine koje je za nju neprihvatljivo.

Informacijska tehnologija ima univerzalno računalo za algoritme.

2. Snaga algoritama

Možete vidjeti ove glavne moći algoritama:

1) Duševno zdravlje za Viconavac – tobto. Vikonavets algoritam je kriv za plemstvo, kao yogo vikonuvati.

2) Diskretnost(permutacija, odvojenost) - to je to. Algoritam bi trebao predstavljati proces rješavanja problema kao niz jednostavnih i ranijih zadataka.

3) Važnost- tobto. Svako pravilo za algoritam mora biti jasno, nedvosmisleno i ne ostavljati prostora za diverzifikaciju.

4) Produktivnost(ili završetak). Ta moć leži u činjenici da je algoritam odgovoran za dovršavanje zadatka u samo nekoliko minuta.

5) mazovac- znači da je algoritam za rješavanje problema fragmentiran izvana, dakle. Može doći do stagnacije za ovu vrstu posla, koja je ograničena izlaznim podacima. U ovom slučaju, izlazni podaci mogu se odabrati iz područja pjesme, koje se zove područje algoritma.

3. Oblik prikaza algoritama

Najširi oblici prezentacije algoritamaê: verbalni, grafički, pseudokod i program.

1) Glagolski oblik Zapis je opis naknadnih faza obrade podataka prirodnim jezikom (na primjer ruski).

kundak. Zapišite algoritam za pronalaženje najvećeg dilatatora (NDD) dvaju prirodnih brojeva.

Algoritam: 1) postaviti dva broja; 2) ako su brojevi jednaki, uzmite jedan od njih kao referencu i sažmite, inače nastavite s algoritmom; 3) izračunati više brojeva; 4) veći broj zamijeniti razlikom većeg i manjeg broja; 5) ponovite algoritam iz koraka 2.

Opisi algoritma ograničeni su na bilo koje prirodne brojeve i mogu dovesti do završetka zadatka u konačnom broju sati.

Verbalna metoda nema širok raspon, samo sljedeće opise:

a) nisu strogo formalizirani;

b) patiti od bogatstva zapisa;

c) dopustiti dvosmislenost u zabuni određenih redova.

2) Grafička metoda Izražavanje algoritama je kompaktnije i slično verbalnom. Uz pomoć grafičkog dijagrama, algoritam se prikazuje kao slijed međusobno povezanih funkcionalnih blokova, od kojih svaki odgovara istoj aktivnosti. Takva grafička manifestacija naziva se dijagram algoritma ili blok dijagram . U blok dijagramu je tip kože označen geometrijskom figurom koja se naziva simbol blokiranja. Simboli blokova su povezani prijelazne linije, Što znači zloća Viconnyja?

O cijeni javite u nastavku...

3) Pseudokod To je sustav vrijednosti i pravila namijenjen za snimanje algoritama. Vin zauzima srednje mjesto između prirodnog i formalnog jezika.

S jedne strane, blizak je prirodnom jeziku, pa se algoritmi mogu pisati i čitati kao prirodni tekst. S druge strane, pseudokod je vikoriziran službene riječi taj matematički simbolizam koji zapis algoritma približava formalno prihvaćenom matematičkom zapisu. Riječi službe pojavljuju se podebljanim fontom u rukom pisanom tekstu, a istaknute su u rukom pisanom tekstu tako da se mogu vidjeti u drugom tekstu.

kundak. 1) dati dva broja x i y; 2) YAKSHCHO x=y, ONDA BOG=x í KÍNETS; 3) AKO je x>y, ONDA je x=x-y, inače y=y-x; 4) PREĐITE na točku 2.

4) Obrazac programaê tekstovi programa napisani različitim programskim jezicima.

Grafički simboli na blok dijagramima prikazani su u nastavku.

Struktura "Dotrimannya".

Povna vilica

Nepovna Rozvilka

Ciklus s promjenom mišljenja

(POKI ciklus)

Ciklus iz postumove (DN ciklus)

Ciklus s parametrom

U dijagramima, SERIES znači jedan ili više operatora; UMOVA je logički izraz (LV) (ako je njegova vrijednost TRUE, prijelaz se provodi prema SO, inače - prema NO). Na dijagramu ciklusa s vikoristanim parametrom značenja su: PT – parametar ciklusa, NC – početna vrijednost parametra ciklusa, KZ – krajnja vrijednost parametra ciklusa, Š – vremensko ograničenje promjene parametra ciklusa.

Početak i kraj algoritma u dijagramima toka označen je ovalom, koji se upisuje i promjene bilježe u paralelogramima.

Pisači