Introduktionskurs i SAS. Del 1 Datastegsprogrammering

Storlek: px
Starta visningen från sidan:

Download "Introduktionskurs i SAS. Del 1 Datastegsprogrammering"

Transkript

1 Introduktionskurs i SAS Del 1 Datastegsprogrammering

2 Detta material skyddas av upphovsrättslagen och får inte kopieras eller på annat sätt spridas utan upphovsmannens (Knowit Information Management) skriftliga godkännande. Upphovsmannen har gett sitt godkännande att detta material fritt får användas vid undervisning på Linköpingsuniversitet, IDA. Sidan 2

3 DATASTEGSPROGRAMMERING SAMT ETT URVAL AV SAS - FUNKTIONER... 4 GRUNDLÄGGANDE HANTERING AV SAS... 4 AUTOEXEC OCH CONFIG... 4 KOMMENTERING I SAS... 5 AVBRYTA HÄNGANDE SAS-SESSIONER ELLER PROGRAM... 5 LOGG OCH RESULTATFÖNSTER... 5 LIBNAME OCH FILNAME... 6 SAS-TABELLER - DATASET...6 DATASTEGET... 7 LENGTH... 7 DATA _NULL_-STEG... 7 DATUM I SAS... 9 LABEL... 9 SKRIVA TILL DATASET LÄSA FRÅN DATASET SKRIVA TILL EXTERN FIL LÄSA FRÅN EXTERN FIL BEHANDLA DATA SELEKTERA DATA VÄLJA UT POSTER/RADER VÄLJA UT VARIABLER/KOLUMNER ÄNDRA BEFINTLIGA VARIABLER SKAPA NYA VARIABLER/KOLUMNER Nya variabler av gamla KONVERTERA VARIABLER MED HJÄLP AV PUT/INPUT Några användbara konverteringar LOOPA I DATASTEGET...21 BEHÅLLA VÄRDEN PÅ VARIABLER ÖVER FLER OBSERVATIONER I DATASTEGET ANVÄNDBARA OPTIONS TILL SET EFFEKTIVISERING SAS-FUNKTIONER, ETT URVAL ARITMETISKA FUNKTIONER TRUNKERINGSFUNKTIONER...25 CHARACTER-FUNKTIONER DATUM OCH TIDS FUNKTIONER FUNKTIONER FÖR EXTERNA FILER SPECIALFUNKTIONER VARIABELFUNKTIONER SYSTEM OPTIONS DATA TILL ÖVNINGAR COMPANY Tabellrelationer PROGRAMHUVUD Sidan 3

4 Datastegsprogrammering samt ett urval av SAS - funktioner I den första delen av introduktionskursen i SAS kommer vi att gå igenom grunden i SAS Base programmering - datastegsprogrammering samt några användbara funktioner. Kapitlet innefattar ett antal kodexempel och meningen är att man läser dokumentet på datorn och har SAS igång för att löpande kopiera över kodexemplen till SAS och provköra och studera resultaten. Grundläggande hantering av SAS Den bästa onlinehjälpen för datastegsprogrammering hittar man under Help / SAS Help and Documentation. Har man tillgång till Internet finns även en bra online dokumentation på SAS Institiutes hemsida, antingen via eller direkt via Autoexec och config SAS-miljön kan anpassas efter egna behov genom att göra tillägg och ändringar i programfilerna AUTOEXEC.SAS och SASV9.CFG. Dessa filer används av SAS när en session skapas, I SASV9.CFG sätts inställningar för hur SAS-sessionen skall konfigureras, t.ex. med avseende på var work-biblioteket skall ligga eller hur stort utrymme en sortering får använda. De inställningar man gör inne i SAS, t ex egna snabbtangenter, fönsterstorlekar, inställningar under preferences, etc. sparas i en sas-katalog med filnamnet profile.sas7bcat. Katalogen ligger i SASUSER-biblioteket som är ett av de libnames (referens till bibliotek) som SAS själv definierar upp via inställningarna i SASV9.CFG. I AUTOEXEC.SAS kan man skriva vanlig SAS-kod som man vill skall utföras när SAS öppnas. Det vanligaste är att man i AUTOEXEC.SAS lägger in de LIBNAMEs, d.v.s. referenser till de bibliotek som man använder ofta. I Tools - > Options -> Preferences kan man också göra diverse inställningar, t.ex. för hur resultat ska visas. Sidan 4

5 Kommentering i SAS För att skriva in kommentarer i datasteget används två notationer: För att kommentera bort en sats: * Kommentar bla bla... ; Här kommenteras allt bort fram till nästa semikolon. Det kan alltså vara fler rader eller del av en rad. För att kommentera bort ett helt block med satser: /* sats 1 ; sats 2 ; sats 3 ; */ Ha som grundregel att kommentera ofta och snyggt i koden så att du själv eller andra som skall läsa ditt program förstår vad som händer. Vi rekommenderar att man använder följande standard för att kommentera i löpande SAS kod: *-- Kommentar1 --*; *-- Kommentar2 --*; Använd /* Kommentar */ endast inne i en sats eller om flera satser skall kommenteras bort. Avbryta hängande SAS-sessioner eller program I bland kan det bli så att SAS sessionen hänger sig p.g.a. av att vi kodar fel. Vanligt är att man missar t ex. ett quit; en, eller ett ;, vilket kan göra att SAS hänger sig. I stället för att starta om sessionen kan man testa att köra magic string nedan. Normalt löser det hängningsproblem. *)*/;/*'*/ /*"*/; %mend;quit;;;;; Det går också ofta att avbryta ett hängande program med Break (utropstecknet) i menyraden. Logg och resultatfönster Det är också bra (mer ett måste) att efter varje körning titta i loggen och reflektera över ev. WARNING, NOTEs och ERRORs för att se om körningen gått bra. Gå även in och titta på datat, rapporten etc. som skapats för att se om resultatet blivit som förväntat. Sidan 5

