2.2. Ett enkelt Fortran-program

Storlek: px
Starta visningen från sidan:

Download "2.2. Ett enkelt Fortran-program"

Transkript

1 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 och teknik, och dels för att standarden nyligen moderniserats. Vi kommer här att följa den nya standarden, Fortran 90 (Fortran 95 skiljer sig endast obetydligt från Fortran 90), och endast tillfälligt beröra den äldre standarden, FORTRAN 77, som fortfarande användes. I föregående avsnitt har vi redan i princip beskrivit hur man går till väga för att skriva ett program. Det är viktigt att specificera problemet så väl, att det blir lätt att koda. En enkel programkod är också lättare att felsöka. Sedan man bortskaffat alla syntaktiska fel efter kompileringen, skall programmet länkas och testas. Fel som upptäcks vid testningen, rättas genom att källkoden ändras. Detta är oftast den mest krävande delen av programmeringen. Vi skall börja med att studera ett enkelt exempel på ett Fortran-program, som har till uppgift att beräkna medelpunkten och radien för en cirkel, som går genom tre givna punkter. Programmet är skrivet med en sträng Fortran 90 syntax, vilket innebär, att det kan kompileras med en Fortran-kompilator (t.ex. ELF90 från Lahey och F från Fortran Company (g95)), som inte kan tolka äldre syntax. Introduktion till vetenskapliga beräkningar II, Tom Sundius

