30
Računarstvo i programiranje Uvod

O Programiranju

Embed Size (px)

DESCRIPTION

O Programiranju

Citation preview

  • Raunarstvo i programiranjeUvod

  • Znanost?Jesu li:FizikaMatematikaBiologijaKemija

    znanosti? Zato?

  • Zato?Postoje injenicePostoji zakonitost koja definira vezu izmeu injenicaZakonitost garantira ponovljivost pojave

  • Raunarstvo kao znanost?to garantira savrenu preciznost ultrabrze ponovljivosti kojom raunalo izbacuje rezultate?

  • Raunarstvo kao znanost?Raunarstvo je znanost o algoritmima.

    Poddiscipline raunarstva:Arhitektura -skup hardverskih komponenti koje izvode odreeni algoritamProgramski jezici -karakteristike programskog jezika odreene su algoritmom koji se koristi da se konkretan problem prevede na jezik razumljiv raunalu Programiranje -postupak tijekom kojeg definiramo algoritam pomou programskog jezikaPohranjivanje podataka -algoritamski odreujemo mjesto na koje e se podatak pohraniti i sa kojeg emo ga dobaviti

  • to je algoritam?Algoritam je UREENI skup JEDNOZNANIH koraka koji garantiraju dolazak do rjeenja.

  • to znai rijeiti problem pomou raunala?Rijeiti problem pomou raunala znai pronai ALGORITAM koji apstrakcijsku razinu ljudskog razmiljanja transformira u apstrakcijsku razinu na kojoj funkcionira raunalo

  • Isto samo u slici...2*3

  • REGISTRIUPRAVLJAKAJEDINICAALUMEMORIJACPU

  • Rjeavanje problema2*3:Stavi broj 2 iz memorije u prvi registarStavi broj 3 iz memorije u drugi registarAktiviraj sklop za mnoenje brojeva iz naznaenih registaraRezultat pohrani na odreenu memorijsku lokacijuStani

  • Rjeavanje problemaKoristimo 5 strojnih instrukcijaNedostaci:Programiranje jednostavnih problema traje dugoProgramsko rjeenje neprilagoeno apstrakcijskoj razini ljudskog razmiljanja

  • Rjeavanje problemaRjeenje bilo kojeg problema opisujemo algoritmom

    Svaki algoritam koristi osnovni skup formi koje opisuju put do cilja (npr. lijevo, desno, naprijed, nazad)

    Razvoj programskih jezika orijentirao se prema traenju to jednostavnijih formi koje su mogle izraziti algoritam (formi prilagoenih ljudskom razmiljanju-primitive)

    Za definirani skup primitiva treba napisati program prevodioc koji odreenu primitivu prevodi u jezik razumljiv stroju.

    Program prevodioc je kompajler koji generira objektni kod

  • Rjeavanje problemaUvoenje programskih jezika:Povijesna linija razvoja programskih jezikaSTROJNIJEZIKASEMBLERIMPERATIVNIPROGRAMSKI JEZICILJUDI SE PRILAGOAVAJUKARAKTERISTIKAMA STROJA

    STROJEVI SE PRILAGOAVAJUKARAKTERISTIKAMA LJUDI

    OO PROGRAMSKIJEZICI

  • Programski jeziciStvarno stanje: programske paradigmeImperativna programska paradigmaDeklarativna programska paradigmaFunkcionalna programska paradigmaObjektno orijentirana programska paradigma

  • Imperativna paradigmaDefinira postupak programiranja kao niz sekvenci koje na odgovarajui nain manipuliraju sa podacima da bi dobili rezultat (programer opisuje algoritam odgovarajuim naredbama imperativnog jezika: C, Fortran, COBOL, Pascal, Basic)

  • Deklarativna paradigmaProgramer opisuje problem na nain prilagoen opem algoritmu koji moe rijeiti sve probleme (algoritam temeljen na dedukcijskoj logici-glavni je problem moe li se zadatak uope rijeiti tako-deklarativni jezici bili su zbog toga strogo namjenski; Prolog-jezik umjetne inteligencije)

  • Funkcionalna paradigmaGleda na proces razvoja programa kao na proces spajanja razliitih funkcijskih blokova koji primaju odreene ulazne vrijednosti i proslijeuju rezultat (Lisp):(First(Srt(List)))

  • Objektno orijentirana paradigmaJedinice sa podacima i funkcijama su aktivne komponente programa, a ne pasivne strukture kao kod imperativne paradigme. Svaki objekt u programu kreira se prema tono definiranom kalupu kojeg zovemo klasom (Java, C++, C#).

  • Zajednike karakteristikeSintaksa: nain na koji je rije zapisanaSemantika (u stvari je primitiva-osnovna forma)

  • SemantikaDaje znaenje nekoj naredbiUsporedba sa prirodnim jezicima:Eye i oko su semantiki isteSvaki programski jezik ima 4 osnovne semantike strukture

  • Osnovne semantike strukturePridruivanjePonavljajua struktura (petlja)Granajua strukturaSaimajua struktura (funkcija i/ili procedura)

  • Najmanji mogui program u C-umain() { }

    Program ne radi nita

  • Program br.2#include main() { printf("FESB\n"); }

    Ispis programa FESB

  • Pisanje C programaZa pisanje C-programa koriste se mala i velika slova, ali sve naredbe u C-u moraju biti napisane malim slovima. Poetak C programa oznaava se sa:

    main()

    Zagrade koje se nalaze nakon kljune rijei main oznaavaju da program ne prima nikakve argumente.

    Dvije zagrade, { i }, oznaavaju poetak i kraj dijelova programa. Svrha izraza #include je da omogui uporabu printf funkcije za ispis. Tekst koji e ispisati printf() mora biti u navodnicima. Program ima samo jednu naredbu printf("FESB\n");printf() je zapravo funkcija u C-u koja se koristi za formatirani ispis varijabli i teksta. Tekst unutar navodnika " ", ispisuje se onako kaoko je zadano.

  • Iznimke u ispisu-modifikatori

    Znakovi: \ i % su modifikatori. U naem primjeru \ koji prethodi znaku n predstavlja oznaku prijelaza u novi red. Tako program ispisuje FESBi kursor se postavlja na poetak nove linije. Znak koji slijedi iza znaka \ odreuje to se ispisuje, tj. 8 praznih mjesta (tab), prazan ekran, prazna linija itd. Sve naredbe u C-u zavravaju toka-zarezom ;

  • Pisanje, kompajliranje i izvravanje programa

    Pisanje koda

    Kod niz naredbi koje ine program

    Kod se pie u EDITOR-u koji generira tzv. ACSII fileNapisanom kodu se mora dati neko ime sa ekstenzijom .C .

    Kompajliranje koda

    Prevoenje napisanih naredbi u tzv. objektni kod. Kompajliranje se vri pomou posebnog programa kompajlera (prevoditelja) koji generira objektni kod (datoteka s nastavkom .OBJ)

  • Linkanje koda u izvrni programLinkanje znai konano formiranje izvrnog programa. Linkanje se vri pomou posebnog programa linkera (poveziva) koji generira izvrni kod (datoteka s nastavkom .EXE).

  • Ispravljanje greakaNapisani program u svom izvornom kodu moe imati greaka koje prijavljuje kompajler ili linker.Ako kompajler ili linker jave neku greku, treba se vratiti korak ili dva nazad, ispraviti greke i ponoviti postupak.Ako kompajler i linker ne jave greke, program se moe izvriti (to ne znai da je i dobar).

  • Izvravanje programa

    Konani program koji se dobije nakon to linker izvri svoj dio posla (ako ne javi neku greku) izvrava se ukucavanjem njegova naziva.

  • Traenje logikih greaka

    Ako program radi ali ne ispravno, treba potraiti logike greke u programu. To se obino radi s tzv. debuger programom koji izmeu ostalog omoguava izvravanje jedne po jedne naredbe i uvid u vrijednost svih varijabli