READ (*, 100) X,Y,Z,T,U,V 100 FORMAT (6F5.2) för att läsa in talen

Storlek: px
Starta visningen från sidan:

Download "READ (*, 100) X,Y,Z,T,U,V 100 FORMAT (6F5.2) för att läsa in talen 1.8 6.5 14.9 5.1 1.2 0.4 17.4 25. 4. -6.1 4.8-7.8"

Transkript

1 forts. på föregående föreläsning: I allmänhet lönar det sig att sätta ut decimalpunkterna för reella tal. Om man inte enkelt kan skriva talen under varandra så kan det lätt uppstå fel vid inmatningen, vilket visas av följande exempel. Antag, att vi använder READ-satsen READ (*, 100) X,Y,Z,T,U,V 100 FORMAT (6F5.2) för att läsa in talen Vid läsningen av den andra raden uppstår då ett fel (kan du se var?). Om inmatningen sker från en terminal, är det därför oftast bekvämare att använda ett fritt format (som anges med en asterisk (*)). När man läser in teckensträngar, räcker det med att använda A-formatet som sådant, utan att ange antalet tecken, eftersom teckensträngens längd anges i CHARACTER-deklarationen. Inga extra tecken kommer således att läsas in. Ett mindre antal tecken kan man däremot nog läsa in, såsom framgår av nedanstående exempel: Introduktion till vetenskapliga beräkningar II, Tom Sundius

2 CHARACTER (10) :: A... READ (10, 100) A 100 FORMAT (A1)... Här läses endast första tecknet in i A, de övriga 9 tecknen fylls ut med blanka tecken. Om det finns fält som man inte vill läsa in, kan man använda X-specifikationen (eller TR-specifikationen), som framgår av exemplet nedan: READ (5,100) X, Y 100 FORMAT (F5.2, 7X, F8.4) Man kan också hoppa över hela poster vid inmatningen, genom att använda formatspecifikationen /. Observera i detta fall, att t.ex. instruktionen READ (5, 100) X, Y 100 FORMAT (F5.2/F10.4) kommer läsa X från en post och Y från följande. Introduktion till vetenskapliga beräkningar II, Tom Sundius

