Fortran

Слични документи
Slide 1

ALIP1_udzb_2019.indb

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

Microsoft Word - predavanje8

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

PROMENLJIVE, TIPOVI PROMENLJIVIH

Microsoft Word - 02 Elementi programskog jezika Pascal

Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Matrice. Algebarske operacije s matricama. - Predavanje I

0255_Uvod.p65

PowerPoint Presentation

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

Državna matura iz informatike

Funkcije predavač: Nadežda Jakšić

CIJELI BROJEVI 1.) Kako još nazivamo pozitivne cijele brojeve? 1.) Za što je oznaka? 2.) Ispiši skup prirodnih brojeva! 3.) Kako označavamo skup priro

Jednadžbe - ponavljanje

Microsoft Word - 11 Pokazivaci

MATEMATIKA viša razina MATA.29.HR.R.K1.24 MAT A D-S MAT A D-S029.indd :30:29

070-ALIP2-udzbenik.indb

Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razredu Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razr

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Teorija skupova - blog.sake.ba

Microsoft Word - 15ms261

Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić

Microsoft Word - 6ms001

(Microsoft Word - Dr\236avna matura - lipanj osnovna razina - rje\232enja)

Matematka 1 Zadaci za vežbe Oktobar Uvod 1.1. Izračunati vrednost izraza (bez upotrebe pomoćnih sredstava): ( ) [ a) : b) 3 3

Uvod u računarstvo 2+2

PASCAL UVOD 2 II razred gimnazije

Tutoring System for Distance Learning of Java Programming Language

Sadržaj 1 Diskretan slučajan vektor Definicija slučajnog vektora Diskretan slučajan vektor

Funkcije predavač: Nadežda Jakšić

UDŽBENIK 2. dio

(Microsoft Word - Dr\236avna matura - kolovoz osnovna razina - rje\232enja)

Algoritmi SŠ P1

1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p

Microsoft Word - 24ms241

Uvod u računarstvo 2+2

8 2 upiti_izvjesca.indd

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Microsoft Word - IZVODI ZADACI _2.deo_

Microsoft Word - ASIMPTOTE FUNKCIJA.doc

INF INFORMATIKA INF.27.HR.R.K1.20 INF D-S INF D-S027.indd :50:41

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

Pojačavači

Microsoft Word - 24ms221

atka 26 (2017./2018.) br. 102 NEKE VRSTE DOKAZA U ČAROBMATICI Jadranka Delač-Klepac, Zagreb jednoj smo priči spomenuli kako je važno znati postavljati

Oblikovanje i analiza algoritama 4. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. pr

P2.1 Formalne gramatike

SKRIPTE EKOF 2019/20 skripteekof.com Lekcija 1: Brojevni izrazi Lekcija 1: Brojevni izrazi Pregled lekcije U okviru ove lekcije imaćete priliku da nau

3.Kontrlne (upravlja~ke) strukture u Javi

(Microsoft Word - Dr\236avna matura - kolovoz ni\236a razina - rje\232enja)

Matematika_kozep_irasbeli_javitasi_1013_horvat

(Microsoft Word - Rje\232enja zadataka)

Tutoring System for Distance Learning of Java Programming Language

Ekipno natjecanje Ekipa za 5+ - kategorija MIKRO Pula, Mikro-list 1 BODOVANJE: TOČAN ODGOVOR: 6 BODOVA NETOČAN ODGOVOR: -2 BODA BEZ ODGOVOR

4.1 The Concepts of Force and Mass

Microsoft Word - 1. REALNI BROJEVI- formulice

ŽUPANIJSKO NATJECANJE IZ MATEMATIKE 28. veljače razred - rješenja OVDJE SU DANI NEKI NAČINI RJEŠAVANJA ZADATAKA. UKOLIKO UČENIK IMA DRUGAČIJI

Osnove inženjerske informatike II. Uvod u programiranje Vaš prvi program K. F. & V. B.

Zadaci s rješenjima, a ujedno i s postupkom rada biti će nadopunjavani tokom čitave školske godine