6 Libname och filname Data sparas i SAS i s.k. sastabeller (dataset). Ett dataset refereras vanligen inte med en vanlig sökväg (c:\nisse\datasetet.sas7bdat), utan refereras normalt via en saskatalog (=referens/pekare till fysisk katalog) som man definierar upp med ett LIBNAME-uttryck. Namnet på katalogen är sedan den logiska adress som SAS använder för att hitta dataseten. Finessen med detta är att man kan skriva programmen generella och oberoende av den fysiska sökvägen till datasetet och skriver då endast en gång, i början av programmet, eller i en styrfil, den fysiska adressen. Det går även via denna teknik att komma åt andra typer av databaser eller filer, t.ex. Excel. Exempel LIBNAME Detta talar om för SAS att allt som refereras med nisse i programmen ligger i c:\saskurs katalogen. Namnet på libnamet kan vara max 8 tecken långt. libname testlib 'c:\saskurs'; Exempel FILENAME Om man använder eller skapar textfiler kan dessa refereras med sin fysiska sökväg, men av samma anledning som ovan är det mer flexibelt att mappa sökvägen till en intern referens som i detta fall kallas FILENAME. filename infilen 'c:\sas\min_lilla_infil.xls'; Exempel Ta bort LIBNAME eller FILENAME För att ta bort ett definierat libname eller filename skriver man bara en tom FILE/LIBNAME-sats. libname testlib; filename infilen; SAS-tabeller - DATASET I SAS lagras all data i ett s.k. dataset, vilket i princip är samma sak som en tabell i databas. I ett dataset finns två typer av variabler/kolumner; alfanumeriska (character) och numeriska. Det finns alltså ingen specifikt variabeltyp för datum eller tid, utan dessa två typer lagras som numeriska variabler, och sedan använder man ett format för att visa datumet. Tidräkningen i SAS startar som är dag 0 i SAS. Sidan 6

7 Datasteget Datasteget används i SAS för att läsa och skriva data från/till dataset och filer. Datasteget är en implicit loop över samtliga observationer i indatasetet (om det finns något). Exempel Skapa tomt dataset med datasteget I sin enklaste form kan ett datasteg se ut som nedan. Datasteget ska i detta exempel skriva till datasetet UTDATA som ligger i biblioteket/saskatalogen TESTLIB. Ett tomt dataset (utdata) utan variabler skapas. data testlib.utdata; Exempel Skapa dataset utifrån ett annat dataset I nedanstående exempel kommer alla observationer från TESTLIB.INDATA skrivas till TESTLIB.UTDATA. data testlib.utdata; set testlib.indata; Length För att definiera variabler kan man använda ett LENGTH statement. Exempel Definiera variabler med LENGTH I nedanstående exempel kommer variabeln X definieras som alfanumerisk (character), 40 tecken lång, och variabeln Y som numerisk och 8 byte. data testlib.utdata; length x $40 y 8; Data _NULL_-steg I ovanstående exempel läses/skapas data i datasteget som skrivs till ett utdataset, men ett datasteg behöver varken ha något indataset eller skapa utdataset. För att köra ett datasteg utan att skriva till ett dataset används nyckelordet _NULL_ i stället för namnet på utdatasetet: data _NULL_; Detta datasteg utför ingenting. Syftet med detta är att man t.ex. kan vilja använda funktioner utan att läsa eller skriva till dataset, alltså endast visa resultatet i loggen. Sidan 7

8 Exempel - Lägga ut dagens datum och tid i loggen: Nedanstående exempel lägger ut dagens datum och tid i loggen, utan att skriva till ett dataset: data _null_; var = put(date(),yymmdd10.); put 'Dagens datum: ' var; Detta är resultatet i loggen: Dagens datum: NOTE: DATA statement used (Total process time): real time 0.17 seconds cpu time 0.01 seconds Exempel Villkorsstyrt meddelande i loggen I detta exempel ska ett meddelande skrivas ut i loggen om det är fredag, annars skrivs ett annat: data _null_; var=put(date(),yymmdd10.); dag=weekday(date()); put 'Dagens datum: ' var; if dag=6 then put 'Trevlig helg!'; else put 'Jobba på!'; Resultat (om det är fredag): Dagens datum: Trevlig helg! NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds Sidan 8

9 Datum i SAS Datum i SAS lagras som en numerisk variabel, och för att den skall presenteras som ett datum måste man lägga ett format på variabeln d.v.s. ange hur den ska visas. Format kan läggas på då dataset skapas, vilket då kan användas varje gång datasetet används. Det andra alternativet är att lägga på ett format då en rapport skapas. Då används formatet bara i just den rapporten. SAS räknar tid från 1/ detta datum representeras som 0. Format kommer att behandlas ytterligare i Del 5 i denna kurs. Exempel Skriva ut ett formaterat datum i loggen: length y 8; format y yymmdd8.; y=365; put y; PUT-satsen skriver ut följande formaterade text till loggen: INFORMAT kan användas om man ska läsa från textfiler och direkt vill omvandla t.ex. en datumtextsträng enligt ovan till ett numeriskt SAS-datum. Label Variablerna kan tilldelas labels som sedan används i rapporter o. dyl. där variabeln ska beskrivas mer i klartext: length Y 8; format Y datetime17.; label Y='En variabel innehållande datum och tid.'; y=1000; put y; Här har formatet DATETIME17. använts, som då tolkar det numeriska värdet som antal sekunder det gått sedan 1 januari För att titta på vilka variabler ett dataset innehåller, vad de är för typer, vilka format de har och vilka labels dom har kan man skriva kommandot VARS libname.dataset, ex VARS TESTLIB.UTDATA, på kommandoraden i sas. Då visas ett fönster som listar variablerna i UTDATA och deras attribut (typ, längd, format, label). Det går också bra att högerklicka på en tabell eller använda en procedur, Proc CONTENTS som kommer att nämnas senare i kursen. Sidan 9

10 Attrib Istället för att använda LENGTH, LABEL och FORMAT kan samtliga karaktäristika för en variabel definieras via ATTRIB. at trib Y length=8 format=datetime17. label='innehåller datum och tid.'; y=1000; put y; Skriva till dataset Man kan antingen skriva implicit eller explicit till det dataset som angivits i DATAstatementet. Om man bara skriver t.ex.: data testlib.utdata; y=1000; så kommer en post att skrivas till utdata, även om vi inte explicit har angivit något. Man kan lika gärna skriva: data testlib.utdata; y=1000; output; OUTPUT-satsen säger explicit till SAS att skriva till utdata. Om ingen OUTPUT-sats finns i datasteget antar SAS att ett output ska göras när en datastegsiteration är klar. Ifall man skriver: data testlib.utdata; y=1000; output; output; så kommer två identiska poster att skrivas till utdata. Man kan även skriva till olika dataset i ett och samma datasteg genom att ange fler utdataset i data-satsen. data testlib.utdata1 testlib.utdata2; length x $10 y 8; x= 'Hej'; y=1000; Sidan 10