2 En fri kompilator för Fortran 95/2003 är GNU Fortran, som även kan installeras i Windows (se Den översätter också FORTRAN 77-kod. Vi skall först se på huvudprogrammet, som läser in punkter, anropar en subrutin, som beräknar medelpunkten och radien, och slutligen skriver ut resultatet. PROGRAM cirkel IMPLICIT NONE! Detta program beräknar medelpunkten och radien! för en cirkel genom tre givna punkter! Deklarationer REAL :: x1,y1,x2,y2,x3,y3,x0,y0,r INTEGER :: ier! Explicit interface (elf90) interface subroutine calcrk (a1, b1, a2, b2, a3, b3, x, y, r, i) implicit none real, intent(in) :: a1, b1, a2, b2, a3, b3 real, intent(out) :: x, y, r integer, intent(out) :: i Introduktion till vetenskapliga beräkningar II, Tom Sundius

3 end subroutine calcrk end interface! Läs in punkterna PRINT *, "Skriv koordinaterna för tre punkter" PRINT *, "i ordningen x1,y1,x2,y2,x3,y3" READ *, x1,y1,x2,y2,x3,y3! Beräkna medelpunkten och radien CALL calcrk(x1,y1,x2,y2,x3,y3,x0,y0,r,ier)! Skriv ut medelpunkten och radien, om allt gått väl: IF (ier == 0) THEN PRINT *, "Cirkelns medelpunkt är (",& & x0,",",y0,")" PRINT *, "och dess radie = ",r ELSE PRINT *, "Punkterna är på rät linje, "& &, "eller några av dem sammanfaller!" END IF STOP END PROGRAM CIRKEL Introduktion till vetenskapliga beräkningar II, Tom Sundius

4 Programmet har skrivits i princip i fritt format, vilket innebär, att man inte behöver fästa större avseende vid vilka kolumner som innehåller programinstruktioner, till åtskillnad från det fasta formatet som gäller i FORTRAN 77. Kommentarer anges med utropstecken (!), och de får också stå efter en instruktion på samma rad. För att fortsätta en instruktion på nästa rad används tecknet & som sista tecken på raden, och det bör oftast upprepas på följande rad. I Fortran 90 kan man använda följande tecken (undantag görs för kommentarer, och text som skall skrivas ut): ABCDEFHIJKLMONPQRSTUVWXYZ =+-*/(),.$ :!"%& ; <>? där använts för att beteckna ett mellanrum. Tecknet får dessutom användas i namn. Om vi studerar programmet litet närmare, kan vi konstatera att det börjar med instruktionen PROGRAM cirkel, och avslutas med END PROGRAM CIRKEL. Instruktionen PROGRAM anger programmets namn. Detta namn följer reglerna för symbolnamn i Fortran: Det måste börja med en bokstav, och får endast innehålla bokstäver och siffror. Medan FORTRAN 77 endast tillät sex tecken i symbolnamn, tillåter Fortran 90 numera 31 tecken. Introduktion till vetenskapliga beräkningar II, Tom Sundius

5 Fortran tolkar normalt alla variabler, vilkas namn börjar med någon av bokstäverna A-H och O-Z som decimaltal (reella variabler), och alla övriga variabler som heltal, om man inte deklarerar dem på ett annat sätt. Detta kallas implicit deklaration. För att undvika detta, borde man använda IMPLICIT NONE, vilket leder till, att alla variabler som används, måste deklareras (F tillåter inte IMPLICIT deklarationen). Fördelen med detta är, att odeklarerade variabler genast observeras av kompilatorn, vilket underlättar felsökningen. Exempel på variabeldeklarationer syns på de följande raderna: REAL :: x1,y1,x2,y2,x3,y3,x0,y0,r INTEGER :: ier där först koordinaterna för de tre punkterna, och sedan koordinaterna för medelpunkten, samt radien deklareras reella. Variabeln ier anger en felkod, som levereras av rutinen som beräknar cirkelns medelpunkt och radie. Därefter följer ett s.k. interface-block, som används för att beskriva subrutinens variabler. Det är inte obligatoriskt, men rekommenderas i Fortran 90. Med intent kan man ange om variablerna användes för inmatning eller utmatning. Introduktion till vetenskapliga beräkningar II, Tom Sundius

6 De följande instruktionerna, som är de första som verkligen utförs, styr inmatningen. Instruktionerna PRINT *, "Skriv koordinaterna för tre punkter" PRINT *, "i ordningen x1,y1,x2,y2,x3,y3" ger en uppmaning på skärmen till användaren att skriva ut koordinaterna för de tre punkterna. Observera, att texten, som skall skrivas ut, begränsas av citationstecken " eller apostrofer i Fortran 90. Den följande instruktionen READ *, x1,y1,x2,y2,x3,y3 läser in talen, som matas in, varpå subrutinen, som gör den egentliga uträkningen anropas: CALL calcrk(x1,y1,x2,y2,x3,y3,x0,y0,r,ier). Då instruktionen CALL utförs, kommer utförandet av programmet tillfälligt att avbrytas, och kontrollen överflyttas till subrutinen calcrk. Symbolnamnen, som befinner sig inom parentes efter subrutinens namn, kallas argument, och används för att överföra information till subrutinen (i detta fall de tre punkternas koordinater), samt för att ta emot den information, som ges av rutinen efter avslutad räkning (i detta fall medelpunktens koordinater och radien). Variabeln ier är = 0, om subrutinen lyckats räkna ut cirkelns medelpunkt och radie. Om detta misslyckas (t.ex. om de givna punkterna ligger på en rät linje), får ier värdet 1. Värdet av ier kan man testa med villkorssatsen IF: Introduktion till vetenskapliga beräkningar II, Tom Sundius

7 IF (ier == 0) THEN... ELSE... END IF Om ier = 0, så skrivs resultatet av beräkningen ut med instruktionerna PRINT *, "Cirkelns medelpunkt är (",& & x0,",",y0,")" PRINT *, "och dess radie = ",r Observera textens indragning, vilket underlättar läsningen! Här visas också, hur man kan ange att instruktionen fortsätter på nästa rad. Om ier 0, skrivs ett felmeddelande ut: och programmet avslutas. PRINT *, "Punkterna är på rät linje, "& &, "eller några av dem sammanfaller!" Introduktion till vetenskapliga beräkningar II, Tom Sundius

8 För att kunna använda detta program, måste vi också skriva subrutinen, som beräknar cirkelns medelpunkt och radie. Detta sker genom att substituera de tre givna punkternas koordinater i cirkelns ekvation, och lösa ekvationssystemet (x 1 x 0 ) 2 + (y 1 y 0 ) 2 = r 2 (x 2 x 0 ) 2 + (y 2 y 0 ) 2 = r 2 (x 3 x 0 ) 2 + (y 3 y 0 ) 2 = r 2 En rutin som löser detta ekvationssystem visas nedan utan närmare kommentarer: SUBROUTINE calcrk(x1,y1,x2,y2,x3,y3,x0,y0,r,ier)! Routine that computes the center and radius for a circle! passing through three given points! TS IMPLICIT NONE REAL, intent(in) :: x1,y1,x2,y2,x3,y3 REAL, intent(out) :: x0,y0,r REAL :: x12,y12,x13,y13 REAL :: r12,r13,a,b,d INTEGER, intent(out) :: ier ier = 0 Introduktion till vetenskapliga beräkningar II, Tom Sundius

9 x12 = x1-x2 y12 = y1-y2 x13 = x1-x3 y13 = y1-y3 d = x12*y13 - x13*y12! Test for collinear points: IF (abs(d) > 0.) THEN r12 = x12*(x1+x2) + y12*(y1+y2) r13 = x13*(x1+x3) + y13*(y1+y3) a = 0.5*r12/d b = 0.5*r13/d! Compute center and radius: x0 = a*y13 - b*y12 y0 = -a*x13 + b*x12 r = sqrt((x1-x0)**2 + (y1-y0)**2) ELSE ier = 1 END IF RETURN END subroutine calcrk (om man använder F, måste subrutinen inbäddas i en modul, något vi senare skall studera). Introduktion till vetenskapliga beräkningar II, Tom Sundius

10 När man har skrivit subrutinen, kan man kompilera huvudprogrammet cirkel, och subrutinen calcrk. Kompilering av Fortran-program går i princip till på ett liknande sätt på alla datorer. Om vi som exempel väljer det program, som vi nyss studerat, så kan vi kompilera det med en f90-kompilator (jfr man f90) under HP Unix på följande sätt: soul/home/pcu/fyl/sundius/test/f90> f90 -o cirkel cirkel.f90 calcrk.f90 soul/home/pcu/fyl/sundius/test/f90> dir c* -rw sundius fyl 850 Mar calcrk.f90 -rwx sundius fyl Jan 31 15:51 cirkel* -rw sundius fyl 815 Mar cirkel.f90 -rw sundius fyl 342 Dec complex.f90 -rw sundius fyl 513 Dec cosfit.f90 I detta fall kommer kommandot f90 både att kompilera och länka filen, och optionen -o anger namnet på den exekverbara filen. Programmet körs genom att man skriver filens namn (om inte katalogen ingår i vägen, måste man antingen först skriva setenv PATH "$PATH":., eller skriva./cirkel, som alltid fungerar) Introduktion till vetenskapliga beräkningar II, Tom Sundius

11 soul/home/pcu/fyl/sundius/test/f90> cirkel Skriv koordinaterna för tre punkter i ordningen x1,y1,x2,y2,x3,y Cirkelns medelpunkt är ( , ) och dess radie = Man kan också kompilera filerna, och därpå skilt linka de alstrade objektfilerna, som har extensionen.o (kompilerat med gfortran på punk): punk.it.helsinki.fi/home/pcu/fyl/sundius/test/f90> gfortran -c cirkel.f90 calcrk.f90 punk.it.helsinki.fi/home/pcu/fyl/sundius/test/f90> gfortran -o cirkel cirkel.o calcrk.o Namnet på den fil, som innehåller källkoden, har normalt extensionen.f90, men kan också vara.f95,.f03 eller t.o.m..f, beroende på vad kompilatorn tillåter. Om man inte ger något namn åt den exekverbara filen, kallas den av kompilatorn a.out, och körs med kommandot./a.out. Introduktion till vetenskapliga beräkningar II, Tom Sundius

12 2.3. Konstanter och variabler i Fortran Efter den korta introduktionen skall vi mera i detalj gå in på Fortran-språkets struktur. Vi skall börja med att repetera framställningen av tal. Vi har redan i olika sammanhang nämnt att datorerna räknar med binära tal, så att de egentligen bara känner till heltal. Ett binärt tal framställs som en följd av ettor och nollor, som t.ex Siffrorna brukar kallas bitar. Varje bit svarar mot en binär siffra, så att biten längst till höger (den minst signifikanta) anger antalet multipler av 2 0, den följande biten antalet multipler av 2 1, osv. Istället för binär representation, brukar man ofta använda en hexadecimal framställning, som inte kräver så många siffror. Datorns minnesstorlek anges oftast i en annan enhet, nämligen byte, som är åtta bitar. Med en byte kan man inte framställa tal större än 255, och därför är den s.k. ordlängden vanligen minst 4 bytes (32 bitar). Den mest signifikanta biten (dvs den som befinner sig längst till vänster) anger förtecknet. Decimaltal (dvs reella tal) måste också framställas i samma form. Detta är inte så konstigt, eftersom varje decimaltal kan uttryckas som ett heltal gånger en tiopotens eller exponent (vi kan också tolka det som en logaritmisk framställning, med mantissa och karaktäristika). Om ordlängden är 32 bitar, så reserveras vanligen 8 bitar för exponenten, och 24 bitar för mantissan (kallas också för en flyttalsrepresentation). Introduktion till vetenskapliga beräkningar II, Tom Sundius

13 I verkligheten uppfattas mantissan som ett decimaltal (normaliserat till 1), och talet kan då framställas i formen a = r 2 m. Detta kallas också för IEEE-standarden. Exponenten uttrycks vanligen som ett heltal mellan 0 och 255, och 127 måste subtraheras för att man också skall kunna framställa negativa exponenter. Det största positiva tal som kan representeras med denna metod är således ca På grund av att mantissan innehåller 24 bitar får man ca 7 decimalers noggrannhet i räkningarna. Detta sätt att framställa tal med ett begränsat antal siffror, leder till att man inte kan uttrycka vilka tal som helst. För en dator med 32-bitars ordlängd begränsas heltal till intervallet [ , ]. Reella tal är till sitt absoluta värde begränsade av intervallet [10 38, ], så att verkligt stora eller små tal inte kan representeras korrekt av datorn. Tal som underskrider den nedre gränsen åstadkommer underflow, medan tal som överskrider den övre gränsen ger upphov till overflow. I det senare fallet avbryts programmets utförande automatiskt, medan underflow leder till att resultatet av räkneoperationen blir noll, vilket inte alltid observeras. Fortran känner till både numeriska och icke-numeriska konstanter (eller literala konstanter). De numeriska konstanterna kan vara heltaliga, reella eller komplexa. En heltalig konstant är ett tal, som saknar decimalpunkt, medan en reell konstant har decimalpunkt, och kan efterföljas av tecknet E och en heltalig exponent. 4., -1.5, 2.E-5, -4.E8 är exempel på reella konstanter. En komplex konstant består av två reella tal inom parentes, åtskilda av ett komma : (4.51, -3.72). Introduktion till vetenskapliga beräkningar II, Tom Sundius

14 De icke-numeriska konstanterna är logiska konstanter och teckenkonstanter. De logiska konstanterna är två:.true. och.false. (observera punkten före och efter!). En teckenkonstant anges i Fortran som en teckensträng omgiven av citationstecken (eller apostrofer): "Detta är en teckenkonstant". Om teckensträngen innehåller ett citationstecken, upprepas det: "Descartes"" filosofi" (detta problem undviks i Fortran 90, där man också kan använda apostrofer: "Descartes filosofi"). En variabel är en storhet som kan definieras och omdefinieras under programexekveringen. I Fortran måste den alltid ha ett namn. En variabel har alltid en datatyp, som i Fortran 90 deklareras på följande sätt : TYP :: namn (det dubbla kolonet saknas i FORTRAN 77), där TYP anger datatypens namn, och namn är variabelns namn. Tre reella variabler a,b,c anges med instruktionen REAL :: a,b,c, och två heltal i,j med instruktionen INTEGER :: i,j. Om typen för en variabel inte är angiven, antog Fortran-kompilatorn förr automatiskt att en variabel, vars namn börjar med I-N, är av heltalstyp, medan alla övriga är reella variabler. Detta undvikes i Fortran 90 genom att använda deklarationen IMPLICIT NONE. Man måste då deklarera alla variabler i programmet, men samtidigt underlättar man upptäckten av typografiska fel vid kompileringen. En variabel kan definieras antingen genom att den tilldelas ett värde, eller genom en READ-instruktion. Tilldelningen sker genom en instruktion av formen namn = uttryck, där namn anger variabelnamnet, och uttryck är ett uttryck, som efter uträkning får ett bestämt värde. Introduktion till vetenskapliga beräkningar II, Tom Sundius

15 Uttrycket får innehålla operander, operatorer och parenteser. Ett exempel på en dylik tilldelningssats är a = b + c, där variabeln a tilldelas värdet av summan b + c. I detta uttryck är variablerna b och c operander, medan + är en operator. Om vi antar att alla variabler a, b och c är reella, så får variabeln a ett värde, som är mycket nära den exakta summan av b och c (observera, att datorn alltid räknar med ändlig precision). Men om t.ex. variabeln a är heltalig, så måste resultatet av räkneoperationen först avkortas till ett heltal, innan variabeln a tilldelas ett värde. Detta kallas för stympning av resultatet, och kan också inträffa vid heltalsdivision, som vi strax skall se. Fortran har fem aritmetiska operatorer: + (addition), - (subtraktion), * (multiplikation), / (division) och ** (potensering). Genom kombination av dessa operatorer med godtyckliga operander kan man i princip åstadkomma hur invecklade uttryck som helst. Men det är inte alltid alldeles klart, hur ett sådant uttryck räknas ut. Låt oss t.ex. betrakta a = b*c+d/e-f**g+h. För att göra det lättare att tolka ett sådant uttryck, har man infört vissa prioritetsregler, som överensstämmer med dem som används i matematiken. Högsta prioritet ges åt potensering (och funktionsberäkningar, om sådana förekommer i uttrycket), lägre prioritet åt multiplikation och division, och den lägsta prioriteten ges åt addition och subtraktion. Introduktion till vetenskapliga beräkningar II, Tom Sundius

16 Uttrycket ovan kan alltså tolkas på följande sätt: Först utförs operationen f**g, och resultatet sparas i en tillfällig variabel, som vi kan kalla tmp1. Sedan beräknas b*c, som sparas i tmp2, samt d/e, som sparas i tmp3. Sedan adderas tmp2 och tmp3, och resultatet sparas i tmp4. Därpå subtraheras tmp1 från tmp4, och resultatet sparas i tmp5. Slutligen adderas tmp5 och h, och resultatet tilldelas variabeln a. Prioritetsordningen kan förändras, liksom i vanlig matematik, genom att använda parenteser. Sålunda kan vi få ett helt annat resultat genom att skriva ovanstående uttryck t.ex. i formen a = (b*c+d)/(e-f**g)+h. Vad händer om alla operander inte är av samma typ? Vi kan t.ex betrakta uttrycket a = b*c/d, där t.ex. b är reell och har värdet 5.0, medan c och d är heltaliga och har värdena 4 och 8. Emedan multiplikation och division har samma prioritet, kommer beräkningen att utföras från vänster till höger, dvs vi beräknar först b*c efter att ha konverterat c till ett decimaltal (4.0), och dividerar sedan resultatet med d, som först konverterats till decimaltal (8.0). Variabeln a får alltså värdet 2.5. Om vi skriver föregående uttryck i formen a = c/d*b, som är matematiskt ekvivalent med den ursprungliga formen, kommer vi först att beräkna uttrycket c/d, som nu beräknas som en heltalsdivision 4/8, avkortat till 0! Därpå multipliceras resultatet (efter konvertering till ett decimaltal) med b, men eftersom resultatet av heltalsdivisionen var noll, kommer också variabeln a att tilldelas värdet 0. Detta visar, att man bör undvika att blanda typer, om man inte säkert vet vad som händer. Introduktion till vetenskapliga beräkningar II, Tom Sundius

17 Vi skall studera ett annat exempel på tillordningar av variabler, nämligen beräkning av sin, cos och tan för en vinkel i en rätvinklig triangel, där kateterna a och b är givna. Om vinkeln betecknas θ, a är den närliggande kateten och b den motstående kateten, så gäller som bekant cos θ = a a2 + b 2 sin θ = b a2 + b 2 tan θ = b a Om a = 3 och b = 4 (t.ex.) så kan programmet skrivas PROGRAM Triangle IMPLICIT NONE REAL :: A,B,C,COST,SINT,TANT A = 3.0 B = 4.0 C = (A*A + B*B)**0.5 COST = A/C SINT = B/C TANT = B/A PRINT *,COST,SINT,TANT STOP END PROGRAM Triangle Man kunde ha skrivit programmet kortare, men så här är det lättare att förstå. Introduktion till vetenskapliga beräkningar II, Tom Sundius

18 Som vi ser, har kvadratroten (som ger triangelns hypotenusa) räknats skilt för sig. Istället för att räkna den med potensräkning, kunde vi ha räknat den med kvadratrotsfunktionen, men i detta fall har det inte så stor betydelse. Ofta går det snabbare att räkna en kvadrat via multiplikation, såsom i detta fall (A*A istället för A**2). Om man märker att en del av ett uttryck förekommer på flere ställen i programmet (såsom i detta fall uttrycket för hypotenusan) lönar det sig att räkna ut det skilt för sig. Ett annat exempel är lösningen till en andra gradens ekvation. Om ekvationen är ax 2 + bx + c = 0, så vet vi att rötterna kan skrivas x = b 2a ± 1 b2 4ac 2a Ett program som löser en andra gradens ekvation med reella rötter visas på nästa sida. Programmet kontrollerar också ifall diskriminanten är större, eller lika med noll. Introduktion till vetenskapliga beräkningar II, Tom Sundius

19 PROGRAM Rot IMPLICIT NONE REAL :: A,B,C,D,X1,X2 PRINT *, "Ange koefficienterna A,B,C:" READ *, A,B,C D = B*B - 4.*A*C IF (D >= 0) THEN X1 = (-B + SQRT(D))/(2.*A) X2 = (-B - SQRT(D))/(2.*A) PRINT *, "Rötterna är:" PRINT *, "X1 = ",X1, "X2 = ",X2 ELSE PRINT *, "Inga reella rötter!" END IF STOP END PROGRAM Rot Här ser vi hur man kan testa värdet av diskriminanten (d = b 2 4ac) för att ta reda på, om rötterna är reella eller ej. IF-instruktionen innehåller här ett logiskt uttryck D >= 0 (d 0) som antingen är sant eller falskt. Ett problem i Fortran har varit att den uppnåeliga precisionen är maskinberoende. I Fortran 90 är det numera möjligt att välja den precision man önskar. Detta åstadkoms med den inbyggda funktionen KIND, som vi senare skall beskriva. Introduktion till vetenskapliga beräkningar II, Tom Sundius

20 Vi skall se på ett annat exempel, där vi skall beräkna summan av serien s = i=1 1 i 2 = π Programmet ser ut på följande sätt: PROGRAM serie IMPLICIT NONE REAL :: s = 0. INTEGER :: i, n PRINT *, Ange antalet termer: READ *, n PRINT *, Antalet termer:,n DO i=1,n s = s + 1./REAL(i)**2 END DO PRINT *, Termernas summa:,s END PROGRAM serie Introduktion till vetenskapliga beräkningar II, Tom Sundius

21 Programmet visar en enkel slinga, som man kan bilda med en DO-loop. Variabeln s är, som synes, initialiserad till 0. Funktionen REAL förvandlar ett heltal till ett reellt tal. Vi kan testa programmet t.ex. genom att räkna summan av 100 termer: Ange antalet termer: 100 Antalet termer: 100 Termernas summa: Om vi gör räkningen med 1000 termer blir resultatet , och med termer Samma resultat fås för termer. Vi tappar tydligen noggrannhet (en lösning är att summera termerna i motsatt ordning, kan du se varför?). 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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

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

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

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

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

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor på boken Lunell: Datalogi-begreppen och tekniken Obs! Andra frågor än dessa kan komma på tentan! 1. Konvertera talet 186 till

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

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

Tema: Pythagoras sats. Linnéa Utterström & Malin Öberg

Tema: Pythagoras sats. Linnéa Utterström & Malin Öberg Tema: Pythagoras sats Linnéa Utterström & Malin Öberg Innehåll: Introduktion till Pythagoras sats! 3 Pythagoras sats! 4 Variabler! 5 Potenser! 5 Att komma tillbaka till ursprunget! 7 Vi bevisar Pythagoras

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TVÅ Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta

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

Parameteröverföring. Exempel. Exempel. Metodkropp

Parameteröverföring. Exempel. Exempel. Metodkropp Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I

Läs mer

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson! F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Von Neumann-arkitekturen Gemensamt minne för programinstruktioner och data. Sekventiell exekvering av instruktionerna.

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

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

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

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner

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

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

Data, typ, selektion, iteration

Data, typ, selektion, iteration Data, typ, selektion, iteration En programmeringkurs på halvfart IDT, MDH ttp://www.negative-g.com/nolimits/no%20limits%20defunct%20coasters.htm 1 Dagens agenda Talrepresentation Typkonvertering Sekvens

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

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

Objektorienterad programmering Föreläsning 4

Objektorienterad programmering Föreläsning 4 Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ ETT Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. Ett av dem är Python, som du ska få

Läs mer

Kapitel 2. Feluppskattning och räknenoggrannhet

Kapitel 2. Feluppskattning och räknenoggrannhet Kapitel 2. Feluppskattning och räknenoggrannhet Sedan datorerna togs i bruk på 1950 talet, har det blivit möjligt att utföra beräkningar i långt större skala än tidigare. Liksom vid beräkningar för hand

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 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler

Läs mer

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering och Python Grundkurs i programmering med Python Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?

Läs mer

Matematiska uppgifter

Matematiska uppgifter Elementa Årgång 67, 984 Årgång 67, 984 Första häftet 3340. a) Vilket av talen A = 984( + + 3 + + 984 ) är störst? b) Vilket av talen B 3 = 3 + 3 + 3 3 + + 984 3 är störst? A / = 984( + + 3 + + 984) B =

