21
Vježbe 2: 1. Deklaracije 2. Tipovi varijabli 3. Aritmetički operatori 4. Neke od funkcija ugrađenih u Fortrtan 5. Logičke varijable 6. Relacije među logičkim varijablama 7. Manipulacija karakterima 8. Brojevni sustavi

Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Vježbe 2:

1. Deklaracije2. Tipovi varijabli3. Aritmetički operatori4. Neke od funkcija ugrađenih u Fortrtan5. Logičke varijable6. Relacije među logičkim varijablama7. Manipulacija karakterima8. Brojevni sustavi

Page 2: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Program blablaReAl :: x CHARACTER :: name CHARACTER(LEN=10) :: name1 REAL :: var-1 INTEGER :: 1a CHARACTER(LEN=5) :: town = "Glasgow" REAL :: pi = +22/7 LOGICAL :: wibble = .TRUE. REAL :: a = 1., b = 2 LOGICAL(LEN=12) :: frisnet CHARACTER(LEN=6) :: you_know = 'y'know" CHARACTER(LEN=6) :: you_know1 = "y'know"character(len=6) :: you_know2 = 'y"know' INTEGER :: ia ib ic id DOUBLE PRECISION :: pattie = +1.0D0 REAL :: poie = 4.*atan(1.) End program

Provjerite koje su od ovih deklaracija napisane dobro a koje ne.

Page 3: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

TIPOVI CIJELIH I REALNIH VARIJABLI

! INTEGER :: IINTEGER ( SELECTED_INT_KIND( 2)) :: I1 ! -10**2<I1<10**2INTEGER ( SELECTED_INT_KIND( 4)) :: I2 ! –10**4<I2<10**4INTEGER ( SELECTED_INT_KIND( 9)) :: I3INTEGER ( SELECTED_INT_KIND(10)) :: I4!!REAL :: RREAL ( SELECTED_REAL_KIND( 6, 37)) :: R1 !6-preciznost, od -37 do +37 eksp.REAL ( SELECTED_REAL_KIND(15,307)) :: R2REAL ( SELECTED_REAL_KIND(15,310)) :: R3

Page 4: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

PRINT *,' Integer values'PRINT *,' Kind Huge'PRINT *,' ',KIND(I ),' ',HUGE(I )PRINT *,' ',KIND(I1 ),' ',HUGE(I1 )PRINT *,' ',KIND(I2 ),' ',HUGE(I2 )PRINT *,' ',KIND(I3 ),' ',HUGE(I3 )PRINT *,' ',KIND(I4 ),' ',HUGE(I4 )

!PRINT *,' Real values‘PRINT *,' Kind Huge Precision epsilon'PRINT *,' ',KIND(R),' ',HUGE(R),' ',PRECISION(R), ' ',EPSILON(R)PRINT *,' ',KIND(R1),' ',HUGE(R1),' ',PRECISION(R1),' ',EPSILON(R1)PRINT *,' ',KIND(R2),' ',HUGE(R2),' ',PRECISION(R2),' ',EPSILON(R2)PRINT *,' ',KIND(R3),' ',HUGE(R3),' ',PRECISION(R3),' ',EPSILON(R3)! HUGE – najveći broj u određenom kind-u! PRECISION – decimalna preciznost! EPSILON – tipičan razmak između dva susjedna broja

Page 5: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

ARITMETIČKI OPERATORI

+ - * / ** =Treba paziti:- ako ne postoje zagrade redosljed izvođenja operacija je:1. Potenciranje2. Množenje i dijeljenje3. Zbrajanje i oduzimanje- ako ne postoje zagrade operacije istog ranga izvršavaju se s LIJEVA na DESNO

tj. a/b*c znači (a/b)*c a ne a/(b*c)tj. i-j+k znači (i-j)+k a ne i-(j+k)

-višestruko potenciranje ako nije specificirano zagradama vrši se s desna na lijevo.

e.g. a**b**c znači a**(b**c) a ne (a**b)**c

Page 6: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Napiši program i provjeri ispis:Program aritmInteger ::i2=2, i3=3,i5=5Real ::r2=2.,r3=3.,r5=5.

print *, “i2*i3/i5=“, i2*i3/i5i3/i5*i2 i2*(i3/i5) (i3/i5)*i2

