Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Tema 1:
INFORMATIKA2. razred
Tema 1:Obrada informacija korištenjem računara.
Algoritmi i algoritamsko rješavanje problema(8 časova)
Šta je program?� Računarski program je skup naredbi koje govore
računaru na koji način da obavi određeni zadatak� Program je niz naredbi napisanih određenim
redoslijedom, tako da kao cjelina izvršavaju neki zadatak pretvaranjem ulaznih podataka u izlazne rezultate.
� Tekst programa čitljiv programeru i korisniku je � Tekst programa čitljiv programeru i korisniku je izvorni kôd programa
� Izvršni program je binarna izvornog kôda programa razumljiva računaru
� Programski jezik je skup leksičkih, sintaksnih i semantičkih pravila koja uobličuju strogu strukturu pisanja izvornog kôda
Programski jezici� Podjela programskih jezika prema namjeni:
� Programski jezici za numeričke probleme� Programski jezici za poslovne probleme� Programski jezici temeljeni na listama i nizovima� Višenamjenski programski jezici� Višenamjenski programski jezici
Programski jezici� Podjela programskih jezika po načinu izvođenja:
� Imperativnizasnovani na pridruživanju vrijednosti i njihovim ispitivanjem (Ada, C, Fortran, Pascal)
� Funkcionalnizasnovani na funkcijama i listama (Lisp, ML, LOGO)zasnovani na funkcijama i listama (Lisp, ML, LOGO)
� Ciljno orjentisanizasnovani na upitima (SQL, Prolog)
� Objekto orjentisanizasnovani na manipulaciji objektima (Visual Basic)
� Hibridni jezicikoriste više različitih principa (C++)
Programski jezici� Po strukturi
� Struktuirani� Nestruktuirani
� Po proceduralnosti� Proceduralni� Proceduralni� Neproceduralni
Generacije programskih jezika1. Mašinski jezik2. Simbolički jezici: Asembleri3. Proceduralni jezici: C, Pascal4. Objekto orjentisani jezici: Delphi, Java, C++, VB
Usko specijalizovani jezici: RAD5. Usko specijalizovani jezici: RAD
Faze razvoja programa� Analiza problema� Postavljanje modela� Izrada algoritma� Izrada dijagrama toka
Kodiranje programa� Kodiranje programa� Prevođenje programa� Testiranje programa� Dokumentovanje programa� Ekspoatacija i održavanje programa
Algoritam� Muhammed ibn Musa al Khowarizmi
852. god. napisao Kitab al jabr w’al-muqubala� al jabr => algebra� al Khowarizmi => algoritmi
� Algoritam je niz preciznih uputstava koja nas korak po korak vode do rješenja nekog problemakorak po korak vode do rješenja nekog problema
� Algoritam je precizan, uređen i nedvosmislen niz koraka, koji jasno i određeno, u konačnom vremenu, vode ka rješenju nekog problema (ukoliko ono postoji) ili nam daju odgovor da problem nema rješenje.
Dijagram toka� Dijagram toka je grafički prikaz algoritma nizom
grafičkih simbola povezanih usmjerenim linijama.� Sredstvo za vizualnu prezentaciju toka podataka,
operacija koje se izvode i redoslijeda izvođenja operacija.operacija.
Dijagram toka� Standardni simboli za crtanje dijagrama toka:
Početak i Kraj algoritma
Ulaz podataka
Obrada
Izlaz podataka
Obrada
Odluka
Poveznica
Usmjerene linije
Dijagram toka� Pravila za crtanje dijagrama toka:
� Pregledan i jednostavan za pratiti� Jednoznačan� Smjer toka s lijeva na desno i odozgo prema dole� Postoji samo jedan početak i samo jedan kraj� Postoji samo jedan početak i samo jedan kraj� Obrada ima samo jedan ulaz i jedan izlaz� Odluka ima jedan ulaz i više izlaza
Osnovne algoritamske srukture� Linijska struktura
� postoji samo jedna grana izvršavanja algoritma� svaki korak izvršava se samo jednom
� Razgranata struktura� postoji korak odlučivanja� postoji dvije ili više grana
� Ciklične strukture� višestruko izvršavanje jednog ili više koraka
� Struktura sa podalgoritmom� pojedini dijelovi algorima se strukturiraju u
odvojene blokove
Linijska algoritamska struktura� Napisati algoritam za računanje brzine: v=s/t
Početak
s, t
v = s / t
v
Kraj
Linijska algoritamska struktura� Zadaci:
� Nacrtati dijagram toka za izračunavanje površine pravougaonika
� Nacrtati dijagram toka za izračunavanje obima pravougaonikapravougaonika
� Spojiti ova dva algoritma u jedan
Razgranata algoritamska struktura� Šta će se desiti ako je t = 0 u primjeru računanja
brzine po formuli v = s / t ?� Ispitivanje vrijednosti vrši se pomoću simbola:
t = 0DANE
Razgranata algoritamska strukturaPočetak
s, t
DANE
v = s / t
v
t = 0
greška
Kraj
DANE
Razgranata algoritamska struktura� Zadaci:
� Dijagram toka za izračunavanje površine i obima pravougaonika proširiti tako da nam saopšti da li se radi o pravougaoniku ili kvadratu.
� Nacrtati diagram toka koji za broj a određuje da li je � Nacrtati diagram toka koji za broj a određuje da li je paran ili neparan.
� Nacrtati diagram toka koji za dva broja a i bodređuje koji je veći.
� Proširiti dijagram toka iz prethodnog zadatka tako da prepozna ako su brojevi jednaki.
Razgranata algoritamska strukturaPočetak
a, b
a > ba < b
Broj a je manji od broja b
a, b
Broj a je veći od broja b
Kraj
a > ba < b
a = b
Broj a je jednak broju b
Ciklične algoritamske strukture� Ispisati 100 puta “neću pričati na času”
Početak
neću pričati na časuBrutal force
Kraj
neću pričati na času
neću pričati na času
itd
Ciklične algoritamske strukturePočetak
DA
i = 1 Dok je ispunjen uslov ponavljaj
i = 100
Kraj
DA
neću pričati na času
i = i + 1
NE
Ciklične algoritamske strukturePočetak
i = 1Ponavljaj do se ne ispuni uslov
i = 100
Kraj
DA
neću pričati na času
i = i + 1
NE
Ciklične algoritamske strukture
Početak
za i od 1 do 100Ponovi određeni broj puta
Kraj
neću pričati na času
Ciklične algoritamske strukture� Dio algoritma koji se ponavlja sve dok je neki
uslov zadovoljen ili dok ne postane zadovoljen, naziva se petlja
� Vrste petlji:� While-Repeat
Dok je zadovoljen uslov ponavljaju se operacije� Dok je zadovoljen uslov ponavljaju se operacije� Uslov se ispituje na početku bloka operacija
� Repeat-Until� Operacije se ponavljaju dok se ne zadovolji uslov� Uslov se ispituje na kraju bloka operacija
� For� Operacije se ponavljaju određeni broj puta� Uslov se ispituje na početku bloka operacija
Ciklične algoritamske strukture� Zadatak: Sabrati brojeve od 1 do 100
Početak
zbir = 0
Kraj
za i od 1 do 100
zbir = zbir + i
zbir
Ciklične algoritamske strukture� Zadatak: Izračunati prosjek ocjena za 15
predmetaPočetak
zbir = 0
Kraj
za i od 1 do 15
zbir = zbir + ocjena prosjek
ocjena prosjek = zbir / 15
Ciklične algoritamske strukture� Zadatak: Proširiti algoritam za računanje prosjeka
ocjena za bilo koji unaprijed dati broj predmeta
Početak
br_ocj
Kraj
za i od 1 do br_ocj
zbir = zbir + ocjena
zbir = 0
prosjekocjena
prosjek = zbir / br_ocj
br_ocj
Ciklične algoritamske strukture� Zadatak: Po uzoru na prosjek ocjena za jednog
učenika napraviti dijagram toka za izračunavanje prosječne ocjene razreda.
Ciklične algoritamske strukturePočetak
za i od 1 do br_ocjzbir_odj = 0
ocjena
pros_odj = zbir_odj / br_uc
br_ucbr_ocj
za j od 1 do br_uc
zbir = 0
Kraj
zbir = zbir + ocjena pros_odj
ocjena
zbir_odj = zbir_odj + pros_uc
pros_uc = zbir / br_ocj
Ciklične algoritamske strukture� Ispisati sve parne brojeve između broja m i n, te
izračunati njihov zbir. Voditi računa da m mora biti manje od n.
Algoritmi - vježbe� Za redni broj mjeseca ispisati koliko ima dana.� Napraviti jednostavni kalkulator (ulaz su brojevi a
i b, te operacija +, -, *, /).� Za neki datum odrediti redni broj dana u godini.� Izračunati faktoriel prirodnog broja n.� Izračunati faktoriel prirodnog broja n.� Ispisati faktore prirodnog broja n.� Izračunati n-ti stepen broja a.
Algoritmi – zadaci za ocjenu� Provjeriti dali je učitani broj n savršen broj
(jednak je zbroju svojih djelitelja)npr. 6=1+2+3 ili 28=1+2+4+7+14).
� Naći n-ti član Fibonaccijevog niza.Fibonaccijev niz je niz u kojemu je svaki sljedeći član zbroj prethodnih dvaju članova (1, 1, 2, 3, 5, član zbroj prethodnih dvaju članova (1, 1, 2, 3, 5, 8, 13, …). Prvi i drugi član niza jednaki su 1.
� Učitati n brojeva i ispisati najmanji i najveći učitani broj
� Odrediti da li je trougao pravougli, jednakostranični, jednakokraki ili raznostranični
Algoritmi – zadaci za ocjenu� Sastaviti dijagram toka za rješavanje jednačine
� (a+2) ⋅ x – b = c� (a-2) ⋅ x + b = c� a ⋅ x + b = 0� a ⋅ x + 5 = b� a ⋅ x + 5 = b
Algoritmi – zadaci za ocjenu� Sastaviti dijagram toka koji ispituje da li su tri
unesena broja stranice pravouglog trougla� Sastaviti dijagram toka za ispis uspjeha na
osnovu unesene ocjene� Sastaviti dijagram toka koji na ekranu ispisuje � Sastaviti dijagram toka koji na ekranu ispisuje
apsolutnu vrijednost unesenog broja� Provjeriti da li je od dva upisana broja prvi djeljiv
sa drugim
Algoritmi – zadaci za ocjenu� Sastaviti dijagram toka koji ispituje koji je od 10
unesenih brojeva najveći� Sastaviti dijagram toka koji ispituje koji je od 10
unesenih brojeva najmanji
Algoritmi – zadaci za ocjenu� Sastaviti dijagram toka koji na osnovu tjelesne
mase i visine računa BMI=TM/V2 i saopštava stepen gojaznosti:� BMI <18,5 pothranjenost� BMI 18,5-24,9 normalno� BMI 18,5-24,9 normalno� BMI 25-29,9 prekomjerna tjelesna masa� BMI 30-34,9 umjerena gojaznost� BMI 35-39,9 teška gojaznost� BMI >40 ekstremna gojaznost
Algoritmi – zadaci za ocjenu� Izračunati proizvod prirodnih brojeva u intervalu
od k do n.� Izračunati sumu parnih prirodnih brojeva u
intervalu od K do N.� Izračunati aritmetičku sredinu prirodnih brojeva � Izračunati aritmetičku sredinu prirodnih brojeva
od k do n
Algoritmi – zadaci za ocjenu� Sabrati i pomnožiti brojeve od A do B djeljive sa
L. Prebrojati koliko ih ima.� Naći zbir brojeva u intervalu od A do B djeljivih
sa 5 i koliko ih ima� Naći aritmetičku sredinu brojeva od A do B � Naći aritmetičku sredinu brojeva od A do B
djeljivih sa L. Prebrojati koliko ih ima�
Algoritmi – zadaci za ocjenu� Izračunati sumu faktorijela prvih n prirodnih
brojeva (S = 1! + 2! + 3! + … + N!)
Test1. Naći aritmetičku sredinu brojeva između A i B
djejivih sa C2. Ispitati da li je trougao pravougli,
jednakostranični, jednakokraki ili raznostranični3. Ispitati da li tri unesena broja čine trougao3. Ispitati da li tri unesena broja čine trougao4. Ispitati da li je broj A djeljiv brojem B5. Ispisati apsolutnu vrijednost unesenog broja6. Naći aritmetičku sredinu n unesenih brojeva7. Naći rješenje jednačine ax+b=c