Ievads par algoritmiem Programmanas valodas Lekt M Lukjanska

  • Slides: 31
Download presentation
Ievads par algoritmiem Programmēšanas valodas Lekt. M. Lukjanska 06. 09. 2011

Ievads par algoritmiem Programmēšanas valodas Lekt. M. Lukjanska 06. 09. 2011

Ievads par algoritmiem Kopsavilkums l l 2 Kas ir algoritms? Kas raksturo algoritmus? Kā

Ievads par algoritmiem Kopsavilkums l l 2 Kas ir algoritms? Kas raksturo algoritmus? Kā algoritmus pieraksta? Kas algoritmus saista ar programmēšanas valodām? “Skaitļošanas algoritmi, iespējams, ir tikpat seni, cik civilizācija. ” Francis Sullivan Institute for Defense Analyses' Center for Computing Sciences in Bowie, Md 06. 09. 2011 Programmēšanas valodas

Kas ir algoritms? 1. Uzdevums 3 Iedomājieties, ka Jums ir. . . mazā māsa

Kas ir algoritms? 1. Uzdevums 3 Iedomājieties, ka Jums ir. . . mazā māsa 06. 09. 2011 . . . vai mazais brālis Programmēšanas valodas

Kas ir algoritms? 1. Uzdevums (turpinājums) 4 . . . Jūs esat ļoti aizņemts

Kas ir algoritms? 1. Uzdevums (turpinājums) 4 . . . Jūs esat ļoti aizņemts un vēlaties, lai Jūsu mazā māsa vai brālis pagatavotu Jums kafiju, BET ir viena maza problēma. . . 06. 09. 2011 Programmēšanas valodas

Kas ir algoritms? 1. Uzdevums (turpinājums) 5 . . . viņi to neprot darīt!

Kas ir algoritms? 1. Uzdevums (turpinājums) 5 . . . viņi to neprot darīt! Kā Jūs viņiem paskaidrosiet, kā pagatavot kafiju? Pamēģiniet to uzrakstīt, lai viņi varētu apskatīties, ja aizmirsīs! ? ? ? 06. 09. 2011 Programmēšanas valodas

Kas ir algoritms? 1. Uzdevums (turpinājums) 6 Vai Jūs atcerējāties pateikt. . . cik

Kas ir algoritms? 1. Uzdevums (turpinājums) 6 Vai Jūs atcerējāties pateikt. . . cik daudz cukura? cik daudz kafijas? 06. 09. 2011 varbūt vēl kaut kas? cik daudz ūdens? vai vajag pienu? Programmēšanas valodas

Kas ir algoritms? 1. Uzdevums (turpinājums) 7 Tagad iedomājieties. . . ciemos atnāk Jūsu

Kas ir algoritms? 1. Uzdevums (turpinājums) 7 Tagad iedomājieties. . . ciemos atnāk Jūsu paziņa. . . Bet viņš nedzer kafiju. . . Viņš dzer tikai tēju! ciemos atnāk Jūsu otra paziņa. . . Bet viņa nelieto cukuru. . . 06. 09. 2011 Programmēšanas valodas

Kas ir algoritms? 1. Uzdevums (turpinājums) 8 Rezultāta mēs uzrakstījām ALGORITMU karstā dzēriena pagatavošanai!

Kas ir algoritms? 1. Uzdevums (turpinājums) 8 Rezultāta mēs uzrakstījām ALGORITMU karstā dzēriena pagatavošanai! 06. 09. 2011 Programmēšanas valodas

Kas ir algoritms? Definīcijas l 06. 09. 2011 9 Algoritms: l darbību izpildes priekšraksts,

Kas ir algoritms? Definīcijas l 06. 09. 2011 9 Algoritms: l darbību izpildes priekšraksts, ar kuru no dotajiem datiem pēc noteiktu darbību virknes var iegūt uzdevumā prasīto rezultātu [1] l efektīva metode, kas ir izteikta galīga labi definētu instrukciju saraksta veidā kādas funkcijas aprēķināšanai [2] l viennozīmīgs priekšrakts elementāru (atsevišķu, diskrētu) un efektīvu (izpildāmu) instrukciju secīgai izpildei [4] Programmēšanas valodas

Kas ir algoritms? Vēl daži piemēri. . . 10 Mūzikas notis Vai varat nosaukt