М А Т Е М А Т И К А Први разред (180) Предмети у простору и односи међу њима (10; 4 + 6) Линија и област (14; 5 + 9) Класификација предмета према свој

Programiranje 1 9. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 9. predavanje p. 1/6

Microsoft Word - Mat-1---inicijalni testovi--gimnazija

Neodreeni integrali - Predavanje III

P1.2 Projektovanje asemblera

Microsoft Word - z4Ž2018a

1 MATEMATIKA 1 (prva zadaća) Vektori i primjene 1. U trokutu ABC točke M i N dijele stranicu AB na tri jednaka dijela. O

(Microsoft Word - Dr\236avna matura - lipanj osnovna razina - rje\232enja)

Natjecanje 2016.

Matematika 1 - izborna

Nastavno pismo 3

18 1 DERIVACIJA 1.3 Derivacije višeg reda n-tu derivaciju funkcije f označavamo s f (n) ili u Leibnizovoj notaciji s dn y d x n. Zadatak 1.22 Nadite f

UAAG Osnovne algebarske strukture 5. Vektorski prostori Borka Jadrijević

Programiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,

Programiranje 1 3. predavanje prošireno Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 3. predava

Microsoft Word - 1.Operacije i zakoni operacija

s2.dvi

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

PLAN I PROGRAM ZA DOPUNSKU (PRODUŽNU) NASTAVU IZ MATEMATIKE (za 1. razred)

Ministarstvo prosvjete i športa Republike Hrvatske Agencija za odgoj i obrazovanje Hrvatsko matematičko društvo OPĆINSKO/ŠKOLSKO NATJECANJE IZ MATEMAT

NIZOVI

MATEMATIKA IZVEDBENI GODIŠNJI NASTAVNI PLAN I PROGRAM MATEMATIKE OSNOVNA ŠKOLA, 2. razred šk. god Planirala: Višnja Špicar, učitelj RN

Grananje u programu predavač: Nadežda Jakšić

P1.3 Projektovanje makroasemblera

(Microsoft Word - Dr\236avna matura - lipanj vi\232a razina - rje\232enja)

MathFest 2016 Krapinsko zagorske županije 29. travnja Terme Tuhelj Ekipno natjecanje učenika osnovnih škola Kategorija math 43 Natjecanje traje

Programiranje 1 IEEE prikaz brojeva sažetak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, IEEE p

Орт колоквијум

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

Tutoring System for Distance Learning of Java Programming Language

(Printing Maxima - Vje\236be 10.wxmx)

Microsoft Word - 12ms121

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba

Microsoft Word - Rjesenja zadataka

Транскрипт:

FORTRAN Uvod Računala su samo strojevi: neznaju ništa, ne razmišljaju ni o čemu, ali mogu izuzetnom brzinom i vrlo točno, slijediti precizno napisane upute. Takve upute moraju se napisati u posebnom jeziku koji stroj može "razumjeti" programskom jeziku. FORTRAN je programski jezik čija prva verzija datira iz 1956 i nastao je u IBMovom laboratoriju u San Joseu u Californiji, a verzija koju mi koristimo na vježbama je FORTRAN 77, kojoj je standard utvrđen 1977. Nakon te verzije izašlo je još nekoliko, podosta proširenih, verzija standarda. (F90, F95, F2003, 2008. "Vlasnička" verzija Fortran2010 - Portland Group za MS Visual Studio) Svaki programski jezik mora imati leksičku strukturu, sintaksu i semantiku. Leksičku strukturu predstavljaju elementi od koji se tvori jezik Alfabet - Velika i mala slova engleske abecede (dijakritici nisu dopušteni) - Znamenke 0... 9 - specijalni znakovi (interpunkcija, +/-* i sl.) Pomoću Alfabeta gradi se Rječnik: - ključne riječi (npr. READ, IF, DO, CONTINUE) - imena funkcija (SIN, COS, ABS) - identifikatori - labele - konstante - brojevi - nizovi znakova itd. Sintaksu (pravopis) i semantiku (značenje) uvoditi ćemo malo po malo tokom vježbi. Brojevi U fortranu razlikujemo dva tipa numeričkih vrijednosti cijele ( INTEGER ) i realne ( REAL ) Cijeli brojevi su..., 3, -2, -1, 0, 1, 2, 3,... Realni brojevi su zapravo ono što u matematici nazivamo decimalnim brojevima. Karakterizira ih decimalna točka koja odvaja cijeli dio od decimalnog dijela broja npr 2.73 Ukoliko je broj napisan bez decimalne točke, fortran ga tretira kao cijeli broj. Ako je napisan s točkom, tretiran je kao realni broj.