3 Vill man verkligen hoppa över en post mellan X och Y, måste man använda formatet 100 FORMAT (F5.2//F10.4). Man kan också hoppa över en post vid inläsningen med ett tomt format: READ (5, 100) 100 FORMAT () För att läsa och skriva på andra enheter än en skärmterminal, används logiska enhetsnummer. I Fortran reserveras vanligen 5 för standard-in och 6 för standard-ut. För att läsa och skriva på skivfiler (t.ex.) kan man använda andra enhetsnummer. En skivfil öppnas i allmänhet för inmatning eller utskrift med en OPEN-sats. När man är färdig, stänger man den med en CLOSE-sats (observera, att huvudprogrammets END-sats också automatiskt stänger alla öppna filer). En OPEN-sats kan t.ex. se ut så här: OPEN (10, FILE= fil.dat, STATUS= NEW ). Denna sats kommer att öppna en skivfil i enhet 10 med namnet fil.dat, som inte existerar förut (om den existerar, använder man specifikationen STATUS= OLD ). Om man använder parametern STATUS= SCRATCH kommer filen att strykas, då programmet avslutas. OPEN-satsen innehåller som vi ser en serie specifikationer, åtskiljda av kommatecken (observera apostroferna, som omger namnet som står efter likhetstecknet). En annan viktig specifikation i OPEN-satsen är ACCESS, som antingen kan vara ACCESS= SEQUENTIAL eller ACCESS= DIRECT. Denna specifikation anger filtypen. I det förra fallet är filen sekventiell, dvs den kan läsas bara i en riktning (utgångsantagandet ifall man inte anger filtypen). I det senare fallet kan den läsas i vilken riktning som helst (direktaccess). Introduktion till vetenskapliga beräkningar II, Tom Sundius

4 Varje fil tänkes uppdelad på poster (eng. record ), som för textfiler kan tolkas som rader. Om filtypen tillåter direkt access, måste också storleken av varje post anges med specifikationen RECL=num, där num anger antalet bytes (t.ex. 80). CLOSE-satsen som stänger en fil, har också flere specifikationer, men vanligen används den i formen CLOSE (num) (eller CLOSE (UNIT = num)), där num anger enhetsnummern. En sats som är nyttig för sekventiella filer, är REWIND, som används för att börja behandla filen igen från början. Som ett exempel kan vi studera en del av ett program, som först skriver data på en fil, och sedan läser samma fil på nytt: OPEN (10, FILE= test.dat, STATUS= NEW ) WRITE (10, 10) x,y, (z(i), i=1,n) REWIND 10 READ (10,10) a,b, (c(k), k=1,n) 10 FORMAT (10F8.4) Observera, att data i en fil alltid läses på samma sätt som de skrivits! Istället för att skriva formaterade data, som i fallet ovan, kan man också skriva oformaterade data. Isåfall bör OPEN-satsen innehålla specifikationen FORM= UNFORMATTED, och formatnummern utelämnas då vid läsning och skrivning. I detta fall kommer data att skrivas i binär form, vilket leder till tätare packning (men gör det svårare att använda datafilen på en annan dator). Introduktion till vetenskapliga beräkningar II, Tom Sundius

5 Som ett exempel skall vi studera ett program, som läser en fil, som skrivits oformaterat, och skriver ut formaterade data på en annan fil. PROGRAM bin2text! Program som konverterar en binär fil till text IMPLICIT NONE REAL :: x(100), y(100), a(100,100) INTEGER :: i,j,k,n OPEN (10, FILE= bin.dat, FORM= UNFORMATTED, STATUS= OLD ) READ (10) n READ (10) (x(i), i=1,n),(y(i), i=1,n) READ (10) ((a(i,j),j=1,n), i=1,n) CLOSE (10) OPEN (20, FILE= asc.dat, STATUS= NEW ) WRITE (20, *) Elementen i vektorn x: WRITE (20, 100) DO i=1,n,8 WRITE (20, 100) (x(j), j=i,min(i+7,n)) WRITE (20, (/A) ) Elementen i vektorn y: WRITE (20, 100) DO i=1,n,8 WRITE (20, 100) (y(j), j=i,min(i+7,n)) Introduktion till vetenskapliga beräkningar II, Tom Sundius

6 WRITE (20, (/A) ) Elementen i matrisen A: DO i=1,n DO j=1,n,8 WRITE (20, 100) (a(i,k), k=j, min(j+7,n)) STOP 100 FORMAT (T1,8F9.4) END PROGRAM bin2text Som vi ser, kommer programmet att skriva (högst) åtta tal per rad (observera användningen av funktionen min!). Vid utskriften används implicerade DO-satser, som vi tidigare har nämnt. Formatbeteckningen (/A) leder till att texten föregås av en tom rad (anges av snedstrecket). Den binära filen bin.dat i ovanstående exempel skulle man t.ex. kunna alstra med programmet PROGRAM bintest! Program som genererar en binär testfil IMPLICIT NONE REAL :: x(100), y(100), a(100,100) INTEGER :: n, i, j! Läs in en lämplig dimension (högst 100): Introduktion till vetenskapliga beräkningar II, Tom Sundius

7 DO PRINT *, Matrisdimensionen (högst 100): READ *,n IF (n > 0.and. n <= 100) EXIT! Konstruera matriserna: DO i=1,n x(i) = 10.*i y(i) = i/10. DO j=1,n a(i,j) = i*j! Öppna filen och skriv ut matriserna OPEN (10, FILE= bin.dat, FORM= UNFORMATTED, STATUS= NEW ) WRITE (10) n WRITE (10) (x(i), i=1,n), (y(i), i=1,n) WRITE (10) ((a(i,j), j=1,n), i=1,n) STOP END PROGRAM bintest Introduktion till vetenskapliga beräkningar II, Tom Sundius

8 Matrisdimensionen testas här med en öppen DO-konstruktion för att kontrollera, att den håller sig innanför stipulerade gränser. Med n = 5 ser utskriften från bin2text ut på följande sätt: Elementen i vektorn x: Elementen i vektorn y: Elementen i matrisen A: Vi har tidigare beskrivit hur man öppnar filer för in- och utmatning i Fortran. Vi skall nu diskutera ytterligare några parametrar, som ingår i OPEN-satsen. Introduktion till vetenskapliga beräkningar II, Tom Sundius

9 En av dem är IOSTAT, som anger en heltalsvariabel, vars värde är lika med 0, om filen öppnats utan problem, men annars olika 0. Ett exempel på användningen ges av följande programfragment, som frågar efter namnet på en existerande fil, som öppnas. Ifall något problem uppstår, ges ett felmeddelande. PRINT *, "Ange filnamnet" READ (A), filnamn OPEN (UNIT=1, FILE=filnamn,STATUS="OLD",IOSTAT=ios) IF (ios /= 0) THEN PRINT *, "Kan inte öppna ",filnamn... END IF Parametern IOSTAT kan också användas i in- och utmatningssatser. Värdet 0 anger då att satsen utförts utan problem, medan ett positivt värde anger att ett fel uppstått. Vid in- och utmatning anger ett negativt värde (oftast) att filen tagit slut. Filens slut anges av ett särskilt sluttecken i filen, som skrivs med satsen ENDFILE n, där n anger enhetens nummer. Detta kan t.ex. utnyttjas om man vill lägga till data i slutet av en sekventiell fil, såsom visas av följande exempel: Introduktion till vetenskapliga beräkningar II, Tom Sundius

10 ...! Hoppa till slutet DO READ (UNIT=1, IOSTAT=ios) z IF (ios<0) EXIT! negativ status betyder slutet! Gå ett steg tillbaka BACKSPACE 1! Skriv ny information WRITE (1) x... Man kan också lägga till data i slutet av en fil genom att öppna den med parametern POSITION = APPEND. BACKSPACE-satsen behövs alltid, om filen innehåller ett sluttecken (beror på systemet). Ett dylikt sluttecken kan också explicit skrivas in i filen med ENDFILE-satsen. Istället för IOSTAT kan man i I/O-satser också använda parametern END = num, som överflyttar kontrollen till en instruktion med satsnummern num, ifall filen tar slut. Användningen av IOSTAT rekommenderas dock, eftersom den möjliggör bättre kontroll över vad som verkligen händer. Ytterligare exempel på filhantering ges i följande program, som söker upp ett namn i en fil som innehåller t.ex. namn på användare och användarkoder, och skriver ut användarkoden, ifall namnet kan hittas (för att avsluta sökningen, används * *). Introduktion till vetenskapliga beräkningar II, Tom Sundius

11 PROGRAM search! Program som söker upp användarnamn i en sekventiell fil IMPLICIT NONE CHARACTER(LEN=20) :: fil_namn, f_namn, t_namn, f_n, t_n, a_n INTEGER :: ios LOGICAL :: funnet! Ange filnamn och öppna filen: DO PRINT *, "Ange filnamn:" READ *, fil_namn OPEN (UNIT=1, FILE=fil_namn, STATUS="OLD", IOSTAT=ios) IF (ios == 0) EXIT PRINT *, "Fel på filen!"! Ange förnamn och tillnamn DO funnet =.FALSE. PRINT *, "Förnamn och tillnamn:" READ *, f_namn, t_namn IF (f_namn == "*".AND. t_namn == "*") EXIT REWIND (1)! Sök upp den rätta posten DO READ (UNIT=1, FMT=*, IOSTAT=ios) f_n, t_n, a_n Introduktion till vetenskapliga beräkningar II, Tom Sundius

12 IF (ios<0) THEN! Filen tog slut EXIT ELSE IF (ios>0) THEN! Fel i filen PRINT ("Fel nr ",I3," vid läsning av fil ",A),ios,fil_namn STOP END IF IF (f_namn == f_n.and. t_namn == t_n) THEN PRINT *, "Användarkoden = ",a_n funnet =.TRUE. END IF IF (.NOT. funnet) PRINT *, "Namnet ej funnet!" STOP END PROGRAM search Vid in- och utmatning i Fortran brukar satserna READ, WRITE och PRINT vanligen inleda behandlingen av en ny post. Det finns fall då man skulle vilja läsa endast en del av en post, och resten senare. Detta, som inte var möjligt med FORTRAN 77, kan göras med Fortran 90. Introduktion till vetenskapliga beräkningar II, Tom Sundius

13 Metoden kallas icke-framskridande ( non-advancing ) in- och utmatning, och kan användas endast vid formaterad behandling av sekventiella filer. I detta fall behöver man inte behandla en hel post såsom fallet är vid normal filhantering. Dessutom får man reda på antalet tecken som posten innehåller, samt underrättas om filen tagit slut under läsningen. Icke-framskridande in- och utmatning anges med parametern ADVANCE i en READ eller WRITE sats, som har formen ADVANCE = "YES" eller ADVANCE = "NO". I det förstnämnda fallet används den normala, framskridande metoden, medan man i det senare fallet använder den nya, icke-framskridande metoden. Om ADVANCE ="NO" ingår i en READ-sats, finns det tre möjligheter: 1) Posten lästes inte i sin helhet, och det uppstod inga fel under läsningen. I detta fall kommer nästa READ-sats att fortsätta med behandlingen av samma post. 2) Om posten blivit läst förbi sluttecknet (vilket kan testas med IOSTAT), kommer positionen i filen att vara omedelbart efter ifrågavarande post. Detta uppfattas dock inte som ett feltillstånd. 3) Om något fel inträffade under läsningen (t.ex. filen tog slut) kommer positionen i filen att vara omedelbart efter senast lästa post. För att få reda på hur många tecken som blivit lästa, används parametern SIZE. Sålunda kommer t.ex. den icke-framskridande READ-satsen Introduktion till vetenskapliga beräkningar II, Tom Sundius