Läs mer

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera Föreläsning 2 Operatorer Tilldelning Kodblock if satsen Logiska uttryck Att programmera En operator tar ett eller två data och producerar ett svar. Typexemplet är +. Den tar t.ex två heltal och producerar

Läs mer

Logik och kontrollstrukturer

Logik och kontrollstrukturer Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch

Läs mer

Programmering för språkteknologer I, VT2012. Rum

Programmering för språkteknologer I, VT2012. Rum Programmering för språkteknologer I, VT2012 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.lingfil.uu.se/~evelina/uv/uv12/pst1/ Idag - Kursplan - Börja programmera - Lokala variabler - aritmetiska

Läs mer

"Crash Course in Programming"

Crash Course in Programming "Crash Course in Programming" Denna genomgång har fokus på programmering. Den följer PBasic-syntaxen för Basic Stamp II, men är i övrigt i stort sett frikopplad från BS2. Vissa aspekter som tas upp följer

Läs mer

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander F2 Datatyper och variabler ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Datatyper Java är ett starkt typat språk Varje slags data har en datatyp Datatyp Javasyntax Exempel Teckensträng

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

Introduktion till MATLAB

Introduktion till MATLAB 29 augusti 2017 Introduktion till MATLAB 1 Inledning MATLAB är ett interaktivt program för numeriska beräkningar med matriser. Med enkla kommandon kan man till exempel utföra matrismultiplikation, beräkna

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Komplexa tal: Begrepp och definitioner