i2+i5*i3**i2 i5*i3**i2+i2 i3**i2*i5+i2

r2*r3/r5 r3/r5*r2 (r3/r5)*r2

i5**i3**i2 (i5**i3)**i2 i5**(i3**i2)

Page 7: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Fortran razlikuje cjelobrojne i realne potencije:

x**3 je x*x*x

x**0.3 se računa uz pomoć algoritma

x**0.3 = antilog(0.3*log(x))

izraz oblik vrijednost/tip

3*4.0 integer*real 12.0 (real)

2.0e2 + 1 real+integer 2.01e2 (real)

3/2.0e2 integer/real 1.5e-2 (real)

(0.0,1.0) - 2.0 complex-real (-2.0,1.0) (complex)

2 + (2.0,1.0) integer+complex (4.0,1.0) (complex)

Page 8: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!)

U Intelovom priručniku opis je u poglavlju 9-18funkcija opisABS(z) absolutna vrijednostSQRT(z) kvadratni korijenEXP(z) e na zLOG(z) prirodni logLOG10(x) log u bazi 10SIN(x) sinus ( x u radijanima), SIND(x) (x u stupnjevima)COS(x) kosinus (x u radijanima), COSD(x) (x u °)TAN(x) tangens (x u radijanima), TAND(x) (x u °)ASIN(x) arcsin (rezult. u rad), ASIND(x) (rezultat u °)ACOS(x) arccos (rezult. u rad), ACOSD(x) (rezultat u °) ATAN(x) arctan (rezult. u rad), ATAND(x) (rezultat u °)SINH(x) hiperbolni sinCOSH(x) hiperbolni kosinusTANH(x) hiperbolni tangens

Page 9: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

REAL(n) pretvara cijeli broj u realanCMPLX(x,y) pretvara par realnih brojeva u kompleksanAIMAG(z) imaginarni dio od zHUGE(x) najveći broj od iste vrste kao što je xTINY(x) najmanji realni broj iste vrste kao što je xRANDOM_NUMBER(x) generira slučajni broj između 0 i 1 INT(x) pretvara realni broj u cjelobrojniNINT(x) zaokružuje realni broj na najbliži cijeli CEILING(x) najmanji cijeli broj veći ili jednak xFLOOR(x) najveći cijeli broj manji ili jednak xMOD(x,y) ostatak od x/ySIGN(x,y) absolutnoj vrijednost od x stavi isti znak

kao što ima yMAX maximalan od niza brojevaMIN minimum od niza brojeva

Page 10: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Napišite program koji pretvara kartezijeve u sferne koordinate ili obrnuto1. DEKLARACIJA VARIJABLI2. UČITAVANJE KARTEZIJEVIH KOORDINATA X,Y,Z (iliSFERNIH)3. TVRDNJEr = (x2+y2+z2)1/2

theta = acos(z/r)phi = atan(y/x)ILIx = r*sin(theta)*cos(phi)y = r*sin(theta)*sin(phi) z = r*cos(theta) 4. ISPIS SFERNIH KOORDINATA R, THETA, PHI (ILI KARTEZIJEVIH)

Page 11: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

LOGIČKE VARIJABLE

-Samo 2 vrijednosti: .TRUE. i .FALSE.Šest relacijskih operatora:

> (.GT.) a > b .TRUE. ako a>b; inače .FALSE.>= (.GE.) a >= b .TRUE. Ako a>=b; inače .FALSE.< (.LT.) a < b .TRUE. a<b; inače .FALSE.<= (.LE.) a <= b .TRUE. a<=b; inače .FALSE.== (.EQ.) a == b .TRUE. a=b; inače .FALSE./= (.NE.) a /= b a.NE.b .TRUE. a nije jednako b; inače .FALSE.

Page 12: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

cijeli brojevi godina=1995 i indeks=7reali brojevi atmass=2.054, pi=3.1415926 i

težina=201.19999

Napišite program koji određuje točnost sljedećih izraza.

izraz vrijednost__________ _____

( 2.0 * pi ) /= 180.0 ?200.0 <= ( težina - atmass ) ?godina > indeks * ( 20 + indeks ) ?( indeks**4 ) /= ( godina - 1900 ) ?10.0 * atmass > težina ?(pi**indeks) >= (3.0*pi) ?(pi**2.0) == (pi*pi) ?(godina - indeks) /= (indeks + 1977) ?