Notacija: u slijedećim definicijama (ali SAMO u tim definicijama, NE i u FORTRANU) - Uglate zagrade " [ " i " ] " kažu: ono što je unutar tih zagrada pojavljuje se 0, 1, ili više puta. - Ono što je izvan zagrada, pojavljuje se barem jednom. - Vertikalna crta " " znači " ili " Identifikatori......su klasa riječi koja je karakterizirana slijedećim pravilom Identifikator se sastoji od znakova koji mogu biti slova i znamenke uz uvijet da prvi znak bude slovo. slovo [slovo znamenka] 7SAMURAJA, CVRČICVRČAK, +OSAM nisu korektni identifikatori. ZAŠTO? Identifikatori se upotrebljavaju kao imena varijabli, funkcija i slično. razmak " " u identifikatoru nije dopušten. Niz znakova......definiran je slijedećim pravilom: Niz znakova je proizvoljna kombinacija znakova unutar literala (apostrof, jednostruki navodnik) 'ovo je broj 7 a ovo broj 9' je takav niz. Formalno, niz znakova definira se ovako: '[znak]' Konstante numeričke cjelobrojne 2, -88 realne 0.91, +5.0, -4., -2.5E-3 logičke.true. i.false. znakovne ' ' 'znak'

Funkcije Funkcije koje susrećemo u matematici, pojavljuju se redovito i u programskim jezicima. Funkcije su predstavljene izrazima oblika ime_funkcije (argumenti) pri čemu su argumenti izrazi. Mi ćemo se baviti samo tzv. funkcijama jedne varijable, odnosno, funkcijama kojima treba samo jedan argument. primjer: sin(x), F(y), log(3+4*a) Tablica funkcija u fortranu x x e x ln x log x sin x, cos x tg x arc sin x arc cos x arc tg x ABS (X) SQRT(X) EXP(X) ALOG(X) ALOG10(X) SIN(X), COS(X) TAN(X) ASIN(X) ACOS(X) ATAN(X) Pozabaviti ćemo se sada onim radi čega je Fortran (FORmula TRANslation) i smišljen aritmetikom tj. načinom na koji se u fortranu zapisuje aritmetički izraz. Izrazi Spominjali smo da, generalno, varijabli pridružujemo vrijednost izraza. Objasnimo stoga značenje "aritmetičkog izraza": Aritmetički izraz je svaka smislena kombinacija operanada i operatora (Ovo nije definicija, već opis aritmetičkog izraza) Operator ponekad može biti i ispušten: 4, a, PI, 23.45 su izrazi Također su to i A+B, C*D, 12/m, cos(a),... Operatori, dakle, predstavljaju aritmetičke operacije i, na neki način, stvaraju vezu između operanada. Operandi, pak, mogu biti brojevi, varijable, funkcije i IZRAZI kao npr. u izrazu (a+b)*(c-d). (rekurzivna definicija)