Komplexa tal: Begrepp och definitioner UPPSALA UNIVERSITET Baskurs i matematik, 5hp Matematiska institutionen Höstterminen 007 Erik Darpö Martin Herschend Komplexa tal: Begrepp och definitioner Komplexa tal uppstod ur det faktum att vissa andragradsekvationer,

Läs mer

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: Föreläsning 1 OH: Övergripande information Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: * maskinspråk = ettor och nollor, kan bara en maskin förstå. * programmeringsspråk

Läs mer

Linjär algebra med tillämpningar, lab 1

Linjär algebra med tillämpningar, lab 1 Linjär algebra med tillämpningar, lab 1 Innehåll Per Jönsson Fakulteten för Teknik och Samhälle, 2013 Uppgifterna i denna laboration täcker kapitel 1-3 i läroboken. Läs igenom motsvarande kapitel. Sitt

Läs mer

Datoraritmetik. Från labben. Från labben. Några exempel

Datoraritmetik. Från labben. Från labben. Några exempel Datoraritmetik Beräkningsvetenskap I Från labben Två huvudtyper av fel: diskretiseringsfel och avrundningsfel Olika sätt att mäta fel: relativt fel, absolut fel Begreppen ε M, Inf, NaN, overflow, underflow,

Läs mer

Matematik EXTRAUPPGIFTER FÖR SKOLÅR 7-9