14 READ (UNIT=1, FMT=100, ADVANCE="NO", SIZE =nc, & IOSTAT=ios) x,y,z att lagra antalet lästa tecken i variabeln nc, och heltalsvariabeln ios kommer att ange hur läsningen har lyckats. Vid icke-framskridande utmatning finns det bara två möjligheter, antingen uppstod inga fel, och då kommer nästa WRITE-sats att fortsätta med samma post, eller också uppstod det något fel, och positionen i filen kommer att vara efter senast skrivna post. De flesta filer, som vi hittills haft att göra med, har varit sekventiella, dvs de kan läsas och skrivas bara i en riktning. Men man kan också behandla posterna i en fil i en godtycklig ordning, om man öppnar filen med parametern ACCESS="DIRECT". I detta fall måste alla poster i filen ha samma längd, vilket anges genom specifikationen RECL =n, där n är ett heltal, som anger den konstanta postlängden. Posterna i en direktaccess-fil uppfattas vara numrerade. Sålunda kan man t.ex. skriva post 100 oformaterat med satsen WRITE (UNIT=1, REC=100) x,y,z. En formaterad utskrift av formen WRITE (UNIT=1, REC=100, FMT= (10I5) ) (m(i), i=1,100) anger att tio poster kommer att skrivas, utgående från post 100. Observera också då man öppnar en fil för direkt access, att parametern FORM = UNFORMATTED är underförstådd. Introduktion till vetenskapliga beräkningar II, Tom Sundius

15 Posterna i en fil med direkt access kan skrivas i vilken ordning som helst. En post som har blivit skriven, kan skrivas över på nytt, men inte strykas. Om postens längd är kortare än specifikationen RECL, kommer den att fyllas ut till rätt längd. Ett exempel på ett program som använder direkt access för att läsa en fil, skriven med direkt access, visas nedan. PROGRAM direct! Programmet testar direkt access IMPLICIT NONE CHARACTER :: post*80, fil_namn*30 INTEGER :: ios, post_nr! Ange filnamn och öppna filen: DO PRINT *, "Ange filnamn:" READ *, fil_namn OPEN (UNIT=1, FILE=fil_namn, ACCESS="DIRECT", & FORM="FORMATTED", STATUS="OLD", RECL=50, IOSTAT=ios) IF (ios == 0) EXIT PRINT *, "Fel på filen!"! Ange postnummer DO PRINT *, Ange postnummer (0 avslutar): Introduktion till vetenskapliga beräkningar II, Tom Sundius

16 READ *, post_nr IF (post_nr <= 0) EXIT! Sök upp posten, och skriv ut den READ (UNIT=1, FMT = (A), REC = post_nr, IOSTAT = ios) IF (ios == 0) THEN PRINT *, post ELSE PRINT *, "Läsfel!" END IF PRINT *, "Filen behandlad" STOP END PROGRAM direct post Om filen inte kunde öppnas, kommer heltalsvariabeln ios att få ett värde olika noll. Detta sker både ifall filnamnet är orätt skrivet, eller filen har fel format (t.ex. variabel postlängd, etc.). Om det angivna postnumret inte är positivt, avbryts programmet, medan postnumret i annat fall anges på nytt. Om man anger ett större postnummer än vad som finns i filen, kommer heltalsvariabeln ios att få ett värde olika noll, vilket anges som läsfel. Introduktion till vetenskapliga beräkningar II, Tom Sundius

17 Filer av det slag som vi tillsvidare diskuterat, brukar också kallas yttre filer för att skilja dem från s.k. inre filer, som egentligen inte är några filer, men beter sig som sådana. En inre fil är egentligen bara ett sätt att konvertera mellan olika format. En dylik fil är vanligen en variabel av typ CHARACTER. Bäst förklarar man användningen med ett exempel. CHARACTER (LEN=50) :: rad WRITE (UNIT=rad, FMT= (2F10.5,3I10) ) x,y,i,j,k READ (UNIT=rad, FMT= (2(F8.3,2X),3(I8,2X)) ) x,y,i,j,k WRITE-satsen kommer här att alstra en teckensträng i variabeln rad som består av värdena av de reella variablerna x och y med fem decimaler och tio tecken vardera, samt heltalsvariablerna i, j och k också med tio tecken var. Dessa variabler matas in i samma teckensträng och förkortas till åtta tecken var. Introduktion till vetenskapliga beräkningar II, Tom Sundius