Kas ir algoritms? Vēl daži piemēri. . . 10 Mūzikas notis Vai varat nosaukt vēl kādus algoritma piemērus? Receptes Rubika kuba salikšana 06. 09. 2011 Programmēšanas valodas

Kas ir algoritms? Viens no senākajiem algoritmiem. . . l Eiklīda algoritms l l

Kas ir algoritms? Viens no senākajiem algoritmiem. . . l Eiklīda algoritms l l l Lielākā kopīgā dalītāja atrašana diviem veseliem skaitļiem vairāk nekā 2000 gadu vecs Piemērs: l 1071 un 462 l l l 1071 = 2 × 462 + 147 462 = 3 × 147 + 21 147 = 7 × 21 + 0 462 06. 09. 2011 11 Eiklīds, sengrieķu matemātiķis 1071 Programmēšanas valodas

Ievads par algoritmiem Kopsavilkums l l 06. 09. 2011 12 Kas ir algoritms? Kas

Ievads par algoritmiem Kopsavilkums l l 06. 09. 2011 12 Kas ir algoritms? Kas raksturo algoritmus? Kā algoritmus pieraksta? Kas algoritmus saista ar programmēšanas valodām? Programmēšanas valodas

Kas raksturo algoritmus? 13 “Man - izcili algoritmi ir skaitļošanas dzeja. Gluži kā dzejolis

Kas raksturo algoritmus? 13 “Man - izcili algoritmi ir skaitļošanas dzeja. Gluži kā dzejolis tie var būt kodolīgi, dot mājienus, var būt koncentrēti un pat noslēpumaini. Bet tiklīdz ‘atkosti’, tie apstaro ar spožu, jaunu gaismu kādu no skaitļošanas aspektiem. ” Francis Sullivan Institute for Defense Analyses' Center for Computing Sciences in Bowie, Md 06. 09. 2011 Programmēšanas valodas

Kas raksturo algoritmus? Algoritmu iezīmes l Viennozīmīgs l l algoritms ir paredzēts nevis vienam

Kas raksturo algoritmus? Algoritmu iezīmes l Viennozīmīgs l l algoritms ir paredzēts nevis vienam atsevišķam uzdevumam, bet gan veselai radniecīgu uzdevumu klasei Galīgs un efektīvs l 06. 09. 2011 algoritms sastāv no atsevišķām elementārām pabeigtām darbībām (komandām) Vispārīgs l l katrā momentā ir skaidrs, kāda darbība jāizpilda un kas jādara nākošajā solī Diskrēts l l dažādi izpildītāji saprot un izpilda algoritmu vienādi, rezultāts nav atkarīgs no izpildītāja Noteikts l l formulējums nepieļauj dažādas interpretācijas un pārpratumus Formāls l l 14 algoritms nodrošina mērķa sasniegšanu galīgā soļu skaitā Programmēšanas valodas

Ievads par algoritmiem Kopsavilkums l l 06. 09. 2011 15 Kas ir algoritms? Kas

Ievads par algoritmiem Kopsavilkums l l 06. 09. 2011 15 Kas ir algoritms? Kas raksturo algoritmus? Kā algoritmus pieraksta? Kas algoritmus saista ar programmēšanas valodām? Programmēšanas valodas

Kā algoritmus pieraksta? Algoritma izpildītaji l Katrs algoritms ir paredzēts kādam noteiktam izpildītājam: l

Kā algoritmus pieraksta? Algoritma izpildītaji l Katrs algoritms ir paredzēts kādam noteiktam izpildītājam: l l l cilvēkam robotam datoram kādai citai tehniskai ierīcei Svarīgi: l 06. 09. 2011 16 algoritms ir jāraksta izpildītājam saprotamā valodā Programmēšanas valodas

Kā algoritmus pieraksta? Vēl pirms sākt algoritmu pierakstīt l 17 Jāzina: l l l

Kā algoritmus pieraksta? Vēl pirms sākt algoritmu pierakstīt l 17 Jāzina: l l l ievades dati izvades dati (iegūstamais rezultāts) precīzs un konkrēts uzdevuma risinājums l l l jo rakstītais kopumā netiek analizēts ka algoritms ir pabeigts ka algoritms ir efektīvs l uzdevuma veikšanai tiek izmantoti iespējami maz resursu “Ja man būtu tikai viena stunda, lai glābtu pasauli, tad 55 minūtes es veltītu problēmas definēšanai un tikai 5 minūtes risinājuma meklēšanai. ” A. Einšteins 06. 09. 2011 Programmēšanas valodas

