24
Računarski praktikum 1 Predavanja Goran Igaly Sveučilište u Zagrebu PMF, Matematički odsjek

Rp1 predavanja 01

Embed Size (px)

Citation preview

Page 1: Rp1 predavanja 01

Računarski praktikum 1Predavanja

Goran IgalySveučilište u Zagrebu

PMF, Matematički odsjek

Page 2: Rp1 predavanja 01

2

Gradivo i način polaganja

Sadržaj kolegija: osnove objektnog programiranja programski jezik C++

Način polaganja ispita: zadaće kolokviji aktivno sudjelovanje na nastavi

Page 3: Rp1 predavanja 01

3

Evolucija programskih jezika

Prva generacija – strojni jezik Druga generacija – asembler Treća generacija – Pascal, C, Fortran, Algol,

LISP, ... Uvodi se paradigma proceduralnog, strukturnog i

modularnog programiranja Pojavljuju se i višenamjenski jezici Objektno-orijentirani jezici kao nova paradigma

razvoja (Smalltalk, C++, Java, C#)

Page 4: Rp1 predavanja 01

4

Četvrta generacija – 4GL jeziciJezici specijalizirani za određenu domenu problema

Structured Query Language (SQL) najpopularniji programski jezik za kreiranje, dohvat, ažuriranje i brisanje podataka iz baze podataka

METAFONT programski jezik za definiranje vektorskih fontova

PostScript (PS) jezik za opisivanje izgleda stranice i programski jezik koji se prvenstveno koristi u elektroničkom i stolnom izdavaštvu.

Page 5: Rp1 predavanja 01

Structured Query Language - SQL

SELECT IDS.NAME AS INAME, FILES.NAME AS FNAME, COUNT(*) AS C FROM TOKENSINNER JOIN IDS ONIDS.EID = TOKENS.EIDINNER JOIN FILES ONTOKENS.FID = FILES.FIDGROUP BY IDS.EID, TOKENS.FIDORDER BY C DESC;

5

Page 6: Rp1 predavanja 01

METAFONT

6

Page 7: Rp1 predavanja 01

PostScript

%!PS

matrix currentmatrix /originmat exch def /umatrix {originmat matrix concatmatrix setmatrix} def [28.3465 0 0 28.3465 10.5 100.0] umatrix

0.1 setlinewidth 2 2 newpath moveto 3 3 lineto 3 4 lineto 2 4 lineto closepath 0 setgray stroke

showpage

7

Page 8: Rp1 predavanja 01

8

Četvrta generacija – 4GL jezici (2)

Maple komercijalni matematički softverski paket opće namjene. Sastoji se od programskog jezika sa sučeljem koje omogućuje korisniku onos matematičkih formula na uobičajeni način

Mathematica sustav za računalnu algebru, sadrži i viši programski jezik za manipulaciju izrazima

Oracle Forms okruženje za razvoj aplikacija za rad s bazama podataka. Podržava programski jezik PL/SQL. Ideja: razvoj aplikacije za rad s bazama podataka s minimumom programskog koda.

Page 9: Rp1 predavanja 01

Maple

9

Page 10: Rp1 predavanja 01

Mathematica

10

Page 11: Rp1 predavanja 01

Maxima

11

Page 12: Rp1 predavanja 01

12

Četvrta generacija – 4GL jezici(popularna razvojna platforma)

Visual Basic (VB) programski jezik upravljan događajima (event) uz pripadno razvojno okruženje (Microsoft) za korištenje programskog modela COM. VB je zamijenjen razvojnom platformom Visual Basic .NET

Component Object Model (COM) – Microsoftova platforma za razvoj softverskih komponenti (1993)

Ideja softverskih komponenti: softverske komponente, jednako kao hardverske komponente (korištene npr u telekomunikacijama) moraju biti međusobno zamjenjive i pouzdane

Page 13: Rp1 predavanja 01

13

Komunikacija s korisnikom

Windows Forms - sučelje za programiranje aplikacija (API), uključeno u Microsoftov .NET Framework, za pristup standardnim elementima Windows sučelja putem Windows API.

using System.Windows.Forms;using System;

public class DobarDan { [STAThread] public static void Main() { MessageBox.Show(“Dobar dan!"); } }

Page 14: Rp1 predavanja 01

Visual Basic for Applications(Microsoft Access)

14

Page 15: Rp1 predavanja 01

15

Razvoj tipičnog programera

Započinje učenjem programskog jezika 3GL Basic, Pascal, C, Java učenje strojnog jezika i asemblera je nužno samo

za programe za komunikaciju na najnižoj razini

Koristi se paradigma nestrukturiranog programiranja Započinje se pisanjem malih i jednostavnih

programa koji se sastoje od slijeda naredbi i djeluju nad zajedničkim skupom podataka

Page 16: Rp1 predavanja 01

16

Osnovni korak je uvođenje funkcija koje su izgrađene kao skup naredbi i koje imaju dobro definiran ulaz i izlaz

Rješavamo se problema ponavljanja programskog kôda Definiramo ga na jednom mjestu i zatim samo pozivamo funkciju

kad nam zatreba takva funkcionalnost

Glavni program

Podaci

Procedura 1

Lokalni podaci

Procedura 2

Lokalni podaci

Procedura 3

Lokalni podaci

Proceduralna paradigma

Page 17: Rp1 predavanja 01

17

Primjeri: Matematičke funkcije – sin, cos Funkcije za U/I – printf, fwrite Funkcije za rad s grafikom - DrawLine,

DrawCircle Većina razvojnih okruženja dolazi s

ugrađenim mnoštvom biblioteka takvih funkcija

Funkcije / procedure

Page 19: Rp1 predavanja 01

19

Reusability – mogućnost ponovnog korištenja programskog kôda

“write once, use everywhere” Ali, nije sve tako jednostavno Javlja se problem organizacije velikog broja

funkcija u smislene cjeline

Page 20: Rp1 predavanja 01

20

Modul 2

Modul 1 Program

Podaci

Procedura 1

Lokalni podaci

Procedura 2

Lokalni podaci

Procedura 3

Lokalni podaci

Podaci 1

Podaci 1

Procedure srodne funkcionalnosti grupiraju se u module koji mogu imati vlastite podatke

Modularno programiranje

Page 21: Rp1 predavanja 01

21

Programski jezici imaju vrlo “tanku” (i često nejasnu) definiciju modula Npr u C-u modul može biti:

.h datoteka s pripadajućom .cpp datotekom biblioteka funkcija koja se statički povezuje (linka) u naš

program Windows DLL biblioteka

Koncept modula je najčešće implementacijski detalj programskog okruženja u kojem radimo i nije potpuno integriran u sam programski jezik

Modul kao dobro definirana i zatvorena funkcionalna jedinica

Page 22: Rp1 predavanja 01

22

Modul kao dobro definirana i zatvorena funkcionalna jedinica

Osnovni problem je što funkcije i podaci ugrađeni u modul nisu povezani u konkretne programske entitete koji bi predstavljali razumljiv i jasan koncept za krajnje korisnike modula !

Standardni <stdio.h> sadrži niz struktura i funkcija a mi bismo željeli imati “nešto” kao: File, BinaryFile, TextFile, ...

Page 23: Rp1 predavanja 01

23

Moduli “niske razine” (npr. U/I funkcije u C-u, funkcije za grafičko iscrtavanje u Windows-ima) se svakodnevno (i uspješno) iskorištavaju u projektima diljem svijeta. Ovakvi moduli su jasno definirani, s dobrom dokumentacijom i “izglačani” dugotrajnim korištenjem

Korištenje modula

Page 24: Rp1 predavanja 01

24

Stvarna razlika od asemblera?

MASM (Microsoft Macro Assembler) ima varijable, mogućnost definiranja potprograma i mogućnost kreiranja modula

C - jednostavnija sintaksa i moćniji skup osnovnih naredbi

Traži se potpuno nova paradigma programiranja

“Odgovor” je objektno-orijentirana paradigma

Na Predavanje 2