Matematik EXTRAUPPGIFTER FÖR SKOLÅR 7-9 Matematik EXTRAUPPGIFTER FÖR SKOLÅR 7-9 Matematik Extrauppgifter för skolår 7-9 Pärm med kopieringsunderlag. Fri kopieringsrätt inom utbildningsenheten! Författare: Mikael Sandell Copyright 00 Sandell

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

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

PASS 2. POTENSRÄKNING. 2.1 Definition av en potens

PASS 2. POTENSRÄKNING. 2.1 Definition av en potens PASS. POTENSRÄKNING.1 Definition av en potens Typiskt för matematik är ett kort, lätt och vackert framställningssätt. Den upprepade additionen går att skriva kortare i formen där anger antalet upprepade

Läs mer

F2 Datarepresentation talbaser, dataformat och teckenkodning

F2 Datarepresentation talbaser, dataformat och teckenkodning F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Jonas Wisbrant Datarepresentation I en dator lagras och behandlas all information i form av binära tal ettor och nollor.

Läs mer

Feluppskattning och räknenoggrannhet

Feluppskattning och räknenoggrannhet Vetenskapliga beräkningar III 10 Kapitel 2. Feluppskattning och räknenoggrannhet Sedan datorerna togs i bruk på 1950 talet, har det blivit möjligt att utföra beräkningar i långt större skala än tidigare.

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor Johan Thim 22 augusti 2018 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför Q

