Upload
goran-igaly
View
373
Download
1
Embed Size (px)
Citation preview
Računarski praktikum 1Predavanja
Goran IgalySveučilište u Zagrebu
PMF, Matematički odsjek
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
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#)
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.
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
METAFONT
6
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
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.
Maple
9
Mathematica
10
Maxima
11
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
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!"); } }
Visual Basic for Applications(Microsoft Access)
14
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
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
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
Primjer Processing
18
Preuzmi primjer
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
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
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
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, ...
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
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