18 2.9. Noggrannhet och precision vid numeriska beräkningar Nogrannhet i datorframställningen av ett flyttal bestäms av antalet bitar i mantissan, och vilka tal som kan framställas på detta sätt bestäms av vilka värden exponenten kan anta. Detta beror givetvis på datorns ordlängd, vilket ställer till med problem då man överför program mellan olika datorer. För att avhjälpa detta, har man infört parametriserade variabler i Fortran 90 vilket gör det möjligt att kontrollera precisionen och exponentens räckvidd. Parametriseringen sker med en särskild parameter KIND. Vi skall belysa detta med några exempel: REAL :: x, y, z REAL, DIMENSION(100) :: a REAL(KIND=4) :: b, c REAL(KIND=2) :: v(5) Variablerna x, y, z och vektorn a är alla vanliga variabler av typ REAL, medan b och c har KIND typ 4 och vektorn v har KIND typ 2. För att ta reda på KIND-typen, kan man använda en inbyggd funktion KIND. Sålunda kommer t.ex. satsen i = KIND(b), om b deklarerats som ovan, att ge värdet 4 åt variabeln i. Det är inte nödvändigt att utsätta parameternamnet KIND i en deklaration, det räcker att skriva t.ex. REAL(4), men det blir tydligare om man använder den fullständigare formen REAL(KIND=4). Introduktion till vetenskapliga beräkningar II, Tom Sundius

19 I allmänhet är KIND-typerna datorberoende, men det finns en möjlighet i Fortran 90 att konstruera KINDparametrar, som är helt datoroberoende. Detta sker med den inbyggda funktionen SELECTED REAL KIND, som kan ha två heltaliga argument, P och R (det finns även SELECTED INT KIND). Det förstnämnda argumentet P anger minimiantalet decimaler som behövs, och det andra argumentet R anger den minsta räckvidden för exponenten som behövs. Om man t.ex. deklarerar en variabel med satsen REAL(KIND=SELECTED REAL KIND (P=7,R=30)) :: a, så betyder det att man för att framställa a behöver minst 7 decimaler och att exponentens räckvidd bör vara minst 30. Om samma noggrannhet används i flera deklarationer, lönar det sig att definiera en särskild konstant för KIND-parametern, t.ex. på följande sätt: INTEGER, PARAMETER :: real_7_30 = SELECTED_REAL_KIND(P=7,R=30)... REAL(KIND=real_7_30) :: a... I de flesta datorer är det möjligt att lagra flyttal i enkel eller dubbel precision, och de har hårdvara för att utföra aritmetiska operationer med dem. Om datorn räknar med sex signifikanta siffor och har en exponenträckvidd av 40, kommer den i ovanstående fall att räkna med dubbel precisions noggrannhet, men om ordlängden å andra sidan är så lång, att enkel precision räcker till för att framställa tal med 15 signifikanta siffror, och exponentens räckvidd är 300, så räcker enkel precision till i detta fall. Introduktion till vetenskapliga beräkningar II, Tom Sundius