Page 13: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Složeni logički izrazi (le1 i le2 su logičke varijable)

.NOT. .NOT. le1 logički suprotno od vrijednosti od le1

.AND. le1 .AND. le2 .TRUE. ako su le1 i le2 istiniti; inače .FALSE.

.OR. le1 .OR. le2 .FALSE. samo ako su le1 i le2 laž inače .TRUE.

.EQV. le1 .EQV. le2 istina ako su le1 i le2 obje istinite ili lažne, inače laž

.NEQV. le1 .NEQV.le2 istina ako se le1 i le2 različite inače laž

Isto je .XOR.

Page 14: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Inicijalizacija i deklaracija varijabli:

LOGICAL :: done=.FALSE.

INTEGER :: year=1996

Napiši program koji ispituje stanje logičkih izraza ispod i odredi koji od njih nisu ispravni:

i) (.NOT. done) .OR. (year < 2000)

ii) (.NOT. done) .AND. (year < 2000)

iii) .NOT. (year < 2000)

iv) year .NOT. < 2000

v) done .AND. .NOT. done

Page 15: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Manipulacija nizom znakova:

1. Napiši program koji ispisuje rezultat za word3,word4,word5:operator ulančavanja- // spaja stringoveword1=‘hot’word2=‘pot’word3=word1//word2word4=word1(1:2)//word2(2:3)word5=word1//’&’//word2Nađi LEN, LEN_TRIM od word3,word4,word5

Page 16: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Brojevni sustavi- dekadski 0,1,2,3,4,5,6,7,8,9- binarni 0,1- oktalni 0,1,2,3,4,5,6,7- heksadecimalni 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Pretvorite sljedeće binarne brojeve u dekadske:(101101)2=1x25+0x24+1x23+1x22+0x21+1x20=32+8+4+1=(45)10(.101)2=1x2-1+0x2-2+1x2-3=0.5+0.125=(0.625)10(101101.101)2=(45.625)10

Pretvorite dekadski broj u binarni:(75)10=(....)2 26 = 6475-64=1123=811-8=321=23-2=120=11-1=0

1·26+0·25+0·24+1·23+0·22+1·21+1·20

(75)10=(1001011)2

Page 17: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

(0.4375)10=(.......)2

2-1=0.5, 2-2=0.25, 2-3=0.125, 2-4=0.0625

0.4375- 0.25=0.1875 1·2-2

0.1875-0.125=0.0625 1·2-3

0.0625-0.0625=0 1·2-4

(0.4375)10=(.0111)2

Page 18: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Oktalni u dekadski

(367)8 = 3·82+6·81+7·80=192+48+7=(247)10(0.24)8= 2·8-1+4·8-2=0.25+0.0625=(0.3125)10

Dekadski u oktalni(623)10=623-1·83=623-512=111 1·83

111-1·82=111-64=47 1·82

47-5·81=7 5·81

7-7·80=0 7·80

(623)10 = (1157)8

81=882=6483=51284=4096

Page 19: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Heksadecimalni u dekadski

(2AB.F8)16 = 2·162+A·161+B·160+F·16-1+8·16-2

= 2·162+10·161+11·160+15·16-1+8·16-2

=512+160+11+0.9375+0.03125=(683.96875)10

Dekadski u heksadecimalni:

(753)10=753-2·162=241 2·162

241-15·161=1 F161

1-1·160=0 1·160

(753)10=(2F1)16

160=1161=16162=256163=4096......

Page 20: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Negativni brojevi

1 byte = 8 bit samo pozitivni 0,255

Pozitivni (0) i negativni (1)

Najveći pozitivni broj : 2n-1 – 1Najmanji negativni broj: -2n-1

Page 21: Vježbe 2 - PMFgrdelin.phy.hr/~ivo/Nastava/Numericke_metode/vjezbe/...NEKE OD FUNKCIJA UGRAĐENIH U FORTRAN (ima ih preko 110!) U Intelovom priručniku opis je u poglavlju 9-18 funkcija

Negativni broj je predstavljen komplementom svog pozitivnogbroja + 1.