Läs mer

Uttryck och villkor. Föreläsning 2

Uttryck och villkor. Föreläsning 2 Uttryck och villkor Föreläsning 2 Dagens kluring Finn fem fel! #include int main(void) printf("resistans hos R1 (ohm) : ") scanf("%d",r1); printf("resistans hos R2 (ohm) : "); scanf("%d",r2);

Läs mer

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

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 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,

Läs mer

Lokala mål i matematik

Lokala mål i matematik Lokala mål i matematik År 6 År 7 År 8 År 9 Taluppfattning (aritmetik) förstår positionssystemets uppbyggnad med decimaler ex: kan skriva givna tal adderar decimaltal ex: 15,6 + 3,87 subtraherar decimaltal

Läs mer

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse GRUNDER I VHDL Innehåll Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse KOMPONENTMODELL Modell för att beskriva komponenter Externt interface Intern funktion

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

Trigonometri. Sidor i boken 26-34

Trigonometri. Sidor i boken 26-34 Sidor i boken 6-34 Trigonometri Definition: Gren av matematiken som studerar samband mellan vinklar och sträckor i planet (och rymden). Det grundläggande trigonometriska problemet är att beräkna alla sidor

Läs mer

Arkitektur och teknik, Teknisk fysik, Teknisk matematik Antagningsprov MATEMATIK

Arkitektur och teknik, Teknisk fysik, Teknisk matematik Antagningsprov MATEMATIK Chalmers tekniska högskola Matematik- och fysikprovet Arkitektur och teknik, Teknisk fysik, Teknisk matematik Antagningsprov 008 - MATEMATIK 008-05-17, kl. 9.00-1.00 Skrivtid: 180 min Inga hjälpmedel tillåtna.

Läs mer

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar. Värmdö Gymnasium Programmering A 110123 Lektion C1 Grunder Att programmera handlar mycket om att lära sig att analysera det problem eller den funktion man vill att programmet ska ha, och översätta det