Kā algoritmus pieraksta? Algoritmu pieraksta veidi 18 Pastāv vairāki veidi, kā pierakstīt algoritmus: ar

Kā algoritmus pieraksta? Algoritmu pieraksta veidi 18 Pastāv vairāki veidi, kā pierakstīt algoritmus: ar strukturēto tekstu ar blokshēmu ar programmēšanas valodu Saprot un var izpildīt dators Saprot un var izpildīt cilvēks Adaptēts no [3] 06. 09. 2011 Programmēšanas valodas

Kā algoritmus pieraksta? Strukturētais teskts l 19 Pieraksta uzbūve: algoritms <nosaukums> sākums <algoritma darbības

Kā algoritmus pieraksta? Strukturētais teskts l 19 Pieraksta uzbūve: algoritms <nosaukums> sākums <algoritma darbības jeb komandas> beigas 06. 09. 2011 Programmēšanas valodas

Kā algoritmus pieraksta? Algoritmu pieraksta veidi 20 Pastāv vairāki veidi, kā pierakstīt algoritmus: ar

Kā algoritmus pieraksta? Algoritmu pieraksta veidi 20 Pastāv vairāki veidi, kā pierakstīt algoritmus: ar strukturēto tekstu ar blokshēmu ar programmēšanas valodu Saprot un var izpildīt dators Saprot un var izpildīt cilvēks Adaptēts no [3] 06. 09. 2011 Programmēšanas valodas

Kā algoritmus pieraksta? Blokshēma l l l 06. 09. 2011 21 Shēma, ar kuras

Kā algoritmus pieraksta? Blokshēma l l l 06. 09. 2011 21 Shēma, ar kuras palīdzību grafiski attēlo sakarus (parasti funkcionāla rakstura) starp datu apstrādes sistēmas elementiem, izmantojot šo elementu attēlošanai dažādas ģeometriskas figūras ar atbilstošiem uzrakstiem Sistēmas elementi var būt kā vienkāršas shēmas, tā arī sarežģīti funkcionāli bloki Ar blokshēmu palīdzību var izveidot dažādas detalizācijas pakāpes aprakstus Programmēšanas valodas

Kā algoritmus pieraksta? Blokshēmas elementi 22 Elements Apraksts Sākums Kādi ir ievades dati? Datu

Kā algoritmus pieraksta? Blokshēmas elementi 22 Elements Apraksts Sākums Kādi ir ievades dati? Datu ievade Jebkādas datu apstrādes darbības (iekšā raksta pašas darbības) Datu apstrāde Jā Sazarojums Datu izvade Beigas Nē Nosacījums/Sazarojums ar vienu iespējamu rezultātu: ‘jā’ vai ‘nē’ Izvades dati (iegūtā rezultāta izvade) Beigas Piemērs: The Friendship algorithm [The Big Bang Theory] 06. 09. 2011 Programmēšanas valodas

Kā algoritmus pieraksta? Blokshēmas veidošanas pārbaudes saraksts (checklist) l Vai katrā elementā ieiet tikai

Kā algoritmus pieraksta? Blokshēmas veidošanas pārbaudes saraksts (checklist) l Vai katrā elementā ieiet tikai viena bultiņa? l Izņemot: l l sākuma elementu, kurā neieiet neviena bultiņa Vai no katra elementa iziet tikai viena bultiņa? l Izņemot: l l 06. 09. 2011 23 beigu elementu, no kura neiziet neviena bultiņa sazarojuma elementu, no kura iziet tieši 2 bultiņas Programmēšanas valodas

Kā algoritmus pieraksta? 2. Uzdevums l 24 Iedomājieties, ka Jūsu mazākais brālis/māsa ir jau

Kā algoritmus pieraksta? 2. Uzdevums l 24 Iedomājieties, ka Jūsu mazākais brālis/māsa ir jau paaugušies. . . un atnāk pie Jums ar jautājumu: Kā aprēķināt kvadrātvienādojumu (tā saknes)? 06. 09. 2011 Programmēšanas valodas

Kā algoritmus pieraksta? 2. Uzdevums (turpinājums) 25 l Pamēģiniet uzrakstīt algoritmu kvadrātvienādojuma atrisināšanai blokshēmas