Aritmetički operatori koji se koriste u fortranu su (zapisani u fortranskoj notaciji) - predznak: +, - - zbrajanje, oduzimanje: +, - - množenje i dijeljenje: *, / - potenciranje: ** (Pazite! radi se o potenciranju, a ne - samo - o kvadriranju!) Kad fortran računa izraz, računanje provodi s lijeva u desno, osim kad prioritet računskih operacije zahtijeva drukčije: Najveći prioritet (... ) - zagrade Funkcije, ** *, / predznak zbrajanje i oduzimanje najmanji prioritet U izrazu a+b*c+d prvo se računa b*c zatim se dodaje a, a nakon toga dodaje d. U izrazu (a+b)*(c+d) prvo se izračunaju zbrojevi, a zatim se ti zbrojevi pomnože. Zagrade mijenjaju redoslijed operacija, i pametnim korištenjem zagrada, (pogotovo kad nismo sigurni u redoslijed) dobiti ćemo željeni redoslijed računanja. Zadaci: Pretvorite u klasičnu matematičku notaciju: 1. (a*b*c)**2 2. a/b*c/d 3. a/b*c**2 4. 5.0/(a**3*b**2/3.2) Pretvori u fortransku notaciju 1. x 3a b c 2. x 5 a+2b a b 3. x 3a 2 b 3 4. x a+b c d 2

Struktura programa u fortranu Program je tekst koji sadrži niz naredbi, pri čemu u svakom redu stoji samo jedna naredba. Red u koji se upisuje naredba, u fortranu ima posebnu strukturu: podijeljen je na pozicije ili kolone (na svakoj poziciji može stajati samo jedan znak) OVO JE VRLO VAŽNO! 1 2 3 4 5 6 7 72 1 mjesto za oznaku komentara 1-5 - labela 6 mjesto za oznaku retka za nastavak 7 72 naredba Komentar tekst koji compiler ignorira, a koji služi programeru (i čitatelju) za pisanje objašnjenja Labela numerička oznaka od 1 do 99999 koja služi za označavanje retka. Nužna je pri radu s naredbama za kontroku toka programa Mjesto za nastavak Ako je naredba preduga i ne stane u 66 znakova, treba ju nastaviti u slijedećem redu. U redu u kojem se piše nastavak naredbe u 6. kolonu upišemo bilo koji znak osim ' ' i nule Struktura programa PROGRAM IME_PROGRAMA 123 naredba... naredba END Deklaracije varijabli Inicijalizacija varijabli PROGRAM je ključna riječ koja označava početak programa. IME_PROGRAMA je identifikator (počinje slovom, ne sadrži posebne znakove ni razmak) i mora biti jedinstven: više se ne smije pojavljivati u programu! Ime programu daje programer i obično odražava ono što program radi... END je ključna riječ koja označava kraj programa i obavezno je posljednja naredba u programu.

Prvi program program prvi end Varijable Varijabla je (strogo uzevši) rezervirani memorijski prostor čiji sadržaj korisnik/programer smije mijenjati tokom izvođenja programa. Sadržaj dakle može biti UPISAN u varijablu. Pri tome se sadržaj koji je eventualno prethodno tamo stajao briše i zamjenjuje novim. Naravno, ukoliko je u varijablu nešto upisano, tada taj sadržaj možemo i iskoristiti na neki način. Korištenje sadržaja nije destruktivno, tj "čitanjem" se sadržaj varijable ne mijenja. Varijabele se razlikuju po imenima, te se njihovim sadržajem barata pomoću tih imena. Ime varijable je identifikator i ono mora biti JEDINSTVENO. Pridruživanje Općenito, u fortranu, izraze, odnosno vrijednosti izraza (a što je to izraz, objasniti ćemo malo kasnije), moramo pridružiti varijablama. IMEVARIJABLE = IZRAZ Pojednostavnimo to za trenutak: IMEVARIJABLE = BROJ Što to znači? pridruživanje 15 15 varijabla broj pridruživanje varijabla izraz