11 Detta datasteg kommer att skapa två identiska dataset i TESTLIB. Man kan explicit ange till vilket dataset man vill skriva information: data testlib.utdata1 testlib.utdata2; length x $10 y 8; x='hej'; y=1000; output; x='svejs'; output testlib.utdata2; I detta exempel skrivs Hej samt 1000 i en post till båda dataseten, men i utdata2 skrivs dessutom en post med x= Svejs och y=1000 (oförändrad). Läsa från dataset Genom att ange ett dataset i en set-sats läser SAS in en post från detta dataset per iteration i datasteget. Varje post läses in i en temporär programdatavektor som innehåller aktuell posts alla variabelvärden. data testlib.utdata; set testlib.indata; eftersom inget annat har angivits kommer SAS här att skriva till utdata för varje iteration, vilket innebär att utdata blir en exakt kopia av indata (Alla attribut kommer också att kopieras om inget annat anges, dock inte index). Antag nu att indata innehåller variablerna in_x (char 10) och in_y (num 8) och följande körs: data testlib.utdata; set testlib.indata; length ut_y 8.; ut_y=in_y*0.25; så kommer variablerna in_x, in_y samt ut_y att skrivas till utdata, ut_y blir en härledd variabel från in_y. Sidan 11

12 Kommentar: För att kontrollera vad som händer vid t.ex. debugging är det ett bra hjälpmedel att skriva meddelanden till loggen med put-satsen: data testlib.utdata; set testlib.indata; length ut_y 8.; ut_y=in_y*0.25; put in_y= ut_y=; Resultat: IN_Y=1 UT_Y=0.25 IN_Y=2 UT_Y=0.5 IN_Y=3 UT_Y=0.75 IN_Y=4 UT_Y=1 IN_Y=5 UT_Y=1.25 Detta fall är trivialt, men om man vill kontrollera värden på variabler t.ex. innan villkorssatser är det användbart. Skriva till extern fil PUT-satsen används även för att skriva till en extern fil. Man anger önskat filnamn i en FILE-sats. Om det finns en FILE-sats i ett datasteg kommer alltså inte PUT-satser att resultera i att något skrivs i LOG-fönstret (som i exemplen ovan), utan i filen. Om man inte vill skriva till något dataset anger man _NULL_ som utdataset i DATAsatsen. data _null_; file 'c:\exempelfil.txt'; set testlib.indata; put in_x; Nu kommer samtliga observationers värden på IN_X skrivas till varsin rad i textfilen. För att göra koden mer generell bör man använda ett FILENAME på samma sätt som man använder LIBNAME: filename utfil 'c:\exempelfil.txt'; data _null_; file utfil; set testlib.indata; put in_x; I sista delen kommer vi gå igenom hur man kan använda detta för att skapa rapporter, s.k. data _null_ rapporter. Sidan 12

13 Läsa från extern fil För att läsa in information från en extern flatfil använder man input-satsen. För att ange vilken fil man ska läsa från används INFILE-satsen: filename infil 'c:\exempelfil.txt'; data testlib.utdata; length ut_x $40; infile infil; input ut_x; För att läsa in fler variabler från bestämda positioner (exempel, finns andra metoder): filename infil 'c:\exempelfil.txt'; data testlib.utdata; length ut_x $40 ut_y 8.; infile infil; input ut_x $1-10 ut_y; Här förväntas det att strängen som ska in i variabeln ut_x finns i position 1-10 i filen. Den numeriska variabeln ut_y specificeras inte med några positioner, det första numeriska värde som hittas efter pos 10 läggs i ut_y. Exempel: Test ett 7 Test två 8 xxx Position 1-10 läses in som text, positionen på nästa variabel spelar ingen roll. Filer som har variabler med fasta positioner kan läsas in på följande sätt: data testlib.utdata; length ut_x $40 ut_y 8.; infile infil; ut_x ut_y 3.; Som i exemplet ovan läses text i i position 1-10, men den numeriska variabel läses in från Test ett 7 Test två 8 xxx 987 Sidan 13

14 Många filer som läses in har någon form av avgränsare mellan kolumnerna, då kan man använda följande: data testlib.utdata; length ut_x $40 ut_y 8.; infile infil dlm=';'; input ut_x ut_y; Mellan fnuttarna anger man vilken avgränsare som skall användas. Anger man inget utan bara skriver DLM, så används blanksteg som avgränsare. I detta fallet bör alla variabler deklareras i LENGTH-statementet. Givetvis finns inget som hindrar att man har textfiler både som input och output. INFILE-options Det finns ett antal options som kan läggas till INFILE-uttrycket. Nedan ett exempel på ett av dem: TRUNCOVER - Överrider INPUT-uttryckets beteende när en post är kortare än vad INPUT-uttrycket förväntar sig, och gör det möjligt att läsa poster med varierande längd. Variabler utan värde sätts till MISSING. Behandla data Selektera data Man kan selektera data i två ledder, dels höjden, dvs. välja ut vissa poster från ett dataset, dels på bredden, dvs. välja ut vissa variabler från datasetet. VÄLJA UT POSTER/RADER Vi skapar först ett dataset med testdata: data testlib.indata; length anstnr 8 namn $20; anstnr=1; namn='olle A'; output; anstnr=100; namn='olle B'; output; anstnr=1000; namn='olle C'; output; anstnr=1000; namn='olle D'; output; Att välja ut vissa poster kan göras i koden, eller i form av ett WHERE-option på indatasetet: Exempel - implicit if-sats: set testlib.indata; if anstnr>100 then do; Sidan 14

15 *-processa data...; output; end; else; *- processa data...; Sidan 15

16 Exempel Subsetting if: set testlib.indata; if anstnr>100; *-processa data...; Subsetting IF innebär att ALLT efter IF-satsen bara utförs om villkoret är uppfyllt. Eftersom OUTPUT görs sist i datasteget kommer bara de poster som uppfyller villkoret att skrivas till utdata. Exempel WHERE-option: set testlib.indata(where=(anstnr>100)); Den senare metoden är att föredra av effektivitetsskäl, se effektivitetsavsnittet. Exempel Läsa ut en viss post med POINT: För att bara läsa ut en viss post från ett dataset används ett POINT-option: min_pek=2; set testlib.indata point=min_pek; output; stop; Notera att man i detta fall dels måste lägga in ett stop, annars avslutar inte datasteget, att POINT-värdet måste sättas av en variabel (ej t.ex. POINT=2), samt att OUTPUT måste göras explicit. Exempel Läsa ut ett visst antal poster med FIRSTOBS och OBS: FIRSTOBS och OBS kan användas för att välja ut den första posten som ska läsas, respektive den sista. Detta används kanske främst för att välja ut ett fåtal poster i testsyfte, ifall man har stora datamängder, men kan också användas för att t.ex. skapa 10-i-topplistor eller liknande. set testlib.indata (firstobs=3 obs=10); Sidan 16