Läs mer

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Övningsuppgifter till föreläsning 2 Variabler och uttryck Sid 1 (5) Övningsuppgifter till föreläsning 2 Variabler och uttryck Syfte Syftet med övningsuppgifterna är att träna på: Aritmetik, variabler, tilldelning, scanf och printf Generellt Diskutera gärna uppgifterna

Läs mer

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser // En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa

Läs mer

i LabVIEW. Några programmeringstekniska grundbegrepp

i LabVIEW. Några programmeringstekniska grundbegrepp Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar

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

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

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

Inociell Lösningsmanual Endimensionell analys. E. Oscar A. Nilsson

Inociell Lösningsmanual Endimensionell analys. E. Oscar A. Nilsson Inociell Lösningsmanual Endimensionell analys E. Oscar A. Nilsson January 31, 018 Dan Brown "The path of light is laid, a secret test..." Tillägnas Mina vänner i Förord Detta är en inociell lösningsmanual

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #24 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Allmänt Behovet av processorinstruktioner för multiplikation

Läs mer

2. 1 L ä n g d, o m k r e t s o c h a r e a

2. 1 L ä n g d, o m k r e t s o c h a r e a 2. 1 L ä n g d, o m k r e t s o c h a r e a Ett plan är en yta som inte är buktig och som är obegränsad åt alla håll. På ett plan kan man rita en linje som är rak (rät). En linje är obegränsad åt båda

Läs mer

Uppgifter till praktiska tentan, del A. (7 / 27)

Uppgifter till praktiska tentan, del A. (7 / 27) Uppgifter till praktiska tentan, del A. (7 / 27) I. Sortering/Sökning: III II. Representation/Omvandling/format/protokoll: II III. Strukturering: II I alla problem, där bokstäver förekommer, antar vi att

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en

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

a = a a a a a a ± ± ± ±500

a = a a a a a a ± ± ± ±500 4.1 Felanalys Vill man hårddra det hela, kan man påstå att det inte finns några tal i den tillämpade matematiken, bara intervall. Man anger till exempel inte ett uppmätt värde till 134.78 meter utan att

Läs mer

1. Ange samtliga uppsättningar av heltal x, y, z som uppfyller båda ekvationerna. x + 2y + 24z = 13 och x 11y + 17z = 8.

1. Ange samtliga uppsättningar av heltal x, y, z som uppfyller båda ekvationerna. x + 2y + 24z = 13 och x 11y + 17z = 8. Tentamenskrivning MATA15 Algebra: delprov 1, 6hp Lördagen den mars 014 Matematikcentrum Matematik NF LÖSNINGSFÖRSLAG 1. Ange samtliga uppsättningar av heltal x, y, z som uppfyller båda ekvationerna x +

Läs mer

Kompletterande lösningsförslag och ledningar, Matematik 3000 kurs A, kapitel 4. b) = 3 1 = 2

Kompletterande lösningsförslag och ledningar, Matematik 3000 kurs A, kapitel 4. b) = 3 1 = 2 Kapitel.1 101, 102 Exempel som löses i boken 10 a) x= 1 11+ x= 11+ 1 = 2 c) x= 11 7 x= 7 11 = 77 b) x= 5 x 29 = 5 29 = 6 d) x= 2 26 x= 26 2= 1 10 a) x= 6 5+ 9 x= 5+ 9 6= 5+ 5= 59 b) a = 8a 6= 8 6= 2 6=

Läs mer

Sidor i boken Figur 1:

Sidor i boken Figur 1: Sidor i boken 5-6 Mer trigonometri Detta bör du kunna utantill Figur 1: Triangeln till vänster är en halv liksidig triangel. Varje triangel med vinklarna 0,60,90 är en halv liksidig triangel. Hypotenusan

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis

Läs mer

Introduktionskurs i matematik LÄSANVISNINGAR

Introduktionskurs i matematik LÄSANVISNINGAR UPPSALA UNIVERSITET Matematiska institutionen Höstterminen 006 Introduktionskurs i matematik för civilingenjörsprogrammet F Tentamen på Introduktionskursen i matematik äger rum lördagen den 6 september

Läs mer

n Kap 4.1, 4.2, (4.3), 4.4, 4.5 n Numerisk beräkning av derivata med n Felen kan t ex vara avrundningsfel eller mätfel n Felet kan mätas

n Kap 4.1, 4.2, (4.3), 4.4, 4.5 n Numerisk beräkning av derivata med n Felen kan t ex vara avrundningsfel eller mätfel n Felet kan mätas Datoraritmetik Beräkningsvetenskap I/KF Kursboken n Kap 4., 4., (4.3), 4.4, 4. n I kap 4.3 används Taylorutvecklingar. Om du ännu inte gått igenom detta i matematiken, kan du oppa över de delar som beandlar

Läs mer

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 27 oktober 2015 Sida 1 / 31 TANA17 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet

Läs mer

Explorativ övning 7 KOMPLEXA TAL

Explorativ övning 7 KOMPLEXA TAL Explorativ övning 7 KOMPLEXA TAL Övningens syfte är att bekanta sig med komplexa tal. De komplexa talen, som är en utvidgning av de reella talen, kom till på 1400 talet då man försökte lösa kvadratiska

Läs mer

Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen.

Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen. Sidor i boken 40-4 Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen. Läxa 1. En rät linje, L 1, skär y-axeln

Läs mer

SF1661 Perspektiv på matematik Tentamen 24 oktober 2013 kl Svar och lösningsförslag. z 11. w 3. Lösning. De Moivres formel ger att