Kā algoritmus pieraksta? 2. Uzdevums (turpinājums) 25 l Pamēģiniet uzrakstīt algoritmu kvadrātvienādojuma atrisināšanai blokshēmas veidā! l Netiešās norādes: l l l 06. 09. 2011 kvadrātvienādojuma vispārīgā forma: ax 2 + bx + c = 0 diskriminanta formula: D = b 2 – 4 ac kvadrātvienādojumam ir saknes, ja D >= 0 Programmēšanas valodas

Kā algoritmus pieraksta? 3. Uzdevums l 26 Jūsu mazajam brālim/māsai ir apnicis mācīties matemātiku,

Kā algoritmus pieraksta? 3. Uzdevums l 26 Jūsu mazajam brālim/māsai ir apnicis mācīties matemātiku, tagad viņi vēlas paspēlēt skaitļu minēšanas spēli: l l l Jūs iedomājaties skaitli robežās no 0. . 50 tad Jūsu māsa/brālis sāk minēt par viņu minējumiem Jūs varat teikt tikai: l l l ‘pārāk liels skaitlis’ ‘pārāk mazs skaitlis’ un, protams, ‘skaitlis ir uzminēts!’ . . . bet Jums ir jāgatavojas lekcijām un Jūs labprātāk uzrakstītu kādu datorprogrammu, kur Jūsu māsa/brālis varētu savus minējumus ievadīt. . . Vai Jūs varētu uzrakstīt algoritmu blokshēmas veidā šādai spēlei? 06. 09. 2011 Programmēšanas valodas

Ievads par algoritmiem Kopsavilkums l l 06. 09. 2011 27 Kas ir algoritms? Kas

Ievads par algoritmiem Kopsavilkums l l 06. 09. 2011 27 Kas ir algoritms? Kas raksturo algoritmus? Kā algoritmus pieraksta? Kas algoritmus saista ar programmēšanas valodām? Programmēšanas valodas

Kas algoritmus saista ar programmēšanas valodām? 28 l Programma: l l Programmēšanas valoda: l

Kas algoritmus saista ar programmēšanas valodām? 28 l Programma: l l Programmēšanas valoda: l l līdzekļu, konstrukciju sistēma programmu uzdošanai Programmēšana: l 06. 09. 2011 ir algoritms, kurš pierakstīts datoram “saprotamā” formā [1] programmas izveidošana [1] Programmēšanas valodas

Ievads par algoritmiem Neobligāts mājas darbs l Mēģiniet uzrakstīt algoritmu blokshēmas veidā: l l

Ievads par algoritmiem Neobligāts mājas darbs l Mēģiniet uzrakstīt algoritmu blokshēmas veidā: l l l 06. 09. 2011 29 šī kursa “Programmēšanas valodas” nokārtošanai programmai, kas uz ekrāna izvada visus tos skaitļus intervālā no 0 līdz 50, kuri dalās ar 5 programmai, kas ievadītajam skaitlim (jābūt <11) pieskaita skaitli 5, līdz summa kļūst lielāka par 50 Programmēšanas valodas

Ievads par algoritmiem 30 l l l 06. 09. 2011 Tālāk – Ievads par

Ievads par algoritmiem 30 l l l 06. 09. 2011 Tālāk – Ievads par programmēšanas valodām Paldies par uzmanību! Jautājumi? Programmēšanas valodas

Ievads par algoritmiem Izmantotie resursi 31 1. A. Balode, Programmēšanas pamati. Valoda Turbo Pascal,

Ievads par algoritmiem Izmantotie resursi 31 1. A. Balode, Programmēšanas pamati. Valoda Turbo Pascal, Zvaigzne ABC, 2009, p. 232. 2. H. Rogers Jr, Theory of Recursive Functions and Effective Computbility, The MIT Press, 1987. 3. Algoritmi, prezentācija. [Tiešsaiste] – [atsauce 31. 08. 2011. ] Pieejams: saite 4. K. Čerāns, Datorzinātnes pamati, kursa atbalsta materiāli, LU, 2005. [Tiešsaiste] – [atsauce 04. 09. 2011. ] Pieejams: saite 5. Programmēšanas pamati Pascal vidē, RTU Būvmehānikas katedra, Rīga, RTU, 2005 06. 09. 2011 Programmēšanas valodas