17 VÄLJA UT VARIABLER/KOLUMNER Att välja ut variabler kan göras genom att använda DROP respektive KEEP. Det finns flera olika sätt att använda DROP och KEEP, dels som ett dataset-option på in- resp. utdatasetet, dels som ett uttryck ( statement ) inuti datasteget. Exempel DROP på indatasetet: Variabler i indatasetet som man inte är intresserad av alls, ens för att använda för att skapa nya variabler bör kastas bort redan vid inläsning av indatasetet, av effektivitetsskäl: set indata(drop=var10 var11); *- processing data...; Exempel DROP på utdatasetet med dataset-option: Variabler som man vill använda för att t.ex. beräkna en ny variabel, men som man inte behöver ha med i utdatasetet tas bort i DATA.-uttrycket, d.v.s. de används i datasteget, men skrivs inte till det nya datasetet. data utdata(drop=var1); set indata; *- processing data...; Exempel DROP på utdatasetet med DROP-uttryck inuti datasteget: DROP eller KEEP-uttryck inuti datasteget tar alltid bort valda variabler på utdatasetet, ej på indatasetet. Detta sätt att ta bort variabler används alltså på samma sätt som föregående exempel. set indata; datum=date(); *-processa data...; drop datum; Ändra befintliga variabler För att ändra längd, eller ordning på variabeln i programdatavektorn kan LENGTHuttrycket sättas innan SET-uttrycket: length stad $30; set indata; datum=date(); *-processa data...; drop datum; I detta exempel är stad är en befintlig variabel från indatasetet. Sidan 17

18 Om man vill definiera om variabler när man skriver dem från ett dataset till ett annat måste man lägga LENGTH-satsen som den första satsen i datasteget, detsamma gäller om man vill byta ordningen på befintliga variabler: Skapa nya variabler/kolumner När nya variabler ska skapas kan det göras både implicit och explicit, exemplen nedan i detta avsnitt beskriver skillnaderna, och vad man bör tänka på då nya variabler ska skapas. Exempel Skapa ny variabel implicit kan leda till problem Enklaste sättet att skapa en variabel är att bara referera till den i koden: my_text='xxx'; Detta går i och för sig bra, men man bör alltid explicit definiera variabeln för att vara säker på hur den är definierad. I exemplet ovan kommer SAS automatiskt definiera my_text som alfanumeriskt (char), tre positioner lång. Därmed kommer följande exempel: my_text='xxx'; output; my_text='xxx yyy'; output; leda till att my_text trunkeras i post nr 2. Exempel Skapa ny variabel explicit lösningen på problemet Lösningen är att explicit definiera längden på variabeln med en LENGTH-sats: length my_text $10; my_text='xxx'; output; my_text='xxx yyy'; output; Man bör vänja sig vid att alltid definiera alla variabler explicit i LENGTH-satsen, dels av skälet som visas ovan, att inte få oönskade trunkeringar, men också för att det ger bättre överblick. Sidan 18

19 Nya variabler av gamla Det vanligaste är kanske att man skapar nya variabler av gamla eller av kombinationer av gamla. Vi skapar ett dataset med indata: data testlib.indata; length anstnr lon 8 namn $20; anstnr=1; namn='olle A'; lon=15000; output; anstnr=100; namn='olle B'; lon=17000; output; anstnr=1000; namn='olle C'; lon=19999;output; anstnr=1000; namn='olle D'; lon=26000;output; Exempel skapa nya variabler av gamla Vi vill ändra lönen för samtliga personer, genom att öka den med 15%. Den gamla lönen skall vara kvar och löneökningen skall också lagras i en ny variabel; data testlib.indata; set testlib.indata; lon_okn = lon * 0.15; nylon = lon + lon_okn; Ett alternativ är att alla personer som tjänar över får en ökning med 20% och övriga får nöja sig med 10%. data testlib.indata; set testlib.indata; if lon gt then do; lon_okn = lon * 0.20; nylon = lon + lon_okn; end; else do; lon_okn = lon * 0.10; end; nylon = lon + lon_okn; Konvertera variabler med hjälp av put/input Många gånger vill man konvertera en variabel, eller lägga ett annat format på den. Ett vanligt fall i SAS är datum. Eftersom datum lagras numeriskt så måste man formatera om det innan man skriver ut det, såvida det inte är sparat i datasetet med format. Sidan 19

20 Exempel Konvertering av datum: Vi läser in filen nedan Pelle Nisse Kalle data testlib.dat; length datum idnum 8. namn $8.; infile test; inpu datum idnum namn $5.; put datum; Datumen skrivs ut i loggen Vill man istället få datumet utskrivet i klartext måste man konvertera datum variabeln när den skrivs ut. Det kan man göra genom att i put-satsen lägga till det datum-format som variabeln skall skrivas ut i. put datum yymmdd8.; Nu skrivs datumet ut som ett datum Man kan också skapa en ny variabel med datumet som char och sedan skriva ut den. nyvar = put(datum, yymmdd8.); Några användbara konverteringar Förutom datum så vill man många gånger konvertera en variabel. Nedan har vi listat några vanliga konverteringar. /* CHAR till NUM NUM till CHAR DATUM till CHAR NUM till DATUM DATUM till NUM CHAR till DATUM */ input(left(var), best.) put(var, $w.) input(left(put(var, yymmddw.)), $w.) input(left(put(var, w.)), yymmddw.) input(put(var, yymmddw.), w.) input(var, yymmddw.) Sidan 20

21 Exempel Konverteringar av variabler text datum - nummer: data konvert; text_n = '4'; num_n = 4; datum = 365; datum_t = ' '; datum_n = ; charrnumm= input(left(text_n), best.); nummcharr=put(num_n, $1.); datcharr=input(left(put(datum, yymmdd8.)), $8.); nummdat = input(left(put(datum_n, 8.)), yymmdd8.); datnumm = input(put(datum, yymmdd6.),8.); chardat= input(datum_t, yymmdd8.); LOOPA I DATASTEGET Ibland kan man behöva loopa i ett dataset (iterera). Nedan visas ett antal exempel på detta. Syntax do i=1 to... (until / while), do while / until, do i=1 by 2 to 11 Exempel - Generera ett dataset med 1000 anställningsnummer: do anstnr=1 to 1000; output; end; Exempel - Generera ett dataset med anställningsnr med endast jämna nummer: do anstnr=2 by 2 to 1000; output; end; Exempel - Loopa tills ett villkor är uppfyllt Detta exempel visar så många gånger det går på två sekunder: length anstnr tmp secs 8; drop tmp secs; tmp=time(); *starttid; anstnr=0; secs=0; do until (secs >= 2); anstnr=anstnr+1; output; secs=time()-tmp; end; Sidan 21

