15
1 Univerzitet u Tuzli Mašinski fakultet RAČUNARI I PROGRAMIRANJE - UVOD - Dr. Salko Ćosić Tuzla, februar 2013

Programiranje Fortran

  • Upload
    karbon1

  • View
    159

  • Download
    0

Embed Size (px)

DESCRIPTION

Programiranje u fortranu 95, predavanja

Citation preview

1

Univerzitet u Tuzli Mašinski fakultet

RAČUNARI I PROGRAMIRANJE

- UVOD -

Dr. Salko Ćosić

Tuzla, februar 2013

2

UVOD, osnovni informatički pojmovi i definicije

Računarski sistem je elektronički sistem koji obrađuje ulazne podatke ili informacije (INPUT) i proizvodi iz njih nove ili izlazne podatke (OUTPUT) po prethodno definisanoj proceduri - programu.

Program: Skup naredbi (instrukcija) računaru napisan u nekom od programskih jezika za rješavanje određenog problema. Program definiše koje se operacije, kojim redoslijedom i nad kojim podacima obavljaju. Za vrijeme izvršavanja mora biti unesen u radnu (RAM) memoriju računara. Instrukcije mogu biti implementirane u hardveru ili softveru.

OPERATIVNI SISTEM An operating system is the software that controls the overall operation of a computer. It provides the means by which a user can store and retrieve files, provides the interface by which a user can request the execution of programs, and provides the environment necessary to

execute the programs requested. Kolekcija programa koji omogućavaju rad, komunikaciju i upravljanje hardverskim komponentama, fajlovima i korisničkim aplikacijama. Obezbjeđuje „user interface“ za korisničke programe. Windows, Linux,

Unix,..., Sun, HP, IBM...

3

Organizacije računarskog sistema: hijerarhijski niz podsistema koji imaju svoju strukturu i komponente

Nivoski koncept (struktura sa više nivoa)

Funkcionalni koncept (dekompozicija po funkcijama)

Kombinovani NIVOSKI koncept (računar je organizacija koja ima 6 nivoa hijerarhije) 6- Aplikacioni nivo (korisnička aplikacija = program za konkretan problem, crtanje, obrada teksta...)

5- Nivo viših programskih jezika (programiranje, razvoj aplikacija, Fortran,C, Java,C#, C++, prevode

programske instrukcije za nivo 3 i 4)

4- Nivo asemblerskog jezika (prevođenje programskih instrukcija korisnika na niži nivo, 1,2,3)

3- Operativno-sistemski mašinski nivo (sistemski pozivi i instrukcije nižem nivou, prekidi)

2- Konvencionalno-mašinski nivo (arhitektura, organizacija i skup instrukcija za procesor (CPU) i

druge komponente)

1- Nivo mikroarhitekture (ALU, složenija logička kola, dijelovi procesora, staza podataka)

0- Digitalno-logički nivo (hardver,pojedinačne elektroničke komponente, osnovna logička kola i/ili,ne,

multiplekseri, sabirači, izvršava naredbe u mašinskom jeziku njemu nadređenog nivoa 1)

-1 – Nivo elektronskih komponenata (pojedinačni tranzistori, fizički najniži nivo)

4

Prvi računari imali su samo dva nivoa (mašinski i digitalno-logički nivo). Funkcionalna dekompozicija: Računarski sistem se predstavlja kao sistem komponenti (modula) koje obavljaju specifične funkcije i svaka ima svoju strukturu tj. hijerarhiju. Tri glavna podsistema savremenog računarskog sistema su: • Centralna procesorska jedinica (CPU – Central Processor Unit). Sastoji od upravljačke jedinice, koja upravlja radom cjelokupnog računara (CU), magistrale podataka koja sadrži registre, aritmetičko-logičke jedinice (ALU) i druge funkcijske jedinice specijalizovanih za pojedine tipove obrade podataka (matematički koprocesori, akceleratori i sl.).

5

