Föreläsning 0: Introduktion av Ada

Storlek: px
Starta visningen från sidan:

Download "Föreläsning 0: Introduktion av Ada"

Transkript

1 Föreläsning 0: Introduktion av Ada OBS! Detta är antagligen det enda papper som delas ut under hela FÖ serien. Det finns förutom detta ett antal OH:n som kommer att användas under nästa FÖ, men sen är det endast tavelskrivande och diskussioner som gäller. Vad kommer vi att behöva så här i kursstarten? Lite begrepp och lite problemlösning. Dessutom lite hur ett program ser ut. Vi börjar med lite begrepp. Ett antal "reserverade identifierare" (reserverade ord). Dessa används för att strukturera upp programmet och får bara användas till just detta. Lite "ihopklumpande" efter hur/när man använder dem: procedure is loop begin end loop; end ; while loop with ; end loop; use ; for in loop if then end loop; elsif then else exit; end if; exit when ; Ett antal "datatyper" ("beskrivningar" av hur data ser ut). Dessa är några av de "fördefinierade identifierare" vi kommer att komma i kontakt med: Integer = heltal (ex. 1, 2, 145, 4) Float = flyttal (ex. 1.0, 2.0, 3.14, 3.0) Character = tecken (ex. 'a', 'b, '2', '#') String() = "textsnutt" (ex. "kalle", "berta") Boolean = sanningsvärde (False, True) Ett antal "variabler" (lagringsutrymmen att lägga data i). Dessa blir såkallade "egendefinierade identifierare": I : Integer; F : Float; C : Character; S : String(1.. 5); B : Boolean; När man skapar dessa variabler använder man datatyperna för att tala om vilken sorts variabel det är. OBS! En identifierare identifierar något i programmet och skall därför vara unikt (inom det "område i programmet" som använder denna). Regel för identifierare: En "identifierare" måste inledas med en bokstav. Därefter får det följa fler bokstäver och/eller siffror och/eller understrykningsstreck. Man får dock inte avsluta identifieraren med ett understrykningsstreck eller ha två sådana i rad inuti identifieraren.

2 Det som är beskrivet hittills är saker som redan finns i Ada utan att man behöver säga något extra. När man kommer till programmeringen behöver man dock ofta lite mer att "leka med". Det som behövs kan vara matematiska bibliotek med "Cos", "Sin", etc. eller hantering av externa enheter såsom tangentbord och skärm (såkallad in och utmatning vilket kallas IO efter det engelska "In and Out"). Dessa delar har man i Ada delat upp i olika moduler kallade "paket". Det finns många sådana fördefinierade och här kommer ett par stycken med några av de saker som finns inuti: Ada.Text_IO Put(); Put_Line(); New_Line; New_Line(); Get(); Get_Line(); Skip_Line; Skip_Line(); Ada.Float_Text_IO Put(); Get(); Ada.Integer_Text_IO Put(); Get(); Ada.Numerics.Elementary_Functions Sqrt() Log() Exp() Sin() Cos() Tan() Cot() Sinh() Cosh() Tanh() Coth() Arcsin() Arccos() Arctan() Arccot() Arcsinh() Arccosh() Arctanh() Arccoth() OBS! Det är inte något ';' efter de saker som finns inuti det sista paketet. Varför kommer vi tillbaka till senare på den FÖ som handlar om underprogram.

3 Stencilen ovan lämnas ut på första FÖ, men finns också tillgänglig via kursens hemsida. Nu sätter vi igång! I denna kurs är det tänkt att vi ska lära oss programspråket Ada för att skriva datorprogram. Vad är ett datorprogram? Vi ser det gärna som en beskrivning, en uppsättning instruktioner som löser ett givet problem. Det är egentligen detta vi är mest intresserade av, att lösa problem. Varför ska man då lära sig just Ada? Det finns ju många programmeringsspråk. För det första så är det som sagt inte jätteintressant exakt vilket språk man använder, det är i allmänhet inte så att vissa språk är bättre än andra, utan det är själva tänket man är ute efter, d.v.s. hur tänker man när man programmerar? Dessvärre måste man ha språket, själva verktyget till hands innan man kan bli bra i en viss färdighet. Man kan jämföra det med att det är svårt att snickra om man inte vet hur man använder sig av sågar, hammare och borrar. För det andra visar det sig att Ada är ett mycket lämpligt språk att börja med. Strukturen i språket är sådan att man lätt ser vad man håller på med, dessutom finns det en mycket "snäll" kompilator, alltså det som gör att man kan översätta sin programkod (ren text) till ett riktigt program. Mer om detta senare. Pappret som ni har fått ut är en kort sammanfattning av de två första föreläsningarna. För tillfället kan vi se det mer som en översikt. På pappret finns det många ord på engelska, det kommer vara dessa (och många fler!) som dina program är uppbyggda av. Vi kommer att prata om "reserverade identifierare", det är ord som har en väldigt specifik betydelse i språket och som man inte får ändra på. (Ungefär som att ändra ordet "är" till "banan" i svenskan, blir lite struligt). Det finns även fördefinierade identifierare, det är ord som finns i programspråket men som man kan ändra på (Om vi t.ex. ändrar ordet Kawazaki till Honda så blir det bara måttlig förvirring). Vi kommer att prata om datatyper och variabler, dessa saker har ihop med hur vi lagrar data (t.ex. ett personnummer, ett banksaldo eller alla dina bilder i din dator). Vi kommer prata om identifierare. Detta är namnen (orden) på allting annat i ett program. Ibland kommer ni att få hitta på helt egna namn på saker, det kanske låter larvigt men är faktiskt mycket mycket viktigt att det blir bra. Det finns också ett stort antal andra "rutiner", man kan tänka sig att dessa rutiner är små färdiga program som ett nytt program kan använda sig av, för att slippa göra grovjobbet. Det finns t.ex. matematiska rutiner (vi kommer att säga underprogram i framtiden), de behövs oftare än man tror! Det finns också underprogram för in- och utmatning. Dessa används för att programmet skall kunna jobba med datorns skärm och tangentbord. Det är så att det är mycket svårt att lära sig programmering om man inte kan se vad som händer i ett program om man skriver in olika saker då programmet körs. Därför tar vi detta i början av kursen, så det är vad lab 0 och resten av föreläsningen kommer att handla om. Hur skriver vi nu ett program med hjälp av dessa saker? Vi kan börja med ett exempel från labserien (den första introduktionslaborationen som följer efter denna FÖ i denna kurs). Följande dialog vill vi att den skall utföras med datorn: Mata in ett heltal: 10 Du matade in heltalet: 10 Mata in en sträng med exakt 5 tecken och ett heltal: Kalle 27 Du matade in heltalet 27 och strängen "Kalle". OBS! Det är meningen att datorn (ditt program) skall skriva ut allt i dialogen på skärmen UTOM det som står efter frågorna "Mata in :". Dessa data skall användaren mata in på tangentbordet och det är just dessa inmatningar som sen skall skrivas ut på raden efter (av ditt program). Vi börjar med uppgiften på tavlan (bra att tala om hur många rader det blir och vilka rader man använder när man skriver programmet): Nedan har jag fyllt i hela programmet. Under FÖ växer detta självklart fram efter hand.

4 1 with Ada.Text_IO; use Ada.Text_IO; 2 with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; I : Integer; 7 S : String(1.. 5): 8 10 Inmatning av heltal. 11 Ada.Text_IO.Put("Mata in ett heltal: "); 12 Ada.Integer_Text_IO.Get(I); 13 Skip_Line; 14 Utskrift av heltalet. 15 Ada.Text_IO.Put("Du matade in heltalet: "); 16 Ada.Integer_Text_IO.Put(I); 17 Ada.Integer_Text_IO.Put(I, Width => 0); 18 Ada.Text_IO.New_Line; Inmatning av sträng och heltal. 21 Put("Mata in en sträng med exakt 5 tecken och ett heltal: "); 22 Get(S); 23 Get(I); 24 Skip_Line; 25 Utskrift av strängen och heltalet. 26 Put("Du matade in heltalet "); 27 Put(I, Width => 0); 28 Put(" och strängen """); 29 Put(S); 30 Put_Line("""."); 31 end In_Och_Utmatning; Först och främst kan jag tala om att det är inget magiskt som jag kommer göra nu. Det vi skriver här är ren text! Tänk er att jag har öppnat programmet "anteckningar"/"notepad" på datorn och skriver in koden. Jag skulle egentligen kunna använda vilket text-editeringsprogram som helst! Kanske inte MS Word dock, Word sparar undan en massa annan information i filerna som inte syns. Vi vill, att i våra filer ska det bara finnas råtext (trots att källkodsfilerna har.adb som fil-ändelse). Det vi kallar för kompilator kommer senare att göra om råtexten till ett program som datorn verkligen förstår, men för tillfället kan vi tänka oss att det som står här i texten är det som datorn kommer att utföra. Så kan man även tänka i allmänhet när man programmerar, vilket är trevligt. Till att börja med måste man få till programmets grundläggande struktur. Det jag kommer skriva nu är något som alla ada-program har. Det är liksom ett programskelett. (Observera att jag inte behöver skriva radnummren, det är bara för att det skall bli lättare för er att följa med i era anteckningar) end In_Och_Utmatning;

5 Om ni tittar på den sidan som ni fick ut så ser ni att "procedure" "is" "begin" "end" är reserverade identifierare. Alltså något som finns specat i språket. Däremot har jag själv hittat på identifieraren "In_Och_Utmatning", själva namnet på programmet. När jag sparar den här filen så kommer jag spar den som "in_och_utmatning.adb" (obs små bokstäver!). När man hittar på identifierare får man ha hur långa ord som helst. Man kan använda understreck och siffror, men det namnet får inte börja på en siffra (se pappret). Programskelettet är inte bara något som ser vackert ut, utan har den funktion (förutom att det finns en plats för programmets namn) att dela upp programmet i två delar, en deklarationsdel och en satsdel (en del med instruktioner). Jag brukar alltid tänka mig detta som ett recept. Högst upp (mellan procedure och begin) har man ingredienser, "dessa saker kommer jag behöva för att utföra programmet", och mellan begin och end har man instruktioner "detta är instruktioner som man skall följa steg för steg för att det skall bli rätt". Obs! Alla språk har inte denna uppdelning, tråkigt för dem. Okej, nu har vi ett program? Nästan. Programmet måste göra något också, det är ju faktiskt helt tomt (förutom skellettet, som inte gör något). Vad vill vi att program ska göra? Vi börjar lite smått med något som torde vara lätt. Textsnutten "Mata in ett heltal: " ska komma ut på skärmen. Detta borde inte vara så komplicerat, men det är det! Varför? Tja, skärmen är komplicerad. Den har ett helt eget gränssnitt som är mycket annorlunda från Ada. Dessutom kan ju inte vårt program göra vad det vill. Det kanske finns andra program som måste få tillgång till skärmen samtidigt, alltså krävs det en tredje part som styr upp så att det inte blir kiv, operativsystemet. INTERNMINNE OPERATIV- SYSTEM EXTERNA ENHETER Put( Mata in ) UTMATNINGSBUFFERT TANGENTBORDSBUFFERT Bilden växer fram tillsammans med att programmet utvecklas. Adas kärna I/O modul för text I/O modul för heltal modul med matematiska funktioner m.m. Så det är antagligen inte så lätt som att bara skriva "skriva ut följande textsnutt "Mata in " på rad 10. Det krävs säkert ett mycket stort och krångligt program bara för att få till detta. Men nu kommer det underbara: Det (under)programmet är redan skrivet, men det ligger på en separat modul. Det finns en hel del moduler, som vi kallar paket eller bibliotek, som man kan välja att ha med när man skriver ett program. Man skulle kunna visualisera språket som en blomma, i mitten finns alla de nyckelord och konstruktioner som man behöver i (nästan) alla program, t.ex. vårt programskelett. De saker som man kanske inte alltid behöver ligger i separata moduler, dessa är blommans kronblad. Anger man inte explicit att man vill ha tillgång till dessa moduler så får man bara tillgång till

6 de mest grundläggande sakerna i språket. Eftersom Ada är ett programspråk som används för många inbyggda system, d.v.s. system som inte är tänkte att föra dialog med en användare, ligger dess rutiner för in- och utmatning på sådana separata moduler. I Ada kallas modulerna bl.a. för paket. I ett paket som heter Ada.Text_IO (IO som i "Input and Output") finns en rutin som heter "Put" som utför precis det vi vill, och vi slipper bry oss om hur det egentligen fungerar. Vi måste givetvis också ange att vi vill få tillgång till Ada.Text_IO, det gör vi med "with". Detta är så pass speciellt att det hamnar utanför både deklarationsdelen och satsdelen av programmet! 1 with Ada.Text_IO; 10 Ada.Text_IO.Put("Mata in ett heltal: "); 27 end In_Och_Utmatning; Nu har vi fått till vår första instruktion, och ett körbart program på samma gång. Självklart vill vi då testa vårt program och se vad som händer när vi kör det. Exakt hur man gör detta går jag inte igenom nu. Det är enklast att förstå när man sitter själv framför datorn. Oroa er inte för detta nu, labassistenterna hjälper er med det på första laborationen. När vi kör programmet så skickar programmet iväg textsnutten till skärmen (vi operativsystemet) och den visas upp för oss. En viktigt detalj är semi-kolonet sist på rad 10. Den talar om att instruktionen, satsen slutar där. Satser kan fortsätta över flera rader, eller stå på samma (även om det är fult) så man behöver något explicit som skiljer en sats från nästa. Bortsett från att skriva ut (matar ut) denna text gör programmet inget mer, det kommer avslutas efter instruktionen. Man kan tänka sig att datorn fortsätter ner till "end In_Och_Utmatning" och efter det så avslutar den helt enkelt programmet. Nu kommer nästa uppgift. Att låta användaren, alltså den som sitter och kör det här programmet att få mata in något. För det mesta så kommer ni köra era egna program, så det kommer vara ni som är användaren, så det kan vara lite förvirrande att helt plötsligt behöva ha två roller "programmeraren" och "användaren", men man kommer in i det. Om ni tycker att det är besvärligt kan ni tänka er att ni är labassistenten som kör ert program. Vad skulle han/hon tycka/tänka? 10 Ada.Text_IO.Put("Mata in ett heltal: "); 11 Här vill vi hämta ett tal från tangentbordet Hur får vi då in något från tangentbordet? Här är det många saker som skall klaffa. Användaren skall trycka på tangentbordet, programmet skall vara redo att ta emot, och vi måste även se till att det som matades in inte kastas utan sparas någonstans, eftersom vi i nästa skede skall mata ut det igen så att användaren ser vad han skrev in. Vi fokuserar på det första. När kan användaren mata in något? Tja, när som helst faktiskt. Det är faktiskt möjligt för användaren att mata in något innan programmet ens har startat! Detta går att göra, antingen om man är ryyysligt snabb (nu snackar vi nanosekunder), eller om man vet hur man "laddar upp" med inmatning till programmet. Hur man gör detta är inte så intressant nu men vi vet i alla fall att inmatningen kan komma tidigt, vilket kan vara besvärligt om vi inte är beredda på att ta emot än. Tänk er att ni kastar en baseboll och jag har inte ens fått på mig plockhansken än. Den enda lösningen på detta är att användarens

7 knapptryckningar lagras så att vi kan bearbeta dem (ett par mikrosekunder) senare. Operativsystemet har en sådan lagringsplats, mellan tangentbordet och vårt program, som kallas tangentbordsbufferten. Detta är bra. Allting som trycks på tangentbordet hamnar alltså här tills vi (i vårt program) kommer och hämtar upp det. Datat försvinner då ur tangentbordsbufferten men finns kvar i vårt program. Att användaren är snabb är dock i allmänhet inte ett problem, eftersom användaren ofta är jättelångsam. För datorn är det som att det passerar hela tidsåldrar från den tidpunkt då texten "Mata in ett heltal" kommer upp tills då användaren inser att han måste börja trycka på knapparna. Det kan ju vara frestande för datorn att dumpa användaren och gå vidare med livet, d.v.s. att bara gå vidare till andra instruktioner om det inte finns något att hämta i tangentbordsbufferten. Men så får det absolut inte gå till. Då kommer det uppstå väldiga problem när vi senare vill skriva ut det användaren skrev in. Det enda som datorn då kan skriva ut är ett pinsamt erkännande att den inte vet eftersom han inte lyssnade just då. Dessutom kanske man kommer i "osynk" med kommande inmatningar och det heltal som matades in börjar tolkas som något helt annat. Nej! Det enda logiska är att datorn väntar på användaren, även om det betyder att den får vänta natt och dag tills hin håle kommer. Den tredje saken som var viktig var att vi verkligen kunde "spara" det som matades in. Vi skulle behöva lite av datorns minne, inte särskilt stor bit, så att vi kan lagra ett tal. Men hur blir detta? I bilden ligger ju redan själva programmet i datorns internminne, vart lagrar man då sitt data? Svaret är enkelt, detta ligger också i internminnet. Datorns minne är alltså plats för både program och data. Hur som helst behöver vi nu en liten bit minne som kallas för en variabel, i vårt fall blir det en heltalsvariabel. Variabler har alltid tre saker: En typ (kan t.ex. vara heltal, flyttal, tecken o.s.v), ett namn (en identifierare som vi som programmerare får hitta på). och ett värde. Vi brukar rita detta så här (ritas in i bilden ovan): I : 25 I detta exempel heter variabeln "I" och innehåller värdet 25. Datatypen är underförstådd, det är ett heltal. Det är viktigt att veta att variabler har värden alltid! Även innan man aktivt har petat in något i dem. De kan aldrig vara "tomma". För att få tillstånd (av operativsystemet) att använda en sådana variabel måste vi deklarera att vi har den i programmets deklarationsdel. 1 with Ada.Text_IO; 5 6 I : Integer; "Integer" är alltså typen på variabeln (en fördefinierar identifierare). Och "I" är vårt namn på den. Vi hade kunnat kalla den för "mitt_tal" eller något annat sånt, men nu valde jag just "I". Denna variabel kan vi nu använda i vårt program. Obs, det krävs inga paket eller moduler för att använda variabler av olika typer, de finns i "grundspråket" så att säga. Nu vill vi, förutom de saker som vi sa förut, att det som hämtas från tangentbordsbufferten in skall lagras i den här variabeln "I". Självklart finns det ett underprogram som gör detta, på precis det sätt som vi önskar. Den kallas för Get, och denna rutin ligger i paketet Ada.Integer_Text_IO. På samma sätt som förut måste vi ange att vi vill få tillgång till Ada.Integer_Text_IO.

8 1 with Ada.Text_IO; 2 with Ada.Integer_Text_IO; I : Integer; 10 Ada.Text_IO.Put("Mata in ett heltal: "); 11 Ada.Integer_Text_IO.Get(I).. 27 end In_Och_Utmatning; Om vi nu kör programmet så kommer följande att ske: - Programmet startar, vi får tillgång till en heltalsvariabel med namn I. - Texten "mata in ett heltal: " kommer ut på skärmen. - Programmet kommer till Get, och frågar operativsystemet om det finns något i tgb-bufferten. "Nej" får det som svar och sätter sig därför för att vänta. - Användaren vaknar upp och inser att han måste trycka in ett tal. De tecken som användaren knappar in hamnar i tangentbordsbufferten, låt säga att han/hon matar in 5. Observera nu att inget kommer att hända föränn användaren trycker på enter. Tänker man till så inser man att det nog är bra att det är på detta sätt. Om man skulle ha matat in fel så har man ju fortfarande chans att sudda och skriva in något annat. Det är först när enter-tangenten trycks ner som operativysstemet kommer att börja agera. - Operativsystemet upptäcker att det finns data som vårt program är intresserat av. OS:et väcker vårt program och talar om för det att det finns data att hämta. - Rutinen Get hämtar femman och sparar undan den, som ett heltal i variabeln I. - Programmet avslutas. Toppen, vi fortsätter raskt med resten av första biten. I nästa skede skall texten "Du matade in heltalet: " komma ut, det löser vi med Put igen. Och sedan skall det tal som finns lagrat i "I" komma ut på samma rad. Vi behöver inte göra något speciellt för att det ska hamna på samma rad, allting hamnar på samma rad tills man explicit säger att man vill hoppa ner till nästa (eller användaren trycker enter, då sker detta automatiskt). Hur skriver vi ut talet i "I" då, jo med en annan utmatningsrutin, som också heter Put. Put för heltal finns i paketet Ada.Integer_Text_IO.

9 1 with Ada.Text_IO; 2 with Ada.Integer_Text_IO; I : Integer; 10 Ada.Text_IO.Put("Mata in ett heltal: "); 11 Ada.Integer_Text_IO.Get(I) Ada.Text_IO.Put("Du matade in heltalet: "); 14 Ada.Integer_Text_IO.Put(I, Width => 0); 27 end In_Och_Utmatning; När man använder Put för heltal så får man det "högerjusterat" med 11 teckens "bredd" om man inte säger något. I vårt fall vill vi inte ha detta, vi vill ju bara få ut talet precis som det är (vänsterjusterat), för att få till detta så kan vi sätta denna "bredd" till 0. Vi måste också få till en extra tom rad här, så vi kan använda rutinen New_Line som finns i Ada.Text_IO. 16 Ada.Text_IO.New_Line; Ni kan förstå att det blir trist att skriva ut "Ada.Text_IO" och "Ada.Integer_Text_IO" hela tiden. På ett sätt är det bra, får då ser man ju exakt vilken Put det är man använder (eftersom de heter lika dant), men det är jobbigt att skriva så mycket. Det finns ett sätt att slippa skriva ut paketnamnen. Om man i samband med att man gör "with" på paketet också gör "use" så räcker det med att bara skriva namnet på den rutin man vill ha. jag gör det nu, så blir det mindre att skriva i fortsättningen. 1 with Ada.Text_IO; use Ada.Text_IO; 2 with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; Man brukar som sagt inte skriva satser på samma rad, men i detta fall kan det faktiskt vara okej. Frågan är bara, om jag inte skriver ut paketnamnet på de rutiner som jag vill använda, hur vet då datorn (eller egentligen kompilatorn) vilken som den skall använda? Svaret är att den kan titta på det som man skickar till rutinerna. Skickas det ett heltal till Put, då vet den att det är Put för heltal som gäller, om det är en textsnutt (vi kommer att säga "sträng" ofta) så är det Put för text vi vill ha. Att man kan ha samma namn på rutiner som gör olika saker kallas för överlagring och är en smidig feature i ett programmeringsspråk. Programmet är nu såpass färdigt att det kan utföra den första halvan av vårt problem. Men vad händer om användaren inte matar in tecknet 5 då? Vad händer om han skriver 5.6 eller "FEM"? Tja, Get klarar av vissa saker, men inte andra. I fallet då man matar in 5.6 kommer det ändå bara att bli 5 i I eftersom Get anser att den är klar när den stöter på en punkt i tangentbordsbufferten. Allting fungerar alltså ändå i detta fall, men observera att ".6" ligger kvar i tangentbordsbufferten! Hade det kommit en till Get hade denna fått problem. Därför kan det vara bra att göra en strategisk tömning av bufferten i detta läga. Det kan man göra med satsen "Skip_Line". 12 Skip_Line; Jag hade kunnat skriva Ada.Text_IO.Skip_Line, men eftersom vi nu har use på Ada.Text_IO så räcker det med "Skip_Line".

10 Om det första som Get ser är något som inte kan tolkas som ett heltal, t.ex. en punkt eller tecknet "F", kommer den att få fnatt. Hur ska den göra nu? Vi kommer komma tillbaka till just detta problem senare, men för tillfället räcker det med att ni vet att get kommer inte att fungera i detta fall. Faktum är att get kommer haverera totalt och dra med sig hela programmet ner i graven, ja - programmet dör (det kraschar). När ett program kraschar så avslutas det på en gång, man fortsätter inte med andra instruktioner utan man avslutar tvärt, ofta med ett läskigt felmeddelande. Resten av föreläsningen fortsätter på ett mycket likt sätt. Här är det ett ypperligt läge att låta studenterna vara med och utforma resten av programmet. När strängar tas upp är det viktigt att poängtera skillnaden mellan programmets strängvariabel och tangentbordsbufferten.

Exempel på ett litet Ada-program

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

Läs mer

5 Grundläggande in- och utmatning

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

Läs mer

Föreläsning 4: Poster

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

Läs mer

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

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

Föreläsning 1: Momstabellen i C++

Föreläsning 1: Momstabellen i C++ Nu sätter vi igång med C++! Föreläsning 1: Momstabellen i C++ På den här föreläsningen skall jag ta ett stort exempel och ett par små och med dessa hoppas jag att täcka in mycket av det som är grundläggande.

Läs mer

Prova på-laboration i Ada

Prova på-laboration i Ada Prova på-laboration i Ada Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2006-09-01 1. Introduktion till imperativa språk Programspråket Ada är resultatet av ett

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

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

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

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

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

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada. Sockets: server with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.Text_IO; with TJa.Sockets; use TJa.Sockets; procedure Server is -- Servern

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

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

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

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

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

Läs mer

Föreläsning 7: Filer

Föreläsning 7: Filer Genomgånget på FÖ: Föreläsning 7: Filer Undantag: Liten mall för undantag ("exceptions") och vad man har det till. Dock inte med betoning på allt, men det väsentliga är upptaget. Filer: P. Open(filvar,

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

Schemaunderlag för Programmering, grundkurs (TDDB18)

Schemaunderlag för Programmering, grundkurs (TDDB18) Allmänt Schemaunderlag för Programmering, grundkurs (TDDB18) Under VT1 håller jag (Torbjörn) tre kurser. Detta gör att det inte är lätt att få till ett optimalt schema för er studenter (tyvärr). En variant

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

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

Imperativ programmering. Föreläsning 2

Imperativ programmering. Föreläsning 2 Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program

Läs mer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer funktioner betyder att instruera en dator Ett program

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

Introduktion till MATLAB, med utgångspunkt från Ada

Introduktion till MATLAB, med utgångspunkt från Ada Introduktion till, med utgångspunkt från Desktop-miljö som innefattar editor, kommandofönster, graffönster och mycket mer. Interpreteras Snabbt att testa kommandon Terminal + emacs + gnatmake Kompileras

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val 732G11 Linköpings universitet 2011-01-26 1 2 3 4 Program recept 1 spaghetti = 100; 2 salt = 1; 3 olja = 5; 4 köttbullar = 8; 5 ketchup = 0,5; 6 koka(salt, spaghetti); 7 micra(köttbullar); 8 Om(micron ==

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

Objektorienterad programmering i Java

Objektorienterad programmering i Java bild 1 Objektorienterad programmering i Java Föreläsning 1 Kapitel 1-3 i kursboken Java Software Solutions bild 2 Läsanvisningar Kapitel 1 är en repetition av det ni förväntas kunna sedan tidigare. Det

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

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal

Läs mer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är

Läs mer

KOMPLETTERANDE HEMTENTAMEN TDDB53

KOMPLETTERANDE HEMTENTAMEN TDDB53 Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén februari 2009 Tentamen TDDB53 KOMPLETTERANDE HEMTENTAMEN TDDB53 Programmering i Ada för MI (MI-ADA) i februari 2009 Tentan lämnas

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

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

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

Läs mer

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av

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

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf Föreläsning1 Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf scanf Ni behöver läsa boken både för att

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

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

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

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

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

Föreläsning 1 & 2 INTRODUKTION

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

Läs mer

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

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

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

Läs mer

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1. Välkomna till DIT012 IPGO 1 Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1. Lärare och Handledare Kursansvariga, examinatorer, föreläsare och handledare

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

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

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard camilla.kirkegaard@liu.se Linköpings universitet Sweden October 14, 2013 1 Innehåll n n n n n Repetition Typomvandlingar

Läs mer

Programmering. Den första datorn hette ENIAC.

Programmering. Den första datorn hette ENIAC. Programmering Datorn är bara en burk. Den kan inget själv. Hur får man den att göra saker? Man programmerar den. Människor som funderar ut program som fungerar. Datorn förstår bara ettor och nollor och

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

Uppgift 1a (Aktiekurser utan poster)

Uppgift 1a (Aktiekurser utan poster) Uppgift 1a (Aktiekurser utan poster) Vi har lite olika upplägg i de kurser vi håller och i vissa kurser finns det med något som vi kallar "poster" (eng. "record"). I andra har vi inte med detta. Vi har

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

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra

Läs mer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded

Läs mer

Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot

Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot KUNGLIGA TEKNISKA HÖGSKOLAN Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot Josef Karlsson Malik 2015-09- 02 jkmalik@kth.se Introduktionskurs i datateknik (II0310) Sammanfattning

Läs mer

Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram

Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram Mål Lab 2: Underprogram Följande laboration introducerar underprogram; procedurer, funktioner och operatorer. I denna laboration kommer du att lära dig: Hur man skriver underprogram och hur dessa anropas.

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

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer 729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser

Läs mer

Introduktion till programmering, hösten 2011

Introduktion till programmering, hösten 2011 Föreläsning 1 Programmering är ett hantverk. Det betyder att man inte kan läsa sig till den förmågan, man måste träna och man tränar genom att skriva mer och mer avancerade program. Programmering förutsätter

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

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se Mål Så enkelt som möjligt: låg tröskel Ett riktigt programmeringsspråk: inget tak Roliga uppgifter som går

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

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på: TDDE10 TDDE11, 725G90 Objektorienterad programmering i Java, Föreläsning 1 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av Java Hello World!

Läs mer

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010 Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2010 Tentamen TDDB53 TENTAMEN TDDB53 (provkod TEN2) den 7 april 2010 kl 8 12 Jour: Emil Nielsen, tel 070 499 89 88 Hjälpmedel:

Läs mer

Grundkurs i programmering - intro

Grundkurs i programmering - intro Grundkurs i programmering - intro Linda Mannila 4.9.2007 Dagens föreläsning Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc. Hur arbetar en dator? Hur vi får datorn att förstå

Läs mer

Uppgift 1 (grundläggande konstruktioner)

Uppgift 1 (grundläggande konstruktioner) Uppgift 1 (grundläggande konstruktioner) a) Skriv ett program som låter användaren mata in 7 heltal och som gör utskrifter enligt nedanstående körexempel. Mata in 7 heltal: 1 0 0 3 1 1 1 Tal nr 2 var en

Läs mer

Övningar i 2D2050. Per-Anders Staav (kallas Pa) Epost: eller

Övningar i 2D2050. Per-Anders Staav (kallas Pa) Epost: eller Övningar i 2D2050 Per-Anders Staav (kallas Pa) Epost: pasta@kth.se eller pastaav@algonet.se Läser till civilingengör på Elektro 180 p inriktning mot programmering. Har jobbat extra som lärare på Nada sedan

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

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

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

Tentamen OOP 2015-03-14

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

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

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

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

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

Läs mer

Hur man programmerar. Exempel på problemlösning i Python

Hur man programmerar. Exempel på problemlösning i Python Hur man programmerar Exempel på problemlösning i Python Problemet Som vokaler i engelska språket räknar vi i denna uppgift bokstäverna aeuio, och som konsonanter alla andra bokstäver utom y (y fungerar

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

Planering av ett större program, del 2 - for och listor. Linda Mannila

Planering av ett större program, del 2 - for och listor. Linda Mannila Planering av ett större program, del 2 - for och listor Linda Mannila 9.10.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Utskrift Indata Felhantering Funktioner och moduler (grunder)

Läs mer

KOMPLETTERANDE HEMTENTAMEN TDDB53

KOMPLETTERANDE HEMTENTAMEN TDDB53 Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2003 Tentamen TDDB53 KOMPLETTERANDE HEMTENTAMEN TDDB53 Programmering i Ada för MI (MI-ADA) i mars 2003 Tentan lämnas ut 24/3

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning I: kursinfo, att programmera datorer, första programmet Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 Outline Hemsida Organization Examination

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

Anteckningar 1: Grundläggande saker

Anteckningar 1: Grundläggande saker UPPSALA UNIVERSITET Institutionen för lingvistik och filologi Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv11/pst1/ Programmering för språkteknologer I Anteckningar 1: Grundläggande saker 1 Programmering

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

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering λ Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/mafykht11/ λ Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga

Läs mer

Föreläsning 3. Programmering, C och programmeringsmiljö

Föreläsning 3. Programmering, C och programmeringsmiljö Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator

Läs mer

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

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

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

TDIU01 (725G67) - Programmering i C++, grundkurs

TDIU01 (725G67) - Programmering i C++, grundkurs . TDIU01 (725G67) - Programmering i C++, grundkurs Program, datatyper och IO Eric Elfving Institutionen för datavetenskap 7 oktober 2015 Översikt 2/14 Struktur på ett C++-program Köra ett program Variabler

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

Tentaupplägg denna gång

Tentaupplägg denna gång Tentaupplägg denna gång Denna tenta är uppdelad i två olika varianter. Det är helt ok att använda vilken variant ni vill. Det är ok att byta mitt under tentan om man så vill också. Variant 1: Uppgift 1,

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

Föreläsningsmaterial (Syntax och variabler)

Föreläsningsmaterial (Syntax och variabler) Föreläsningsmaterial (Syntax och variabler) Scenario Ett företag inom gruvindustrin som tillverkar järnpellets upplever en ojämnhet i produktionskvaliteten. Problemet yttrar sig genom att pelletskulorna

Läs mer

Datorteknik 2 (AVR 2)

Datorteknik 2 (AVR 2) Namn: Laborationen godkänd: Digitala system 15 hp Datorteknik 2 (AVR 2) LTH Ingenjörshögskolan vid Campus Helsingborg Enkel in- och utmatning. Drivrutiner. Bithantering. I denna laboration ska vi förbättra

Läs mer

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/vt11 Studentportalen http://www.studentportalen.uu.se Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se

Läs mer

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)

Läs mer