SF1661 Perspektiv på matematik Tentamen 24 oktober 2013 kl Svar och lösningsförslag. z 11. w 3. Lösning. De Moivres formel ger att SF11 Perspektiv på matematik Tentamen 4 oktober 013 kl 14.00 19.00 Svar och lösningsförslag (1) Låt z = (cos π + i sin π ) och låt w = 1(cos π 3 + i sin π 3 ). Beräkna och markera talet z11 w 3 z 11 w

Läs mer

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

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner KPP053, HT2016 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

a n β n + a n 1 β n a 0 + a 1 β 1 + a 2 β , x = r β e ; 0.1 r < 1; e = heltal.

a n β n + a n 1 β n a 0 + a 1 β 1 + a 2 β , x = r β e ; 0.1 r < 1; e = heltal. De iakttagna fenomenen beror på avrundningsfel, och vi skall därför studera talframställningen i datorer. Vid beräkningar för hand är det vanligt att man uttrycker tal i tiopotensframställningen, men i

Läs mer

Andragradsekvationer. + px + q = 0. = 3x 7 7 3x + 7 = 0. q = 7

Andragradsekvationer. + px + q = 0. = 3x 7 7 3x + 7 = 0. q = 7 Andragradsekvationer Tid: 70 minuter Hjälpmedel: Formelblad. Alla andragradsekvationer kan skrivas på formen Vilket värde har q i ekvationen x = 3x 7? + E Korrekt svar. B (q = 7) x + px + q = 0 (/0/0)

Läs mer

Räkna med C# Inledande programmering med C# (1DV402)

Räkna med C# Inledande programmering med C# (1DV402) Räkna med C# 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 i verket

Läs mer

Sammanfattningar Matematikboken Z

Sammanfattningar Matematikboken Z Sammanfattningar Matematikboken Z KAPitel procent och statistik Procent Ordet procent betyder hundradel och anger hur stor del av det hela som något är. Procentform och 45 % = 0,45 6,5 % = 0,065 decimalform

Läs mer

Introduktion C-programmering

Introduktion C-programmering Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder

Läs mer

Block 1 - Mängder och tal

Block 1 - Mängder och tal Block 1 - Mängder och tal Mängder Mängder och element Venndiagram Delmängder och äkta delmängder Union och snittmängd Talmängder Heltalen Z Rationella talen Q Reella talen R Räkning med tal. Ordning av

Läs mer

KS övning 1. Problem 1. Beräkna Problem 2. Förenkla. (x 1 3 y

KS övning 1. Problem 1. Beräkna Problem 2. Förenkla. (x 1 3 y KS övning 1 Problem 1. Beräkna 48 1 3 Problem 2. Förenkla 6 1 3 (x 1 3 y 1 3 )(x 2 3 +x 1 3 y 1 3 +y 2 3 ) Problem 3. I ABC är AB = 15 cm och AC = 12 cm. En rät linje parallell med BC träffar AB i D och

Läs mer

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det? Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?

Läs mer

Repetition C-programmering

Repetition C-programmering Repetition C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. Repetition

Läs mer

Denna uppdelning är ovanlig i Sverige De hela talen (Både positiva och negativa) Irrationella tal (tal som ej går att skriva som bråk)

Denna uppdelning är ovanlig i Sverige De hela talen (Både positiva och negativa) Irrationella tal (tal som ej går att skriva som bråk) UMEÅ UNIVERSITET Institutionen för matematik och matematisk statistik Olof Johansson, Nina Rudälv 2006-10-24 SÄL 1-10p Avsnitt 1.1 Grundläggande begrepp Detta avsnitt behandlar de symboler som används

Läs mer

En kort text om programmering i C.

En kort text om programmering i C. En kort text om programmering i C C skapades 1972 av Brian Ritchie och Dennis Kerighan på Bell Labs i USA Det blev det språk som är mest använt genom tiderna Det finns många olika språk Pascal, FORTH,

Läs mer

Övning log, algebra, potenser med mera

Övning log, algebra, potenser med mera Övning log, algebra, potenser med mera Uppgift nr 1 Förenkla uttrycket x 3 + x 3 + x 3 + x 3 + x 3 Uppgift nr 2 Förenkla x x x+x x x Uppgift nr 3 Skriv på enklaste sätt x 2 x x x 8 x x x Uppgift nr 4 Förenkla

Läs mer

Föreläsning 8: Aritmetik och stora heltal

Föreläsning 8: Aritmetik och stora heltal DD2458, Problemlösning och programmering under press Föreläsning 8: Aritmetik och stora heltal Datum: 2007-11-06 Skribent(er): Martin Tittenberger, Patrik Lilja Föreläsare: Per Austrin Denna föreläsning

Läs mer

A1:an Repetition. Philip Larsson. 6 april Kapitel 1. Grundläggande begrepp och terminologi

A1:an Repetition. Philip Larsson. 6 april Kapitel 1. Grundläggande begrepp och terminologi A1:an Repetition Philip Larsson 6 april 013 1 Kapitel 1. Grundläggande begrepp och terminologi 1.1 Delmängd Om ändpunkterna ska räknas med används symbolerna [ ] och raka sträck. Om ändpunkterna inte skall

Läs mer

Uttryck och villkor. Föreläsning 2

Uttryck och villkor. Föreläsning 2 Uttryck och villkor Föreläsning 2 Dagens kluring Finn fem fel! #include int main(void) printf("resistans hos R1 (ohm) : ") scanf("%d",r1); printf("resistans hos R2 (ohm) : "); scanf("%d",r2);

Läs mer