Nakon pridruživanja, varijabla sadrži vrijednost izraza i u programu, kad god zatrebamo taj izraz, možemo upotrijebiti umjesto njega varijablu kojoj smo ga pridružili (u koju smo izraz smjestili). Varijabla drži vrijednost sve do novog pridruživanja! Primjeri: 1. Varijabli S pridruži broj 7, a varijabli CRVENO pridruži vrijednost 3.1415 S=7 CRVENO=3.1415 S CRVENO 7 3.1415 2. Pridruži A 10, B 20, C 30, a zatim C B, B A A=10 B=20 C=30 C=B B=A A B C 10 20 30 10 10 20 Ovo ilustrira mogućnost da varijabli pridružimo ne samo broj, nego i vrijednost spremljenu u neku drugu varijablu. 3. Pomoću pridruživanja, u fortranu se može apisati minijaturni program koji je temelj zamjene vrijednosti dvjema varijablama, uz upotrebu treće, pomoćne. A=10 B=20 POMOCNA=A A=B B=POMOCNA Pridruživanje, dakle omogućava čuvanje neke vrijednosti "pod nekim imenom". Primjer: program drugi R=2.71 PI=3.1415 O=2*R*PI end Nakon ovih linija koda, varijabla O sadržati će vrijednost 17.02693, jer su tokom računanja izraza iz memorije računala pročitane vrijednosti R i PI. R i PI pri tome nisu ni izgubile ni promijenile svoje vrijednosti.

Primjer program treci a=1.23 b=45.0 c=a+sin(b) d=a*c**2+(1.1-2.3*(-b-c)) end Ovdje je niz pridruživanja, koji ilustrira i pisanje izraza u FORTRANU. Deklaracija Fortran kao i brojni drugi programski jezici zahtijeva od programera da prije nego počne koristiti imena varijabli u programu, ta imena deklarira, tj najavi i rezervira. Fortran je međutim, nešto liberalniji od npr C-a. Što je deklaracija? Deklaracija je popisivanje imena varijabli koje će biti korištene u programu, uz istovremeno određivanje tipa varijable. Preciznije, deklaracijom se propisuje koji tip podatka smije biti smješten u varijablu. Zašto? Govorili smo o tipovima brojeva u Fortranu (decimalni tj. realni i cijeli). Veličina prostora koji će pri zapisivanju u memoriju zauzeti cijeli broj, općenito je manja od prostora koji je potreban realnom broju. Compiler želi radi efikasnosti unaprijed znati koliko mjesta treba rezervirati za korisnikove podatke. Također, određivanje tipa podatka unaprijed, omogućava compileru da te podatke adekvatno tretira pri prevođenju i kasnije, radu programa. Stoga, compileru trebamo reći koliko varijabli imamo, kojeg su tipa i kako se zovu. Kako? Eksplicitna deklaracija oznaka_tipa ime_varijable [, ime_varijable]

npr INTEGER CURA, DECKO, AS, DESETKA REAL HERC, TREF, PIK To je EKSPLICITNA deklaracija Implicitna deklaracija Da bi "olakšali" rad programerima (najčešće iz matematičkih, fizikalnih i tehničkih struka) autori fortrana su unaprijed odredili da I,J,K,L,M,N i sve varijable koje počinju tim slovima označavaju INTEGER varijable, osim ako programer, pomoću EKSPLICITNE deklaracije ne odredi drukčije. Varijable koje počinju bilo kojim drugim slovom osim gornjih su tipa REAL. Dakle u programu je dopušteno pisati IVICA = 6 DRAGICA=7.5 bez prethodne deklaracije Nije međutim dopušteno pisati IVICA = 6.0 DRAGICA = 7 Želimo li to, moramo napisati REAL IVICA INTEGER DRAGICA IVICA = 6.0 DRAGICA = 7 Napomena: Deklaracija mora biti jednoznačna: ime varijable se u deklaraciji smije pojaviti samo jednom.

nije korektno: program krivo INTEGER A,B,C REAL B,C,D INTEGER C,D,E end Zadatak 1 Koje su varijable realne, koje integer, a koje ne valjaju: ALI, BABA, I, 40RAZBOJNIKA, PROHUJALO, S VIHOROM, POVRATAK, FILIPA, LATINOVICZA, IMATI-I-NEMATI, 25.PET, TISUĆA, MILJA, ISPOD MORA Zadatak 2 Napišite program za računanje stranica u pravokutnom trokutu ako su zadane hipotenuza i kut uz nju Zadatak 3 Zbroji i podijeli kruške i jabuke (12 kruski i 57 jabuka). Točnije: jednu var. nazovite kruške, drugu jabuke i pridružite im navedene vrijednosti, a zatim obavite nad njima i spomenute operacije.