CPU ima dvije osnovne f-je: vrši elementarne aritmetičke i logičke operacije na podacima i koordinira rad ostalih komponenti sistema. I pored velike složenosti, CPU obavlja samo ELEMENTARNE OPERACIJE (sabiranje ili premiještanje podataka sa jedne na drugu lokaciju). Snaga CPU potiče iz ogromne brzine tj. kratkog vremena obavljanja instrukcija. • Memorijski podsistem. Sačinjen je od specijalizovanih kola sa mogućnošću memorisanja informacije. U memoriji računara čuvaju se program i podaci. Memoriju je u stvari skup elementarnih memorijskih lokacija od kojih svaka sadrži 8/16/32/64 bita. Svakoj memorijskoj lokaciji pridružena je jedinstvena adresa.

6

• Ulazno-izlazni podsistem. Skup specijalizovanih kola koja služe za spregu CPU sa U/I uređajima, kao što su tastatura, miš i displej. Ovo su integrisana kola koja imaju svoju upravljačku jedinicu i magistralu podataka. CPU vidi U/I uređaj kao skup od nekoliko memorijskih lokacija (tzv. registara ili portova). Upisom/čitanjem u/iz ovih lokacija moguće je upravljati radom U/I uređaja, tj. pokrenuti aktivnosti perifernog uređaja, postavi uređaj u željeni režim rada, pribavi informaciju o trenutnom stanju uređaja, prenijeti/prihvatiti podatke u/od uređaja.

Kratak pregled razvoja računarskih sistema: I generacija: kasne 40-te, elektronske lampe, ENIAC (1946, 18000 k. cijevi, 150kW, 30 tona), dec.s

II generacija: 50-60 te, poluprovodnička tehnologija, tranzistori, Neumann-ova organizacija, viši programski jezici, binarni sis. III generacija: sredina 60-tih, prva integrisana kola (IC), SSI (Small Scale Integration), IBM IV generacija: krajem 70-tih,IC kola sa 100.000 komponenti, LSI, mikroprocesora na jednom chip-u (INTEL, Apple, Motorola)... V generacija: VLSI : 1989 INTEL 0486, 1.2 M tranzistora, 1993 Pentium (3.1 M), P4 (2000, 42 M tran.) (multiprocesorski sistemi...), VI-generacija...(biološki, optički, mreže...)

7

Podjela računarskih sistema prema paralelnosti u obradi podataka (Flynn), prema toku instrukcija i prema toku podataka:

više poslova istovremeno - vremenska podjela resursa

jedan posao u više paralelnih procesa SISD – Single Instruction- Single Data (klasični vN računari), 1:1

SIMD – Single Instruction stream-Multiple Data stream (vektorski ili matrični procesori, specijalizovani za grafiku i numeričke proračune) 1:više

MISD- Multiple Instruction Single Data, više:1

MIMD – Multiple Instruction Multiple Data (standardne multiprocesorske mašine), više:više

Za korištenje multiprocesorskog okruženja potrebno je da je problem rješiv paralelnom procedurom te da softver (aplikacija i OS) podržavaju paralelni rad

8

BROJNI SISTEMI Brojni sistemi predstavljaju način prikazivanja brojeva pomoću niza simbola koji se nazivaju cifre brojnog sistema. Njime su definisana i pravila za osnovne operacije nad brojevima. Osnovne vrste brojnih sistema:

Nepozicioni brojni sistem : Jedna cifra ima uvijek istu vrijednost bez obzira na poziciju u zapisu. (Npr. Rimski brojni sistem: I, V, X, L, C, D, M)

Pozicioni brojni sistem: Vrijednost cifre zavisi od njene pozicije u broju. U računarstvu se široko primjenjuju slijedeće 4 brojna sisetma:

DECIMALNI (DEC)

HEKSADECIMALNI (HEX)

OKTALNI (OCT)

BINARNI (BIN)

1 2 3 2 1 0

0

...

,

i ni

n n n i

i

i

A A A A A A A A A b

A cifre b baza brojnog sistema

9

Decimalni brojni sistem: b = 10 ; cifre: 0,1,2,3,4,5,6,7,8,9

1475 = 5×100 + 7×101 + 4×102 + 1×103

Prvi računar je razvijen na bazi decimalne aritmetike Binarni brojni sistem: baza: 2, cifre 0 i 1

Jednostavni za elektroničku implementaciju

U širokoj primjeni od 1949, von Neumann Pravila binarne aritmetike su ista kao i kod decimalnog sistema:

Primjer: x = 27, y= 21 odredi x + y 27 = 1 1 0 1 1 (24 + 23 + 21 + 20) 21 = 1 0 1 0 1 (24 + 22 + 20 ) 48 = 1 1 0 0 0 0 (25 + 24 )

SABIRANJE ODUZIMANJE MNOŽENJE DIJELJENJE 0 + 0 = 0 0 - 0 = 0 0 x 0 = 0 0 / 0 greška

0 + 1 = 1 1 - 1 = 1 0 x 1 = 1 0 / 1 = 0

1 + 0 = 1 1 - 0 = 1 1 x 0 = 1 1 / 0 = greška

1 + 1 = 1

prenos 1

0 - 1 = 1

pozajmica 1

1 x 1 = 1 1 / 1 = 1

10

Algoritam za pretvaranje (transformaciju) iz decimalnog sistema u neki drugi:

Predstavljanje brojeva: dekadni i binarni brojni sistem, integer, real, double precision ... Normalizirano floating-point predstavljanje (dekadno):

11

PROCEDURA (POSTUPAK) RJEŠAVANJE PROBLEMA PRIMJENOM RAČUNARA Formulacija problema,

Analiza problema,

Izbor metoda za rešavanje, algoritam

Razvoj programa – pisanje izvornog koda,

Kompajliranje izvornog koda

Ispitivanje korektnosti programa-testiranje,

Izrada dokumentacije,

Održavanje i nadogradnja programa Programski jezici:

Svaki programski jezik se sastoji od:

Skupa dozvoljenih znakova (simbola),

Ključnih riječi (key words)

Sintakse (pravila gramatike),

Semantike (značenja naredbe).

12

Mašinski jezik (binarni) – direktno razumljiv hardverskim komponentama, niz 0/1

Asemblerski jezik – simbolički jezik zavisan od arhitekture sistema, skraceni (simbolički) zapis

Viši programski jezik: lako razumljiv programeru, nerazumljiv mašini

13

ALGORITAM: Al-Khowarizmi oko 825. Algoritam: konačni redoslijed operatora, elementarnih obrada i pravila o njihovoj primjeni u cilju dobijanja rješenja nekog problema. Izvođenje svakog operatora predstavlja jedan algoritamski korak. Uslovi koje algoritam mora zadovoljiti: - definisanost (jednoznačnost, nedvosmislenost), - konačnost i - rezultat. Definisanost: Svaka operacija ili pravilo mora imati definisano i samo jedno značenje, tj. rezultat svake operacije mora biti jednoznačan, nedvosmislen. Konačnost: Svaki korak mora biti takav da bi ga mogao izvesti čovjek, koristeći elementarne postupke, za konačno vrijeme. Algoritmi se moraju zaustaviti poslije izvršenog konačnog broja koraka i u konačnom vremenu. Rezultat. Po završetku algoritma mora postojati mogućnost da se ustanovi rezultat njegovog rada, odnosno da li je algoritam postigao cilj ili nije. Postoje različite mogućnosti za predstavljanje algoritma, ali se on najčešće predstavlja grafički pod imenom dijagram toka programa (flowchart).

14

Pojedine akcije prikazane su određenim grafičkim simbolima čime se osigurava jednostavnost, preglednost i jednoznačnost zapisa algoritma.

UML – (Unified Modeling Language) “UML je jezik za modeliranje koji služi za specifikaciju, vizualizaciju, izgradnju i dokumentiranje komponenti programskog sistema.” Posebno se primjenjuje kod OOP koncepta.

15

PITANJA

1. Definicija i sastavni dijelovi računarskog sistema 2. Hijerarhija računarskog sistema, nivoi, 3. Funkcionalna dekompozicija računarskog sistema, podsistemi 4. Podjela računarskih sistema prema paralelnosti obrade 5. Brojni sistemi, definicija, osnovne vrste, transformacije iz jednog u drugi 6. Postupak rješavanja problema primjenom računara 7. Programski jezici, podjela i od čega se sastoje

Literatura: 1. V. Manojlović: Osnovi računarske tehnike, Akademska misao Beograd, 2003 2. M. Avdić: FORTRAN, Programiranje za Windows-e, Tuzla 2004