22 Alternativt: length anstnr tmp secs 8; drop tmp secs; tmp=time(); *starttid; anstnr=0; secs=0; do while (secs < 2); anstnr=anstnr+1; output; secs=time()-tmp; end; Behålla värden på variabler över fler observationer i datasteget Variabler som skrivs till utdatasetet initieras från början som blank eller missing i programdatavektorn inför varje iteration. Exempel SOM INTE FUNGERAR där variabeln up_down ska uppdateras beroende på hur x förhåller sig till föregående observations x: (testin innehåller fyra poster med x=1,2,1,1. Exemplet går ut på att variabeln up_down blir U, U, D,- på respektive post. Först skapas indatasetet: data testlib.testin; x=1; output; x=2; output; x=1; output; output; Exempel Behålla värdet på variabel utan RETAIN fungerar inte: Sedan ett program för att skapa variabeln up_down: data testlib.utdata; set testlib.indata(keep=x); length last 8. up_down $1; if x>last then up_down='u'; else if x<last then up_down='d'; else if x=last then up_down='-'; last=x; Detta exempel fungerar inte. up_down kommer alltid bli U eftersom last kommer att initieras som missing inför varje iteration. Sidan 22

23 Exempel Behålla värdet på variabel med RETAIN - fungerar: Datasteget kompletteras med ett RETAIN statement som innebär att värdet i programdatavektorn ej initieras av SAS, utan bara ändras då det uttryckligen ändras i programmet: data testlib.utdata; set testlib.indata(keep=x); length last 8. up_down $1; retain last; if x>last then up_down='u'; else if x<last then up_down='d'; else if x=last then up_down='-'; last=x; I detta fall behåller LAST värdet på X i föregående observation och utfallet blir som önskat. Möjligen skulle man vilja att LAST initieras. Annars kommer alltid up_down vara U i första observationen eftersom LAST då är missing. Antag att man vill att ingångsnivån på LAST ska vara 2. Då modifieras retain-satsen enligt nedan: retain last 2; I detta fall kommer up_down i stället bli D i observation ett. Användbara options till SET Till alla uttryck (statements) finns ett antal options som gör att man kan kontrollera dess beteende. Till SET statmentet finns ett antal olika options som man ofta använder för att kontollera hur data läses från indatasetet. I ett dataset kan man läsa från flera indataset på en gång. I detta exempel läses två olika dataset in till datasetet UT. data ut; set test1 test2; Sidan 23

24 Exempel Option (IN=) Med hjälp av option IN= kan man skapa en variabel som innehåller värdet 1 eller 0, 1 när en post läses från dataset eller 0 när det inte sker någon läsning från datasetet. Observera att denna variabel endast finns under exekveringen av datasteget och inte sparas till resultattabellen. Detta är en mycket användbar option som ofta används, framförallt vid matchning av dataset, vilket vi kommer till i senare i kursen. data ut; set test(in=ett) test(in=tva); if ett then text = 'Läser från dataset 1'; if tva then text = 'Läser från dataset 2'; Exempel option (END=) I bland kan det vara bra att veta när datasetet är slut, d.v.s. när sista posten är inläst. Det kan man göra med END=. Den fungerar på samma sätt som IN=, i den mån att en 0/1 variabel skapas under exekvering som kommer att ha värde 1 när sista posten är läst. data _null_; set test end=slut; if slut then put 'Läsning av dataset är slut, sista posten är läst!'; Effektivisering För att effektivisera datasteget bör man inte lyfta in fler variabler eller observationer än man behöver i datasteget. Exempel: Antag att testdata.indata innehåller ett mycket stort antal variabler och väldigt många observationer. TESTDATA.UTDATA ska innehålla två av variablerna och bara de observationer som uppfyller ett villkor. Man kan då köra datasteget: data testdata.utdata(keep=kategori belopp); set testdata.indata; if kategori='a' and belopp>100 then output; Kommentar: Samtliga variabler i INDATA läses i detta exempel in i minnet (i programdatavektorn), även om man anger att utdata endast ska behålla två av dessa. Detta kräver både minne och tid. Datasteget itererar över samtliga poster i indata även om bara de som uppfyller villkoret skrivs till utdata. Detta tar tid. Sidan 24

25 Det är betydligt effektivare att avgränsa det som läses in av SAS genom att ange detta som options redan på INDATA-datasetet: data testdata.utdata; set testdata.indata ( keep=kategori belopp where=(kategori='a' and belopp>100) ); Nu kommer bara de använda variablerna och posterna att läsas in i minnet, vilket är avsevärt mycket mer effektivt om det är många variabler och många poster som inte ska tas med. Ovanstående exempel kördes med ett indataset innehållande drygt 100 variabler och ca observationer och tog för exempel 1 knappt 15 sekunder och för exempel 2 ca 11 sekunder, dvs. en prestandahöjning med 25-30%. SAS-funktioner, ett urval SAS har skapat ett antal funktioner för att göra vissa beräkningar enklare. Nedan följer en mycket kortfattad listning av vissa användbara SAS-funktioner, samt enkla exempel som visar vad vissa av dem utför. Funktionerna indelas i nitton grupper. Här kommer dock endast några av grupperna att nämnas. Aritmetiska funktioner abs(värde) min(värde1,värde2, ) max(värde1,värde2, ) mod(värde1,värde2) Tar fram det absoluta beloppet. Minsta värdet Största värdet Restvärdet vid division värde1/värde2 Exempel: data _null_; a=abs(-40); b=min(1,3,6); c=max(1,3,6); d=mod(9,5); put a= b= c= d=; Trunkeringsfunktioner int(värde) round(värde<,0.1/10/ >) trunc(värde, längd) Tar heltalet (utan att avrunda) Avrundning. Om andra argumentet ej finns avrundas talet till jämnt heltal, annars till valt antal decimaler; tiotal etc. Trunkerar till vald längd Sidan 25

26 data xxx; x= ; y=round(x); yy=round(x,10); z=trunc(x,3); put y= yy= z=; Character-funktioner compress(text1 <,text2>) index(text1<,text2>) Rensar bort alla text2 från text1 Letar efter första tillfället som texten i text2 förekommer i text2. Resultatet anges i vilken position den sökta text2 hittades. Om inte text2 hittas blir resultatet 0. indexc(text1<,text2>) left(text) right(text) length(text) repeat(text,n) scan(textsträng,n,delimeter) substr(textsträng,pos1,n) translate(text, t2, t1) trim(text) Letar efter första tillfället som någon av tecknen i text2 förekommer i text2. Resultatet blir positionsnumret för det först hittade tecknet. Vänsterställer textsträngen Högerställer textsträngen Räknar fram antalet tecken för angiven textsträng Text repeteras n +1 gånger Letar upp det n:e ordet från angiven textsträng där varje ord avskiljs genom via en delimeter. Hämtar tecknen från position pos1 och n positioner framåt från textsträng. Ändrar tecken i text1 från t1 till t2 Tar bort inledande blanksteg från text data _null_; t='detta är en text som jag vill omforma'; a=compress(t,' '); b=index(t,'jag'); c=indexc(t,'jag'); d=length(t); e=scan(t,3,' '); f=repeat(scan(t,3,' '),4); g=substr(t,4,8); h=translate(t, 'a', 'ä'); p ut a= b= c= d= e= f= g= h=; data _null_; length t $30 z $90; t='lkjdfälkj'; z=t t; put z; z=trim(t) trim(t); put z; Kommentar: Detta tecken slår ihop två textsträngar, s.k. konkatenering. Sidan 26

27 Datum och tids funktioner date() datetime() day(sasdatum) month(sasdatum) year(sasdatum) Ger dagens datum Ger dagens datum inklusive klockslag Returnerar dagen från ett SAS-datum Returnerar månaden från ett SAS-datum Returnerar året från ett SAS-datum data _null_; dag=day(date()); man=month(date()); ar=year(date()); put 'År:' ar 'Månad:' man 'Dag:' dag; Funktioner för externa filer PATHNAME( LIBNAME / FILEREF ) returnerar den fysiska sökvägen till SAS-katalogen eller filreferensen. libname clib 'C:\'; data _null_; lib=pathname('clib'); put lib=; Specialfunktioner sysget(env-variabel) symget/symput: system(systemkommando) system("exit"); Ex: kör SET kommandot i DOS: listar systemvariabler. Alla dessa kan hämtas in med sysget. Ex: sysget(username) hämta in / skicka ut makrovariabler (se även Del 4, Makroprogrammering, en introduktion) Ex: call system("md &_lxtmp1_"); call data _null_; length x y $50; x=sysget('processor_identifier'); y=sysget('username'); put x= / y=; %let my_mvar=hej; *Makrovariabel som hämtas in i datasteget nedan; data _null_; a='hejdå'; call symput('ny_mvar',a); y=symget('my_mvar'); put y; %put &ny_mvar; Sidan 27

28 Datasetfunktioner open( datasetnamn ) close(dataset-id) Öppnar ett dataset, returnerar ett positivt id-nr om det gick bra Stänger ett dataset angivet med id-nr som returneras från tidigare open() data _null_; dsid=open('xxx'); put dsid=; a=varname(dsid,2); b=varnum(dsid,'z'); c=vartype(dsid,varnum(dsid,'y')); put a=; put b=; put c=; dsid=close(dsid); put dsid=; Variabelfunktioner varname(dsid,var-num), varnum(dsid, varname ), vartype(dsid,var-num); Returnerar namn på variabel nr. var-num i datasetet dsid. Returnerar vilket ordningsnummer variabeln varname har i datasetet dsid. Returnerar variabeltypen Slumptalsfunktioner Ett exempel på en slumptalsfunktion: RANUNI(seed) Returnerar ett slumptal från en uniform distribution. Seed är ett heltal. Om seed <= 0, så används aktuell tid för att initiera beräkningen. System options När man startar SAS eller under tiden som SAS är igång kan man göra ett antal olika inställningar (options) som påverkar hela SAS-sessionen. Under SAS system help: Main menu / SAS language / SAS System options finns samtliga options. Nedan listar vi några användbara options. För att ange ett eller flera option skriver du: options ; Linesize= (ls=) Pagesize= (ps=) Längden på linjen i en printfil Antal rader som skrivs i en output Sidan 28

29 Number nonumber Date nodate Source nosource Stänger på/av sidnumreringen i OUTPUTfönstret Stänger på/av datumet i output-fönstret Visar SAS-koden i loggen Sidan 29

30 Data till övningar Övningarna är baserade på data från finansinspektionen över insideraffärer. Nedan beskrivs de tabeller som kommer att användas i övningarna. Själva övningarna finns i ett separat dokument. COMPANY Alla företag med organisationsnummer och namn ORGNR Organisationsnummer num VCOMPANY AB-kort char COMPANY Aktiemarknadsbolag char TESTHAND Förändring i innehav IDNR Identifikationsnummer num ORGNR Organisationsnummer num FIN Finansiellt instrument char FINTYP Typ av finans instr. char INSDAT Insiderdatum num ANTAL Antal num CHANGE Ändring char ANDART Ändringens art char TESTIHAV Innehav IDNR Identifikationsnummer num FIN Finansiellt instrument char FINTYP Typ av finans instr. char SENDAT Datum för senaste förändringen num ANTAL Innehav num ORGNR Organisationsnummer num TESTINS Personuppgifter BEFATT IDNR FNAMN ENAMN STORINV char num char char num TESTKURS kursvärde FIN FINTYP KURS KURSDAT ORGNR char char num num num Sidan 30

31 Tabellrelationer Nedan beskrivs relationerna mellan dataseten som används i övningarna. Programhuvud Nedan visas ett exempel på hur ett programhuvud kan se ut, där man skriver vem som skapat programmet, ändringshistorik etc. /* System...: Program...: Function...: Date...: Language...: SAS 9.1 (Base) Programmer...: Dataset/Tables...: Parameters...: See syntax help History...: */ Sidan 31

Objektorienterad programmering Föreläsning 2

Objektorienterad programmering Föreläsning 2 Objektorienterad programmering Föreläsning 2 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Inläsning av data via dialogrutor Repetitioner (While-satsen och For-satsen) Nästlade

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

4. Kunna orientera sig mellan de olika fönstren

4. Kunna orientera sig mellan de olika fönstren Datorövning 1 Statistikens Grunder 1 Syfte 1 Lära sig läsa in data i SAS 2 Importera data från Excel 3 Lära sig skriva ut data med proc print 4 Kunna orientera sig mellan de olika fönstren Exempel Att

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

Introduktionskurs i SAS

Introduktionskurs i SAS Introduktionskurs i SAS Del 4 Makroprogrammering Detta material skyddas av upphovsrättslagen och får inte kopieras eller på annat sätt spridas utan upphovsmannens (Knowit Software Solutions AB) skriftliga

Läs mer

Visual Basic, en snabbgenomgång

Visual Basic, en snabbgenomgång Visual Basic, en snabbgenomgång Variabler och Datatyper En variabel är som en behållare. Olika behållare passar bra till olika saker. I Visual Basic(härefter VB) finns olika typer av behållare för olika

Läs mer

Använda några av de vanligaste PROC:arna. Sammanställa och presentera data i tabeller och grafiskt

Använda några av de vanligaste PROC:arna. Sammanställa och presentera data i tabeller och grafiskt Datorövning 1 Statistisk teori med tillämpningar Repetition av SAS Syfte Syftet med Datoröving 1 (D1) är att repetera de SAS-kunskaperna från tidigare kurser samt att ge en kort introduktion till de studenter

Läs mer

Introduktion till Jasmine 1.2 ODQL

Introduktion till Jasmine 1.2 ODQL Introduktion till Jasmine 1.2 ODQL I detta avsnitt beskrivs ett antal praktiska handgrepp som behövs för att köra Jasmine ODQL. 1 ODQL miljön Man kan enklast köra ODQL mot Jasmine från ett vanligt Command

Läs mer

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är

Läs mer

Målet för D1 är att studenterna ska kunna följande: Använda några av de vanligaste PROC:arna. Sammanställa och presentera data i tabeller och grafiskt

Målet för D1 är att studenterna ska kunna följande: Använda några av de vanligaste PROC:arna. Sammanställa och presentera data i tabeller och grafiskt Datorövning 1 Statistisk teori med tillämpningar Repetition av SAS Syfte Syftet med Datoröving 1 (D1) är att repetera de SAS-kunskaperna från tidigare kurser samt att ge en kort introduktion till de studenter

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

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

Variabler och konstanter

Variabler och konstanter Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!

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

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

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

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva

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

Laboration 1 Introduktion till Visual Basic 6.0

Laboration 1 Introduktion till Visual Basic 6.0 Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.

Läs mer

PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC

PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC lektion 1 PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC VB är ett applikationsutvecklingsverktyg med programmeringsspråket är basic, gränssnittet är grafiskt och man arbetar hela tiden

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

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

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

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

Introduktionskurs i SAS Base

Introduktionskurs i SAS Base Introduktionskurs i SAS Base Del 3 Sammanslagning av dataset (joins) och grundläggande SAS/SQL Detta material skyddas av upphovsrättslagen och får inte kopieras eller på annat sätt spridas utan upphovsmannens

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

C++ Lektion Tecken och teckenfält

C++ Lektion Tecken och teckenfält C++ Lektion Tecken och teckenfält Teori Hittills har alla variabler du jobbat med varit olika typer av tal, men du kan också deklarera variabler som håller bokstavstecken. Denna variabeltyp kallas för

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

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs TE/RC Datorövning 1 Syfte: 1. Lära sig läsa in data i SAS 2. Importera data från Excel 3. Lära sig skriva ut data med proc print 4. Kunna orientera

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

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

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv Datorlära 6 Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv 1 Arbeta med Strängar Strängar skapas med text inom citattecken, enkla eller dubbla.!>> str=

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel 732G11 Linköpings universitet 2011-02-15 1 2 3 4 Extrapass Extrapass håller på att bokas. Blir 3-4 st. och öppet för alla. Mer info på kursmailen när bokningen är klar. i Java En funktion i Java... public

Läs mer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

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

Alternativa metoder för sammanslagning av tabeller i SAS. Fredrik Bernström och Johan Elfman Konsulter SAS Institute

Alternativa metoder för sammanslagning av tabeller i SAS. Fredrik Bernström och Johan Elfman Konsulter SAS Institute Alternativa metoder för sammanslagning av tabeller i SAS Fredrik Bernström och Johan Elfman Konsulter SAS Institute Alternativa metoder för sammanslagning av tabeller i SAS Syfte med presentationen: Visa

Läs mer

Planering Programmering grundkurs HI1024 HT TIDAA

Planering Programmering grundkurs HI1024 HT TIDAA Planering Programmering grundkurs HI1024 HT 2016 - TIDAA Föreläsning V35 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning

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

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

Frekvenstabell över tärningskast med C#

Frekvenstabell över tärningskast med C# Instruktion Frekvenstabell över tärningskast med C# Introduktionsuppgift Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Innehåll Du ska följa steg för steg -instruktionen i

Läs mer

C++ Slumptalsfunktioner + switch-satsen

C++ Slumptalsfunktioner + switch-satsen C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.

Läs mer

Grundläggande datalogi - Övning 1

Grundläggande datalogi - Övning 1 Grundläggande datalogi - Övning 1 Björn Terelius October 30, 2008 Python är ett tolkat språk som kan köras interaktivt. tcs-ray:~/grudat08>python >>> 11+3*4 23 >>> a = 15 >>> b=a >>> print "a =", a, "b

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

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim  Agenda (halvdag) Objektorienterad programmering Föreläsning 9 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (halvdag) Fält Grunderna Fält med komponenter av struct-typ Fält med referenser Standardklassen

Läs mer

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna. Använd olika lager. Döp lagren! Organisera era bibliotek! Design av interaktiv multimedia Ge era symboler instansnamn för att hitta dem med AS. Nytt för denna kurs: Ingen ActionScript-kod i.fla-filen!

Läs mer

[] Arrayer = Indexerad variabel

[] Arrayer = Indexerad variabel [] Arrayer = Indexerad variabel Lagra många värden i en variabel Jmfr inom matematiken, variabler x 0, x 1, x 2, I detta dokument tas upp hur man skapar och hanterar sådana variabler i java. Dessa kallas

Läs mer

Föreläsning 5: Introduktion av pekare

Föreläsning 5: Introduktion av pekare Föreläsning 5: Introduktion av pekare Det bör påpekas att det som tas upp i introduktionen inte är reella exempel på kod. Man anväder inte pekare till att peka på enstaka heltal som i exemplen nedan, men

Läs mer

Programmering i C, 7,5 hp

Programmering i C, 7,5 hp Programmering i C, 7,5 hp Föreläsning 4 VÄLKOMNA! 31 switch-satsen Antag att vi har en heltalsvariabel a som skall styra programflödet Antag vidare att a kan anta tex 5 olika värden 1,2,3,4,5 printf( Mata

Läs mer

Övning från förra gången: readword

Övning från förra gången: readword (9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Syfte Laboration 1. Objektorienterad programmering, Z1 Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i

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

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

Användarhandledning för koppling av dokument

Användarhandledning för koppling av dokument nvändarhandledning Modul: lla vser: Koppla dokument i 3L 2006 1[11] nvändarhandledning för koppling av dokument Olika typer av dokument kan kopplas till poster i en 3L-databas. Exempelvis kan en eller

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

Planering Programmering grundkurs HI1024 HT 2014

Planering Programmering grundkurs HI1024 HT 2014 Planering Programmering grundkurs HI1024 HT 2014 Föreläsning V36 Föreläsning 1 Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande- Interpreterande Programmeringsmiljö Hello World! Att

Läs mer

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs Statistikens grunder och 2, GN, hp, deltid, kvällskurs TE/RC Datorövning 3 Syfte:. Lära sig göra betingade frekvenstabeller 2. Lära sig beskriva en variabel numeriskt med proc univariate 3. Lära sig rita

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

729G04 Programmering och diskret matematik. Föreläsning 7

729G04 Programmering och diskret matematik. Föreläsning 7 729G04 Programmering och diskret matematik Föreläsning 7 Föreläsningsöversikt Information Interaktion via text Läsa från fil Skriva till fil Spara och läsa abstrakta datatyper från fil Information Felaktigt

Läs mer

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering

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

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 6: Filhantering Henrik Björklund Umeå universitet 13 oktober 2009 Björklund (UmU) Programmeringsteknik 13 oktober 2009 1 / 22 Textfiler Filer är sekvenser

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

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

Målet för D2 är att studenterna ska kunna följande: Dra slumptal från olika sannolikhetsfördelningar med hjälp av SAS

Målet för D2 är att studenterna ska kunna följande: Dra slumptal från olika sannolikhetsfördelningar med hjälp av SAS Datorövning 2 Statistisk teori med tillämpningar Simulering i SAS Syfte Att simulera data är en metod som ofta används inom forskning inom ett stort antal ämnen, exempelvis nationalekonomi, fysik, miljövetenskap

Läs mer

JAVAUTVECKLING LEKTION 4

JAVAUTVECKLING LEKTION 4 JAVAUTVECKLING LEKTION 4 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Iterationer (loopar) Algoritmer Mer om felsökning 1 WHILE-SATSEN String s = JOptionPane.showInputDialog("Talet

Läs mer

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er Labora&on 2 Funk&oner, if och loop övningar/uppgi:er 1M322 Webbteknik 2, 7,5hp Medieteknik 2017 Rune Körnefors rune.kornefors@lnu.se 1. Ladda ner arbetsdokument Till övningarna i denna labora&on finns

Läs mer

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs TE/RC Datorövning 4 Syfte: 1. Lära sig beräkna konfidensintervall och täckningsgrad 2. Lära sig rita en exponentialfördelning 3. Lära sig illustrera

Läs mer

Inledande programmering med C# (1DV402) Summera med while"-satsen

Inledande programmering med C# (1DV402) Summera med while-satsen Summera med while"-satsen Upphovsrätt för detta verk Inledande programmering med C# (1DV402) Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får

Läs mer

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN HI1024 Programmering, grundkurs TEN2 2016-12-22 KTH STH Flemingsberg 8.15-13.00 Tillåtna hjälpmedel: Kursboken C PROGRAMMING A Modern Approach K. N. King helt utan anteckningar Alternativt C från början

Läs mer

Övning2. Variabler. Data typer

Övning2. Variabler. Data typer Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man

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

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera

Läs mer

TIPS OCH TRIX MED ENTERPRISE GUIDE JESPER ARNFLO NORDIN BI-KONSULT, SAS XPERIENCE

TIPS OCH TRIX MED ENTERPRISE GUIDE JESPER ARNFLO NORDIN BI-KONSULT, SAS XPERIENCE TIPS OCH TRIX MED ENTERPRISE GUIDE JESPER ARNFLO NORDIN BI-KONSULT, SAS XPERIENCE ÖVERBLICK 10 inställningar I Enterprise Guide 3 tips för processflöden Utforska med Data Explorer 5 användbara kortkommandon

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor 732G11 Linköpings universitet 2011-02-01 1 2 3 Strukturdiagram Strukturdiagram används för att visa hur ett program fungerar. Man kan se alla val och upprepningar som sker i programmet. Består av tre (!)

Läs mer

Funktioner. Linda Mannila

Funktioner. Linda Mannila Funktioner Linda Mannila 13.11.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering Intro till funktioner och moduler Villkorssatsen

Läs mer

Planering Programmering grundkurs HI1024 HT 2015 - data

Planering Programmering grundkurs HI1024 HT 2015 - data Planering Programmering grundkurs HI1024 HT 2015 - data Föreläsning V36 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning

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

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram Programmeringsteknisk översiktskurs för yrkeshögskoleprogram Föreläsning 12 Våren 2005 Innehåll Palindrom Hur man hittar fel i program, debuggning Felhantering, hur man förhindrar program att krascha Ev.

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

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

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Programmering I Tobias Wrigstad fredag, 2009 augusti 28 Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,

Läs mer

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna

Läs mer

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

Sphero SPRK+ Appen som används är Sphero Edu. När appen öppnas kommer man till denna bild.

Sphero SPRK+ Appen som används är Sphero Edu. När appen öppnas kommer man till denna bild. Sphero SPRK+ Appen som används är Sphero Edu När appen öppnas kommer man till denna bild. Klicka på 3D-modeller för att se delarna på Sphero Klicka här för att ansluta Sphero till ipad Programmet för att

Läs mer

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32) Programmeringsteknik och Matlab Övning Dagens program Övningsgrupp 2 (Sal Q22/E2) Johannes Hjorth hjorth@nada.kth.se Rum 458 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d2

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

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

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

Ö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

Kapitel 16: Programmering

Kapitel 16: Programmering Kapitel 16: mering Innehåll Komma igång: Volymen av en cylinder...2 Skapa och ta bort program...4 Skriva instruktioner och köra program...5 Redigera program...6 Kopiera och byta namn på program...7 PRGM

Läs mer

PROGRAMMERING-Java Omtentamina

PROGRAMMERING-Java Omtentamina PROGRAMMERING-Java Omtentamina Nicolina Månsson 2007-08 13 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 41 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. -

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

Målet för D3 är att studenterna ska kunna följande: Dra slumptal från olika sannolikhetsfördelningar med hjälp av SAS

Målet för D3 är att studenterna ska kunna följande: Dra slumptal från olika sannolikhetsfördelningar med hjälp av SAS Datorövning 3 Statistisk teori med tillämpningar Simulering i SAS Syfte Att simulera data är en metod som ofta används inom forskning inom ett stort antal ämnen, exempelvis nationalekonomi, fysik, miljövetenskap

Läs mer

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor http://w3.msi.vxu.se/multimedia Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor Rune Körnefors Innehåll Variabler i JavaScript

Läs mer

Introduktion till frågespråket SQL (v0.91)

Introduktion till frågespråket SQL (v0.91) DD1370: Databaser och Informationssystem Hösten 2014 Petter Ögren Introduktion till frågespråket SQL (v0.91) 13:e November Disclaimer: Dessa anteckningar har producerats under viss tidspress, och kan därför

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer