Programspråk. Programkonstruktion. Moment 1 Introduktion till programmering och programspråket Standard ML. Användning av funktionell programmering
|
|
- Hans Sundqvist
- för 8 år sedan
- Visningar:
Transkript
1 Programspråk Programkonstruktion Moment 1 Introduktion till programmering och programspråket Standard ML Vid programmering används något av många olika programspråk för att beskriva algoritmer och datastrukturer. C, C++, Java, ADA, ML, Pascal, BASIC,... Program i högnivåspråk Kompilator/ Interpretator Program i maskinspråk Programkörning PK 2009/10 moment 1 Sida 1 Uppdaterad PK 2009/10 moment 1 Sida 2 Uppdaterad Funktionell programmering Programspråk skiljer i hur instruktioner är utformade och sätts ihop. Instruktionerna i funktionella programspråk är funktioner. En funktion är något som tar data ( argument ) och beräknar nya data ( värde ). Det är inte samma sak som funktioner i matematiken. sinus Hejsan 3 (Obs att datavetare ofta börjar räkna med 0...) Funktionella program byggs genom sammansättning av funktioner. Hejsan längd 1 - deltecken deltecken Detta dataflödesdiagram visar beräkning av sista tecknet i en sträng PK 2009/10 moment 1 Sida 3 Uppdaterad n s Användning av funktionell programmering Har funnits inom datavetenskapen sedan lång tid (LISP 1962) Har fått växande använding även i praktiska tillämpningar, t.ex. Microsoft Excel (formelspråket är ett funktionellt språk) Ericssons telefonsystem (programspråket Erlang) Undersökningar har visat att program blir kortare och enklare och att utvecklingstiden blir kortare jämfört med traditionella språk som C. Funktionella språk har också en enklare semantik (betydelse). Nackdelen är att programmen ibland utnyttjar datorn något mindre effektivt spelar i dag mindre roll än effektivitet vid utvecklingen. Inst. för informationsteknologi bedriver forskning kring funktionell programmering i samarbete med bl.a. Ericsson. PK 2009/10 moment 1 Sida 4 Uppdaterad Programspråket Standard ML Funktionellt språk Programmen liknar (ytligt sett) matematiska uttryck. Få, enkla och tydliga begrepp lämpligt för utbildning Enkel struktur hos program (i alla fall jämfört med många andra språk...) Möjliggör snabb och effektiv programmering Den implementering av Standard ML vi använder på kursen kallas Moscow ML. Enkla ML-uttryck Uttryck är formler i språket ML som kan beräknas till ett värde. ML kan arbeta med olika sorters data, bl.a.: heltal: beräknas till 47 flyttal: 3.12*4.3 beräknas till text (strängar): size "Hej, hopp" beräknas till 9 även sammansatta uttryck : 1+(size "Hej, hopp"*2)beräknas till 19 Värden kan inte beräknas vidare utan är data i sig själva. Funktionsvärden beräknas genom att man skriver funktionen (dess namn) före argumentet. Vissa funktioner som i matematiken normalt skrivs mellan sina argument (t.ex. +, *) skrivs så även i ML. (Infix notation.) PK 2009/10 moment 1 Sida 5 Uppdaterad PK 2009/10 moment 1 Sida 6 Uppdaterad
2 Körning av Moscow ML-interpretatorn På Unix-systemen startas Moscow ML med kommandot mosml. För tydlighet skrivs inmatning på OH-bilderna med blå färg. prompter inmatningen kan delas på flera rader men måste alltid avslutas med semikolon. Moscow ML version 2.01 (January 2004) Enter `quit();' to quit ; inmatning (uttryck) > val it = 47 : int * ML svarar med 4.3; uttryckets värde och typ > val it = : real - size "Hej, hopp"; > val it = 9 : int - 1+(size "Hej, hopp"*2); > val it = 19 : int Jag återkommer till vad en typ är för något och vad val it betyder. PK 2009/10 moment 1 Sida 7 Uppdaterad Syntax Syntaxen hos ett programspråk är hur program får se ut. Programspråk har normalt mycket strikt syntax som inte tillåter misstag. Några exempel: funktion argument citationstecken operander infixuttryck String.sub("Hejsan",5) "Hej" sträng operator funktionsanrop Operatorer är funktioner som skrivs mellan sina argument ( infix ). Argumenten kan själva vara uttryck, t.ex. 1+2*3. Argument, operander och parametrar är olika namn på samma sak. Om funktionen har ett argument kan man i ML utelämna parenteserna t.ex. size "Hej" eller size("hej"). PK 2009/10 moment 1 Sida 8 Uppdaterad Syntaxfel Felaktig syntax gör att uttrycken inte kan tolkas. ML-systemet ger ett felmeddelande. - (1.0+ *3.0)/2.0;! (1.0+ *3.0)/2.0;! ^^^^^^^^^! Ill-formed infix expression Meddelandena är inte alltid hjälpsamma maskinen kan inte gissa vad man egentligen menar... Ibland kan felskrivningen ligga på ett helt annat ställe än där MLsystemet misslyckas med att tolka ett uttryck. Luring vid felaktig syntax Felaktig syntax kan göra att ML-systemet verkar sluta fungera *( ; 1+2; size "Hej"; Här har man glömt en högerparentes! ML väntar förgäves på den och verkar därför ha slutat svara. I detta läge kan man avbryta inmatningen med kontroll-c från tangentbordet och skriva in rätt. ^C> Interrupted *( ); val it = 14.0 : real Glömmer man ett citationstecken får man liknande effekt... - size "Hej, hopp; 1+2; PK 2009/10 moment 1 Sida 9 Uppdaterad PK 2009/10 moment 1 Sida 10 Uppdaterad Semantik Semantiken hos ett programspråk är vad program betyder. Betydelsen av... + är en funktion som beräknar summan av operanderna size är en funktion som beräknar längden av argumentet f X X op Y alltså... är att funktionen f beräknas med argumentet X är att funktionen op beräknas med argumenten X och Y betyder summan av 32 och 15, vilket beräknas till 47. size Hej, hopp betyder längden av strängen Hej, hopp, vilket beräknas till 9. PK 2009/10 moment 1 Sida 11 Uppdaterad Beräkning av uttryck Uttryck i ML beräknas i steg från vänster till höger, inifrån och ut dvs argument beräknas innan funktionen beräknas (eller anropas). Undantag: operatorer kan ha olika prioritet (precedens), t.ex. beräknas multiplikationer före additioner. Parenteser kan användas för att ändra beräkningsordningen. 1+size("Hej, " ^ "hopp")*2 > 1+size "Hej, hopp"*2 > 1+9*2 > 1+18 > 19 Blåmarkerade deluttryck är de som beräknas i nästa steg. ( > är ingen symbol i språket ML utan visar beräkningssteg.) PK 2009/10 moment 1 Sida 12 Uppdaterad
3 Beräkningsfel Alla uttryck går inte att beräkna även om syntaxen är riktig, t.ex. 1.0/0.0 eftersom division med noll inte är meningsfull. I så fall avbryts beräkningen av uttrycket och man får en felmeddelande med felkod istället för värde. - (1.0 / 0.0) + 2.0;! Uncaught exception:! Div I ML är felkoderna en speciell sorts data, kallade undantag (exceptions). Beräkningsfel kallas ofta exekveringsfel. Syntax- och semantikbeskrivningar Syntaxen hos programspråket är normalt noggrant beskriven, så att det exakt går att avgöra vad som är ett korrekt program. I kompendiet finns ett avsnitt SML syntax som beskriver syntaxen för huvuddelen av Standard ML genom att visa hur olika språkelement kan sättas ihop. Semantiken är i allmänhet något mindre exakt beskriven helt enkelt för att det är svårare att precis och fullständigt beskriva vad ett program egentligen betyder. För ML finns dock en exakt semantisk beskrivning. PK 2009/10 moment 1 Sida 13 Uppdaterad PK 2009/10 moment 1 Sida 14 Uppdaterad Typer Typer är mängder av data med samma slags egenskaper. Elementen i en typ kallas typens värden. Heltal (int) Flyttal (real) Strängar (string) 1 2 ~10 5 ~ Minustecken i ML ~ "Hej, hopp" "Uppsala" "ABC" "" "1" ML-notation: 1:int 1.0:real "1":string Obs! 1, 1.0 och "1" är alla olika. Varför är 1 och 1.0 olika? Jo, flyttal är approximationer med begränsad noggranhet! blir 0.0?!? (Representera aldrig riktiga pengar som flyttal.) PK 2009/10 moment 1 Sida 15 Uppdaterad Storleksbegränsningar I praktiken finns det begränsningar i hur stora (små) tal kan vara och hur långa strängar kan vara. Det är sällan detta leder till problem, men man måste vara medveten om det det kan leda till overflow. Begränsningarna kan variera mellan olika datorer/ml-system. Vanliga gränser för heltal är och ; > val it = : int ;! Uncaught exception:! Overflow Flyttal kan vara mycket större (i Moscow ML upp till ± ), men har begränsad noggranhet (i Moscow ML c:a 12 decimala siffror). PK 2009/10 moment 1 Sida 16 Uppdaterad Typkontroll (typning) Vad betyder ? 32+"Hej"? 32+"1"? Att addera värden av olika typ är inte alltid meningsfullt. Det fungerar på olika sätt i olika programspråk. Stark typning: Operationen förbjuds alltid (t.ex. ML). Automatisk typkonvertering: Värden görs om till rätt typ om det går t.ex > "1" > "Hej" ger typfel. Ingen typkontroll: Operationen utförs utan att kontrollera typerna. Resultatet är oförutsägbart kan variera från fall till fall. En möjlighet är 32+"1" > 81 om tecknet "1" kodas som 49!! Statisk typning: Typkontroll görs innan programmet körs (t.ex. ML). Dynamisk typning: Typkontroll görs under programkörningen typfel ger beräkningsfel. Stark och statisk typning minskar risken för programmeringsfel. PK 2009/10 moment 1 Sida 17 Uppdaterad Typning i ML ML är ett starkt och statiskt typat språk. Alla uttryck har en bestämd typ ; > val it = 33 : int; Liksom felaktig syntax gör typfel att uttrycken inte kan tolkas "Hej";! 32+"Hej";! ^^^^^! Type clash: expression of type! string! cannot have type! int Ett stränguttryck har använts där det krävts ett heltalsuttryck. PK 2009/10 moment 1 Sida 18 Uppdaterad
4 Mer om typfel Meddelandena är inte alltid hjälpsamma ML talar om var den hittar ett typfel, vilket kan vara ett helt annat ställe i programmet än där fel egentligen ligger! ML vet inte om programmerarens avsikter. - 2*( );! 2*( );! ^^^! Type clash: expression of type! real! cannot have type! int Felet här är att man skrivit 2 (ett heltal) i stället för 2.0 (ett flyttal), men ML upptäcker felet först när den tittar på flyttalet 3.0 och säger därför att felet är att 3.0 är ett flyttal där det borde vara ett heltal! Också funktioner har typer: argumenttyp size : string -> int resultattyp (värdetyp) Funktionstyper argumenttyper + : int*int -> int binder samman argumenttyperna (betyder inte multiplikation i detta sammanhang) + kan även typas real*real->real + sägs vara överlagrad (Egentligen är addition av heltal och flyttal helt olika funktioner som har samma namn. Argumenttyperna styr vilken som används.) PK 2009/10 moment 1 Sida 19 Uppdaterad PK 2009/10 moment 1 Sida 20 Uppdaterad Abstrakt och konkret Med abstraktion i programmering menas att man döljer eller skjuter åt sidan vissa egenskaper hos något. Detta gör man för att förenkla programmeringen så att man inte skall behöva tänka på detaljer. Du vill åka buss från Polacksbacken till Flogsta. Då behöver du inte veta vilken buss (alltså vilket fordon) du skall åka med vilket kan vara olika från gång till gång utan du åker med busslinje 21. Linje 21 är en abstraktion av de bussar som faktiskt kör mellan (bl.a.) Polacksbacken och Flogsta. Abstrakt och konkret (forts.) I programmering abstraherar man data genom att dölja hur data representeras. strängen "Hej, hopp" representeras egentligen som en följd av teckenkoder, t.ex. (med ISO kod, mera senare) 72, 101, 106, 44, 32, 104, 111, 112, 112 flyttalet 3.12 representeras egentligen som två tal, en mantissa och en exponent, t.ex. 312 och 2, där innebörden är 312*10-2 Hur data verkligen ser ut döljs av programspråket. Är mantissan och exponenten 312 resp. 2 eller är de och 1? Det spelar ingen roll det viktiga är hur man kan arbeta med dem. (Den konkreta) representationen har abstraherats bort. PK 2009/10 moment 1 Sida 21 Uppdaterad PK 2009/10 moment 1 Sida 22 Uppdaterad Bindningar Man kan namnge värden binda namn till värdet. - val a = 3; inmatning (deklaration) > val a = 3 : int - a; ML svarar med bundet > val it = 3 : int namn, värde och typ - a+1; > val it = 4 : int Namnet it binds alltid till det senast beräknade värdet. - it+1; > val it = 5 : int - val b = 5; > val b = 5 : int - a+b; > val it = 8 : int Bindningar är inte tilldelningar som i C, Java,... (Mer om det senare.) PK 2009/10 moment 1 Sida 23 Uppdaterad Definitioner Bindning kan ses som att namnet definieras att betyda ett värde. Detta är en form av abstraktion som kallas definitionsabstraktion. Man bortser från det konkreta värdet och använder istället ett abstrakt namn, i syfte att ge enkla/meningsfulla namn åt värden (t.ex. Math.pi i stället för underlättar läsning.) visa på en speciell användning av ett uttryck (t.ex. dagarpervecka eller maxantal i stället för 7. Man kan lätt ändra värdet i en användning utan att riskera påverka andra.) undvika dubbla beräkningar (t.ex. val a = 5*5; a*a; beräknar 5*5*5*5 med bara två multiplikationer) Symbolerna som utgör namn kallas identifierare. PK 2009/10 moment 1 Sida 24 Uppdaterad
5 (Rosens) namn What's in a name? That which we call a rose by any other name would smell as sweet. W. Shakespeare, Romeo och Julia Namnet som sådant saknar i de flesta programspråk betydelse. Det är bara den mänskliga läsaren av ett program som kan tolka namnet. Därför är det viktigt att ett tolkningen av ett namn faktiskt stämmer överens med innebörden av det som namnet används till. Man kan byta ut alla namn inom ett program (om det görs på ett konsekvent sätt) utan att påverka programmets funktion alls. (Detta gäller förstås inte namn som är definierade utanför själva programmet t.ex. Math.pi som är definierat i språket ML.) PK 2009/10 moment 1 Sida 25 Uppdaterad Uttryck och deklarationer Uttryck är delar av språket ML som beräknar ett värde. Deklarationer är delar av språket ML som inte beräknar något värde, men som påverkar hur uttryck beräknas (tolkas). - xyz; Uttrycket kan inte beräknas! xyz;! ^^^! Unbound value identifier: xyz - val xyz = 4711; Deklarationen binder xyz > val xyz = 4711 : int - xyz; Nu kan samma uttryck > val it = 4711 : int beräknas En deklaration kan dock innehålla ett uttryck som del (t.ex. valdeklarationer innehåller uttryck som beräknar värdet som binds). Likaså kan uttryck innehålla deklarationer som delar. (Mera senare.) PK 2009/10 moment 1 Sida 26 Uppdaterad Syntax för identifierare i ML Alfanumeriska identifierare en följd av bokstäver, siffror, understrykning och apostrof som börjar med en bokstav: Ex: x, X, x2, x, size, total_sum Obs att stora och små bokstäver skiljer sig åt. Endast engelska bokstäver är tillåtna inte t.ex. åäöåäö. Symboliska identifierare en följd av tecknen! % & $ # + - / : < = \ ~ ` ^ * Ex: +, *, :, ++,!?, >> Reserverade ord eller nyckelord (ord som kännetecknar eller delar upp konstruktioner i språket) får inte användas som identifierare. Ex: val, if, then, :, = (se kursbok eller ML-dokumentation) Formattering ML tillåter att blanka och radbrytningar används var som helst i program mellan olika symboler. ML kräver inte blanka och radbrytningar utom för att undvika att namn läses ihop (size x kan inte skrivas sizex). Varning! Även namn bestående av specialtecken kan läsas ihop! 3+~2 fungerar inte. ML tolkar +~ som en identifierare som den inte känner till. Skriv 3+ ~2. I ML-program kan man lägga in kommentarer förklarande text som inte ingår i beräkningen. Kommentarer inleds med (* och avslutas med *). T.ex.: 1+(* Längden på strängen *) size "abc" PK 2009/10 moment 1 Sida 27 Uppdaterad PK 2009/10 moment 1 Sida 28 Uppdaterad Villkorsuttryck Program kan välja mellan två olika uttryck beroende på ett villkor. if b then e1 else e2 Om villkoret b är uppfyllt beräknar villkorsuttrycket e1, annars e2. b skall beräkna ett värde av typ bool ett sanningsvärde. 10>20 > false, 1<2 > true > 20; > val it = false : bool - if 10 > 20 then 10 else 20; > val it = 20 : int Obs att e1 och e2 måste ha samma typ! (Varför?) Villkorsuttryck (forts.) if b then e1 else e2 b beräknas först och bara ett av e1 och e2 beräknas - val x = 0.0; > val x = 0.0 : real - if x < 0.01 then else 1.0/x; > val it = : real 1.0/x beräknas inte och det uppstår därför inget exekveringsfel. if x < 0.01 then else 1.0/x > if 0.0 < 0.01 then else 1.0/x > if true then else 1.0/x > PK 2009/10 moment 1 Sida 29 Uppdaterad PK 2009/10 moment 1 Sida 30 Uppdaterad
6 Andra typer Andra grundläggande typer i ML: char Enstaka tecken. Syntax: #"1" för t.ex. tecknet 1. unit Trivial typ. unit har ett enda värde som skrivs (). () används när syntaxen för språket ML kräver ett uttryck, men man inte är intresserad av något. Typen int (heltal) Syntax: en eller flera siffor. Negativa tal föregås av ~ ( tilde ). Exempel: 1, ~25 +, -, *, div int*int->int (de fyra räknesätten, heltalsdivision 7 div 3 > 2) mod int*int->int (rest 7 mod 3 > 1) =, <> int*int->bool (lika med, inte lika med) <, <=, >, >= int*int->bool (storleksjämförelser) ~ int->int (negation ~(2-3) > 1) abs int->int (absolutbelopp abs ~3 > 3) PK 2009/10 moment 1 Sida 31 Uppdaterad (alla tvåställiga funktioner på denna sida är infixa) PK 2009/10 moment 1 Sida 32 Uppdaterad Typen real (flyttal) Syntax: en eller flera siffor med decimalpunkt och/eller följd av tiopotens (bokstaven E följd av siffror) Negativa tal föregås av ~. Termen flyttal (floating point) kommer sig av att decimalpunkten inte står på ett bestämt ställe i talet. Exempel: 1.0, 3E4 (=3000.0), 3.4E~2 (=0.034) Grundläggande operationer på flyttal: +, -, *, / real*real->real (de fyra räknesätten) <, <=, >, >= real*real->bool (storleksjämförelser) ~ real->real (negation) abs real->real (absolutbelopp) (alla tvåställiga funktioner på denna sida är infixa) PK 2009/10 moment 1 Sida 33 Uppdaterad Likhetstyper Värden av de flesta typer kan jämföras med = och <>. Detta gäller inte flyttal i Standard ML. Anledningen är att flyttal är approximationer och strikta likhetsjämförelser i allmänhet inte är rätt sak att göra =1.0?!? Det ML-system som vi använder (Moscow ML) tillåter likhetsjämförelser mellan flyttal, men det är ett (riskabelt!) tillägg till ML. Här finns alltså dessutom: =, <> real*real->bool (lika med, inte lika med) Typer som kan likhetsjämföras kallas likhetstyper. PK 2009/10 moment 1 Sida 34 Uppdaterad Biblioteket Math Det finns programbibliotek med färdigskrivna funktioner som man kan ha användning för. Ett sådant bibliotek är Math. Ett urval funktioner: Funktion Typ Math.sqrt real->real (kvadratrot) Math.sin real->real (sinus vinkeln i radianer) Math.cos real->real (cosinus vinkeln i radianer) Math.tan real->real (tangens vinkeln i radianer) Math.ln real->real (naturliga logaritmen) Math.pow real*real->real (exponentiering) Math.pow(10.0,3.0) > PK 2009/10 moment 1 Sida 35 Uppdaterad Laddning av bibliotek De flesta bibliotek finns inte tillgängliga från början utan ligger på filer som måste läsas in (laddas) innan de kan användas. Bibliotek laddas med funktionen load. - Math.sqrt(4.0);! Math.sqrt(4.0);! ^^^^^^^^^! Cannot access unit Math before it has been loaded. - load "Math"; > val it = () : unit - Math.sqrt(4.0); > val it = 2.0 : real PK 2009/10 moment 1 Sida 36 Uppdaterad
7 Typen string (strängar) Syntax: En teckenföljd med citationstecken (") omkring. =, <> string*string->bool (lika med, inte lika med) <, <=, >, >= string*string->bool (storleksjämförelser) ^ string*string->string (sammansättning) size string->int (längd) String.substring string*int*int->string (delsträng) (alla tvåställiga funktioner är infixa) "Hej, " ^ "hopp" > "Hej, hopp" String.substring("abcd",1,2) > "bc" Citrationstecken i strängen skrivs \". Bakvänt snedstreck skrivs \\. Exempel: "ab\"cd\\" är en sträng med 6 tecken: a,b,",c,d och\. PK 2009/10 moment 1 Sida 37 Uppdaterad Typen char (tecken) Syntax: Tecknet # följt av en sträng med exakt ett tecken. Grundläggande operationer på tecken: =, <> char*char->bool (lika med, inte lika med) <, <=, >, >= char*char->bool (storleksjämförelser) String.sub string*int->char (tecken ur sträng) String.sub("abcd",1) > #"b" PK 2009/10 moment 1 Sida 38 Uppdaterad Typen bool (sanningsvärden) Syntax: true respektive false Observera: true och false är data i typen bool. De är konstanta värden ungefär som 1, 3.0 och "Hej" Funktioner med värdetyp bool kallas ibland predikat. =, <> bool*bool->bool (lika med, inte lika med) not bool->bool (logisk negation true om argumentet är false och tvärtom.) orelse bool*bool->bool (logisk eller true om endera argument är true, false annars.) andalso bool*bool->bool (logisk och true om båda argument är true, false annars.) PK 2009/10 moment 1 Sida 39 Uppdaterad orelse och andalso igen 1 = 2 orelse not 3 = 4 > false orelse not 3 = 4 > false orelse not false > false orelse true > true orelse och andalso är inte vanliga funktioner deras andra argument beräknas inte om det inte behövs. Man säger att de är lata i sitt andra argument. (Motsatsen till lat beräkning alltså det normala att alltid beräkna argument kallas för ivrig beräkning.) 3>2 orelse 3.0<1.0/0.0 ger inte exekveringsfel trots divisionen med noll. 3>2 orelse 3.0<1.0/0.0 > true orelse 3.0<1.0/0.0 > true PK 2009/10 moment 1 Sida 40 Uppdaterad Typomvandlingar Det finns funktioner som vid behov kan byta typ på data. Exempel: real int->real (från heltal till flyttal) round real->int (från flyttal till heltal, avrundat) trunc real->int (samma, men decimaler kastas) str char->string (från tecken till sträng) ord char->int (från tecken till teckenkod) chr int->char (från teckenkod till tecken) Int.toString int->string (från heltal till sträng) trunc 4.7 > 4 ord #"1" > 49 Int.toString 42 > "42" PK 2009/10 moment 1 Sida 41 Uppdaterad Teckenkodning Det finns ingen bestämd teckenkodning för ML utan det beror på vilken dator och operativsystem man använder. Funktionerna ord och chr kan alltså fungera olika på olika datorer/operativsystem. Vid användning av ord och chr måste man alltså vara försiktig om programmet skall vara portabelt (dvs gå att flytta till annan dator). En av de vanligaste teckenkodningarna är en internationell standard som kallas ISO och är avsedd för västeuropeiska språk. Den används av de flesta Unix-system samt är standardkodning på World Wide Web. ISO är en utökning av den vanliga äldre koden ASCII (American Standard Code for Information Interchange) Apple MacOS och Microsoft Windows har egna, ej standardiserade, teckenkodningar som också bygger på ASCII. PK 2009/10 moment 1 Sida 42 Uppdaterad
Programkonstruktion och datastrukturer
Välkomna till kursen i Programkonstruktion och datastrukturer h http://www.it.uu.se/edu/course/homepage/pkd/ht10 Huvudlärare Lars-Henrik Eriksson lhe@it.uu.se, http://www.it.uu.se/katalog/lhe Pierre Flener
Programkonstruktion och datastrukturer
Välkomna till kursen i Programkonstruktion och datastrukturer h http://www.it.uu.se/edu/course/homepage/pkd/ht12 Huvudlärare Lars-Henrik Eriksson lhe@it.uu.se, http://www.it.uu.se/katalog/lhe PKD 2012/13
Programkonstruktion och datastrukturer
Välkomna till kursen i Programkonstruktion och datastrukturer h http://www.it.uu.se/edu/course/homepage/pkd/ht11 Huvudlärare Lars-Henrik Eriksson lhe@it.uu.se, http://www.it.uu.se/katalog/lhe Pierre Flener
AssiML. Användarbeskrivning
AssiML A spreadsheet in ML Användarbeskrivning 2003-10-15 AssiML version 1.1 Lars-Henrik Eriksson Institutionen för informationsteknologi Uppsala universitet lhe@it.uu.se You will be assimilated. Resistance
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
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
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
Programmering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!
F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Von Neumann-arkitekturen Gemensamt minne för programinstruktioner och data. Sekventiell exekvering av instruktionerna.
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...
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
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
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
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
6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor på boken Lunell: Datalogi-begreppen och tekniken Obs! Andra frågor än dessa kan komma på tentan! 1. Konvertera talet 186 till
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
Variabler, värden och typer
Variabler, värden och typer Viktigt att förstå på djupet: För programmering i många språk, t.ex. Java För kommande objektorientering! jonas.kvarnstrom@liu.se 2017 Fråga kommentera avbryt! Intro till variabler
DD1361 Programmeringsparadigm. Carina Edlund
DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp
Parameteröverföring. Exempel. Exempel. Metodkropp
Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I
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
Variabler, värden och typer
Variabler, värden och typer Viktigt att förstå på djupet: För programmering i många språk, t.ex. Java För kommande objektorientering! TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Fråga kommentera
"Referentiell transparens"
"Referentiell transparens" Hittills har jag beskrivit körningen av ML-program genom att uttryck ersätts med sina värden: fun fact(0) = 1 fact(n) = n*fact(n-1) fact(3) ~> 3*fact(3-1) ~> 3*fact(2) ~> 3*(2*fact(2-1))
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.
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
Programkonstruktion och datastrukturer. Formell verifiering eller hur man bevisar att program gör rätt utan att testa dem
Programkonstruktion och datastrukturer Formell verifiering eller hur man bevisar att program gör rätt utan att testa dem PKD 2012/13 Formell verifiering Sida 1 Uppdaterad 2008-11-28 Formell verifiering:
F2 Datarepresentation talbaser, dataformat och teckenkodning
F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Jonas Wisbrant Datarepresentation I en dator lagras och behandlas all information i form av binära tal ettor och nollor.
Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat
Cheat sheets Nedan finns referensblad för fyra olika programmeringsspråk, som kan bli aktuella att använda i matematikundervisning. MATLAB är en välkänd programvara för att göra matematiska beräkningar,
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
Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1
Kursinfo Introduktion till programmering Undervisning Föreläsning 1 Kursinformation Inloggning, filsystem, kommandotolk några inledande exempel Föreläsningar Fem föreläsningar, vardera 45 minuter. Allmänna
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
Introduktion till formella metoder Programmeringsmetodik 1. Inledning
Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur
Programkonstruktion. Tentamen,
Programkonstruktion (Programmeringsmetodik DV1) Tentamen, 2008-03-10 Lars-Henrik Eriksson Institutionen för informationsteknologi Uppsala Universitet Tid: 0900-14:00. Börja med att läsa igenom alla frågorna
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
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
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
Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser
// En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa
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
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
Tabeller. Programkonstruktion. Moment 8 Om abstrakta datatyper och binära sökträd. Implementering av tabellen. Operationer på tabellen
Programkonstruktion Moment 8 Om abstrakta datatyper och binära sökträd Tabeller En viktig tillämpning är tabellen att ifrån en nyckel kunna ta fram ett tabellvärde. Ett typiskt exempel är en telefonkatalog:
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
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
Programmeringsmetodik DV1 Programkonstruktion 1. Moment 8 Om abstrakta datatyper och binära sökträd
Programmeringsmetodik DV1 Programkonstruktion 1 Moment 8 Om abstrakta datatyper och binära sökträd PK1&PM1 HT-06 moment 8 Sida 1 Uppdaterad 2005-09-22 Tabeller En viktig tillämpning är tabellen att ifrån
Introduktion till programmering och Python Grundkurs i programmering med Python
Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?
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
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
Extramaterial till Matematik Y
LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TVÅ Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta
Obligatorisk uppgift: Numerisk kalkylator
Informationsteknologi Tom Smedsaas 22 augusti 2018 Obligatorisk uppgift: Numerisk kalkylator Programmet skall läsa in aritmetiska uttryck samt beräkna och skriva ut deras värden. Programmet ska läsa från
Typsystem. Typsystem... Typsystem... Typsystem... 2 *
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
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
Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
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
Pythons standardbibliotek
Pythons standardbibliotek Python 3 skall, enligt standarddokumenten http://docs.python.org/py3k/library/index.html ha stöd för vissa funktioner, typer och datastrukturer Så länge man håller sig till detta
Objektorienterad programmering Föreläsning 4
Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion
Programkonstruktion och datastrukturer. Moment 9 Om högre ordningens funktioner. PKD 2010/11 moment 9 Sida 1 Uppdaterad
Programkonstruktion och datastrukturer Moment 9 Om högre ordningens funktioner PKD 2010/11 moment 9 Sida 1 Uppdaterad 2010-12-02 Anonyma funktioner igen En funktion som inte är namngiven kallas för en
Programmeringsmetodik DV1 Programkonstruktion 1. Moment 4 Om rekursion. PK1&PM1 HT-06 moment 4 Sida 1 Uppdaterad
Programmeringsmetodik DV1 Programkonstruktion 1 Moment 4 Om rekursion PK1&PM1 HT-06 moment 4 Sida 1 Uppdaterad 2006-10-17 Summera godtyckligt antal tal (* sumupto n Type: int->int Pre: n >= 0, n
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 (
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
C++ - En introduktion
C++ - En introduktion De imperativa grunderna för dig som kan programmera Eric Elfving Institutionen för datavetenskap 1 / 72 Översikt 1 Grunderna 2 Uttryck och satser 3 Funktioner 4 Poster 1 Grunderna
System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);
1 Villkor och styrsatser I de program vi sett tidigare har programkörning inneburit att sats efter sats utförts i den ordning de skrivits i källkoden. Vi har inte kunna ändra programmets uppförande beroende
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å
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
Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)
Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.
Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2. Hur vi jobbar med ett program. 1. Vad vi skriver (med hjälp av redigeringsprogrammet Emacs) på datorn: // Fig. 2.1: Welcome1.java // A first program in
DD1314 Programmeringsteknik
Skolan för Datavetenskap och kommunikation DD1314 Programmeringsteknik Föreläsning 1 o print o variabler o reserverade ord o input o kommentarer o beräkningar o datatyper o if-satser Kursinformation Programmering:
Program & programmering
Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,
Extramaterial till Matematik Y
LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ ETT Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. Ett av dem är Python, som du ska få
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
Programkonstruktion och datastrukturer. Moment 9 Om högre ordningens funktioner. PKD 2011/12 moment 9 Sida 1 Uppdaterad
Programkonstruktion och datastrukturer Moment 9 Om högre ordningens funktioner PKD 2011/12 moment 9 Sida 1 Uppdaterad 2012-01-15 Anonyma funktioner igen En funktion som inte är namngiven kallas för en
Programkonstruktion. Tentamen,
Programkonstruktion (Programmeringsmetodik DV1) Tentamen, 2009-08-24 Lars-Henrik Eriksson Institutionen för informationsteknologi Uppsala Universitet Tid: 14:00-19:00. Börja med att läsa igenom alla frågorna
Operatoröverlagring. endast operatorsymboler definierade i C++ kan överlagras = += -= *= /= %= ^= &= = <<= >>= < > <= >= ==!= && > ->*, [ ] ( )
TDDC76 PoD OH Föreläsning C++ 83 Operatoröverlagring endast operatorsymboler definierade i C++ kan överlagras + - * / % ^ & ~! > = += -= *= /= %= ^= &= = = < > = ==!= && ++ -- -> ->*, [ ]
(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java
(Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart
Föreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,
Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1 Måndagen den 10 januari 2011, 8.15 12.15 Tentamen består av två delar, del A och del B. Del A innehåller 10 kryssfrågor på olika teman
7 november 2014 Sida 1 / 21
TANA09 Föreläsning 2 Talrepresentation i datorer. Flyttalssystem. Datoraritmetik och Beräkningsfel. Beräkningsfelsanalys och Kancellation. Serier och Resttermsuppskattningar. Tillämpning - Beräkning av
Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)
Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201) Lars-Henrik Eriksson Fredag 5 april 2013, kl 14:00 17:00, i Polacksbackens skrivsal Hjälpmedel: Inga. Inte heller elektronisk
TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017
FÖRELÄSNING 1 TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017 Introduktion till kursen Schemespråkets grunder Enkla exempel Jalal Maleki Institutionen för datavetenskap Linköpings universitet
ENKEL Programmering 3
ENKEL Programmering 3 Figurer i långa rader Titta på de olika figurerna i de olika raderna. Kan du se att de olika figurerna i varje rad är placerade enligt ett visst mönster? Kan du lista ut vilken figur
Summera godtyckligt antal tal. Programkonstruktion. Moment 4 Om rekursion. Fullständigt resonemang för summeringen. Analys av summeringsproblemet
Summera godtyckligt antal tal Programkonstruktion Moment 4 Om rekursion Pre: n >=, n
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
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
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
Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner
Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY
Grunderna i C++ ARK 385: Virtuella Verktyg i en Materiell värld AT Arkitektur & Teknik Chalmers Tekniska Högskola 2009 - Kursen skapades (3 förel.) 2010-6 förel. + 2 projekt 2011-8 förel. Helt omarbetade
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
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
Tabeller. Programkonstruktion. Moment 8 Om abstrakta datatyper och binära sökträd. Specifikationer för tabellfunktionerna. Operationer på tabellen
Programkonstruktion Moment 8 Om abstrakta datatyper och binära sökträd Tabeller En viktig tillämpning är tabeller att ifrån en nyckel kunna ta fram ett tabellvärde. Ett typiskt exempel är en telefonkatalog:
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
Numeriska Metoder och Grundläggande Programmering för P1, VT2014
Numeriska Metoder och Grundläggande Programmering för P1, VT2014 Föreläsning 2: Styrstrukturer & Programmeringsstrategi (Kap. 3 4 i MATLAB Programming for Engineers, S. Chapman) January 21, 2014 Innehåll:
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
Introduktion till Matlab
Introduktion till Matlab Inledande matematik, I1, ht10 1 Inledning Detta är en koncis beskrivning av de viktigaste delarna av Matlab. Till en början är det enkla beräkningar och grafik som intresserar
DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1
Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Python-intro: print variabler reserverade ord input kommentarer beräkningar datatyper if-satser
1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1
Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Diagnostiskt prov Python-intro: print variabler reserverade ord input kommentarer beräkningar
ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
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)
Webbsidor och webbservrar
Webbsidor och webbservrar Server HTTP-protokollet Dokument (t.ex. HTML kod) Klient URL (t.ex. länk) Normal funktion hos webben: Användaren klickar på länk eller anger URL på annat sätt. Servern lokaliserar
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0
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
Data, typ, selektion, iteration
Data, typ, selektion, iteration En programmeringkurs på halvfart IDT, MDH ttp://www.negative-g.com/nolimits/no%20limits%20defunct%20coasters.htm 1 Dagens agenda Talrepresentation Typkonvertering Sekvens
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 -