20 För att bättre inse betydelsen av precision vid numeriska beräkningar skall vi studera ett program, som beräknar uttrycket ( n 1 ) 2 ( ) 2 3 2n n 2n 1 för olika värden av n, och med olika stor precision (som man får om man ändrar argumentet P i SELECTED REAL KIND: PROGRAM prec_test IMPLICIT NONE INTEGER, PARAMETER :: real6 = SELECTED_REAL_KIND(P=6,R=32) REAL(KIND=real6) :: x, p, q, s INTEGER :: k, n DO PRINT *, Ge värdet av n= READ *,n IF (n <= 0) EXIT x = 1. p = 1. DO k=1,2*n-1 x = REAL(k) p = (x/(x+1.))*p x = 1. Introduktion till vetenskapliga beräkningar II, Tom Sundius

21 q = 1. DO k=1,2*n-1 x = REAL(k) q = ((x+1.)/x)*q s = SQRT(p*p)*q PRINT *, s STOP END PROGRAM prec_test Det matematiskt korrekta resultatet är 1, men avrundningsfel kommer att leda till fel, som är särskilt markanta vid låg precision (t.ex. 6 decimaler), vilket framgår av nedanstående exempel: OUTO...ADB_KURS>r prec_test2 Ge värdet av n= Ge värdet av n= Ge värdet av n= Introduktion till vetenskapliga beräkningar II, Tom Sundius

22 Om man ökar precisionen (t.ex. till 14 decimaler), minskar avvikelsen betydligt, vilket man ser genom att testköra en modifikation av programmet ovan: OUTO...ADB_KURS>r prec_test3 Ge värdet av n= Ge värdet av n= Ge värdet av n= Vi skall också studera hur KIND typerna kan användas för ange precision i numeriska metoder. En av de enklaste metoderna att numeriskt beräkna en rot till en ekvation brukar kallas funktionsiteration. Om man på något sätt kan skriva ekvationen f(x) = 0 i formen x = g(x), så kan man iterera fram en rot genom utgå från en approximation till roten, substituera den i högra membrum samt räkna ut en ny approximation till roten. Detta betyder att man beräknar roten genom successiva approximationer: x n+1 = g(x n ), n = 0, 1, 2,.... Beräkningen avbryts, då skillnaden mellan två på varandra följande approximationer är mindre än en given toleransgräns: x n+1 x n < ɛ. Introduktion till vetenskapliga beräkningar II, Tom Sundius

23 Metoden har tillämpats i följande program, som beräknar den reella roten till ekvationen x 3 2x 5 = 0. Denna ekvation, som studerades redan av Newton 1669, kan skrivas i formen x = (2x + 5) 1/3, vilket gör det möjligt att tillämpa funktionsiteration. MODULE precision! Modul som anger variablernas precison IMPLICIT NONE INTEGER, PARAMETER :: r=selected_real_kind(p=14,r=30) END MODULE precision MODULE functions IMPLICIT NONE CONTAINS FUNCTION fn(x) USE precision IMPLICIT NONE REAL(KIND=r) :: fn REAL(KIND=r), INTENT(IN) :: x fn = (2._r*x + 5._r)**(1._r/3._r) RETURN END FUNCTION fn END MODULE functions PROGRAM fun_it! Program för iterativ rotbestämning: x = fn(x) USE precision Introduktion till vetenskapliga beräkningar II, Tom Sundius

24 USE functions IMPLICIT NONE REAL(KIND=r) :: x, x1, dx INTEGER :: i, maxit PRINT *, "Ge en approximation till roten" READ *, x1 PRINT *, "Ge maximiantalet iterationer" READ *, maxit PRINT *, "Ge önskad precision" READ *, dx! Iterera: DO i=1,maxit x = fn(x1) IF (ABS(x-x1) < dx) EXIT x1 = x PRINT *, " x = ",x IF (i > maxit) PRINT *, "Proceduren har inte konvergerat" PRINT *, "Antal iterationer: ",i PRINT *, " x = ",x STOP END PROGRAM fun_it Introduktion till vetenskapliga beräkningar II, Tom Sundius

25 I detta program, liksom i det föregående programmet, användes 14 decimalers precision, som definierats i en särskild modul, kallad precision. Variabler med denna precision har deklarerats som REAL(KIND=r). På ett liknande sätt har också konstanter angetts med samma precision, t.ex. 2. r. Konvergensen är rätt snabb, med utgångsvärdet x = 2 fås ett resultat med tio korrekta decimaler efter 12 iterationer, och med utgångsvärdet x = 100 efter 15 iterationer: Ge en approximation till roten 2 Ge maximiantalet iterationer 30 Ge önskad precision 1.E-10 x = x = x = x = x = x = x = x = x = x = x = Antal iterationer: 12 x = Introduktion till vetenskapliga beräkningar II, Tom Sundius

2.4. Teckensträngar och logiska uttryck

2.4. Teckensträngar och logiska uttryck 2.4. Teckensträngar och logiska uttryck I Fortran sparar man text i variabler av typen CHARACTER. För varje tecken reserveras normalt 1 byte i minnet. För att deklarera en teckenvariabel TEXT och samtidigt

Läs mer

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut F5: Filhantering in- och utmatning (kap. 2 och 8) 1 Utskrift på skärm, inläsning från tangentbord (kap. 2) Spara och hämta variabler med save och load (kap. 2) Kommandot textread Mer avancerad filhantering:

Läs mer

Textsträngar från/till skärm eller fil

Textsträngar från/till skärm eller fil Textsträngar från/till skärm eller fil Textsträngar [Kapitel 8.1] In- och utmatning till skärm [Kapitel 8.2] Rekursion Gränssnitt Felhantering In- och utmatning till fil Histogram 2010-10-25 Datorlära,

Läs mer

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer Datorlära 1 Introduktion till datasystemet, epost konto, afs hemkonto Introduktion till datorer och datasalar Open Office Calculator Beräkningar med Open Office Calc Diagram med OO Calc Datorlära 2 Utforma

Läs mer

5 Grundläggande in- och utmatning

5 Grundläggande in- och utmatning 5 Grundläggande in- och utmatning För att användaren skall kunna kommunicera med programmet krävs att man inkluderar ett eller flera bibliotek med rutiner. I Ada finns det ett antal paket som gör detta

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab TAIU07 Matematiska beräkningar med Matlab Datorlektion 2. Villkor och Repetition 1 Logiska uttryck Uppgift 1.1 Låt a=3 och b=6 Vad blir resultatet av testerna ab? Uppgift 1.2 Låt a, b,

Läs mer

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Inledande programmering med C# (1DV402) 27+15=42 1 (22) 27+15=42 1 (22) Variabler Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll

Läs mer

Repetition av filer Grundkurs i programmering med Python

Repetition av filer Grundkurs i programmering med Python Hösten 2009 Dagens lektion Formattera text 2 3 REPETITION AV FILER Filer på en dator En fil består av en sekvens av digitalt data (ettor och nollor). Upp till program att tolka dessa siffror. Skillnad

Läs mer

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet 1 Texthantering I detta avsnitt tas det upp två sätt att arbeta med text i C++ program. Det första sättet som behandlas är hanteringen av textfält. Texter i C++ består utav en serie med enstaka tecken

Läs mer

Institutionen för datavetenskap 2014/15

Institutionen för datavetenskap 2014/15 LUNDS TEKNISKA HÖGSKOLA Datorer och datoranvändning Institutionen för datavetenskap 2014/15 ME en dator 1 Inledning ME är en påhittad dator, men den har likheter med riktiga datorer: det finns ett maskinspråk

Läs mer

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Introduktion till integrering av Schenkers e-tjänster. Version 2.0 Introduktion till integrering av Schenkers e- Version 2.0 Datum: 2008-06-18 Sida 2 av 8 Revisionshistorik Lägg senaste ändringen först! Datum Version Revision 2008-06-18 2.0 Stora delar av introduktionen

Läs mer

Föreläsning 3.1: Datastrukturer, en översikt

Föreläsning 3.1: Datastrukturer, en översikt Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik för ingenjörer, VT06 2 Repetition Repetition -

Läs mer

1 Funktioner och procedurell abstraktion

1 Funktioner och procedurell abstraktion 1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga

Läs mer

MMA132: Laboration 1 Introduktion till MATLAB

MMA132: Laboration 1 Introduktion till MATLAB MMA132: Laboration 1 Introduktion till MATLAB De flesta numeriska metoder låter oss få en tillräckligt bra lösning på ett matematiskt problem genom att byta ut komplexa matematiska operationer med kombinationer

Läs mer

Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 1

Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 1 forts. på föregående föreläsning: Vi har redan nämnt att det finns inbyggda funktioner i Fortran, och har också redan använt några av de matematiska funktionerna, såsom ABS, SQRT och SIN. Vi skall nu studera

Läs mer

Exempel på ett litet Ada-program

Exempel på ett litet Ada-program Exempel på ett litet Ada-program -- En kommentar som beskriver något. with Ada.Text_IO; procedure Mini is -- Deklarationer. K : constant Integer := 5; X, Y : Integer; -- Körbar kod. Ada.Text_IO.Put( Utskrift

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

Matematisk Modellering

Matematisk Modellering Matematisk Modellering Föreläsning 1 Anders Heyden Matematikcentrum Lunds Universitet Matematisk Modellering p.1/37 Denna föreläsning (läsvecka 1) Vad handlar kursen om, mål, kurskrav, ide. Matematisk

Läs mer

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110.

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110. 1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Denna tenta kommer att vara färdigrättad On 14/1-04 och kan då hämtas på mitt

Läs mer

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

Pascal... Pascal. Pascal... Pascal...

Pascal... Pascal. Pascal... Pascal... ... Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken

Läs mer

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm. Algoritmanalys Analys av algoritmer används för att uppskatta effektivitet. Om vi t. ex. har n stycken tal lagrat i en array och vi vill linjärsöka i denna. Det betyder att vi måste leta i arrayen tills

Läs mer

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken

Läs mer

TATA42: Föreläsning 10 Serier ( generaliserade summor )

TATA42: Föreläsning 10 Serier ( generaliserade summor ) TATA42: Föreläsning 0 Serier ( generaliserade summor ) Johan Thim 5 maj 205 En funktion s: N R brukar kallas talföljd, och vi skriver ofta s n i stället för s(n). Detta innebär alltså att för varje heltal

Läs mer

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner KPP053, HT2015 MATLAB, Föreläsning 1 Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner MATLAB Väletablerat Mycket omfattande program GNU OCTAVE Öppen

Läs mer

Hjälpmedel för kompilatorkonstruktion, DVB004

Hjälpmedel för kompilatorkonstruktion, DVB004 Hjälpmedel för kompilatorkonstruktion, DVB004 Version 4.2 021104 Göran Fries 031104 GF Kompilatorn kan lämpligen konstrueras i tre ganska fristående pass (p1,p2,p3). Första passet gör en lexikalisk analys,

Läs mer

3.3. Symboliska matematikprogram

3.3. Symboliska matematikprogram 3.3. Symboliska matematikprogram Vi skall nu övergå till att behandla de vanligaste matematikprogrammen, och börja med de symboliska. Av dessa kan både Mathematica och Maple användas på flere UNIX-datorer.

Läs mer

Kapitel 15: Data/Matrix Editor

Kapitel 15: Data/Matrix Editor Kapitel 15: Data/Matrix Editor 15 Översikt över Data/Matrix Editor... 226 Översikt över list-, data- och matrisvariabler... 227 Starta en Data/Matrix Editor-session... 229 Mata in och visa cellvärden...

Läs mer

Inlämningsuppgift 4 NUM131

Inlämningsuppgift 4 NUM131 Inlämningsuppgift 4 NUM131 Modell Denna inlämningsuppgift går ut på att simulera ett modellflygplans rörelse i luften. Vi bortser ifrån rörelser i sidled och studerar enbart rörelsen i ett plan. De krafter

Läs mer

2.2. Ett enkelt Fortran-program

2.2. Ett enkelt Fortran-program 2.2. Ett enkelt Fortran-program Vi kommer nu att gå in på grunderna till programmering, och väljer Fortran som programmeringsspråk, dels för att det är det mest använda för numeriska beräkningar i fysik

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Programmeringsuppgifter 1

Programmeringsuppgifter 1 Programmeringsuppgifter 1 Redovisning: Ni demo-kör och förklarar för handledaren några av de program ni gjort. Ni behöver inte hinna allt, redovisa så långt ni kommit. Om ni hinner mer kan ni alltid redovisa

Läs mer

Enkla datatyper minne

Enkla datatyper minne Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in

Läs mer

Övningar i JavaScript del 2

Övningar i JavaScript del 2 Övningar i JavaScript del 2 Genm dessa övningar frtsätter intrduktinen av JavaScript. Vi tar nu upp if-satser ch lite mer m funktiner. Vi kmmer ckså in på tillämpningar sm att byta en bild på webbsidan

Läs mer

Ickelinjära ekvationer

Ickelinjära ekvationer Löpsedel: Icke-linjära ekvationer Ickelinjära ekvationer Beräkningsvetenskap I Varför är det svårt att lösa icke-linjära ekvationer? Iterativa metoder Bisektion/intervallhalvering Newton-Raphsons metod

Läs mer

Tentamen Grundläggande programmering

Tentamen Grundläggande programmering Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4:

Läs mer

Grunderna i stegkodsprogrammering

Grunderna i stegkodsprogrammering Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer

Läs mer

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa Lena Kallin Westin 2005-08-22 Institutionen för datavetenskap Umeå universitet TENTAMEN Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa Inlämnad Poäng Kurs : Programmeringsteknisk

Läs mer

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

Björn Abelli Programmeringens grunder med exempel i C#

Björn Abelli Programmeringens grunder med exempel i C# Björn Abelli Programmeringens grunder med exempel i C# Övningshäfte (bearbetning pågår) Senaste uppdatering: 2004-12-12 I denna version finns övningar för de mest centrala avsnitten. Häftet kommer att

Läs mer

4 Sammansatta datatyper

4 Sammansatta datatyper 4 Sammansatta datatyper De enkla datatyper som vi hittills använt är otillräckliga när man ska hantera stora datamängder. Vill man exempelvis läsa in 100 reella mätvärden, som man tillfälligt vill spara

Läs mer

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler 1 Datorn som miniräknare I detta avsnitt tas upp hur man kan skriva program som utför enkla räkneoperationer och skriver resultat på skärmen. Syftet är i huvudsak att se hur flera satser kan bygga upp

Läs mer

STYRNING AV PORTFÖLJER MED FLERA TILLGÅNGAR

STYRNING AV PORTFÖLJER MED FLERA TILLGÅNGAR 1 STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för Matematisk statistik Thomas Höglund FINANSMATEMATIK I. KOMPLEMENT DAG 13. STYRNING AV PORTFÖLJER MED FLERA TILLGÅNGAR Hittills har vi betraktat

Läs mer

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1. PASS 9. OLIKHETER 9. Grundbegrepp om olikheter Vi får olikheter av ekvationer om vi byter ut likhetstecknet mot något av tecknen > (större än), (större än eller lika med), < (mindre än) eller (mindre än

Läs mer

Approximation av funktioner

Approximation av funktioner Vetenskapliga beräkningar III 8 Kapitel Approximation av funktioner Vi skall nu övergå till att beskriva, hur man i praktiken numeriskt beräknar funktioner I allmänhet kan inte ens elementära funktioner

Läs mer

Föreläsning 4: Poster

Föreläsning 4: Poster Föreläsning 4: Poster Följande är genomgånget: type Person_Type is Namn : String(30); Skonr : Float; Kon : Boolean; Diskussion runt detta med olika typer m.m. Har tagit upp vilka operationer man kan göra

Läs mer

Chapter 3: Using Classes and Objects

Chapter 3: Using Classes and Objects Chapter 3: Using Classes and Objects I dessa uppgifter kommer du att lära dig om hur man använder klasser och metoder från java biblioteket. Du kommer inte att förstå allt som händer bakom metod anrop

Läs mer

Lektion 1, del b Utskrifter av variabelvärden Inläsning av värden till variabler

Lektion 1, del b Utskrifter av variabelvärden Inläsning av värden till variabler Lektion 1, del b Utskrifter av variabelvärden Inläsning av värden till variabler Denna lektion tar upp Utskrifter: Utskrift av variabelvärden på skärmen i DrJavas Interaktions-fönster eller i ett Popup-fönster

Läs mer

4.3. Programmering i MATLAB

4.3. Programmering i MATLAB 4.3. Programmering i MATLAB MATLAB används ofta interaktivt, dvs ett kommando som man skriver, kommer genast att utföras, och resultatet visas. Men MATLAB kan också utföra kommandon som lagrats i filer,

Läs mer

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010 Föreläsning 6 Kapitel 5 5.1 switch-satsen Vi ser på ett par exempel ur boken: int a; srand(time(0)); a=rand()%6+1; if(a==1) printf("hej Du glade\n"); else if(a==2) printf("god dag\n"); else if(a==3) printf("är

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

Projekt: Basketbollkast

Projekt: Basketbollkast Projekt: Basketbollkast av Grupp 3: Mikael B, Jörgen H, Sofie J, Johannes L, Anton N, Jenny P och Rasmus W för kursen Beräkningsprogrammering, NUM131 Sida 1 av 22 7 6 1 2 3 4 5 height (m) 4 3 Sida 2 av

Läs mer

Föreläsning 8: Aritmetik och stora heltal

Föreläsning 8: Aritmetik och stora heltal 2D1458, Problemlösning och programmering under press Föreläsning 8: Aritmetik och stora heltal Datum: 2006-11-06 Skribent(er): Elias Freider och Ulf Lundström Föreläsare: Per Austrin Den här föreläsningen

Läs mer

Översikt över Visual Basic

Översikt över Visual Basic Översikt över Visual Basic Om denna översikt Denna översikt ger en kort introduktion till de viktigaste delarna i programspråket Visual Basic 6.0. På alla ställen där det beskrivs hur man skriver kod gäller

Läs mer

Objektorienterad programmering Föreläsning 11. Copyright Mahmud Al Hakim

Objektorienterad programmering Föreläsning 11. Copyright Mahmud Al Hakim Objektorienterad programmering Föreläsning 11 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Multipla relationer Flerdimensionella fält Nationella inställningar Redigering av utskrifter

Läs mer

Repetitionsuppgifter i Matematik inför Basår. Matematiska institutionen Linköpings universitet 2014

Repetitionsuppgifter i Matematik inför Basår. Matematiska institutionen Linköpings universitet 2014 Repetitionsuppgifter i Matematik inför Basår Matematiska institutionen Linköpings universitet 04 Innehåll De fyra räknesätten Potenser och rötter 7 Algebra 0 4 Funktioner 7 Logaritmer 9 6 Facit 0 Repetitionsuppgifter

Läs mer

Anvisningar för ifyllning av Excelark för databaser (sekventiella textfiler)

Anvisningar för ifyllning av Excelark för databaser (sekventiella textfiler) 2009-10-09 (reviderad 2011-01-04, 2011-01-31, 2011-10-03, 2012-02-20, 2012-09-17, 2014-05-09) Riksarkivet Anvisningar för ifyllning av Excelark för databaser (sekventiella textfiler) 1 Anvisningar för

Läs mer

Språket Python - Del 1 Grundkurs i programmering med Python

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

Läs mer

6.3. Direkta sökmetoder

6.3. Direkta sökmetoder 6.3. Direkta sökmetoder Förutom de nyss nämnda metoderna för att uppsöka ett minimum av en funktion av en variabel finns det en enkel metod som baserar sig på polynomapproximation av funktionen. Om vi

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Tips och tricks 1 Cadcorp SIS 5.2 2003-03-03

Tips och tricks 1 Cadcorp SIS 5.2 2003-03-03 Tips och tricks 1 Cadcorp SIS 5.2 2003-03-03 Skapa en raster pensel från en Windows bakgrund (1) 1. Kontrollera att Paper är uppsatt som koordinatsystem/projektion 2. Öppna en Bitmap fil i ett tom fönsterfil

Läs mer

Grunderna i SQL del 1

Grunderna i SQL del 1 Grunderna i SQL del 1 1. SELECT-frågor 2. SELECT 3. WHERE 4. ORDER BY 5. Inre join 6. Yttre join 7. Andra typer av join 8. Union 9. Aggregatfunktioner 10. Gruppera och summera Kap. 3 Kap. 4 Kap. 5 utom

Läs mer

16 Programmering TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

16 Programmering TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5 16 Programmering Skriva program till TI-86... 214 Köra program... 221 Arbeta med program... 223 Hämta och köra assemblerprogram... 226 Arbeta med strängar... 227 TI -86 M1 M2 M3 M4 M5 F1 F2 F3 F4 F5 214

Läs mer

COBOL. från grunden. monitors. Peter Sterwe. training people

COBOL. från grunden. monitors. Peter Sterwe. training people training people monitors COBOL från grunden Peter Sterwe Lär dig grunderna i COBOL-programmering på ett översiktligt och pedagogiskt sätt från företaget som har mer än trettio års erfarenhet av utbildning

Läs mer

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012 1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

Läs mer

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-01-10 Skrivtid: 8.00 13.00 Hjälpmedel: Java-bok Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Introduktion till formella metoder Programmeringsmetodik 1. Inledning Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur

Läs mer

Uppgift 1 (Oläsliga krypterade meddelanden)

Uppgift 1 (Oläsliga krypterade meddelanden) Uppgift 1 (Oläsliga krypterade meddelanden) Ofta vill man kryptera text för att inte andra skall se vad man skrivit. I den givna filen KRYPTERAD_TEXT.TXT finns en krypterad text som kan vara av intresse

Läs mer

Beräkningsvetenskap föreläsning 2

Beräkningsvetenskap föreläsning 2 Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa

Läs mer

Att använda pekare i. C-kod

Att använda pekare i. C-kod Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

Introduktion. Exempel Övningar Lösningar 1 Lösningar 2 Översikt

Introduktion. Exempel Övningar Lösningar 1 Lösningar 2 Översikt KTHs Sommarmatematik 2003 Exempel Övningar Lösningar 1 Lösningar 2 Översikt 5.1 Introduktion Introduktion Exponentialfunktionen e x och logaritmfunktionen ln x är bland de viktigaste och vanligast förekommande

Läs mer

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och

Läs mer

Dynamisk HTML JavaScript och webbläsarens objektmodell

Dynamisk HTML JavaScript och webbläsarens objektmodell Dynamisk HTML 1 JavaScript och webbläsarens objektmodell Ove Lundgren (2009) Ove Lundgren - 1 - DOMDHTML2009.doc Innehåll Dynamisk HTML Webbläsarens variabler och metoder. Objektmodellen. Anropa metoder

Läs mer

Övningar Dag 2 En första klass

Övningar Dag 2 En första klass Kurs i C++ Sid 1 (5) Övningar Dag 2 En första klass Denna övning går ut på att steg för steg bygga upp en klass och skapa objekt. Vi kommer att utgå från en sammansatt datatyp i en struct och parallellt

Läs mer

Matematisk statistik allmän kurs, MASA01:B, HT-14 Laboration 2

Matematisk statistik allmän kurs, MASA01:B, HT-14 Laboration 2 Lunds universitet Matematikcentrum Matematisk statistik Matematisk statistik allmän kurs, MASA01:B, HT-14 Laboration 2 Rapporten till den här laborationen skall lämnas in senast den 19e December 2014.

Läs mer

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan 8.00-12.00 Redovisning Lös först uppgifterna i Matlab.

Läs mer

Introduktion till Winbas. produkt och prisinläsning

Introduktion till Winbas. produkt och prisinläsning Introduktion till Winbas produkt och prisinläsning Produkt och prisinläsning Kunskaper i post- och filhantering Att arbeta med inläsningar av produktinformation såsom priser, benämningstexter m.m. kräver

Läs mer

Seriehantering. [En enkel guide för hur du som serieadministratör använder SVEMO TA.]

Seriehantering. [En enkel guide för hur du som serieadministratör använder SVEMO TA.] 2013 Svenska Motorcykel- och Snöskoterförbundet Box 2314 600 02 NORRKÖPING Tel. 011-23 10 80 www.svemo.se Seriehantering [En enkel guide för hur du som serieadministratör använder SVEMO TA.] Innehåll Inledning...

Läs mer

DD1361 Programmeringsparadigm. Carina Edlund

DD1361 Programmeringsparadigm. Carina Edlund DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Omtentamen i DV & TDV

Omtentamen i DV & TDV Umeå Universitet Institutionen för Datavetenskap Gunilla Wikström (e-post wikstrom) Omtentamen i Teknisk-Vetenskapliga Beräkningar för DV & TDV Tentamensdatum: 2005-06-07 Skrivtid: 9-15 Hjälpmedel: inga

Läs mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python. är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar

Läs mer

Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.

Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP. Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär

Läs mer

ANDREAS REJBRAND 2014-04-25 Matematik http://www.rejbrand.se. Numeriska serier. Andreas Rejbrand, april 2014 1/29

ANDREAS REJBRAND 2014-04-25 Matematik http://www.rejbrand.se. Numeriska serier. Andreas Rejbrand, april 2014 1/29 Numeriska serier Andreas Rejbrand, april 2014 1/29 1 Inledning Författarens erfarenhet säger att momentet med numeriska serier är ganska svårt för många studenter i inledande matematikkurser på högskolenivå.

Läs mer

Tentamen i Objektorienterad programmering

Tentamen i Objektorienterad programmering CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar

Läs mer

STADSBYGGNADSFÖRVALTNINGEN. Aktivitetsstöd. Behörigheten Föreningsadministratör. Datum: 2015-09-22 Version 2. Sidan 1 (30)

STADSBYGGNADSFÖRVALTNINGEN. Aktivitetsstöd. Behörigheten Föreningsadministratör. Datum: 2015-09-22 Version 2. Sidan 1 (30) Aktivitetsstöd Behörigheten Föreningsadministratör Datum: 2015-09-22 Version 2 Sidan 1 (30) Innehållsförteckning 1. Aktivitetsstöd - Inledning... 3 1.1 Användare - Webbadress tillre Aktivitetsstöd... 3

Läs mer

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc. Introduktion till MATLAB Martin Nilsson Avdelningen för teknisk databehandling Institutionen för informationsteknologi Uppsala universitet MATLAB the Matrix Laboratory utvecklat av MathWorks, Inc. Matematisk

Läs mer

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud. Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra

Läs mer