390 likes | 699 Views
Osnove programiranja. Literatura: Boris Motik & Julian Šribar Demistificirani C++ Dobro upoznajte protivnika da biste njime ovladali Element, Zagreb 1997. *. Literatura: Nina Lipljin: Programiranje/1 TIVA/FOI 2004. *. Plan predavanja Uvod O programskim jezicima O metodama programiranja
E N D
Literatura:Boris Motik & Julian ŠribarDemistificirani C++Dobro upoznajte protivnikada biste njime ovladaliElement, Zagreb 1997. *
Literatura:Nina Lipljin: Programiranje/1 TIVA/FOI 2004 *
Plan predavanja • Uvod • O programskim jezicima • O metodama programiranja • O objektnom pristupu *
Uvod *
Zadaci: cjelobrojno dijeljenje(1) Učitati i podijeliti dva broja(2) Učitaj dva cijela broja A i B, podijeli A s B s cjelobrojnim rezultatom dijeljenja u D i ostatkom u Cponovi postupaknputa *
Zadatak prvi: A/B=? C=A da START ne Učitaj: A, B A=94B=23 C=A-(C-B) D=D-1 C D 0 0 C=94-(115-23)=94-92=2 D=5-1=4 C=D=0 23 1 46 2 69 3 92 4 1155 ISPIS: A / B=D i ost. C C=C+B D=D+1 ISPIS: A / B=D da C<A STOP ne *
Zadatak drugi: • Učitaj dva cijela broja A i B. • Podijeli A s B s cjelobrojnim rezultatom dijeljenja u D i ostatkom u C . • Ponovi postupak n puta *
Rješenje drugog zadatka START Još? d/n? učitaj: A,B d? da ne CJELOBROJNO DIJELJENJE STOP *
Razvoj programskih jezika 1960 1970 1990 2000 1950 1980 2010
Razvoj programskih jezika • 1949 Asembler (John Mauchly) • Fortran (IBM) FLOW-MATIC (UNIVAC) • ALGOL (Miting u Zurichu) • COBOL (Short Term Commitee) 1960 1970 1990 2000 1950 1980 2010
Razvoj programskih jezika Fortran ALGOL COBOL 1960 1961 1962 1963 1964 BASIC (Dortmauth Uni) 1965 1966 1967 1968 1969 1960 1970 1990 2000 1980 2010 1950
Razvoj programskih jezika Fortran ALGOL BASIC COBOL 1970 1971 Pascal (Niklaus Wirth) 1972 C (Dennis Ritchie – Bell) 1973 1974 1975 1976 1977 Modula 2 (Niklaus Wirth) 1978 1979 1960 1970 1990 2000 1980 2010 1950
Razvoj programskih jezika Fortran Pascal Modula 2 BASIC C COBOL 1980 1981 1982 1983 1984 C++ (Bjarne Stroustrup – Bell) 1985 1986 1987 1988 Oberon (Niklaus Wirth) 1989 1960 1970 1990 2000 1980 2010 1950
Razvoj programskih jezika Fortran Pascal Modula 2 Oberon BASIC C C++ COBOL 1990 Visual Basic (Microsoft) 1991 1992 1993 1994 Java (Sun) 1995 Delphi (Anders Hejlsberg – Borland) 1996 1997 1998 1999 1960 1970 1990 2000 1980 2010 1950
Razvoj programskih jezika Fortran Pascal Modula 2 Oberon Delphi BASIC Visual Basic C C++ Java COBOL 2000 2001 2002 C# (Anders Hejlsberg – Microsoft) 2003 2004 2005 2006 2007 2008 2009 1960 1970 1990 2000 1980 2010 1950
Razvoj programskih jezika 1943. Godine Konrad Zuse je u svojoj doktorskoj disertaciji objavio svoj programski jezik koji se zvao Plankalkül. Jezik se pokretao na računalima koje je on sam napravio. Jezik je imao petlje, polja, matematičke izraze. Nažalost njegov rad bio je izgubljen sve do 70-tih godina. 1960 1970 1990 2000 1980 2010 1950
Jezik C • (Dennis Ritchie, 1972) • direktan prethodnik jezika C++ • opća namjena • jednostavan za učenje • modularan • brz • omogućava optimalizaciju koda *
C++ jezik(Bjarne Stroustrup, 1984) • potreba : da se jednom napisani kôd višekratno koristi • objektno orijentirani jezik • omogućavaobjektni pristuprješavanju problema *
Prolog Datalog Flora Logičko programiranje SQL ML Daplex Funkcionalno programiranje C++ C BASIC Proceduralno progamiranje Pascal Fortran Oberon Objektno Orijentirano progamiranje Strukturno programiranje *
Algoritmi+Strukture podataka=Programiranje N. Wirth - algoritam : općenito rješenje problema - Struktura podataka : način na koji program čuva podatke. Osnovni alati - Blok dijagram - pseudokod : rješenje u formi programa na ‘hrvatskom’ *
Zadatak (1) Preko tastature se učitavaju dva cijela pozitivna broja A i B. Ponuda operacija: 1 = zbrajanje 2 = oduzimanje 3 = množenje 4 = dijeljenje Korisnik bira jednu od operacija. Izabrana operacija se izvršava, a rezultat ispisuje na ekran (zaslon). Izvođenje se ponavlja n puta Zadatak (2) Identičan predhodnome. Dodaje se: 5=izračunavanje postotka 6=ispis slijedećih 20 prijestupnih godina *
Zadatak 1 Izbornik Učitavanjeselektorskevrijednosti Zbrajanje Oduzimanje Množenje Dijeljenje *
Zadatak 2 Izbornik Učitavanjeselektorskevrijednosti Zbrajanje Oduzimanje Množenje Dijeljenje Postotak Prijestupna *
Algoritam (1) 1. Ispis Izbornika: 1 = zbrajanje 2 = oduzimanje 3 = množenje 4 = dijeljenje 2. Izbor akcije: učitavanje selektorske vrijednosti 3. Grananje, ovisno o selektorskoj vrijednosti: 3.1 zbrajanjeoduzimanjemnoženjedijeljenje učitavanje učitavanje učitavanje učitavanje računanje računanje računanje računanje ispis ispis ispis ispis 4. Izbor akcije: učitavanje indikatora kraja ‘d’= ponavljanje od 1. ‘n’ = prekid izvođenja *
Algoritam (2) 1. Ispis Izbornika: 1 = zbrajanje 2 = oduzimanje 3 = množenje 4 = dijeljenje 2. Izbor akcije:učitavanje selektorske vrijednosti 3. Grananje, ovisno o selektorskoj vrijednosti: 3.1 zbrajanjeoduzimanjemnoženjedijeljenje učitavanje učitavanje učitavanje učitavanje računanje računanje računanje računanje ispis ispis ispis ispis 4. Izbor akcije:učitavanje indikatora kraja ‘d’= ponavljanje od 1. ‘n’ = prekid izvođenja 5 = postotak 6 = prestupna g. postotak prestupna učitavanje učitavanjeračunanje računanjeispis ispis *
Pseudokôd(1) ponavljaj ispiši 1 = zbrajanje 2 = oduzimanje 3 = množenje 4 = dijeljenje učitaj (i) izvedi ovisno o (i)ZBRAJANJE ODUZIMANJE MNOŽENJE DIJELJENJE ispiši: ‘Još ? d/n’ učitaj (Z); sve do Z=‘n’ ZBRAJANJE učitaj (A,B) i ispiši (A+B) ODUZIMANJE učitaj (A,B) i ispiši (A-B) MNOŽENJE učitaj (A,B) i ispiši (A*B) DIJELJENJE učitaj (A,B) i ispiši (A/B) • 5 = postotak • 6 = prestupna POSTO učitaj (A,M) i ispiši (N=A*M/100) PRIJESTUPNA Učitaj G ponavljaj sve dok (i<> 20) OST = G / 4 (modulno) ako (OST = 0) i = i +1 ispiši G G = G +1 kraj_ ponavljanja POSTO PRIJESTUPNA *
Objektno programiranje ili Objektni pristup programiranju ili Objektu orijentirano programiranje (engl. Object oriented programming) *
Moderno programiranje • grafičko sučelje • programiranje: progonjeno događajima • program se ne odvija po unaprijed određenom slijedu • programom se upravlja pomoću niza događaja • miš, tipka, izbornik (MENU) • operacije moraju biti dostupne istodobno • objektni pristup • razbijanje rješenja na niz zatvorenih cjelina • radi se s objektima (operacije + podaci) *
Glavna svojstva objektno orijentiranog jezika • enkapsulacija ili učahurivanje: spajanje podataka i operacija • skrivanje podataka: privatnost • ponovna iskoristivost: svojstvo nasljeđivanja • polimorfizam: važno je što, a ne kako je nešto izvedeno *
Objektni pristup (1) -------------------------------------------------- OBJEKT PODACI cijeli broj (A) cijeli broj (B) FUNKCIJE MENU 1 = zbrajanje 2 = oduzimanje 3 = množenje 4 = dijeljenje UČITAJ Učitaj (A, B) ZBROJI UČITAJ Ispiši (A+B) ODUZMI UČITAJ Ispiši ( A-B) POMNOŽI UČITAJ Ispiši (A * B) PODIJELI UČITAJ Ispiši (A / B) IZVOĐENJE ponavljanje MENU 5 = kraj Učitaj (i) izvedi ovisno o (i) ZBROJI ODUZMI POMNOŽI PODIJELI sve do Z=‘n’ KRAJ KRAJ Ispis: ‘Još ? d/n’ Učitaj (Z); -------------------------------------------------- GLAVNI PROGRAM OBJEKT -------------------------------------------------- *
Objektni pristup(2): -----------------------------------------------------NOVI OBJEKT OBJEKT PODACI cijeli broj (G) realni broj (A) realni broj (M) FUNKCIJE NOVI MENU MENU 5 = izračunavanje postotka 6 = prestupna godina POSTO Učitaj (A,M) Ispiši (N=A*M/100) PRESTUPNA Učitaj G cb OST, cb i = 0; ponavljaj sve dok (i<> 20) ost = G / 4 (modulno) ako (OST = 0) i = i +1 ispiši G G = G +1 kraj ponavljanja NOVO IZVOĐENJE ponavljanje NOVI MENU 7 = kraj Učitaj (i) izvedi ovisno o (i) ZBROJI ODUZMI POMNOŽI PODIJELI POSTO PRESTUPNA sve do Z=‘n’ KRAJ ---------------------------------------------GLAVNI PROGRAM NOVI OBJEKT --------------------------------------------- *
REZULTAT • Dobiven jenovi kôd • Izvedena jeenkapsulacija(učahurivanje: 100%) • Podaci su privatni (skriveni) • Predhodno rješenjeponovno je iskorišteno(naslijeđeno) • Objekti supolimorfni(važno ještoa, nekakorade) *
I to je to! Vidimo se za tjedan dana! *