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

Save this PDF as:
 WORD  PNG  TXT  JPG

Storlek: px
Starta visningen från sidan:

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

Transkript

1 1 Datorn som miniräknare I detta avsnitt tas upp hur man kan skriva program som utför enkla räkneoperationer och skriver resultat på skärmen. Syftet är i huvudsak att se hur flera satser kan bygga upp ett javaprogram utan att behöva fördjupa oss i djupa teoretiska resonemang. 1.1 Räkneoperationer I java kan man utföra de vanliga räkneoperationerna som addition, subtraktion, multiplikation och division med ungefär samma syntax ( skrivsätt ) som i algebran. Exempel: a = * 4; är en giltig sats som ger en variabel döpt a värdet 14. Notera att den måste avslutas med ett semikolon. Räknereglerna är desamma som i algebran dvs. först utförs operationen 3 * 4 (12) därefter utförs operationen Likhetstecknet skiljer sig en hel del från algebran. I java kallas likhetstecknet = tilldelningsoperator och innebär att man för över innehållet från högersidan (14) till variabeln på vänstersidan. Då satsen är utförd kommer variabeln a att innehålla värdet Variabler I exemplet ovan används namnet a för att ange en variabel, en slags behållare för ett värde, snarlik variabler inom algebra. För att kunna använda en variabel måste den deklareras. I deklarationen anger man vilken typ av data som variabeln innehåller. För variabeln i exemplet som ska innehålla ett numeriskt värde kan deklarationen se ut som int a; Denna deklaration säger att a är ett heltal ( int, förkortning för integer, heltal). Man kan se det som att en deklaration skapar en variabel med ett visst namn. En deklaration måste alltid komma före det att man använder variabeln. Det data som a refererar till kallas för en instans av ett heltal ( int ). Exempel, enkelt räkneprogram: class Calculator { public static void main(string [] arg) { // Räkneprogram int a; int b; b = 4; a = b * 3 + 2; System.out.println("Variabeln a har värdet "+a); System.out.println("Variabeln b har värdet "+b); } } Om programmet inte går att köra kontrollerar du att du matat in rätt programkod. Vi känner igen de första raderna från Hello World programmet. På rad 6 finns en deklaration utav en variabel döpt a som första programsatsen i main(). Rad 7 skapar ytterligare en variabel döpt b. Nästa sats tilldelar b värdet 4. Variabeln b innehåller hädanefter värdet 4.

2 Rad 10: a = b * 3 + 2; Rad 10 använder värdet av variabeln b I uträkningen av värdet för variabeln a. Uttrycket till höger om tilldelningsoperatorn = kan alltså läsas ut som, 4 * (14). Eftersom variabeln b tidigare tilldelades värdet 4. Rad 11 fungerar på samma sätt som utmatningen av texten "Hello World" i Hello World programmet men man lägger ihop Texten "Variabeln... " och textrepresentationen för värdet i a. Denna typ av sammanslagning är speciell för just textsträngar. Om inte en text varit inblandad hade resultatet blivit väsentligen annorlunda. Rad 11: System.out.println("Variabeln a har värdet "+a); Variabeln a är deklarerad som ett heltal och därför kommer det att skrivas ut ett heltal på skärmen, dvs inga decimaltecken eller andra konstrigheter. Eftersom a tilldelades värdet 14 på Rad 10 kommer siffran 14 att skrivas ut Rad 12 fungerar på samma sätt rad 11. Om man skulle vlija ha de båda utskrifterna på samma rad kan man använda sig av metoden print istället för println Rad 11: System.out.print("Variabeln a har värdet "+a); print fungerar på samma sätt som println men ingen radbrytning skrivs ut efter texten.

3 2 Datatyper och Uttryck I räkneprogrammet tidigare såg vi att java kräver deklarationer av alla variabler som används. I räkneprogrammet användes bara variabler av heltalstyp, int, men det finns naturligtvis andra typer av variabler som kan användas. 2.1 Datatyper De vanligaste datatyperna är int Heltal ( integer 32 bitar) short Mindre heltal ( short integer 16 bitar) long Stort heltal ( long integer 64 bitar) float Mindre rella tal ( floating point number ) double Rella tal/flyttal ( double precision floating point number ) char Tecken ( character) byte 8 bitars heltal (-128 till 127) boolean Logiskt värde ( kan anta true eller false ) void Tomrum/ingenting Dessa datatyper kallas med ett gemensamt namn för enkla eller primitiva datatyper. I motsats till C++ kan inte dessa datatyper deklareras unsigned. 2.2 Deklarationer Deklarationer görs alltid på formen datatyp variabelnamnslista; En variabelnamnslista består av ett eller flera variabelnamn åtskilda av kommatecken. En lista är ett återkommande begrepp som omfattar fler saker än just variabelnamn. Generellt är en lista noll, ett eller flera element åtskilda av kommatecken. 2.3 Identifierare Det finns flera typer av identifierare där variabelnamn är en av dessa typer. De variabelnamn vi sett hittills har varit enstaka bokstäver, java tillåter emellertid ganska utförliga namn på variabler. Ett annat exempel på identifierare är metodnamn och klassnamn tex. main och JavaFun Reglerna för namngivning av identifierare är Det första tecknet måste vara en bokstav eller tecknet '_' (understreck/ underscore). Efterföljande tecken kan vara bokstäver eller siffror Tecknen å, ä och ö är tillåtna men av olika anledningar olämpliga Namnen kan vara hur långa som helst. Det finns ingen övre gräns.

4 2.3.1 Godkända identifierare / variabelnamn hello HeLlO _x _12 hellodude2 number_of_variables_in_my_program Observera att man skiljer på versaler och gemener i identifierare. Variabeln a är inte samma variabel som variabeln A Icke godkända identifierare 2dudes hello dude x-y "hel" poäng man får inte börja med en siffra mellanslag är inte tillåtna i variabelnamn tecknet är ej tillåtet " är inte tillåtet, anger dessutom texten hel ä är inte ett tillåtet tecken Det kan därför vara lockande att använda svenska namn som variabelnamn. Det finns nackdelar med det. Exempelvis om man använder ett svenskt namn bör man låta alla namn vara svenska. Javas klassbibliotek har emellertid bara engelska identifierare, och det gör att programmet blir svårläst. Om man döper sina klasser med åäö kan även filsystemet ställa till det för javakompilatorn, även fast Java självt klarar av åäö. Författaren använder av den anledningen uteslutande engelska identifierare i "skarp" programkod. Det är dessutom en betydande del av jordens befolkning som inte förstår svenska variabelnamn. I detta kompendium har jag däremot försökt att använda mig av identifierare med svenska namn för enkelhetens skull Initieringssatser En initiering är att ge en deklarerad variabel ett startvärde. Då en variabel deklareras med ex. int i; har variabeln i ett okänt startvärde. För att i ska få ett meningsfullt värde måste man göra en tilldelning. En variation på tilldelningar är initieringar, som är en kombination av en deklaration och en tilldelning. Syntaxen ser ut som datatyp variabelnamn = startvärde;

5 2.3.4 Exempel på giltiga satser med variabeldeklarationer och intieringar int n; int i, j; double x; // i, j är en variabellista med två element // x deklareras som ett flyttal long numberofpaalokas, numberofcards; // två stora heltalsvariabler deklareras bool logic1, logic2, illogical; // tre variabler som kan anta värdet true och false char c; // variabel som innehåller ett unicode tecken ex 'A' double myfloatnumber = ; // initierad variabel int magicnumber = 42; // initierad variabel Då man väljer variabelnamn för variabler i programmet bör man tänka efter. Namnet ska beskriva variabelns betydelse tydligt utan att bli för bökigt att skriva. number_of_paalokas skulle med fördel bytas mot npalookas eller liknande Nyckelord Det finns i språket en uppsättning fördefinierad ord med speciella betydelser som inte får användas som identifierare, dessa kallas nyckelord. abstract continue for new switch assert default if package synchronized boolean do goto private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const float native super while Datatypernas egenskaper Man använder variabler av olika datatyper till olika syften, och man måste välja datatyp med omsorg då man deklarerar sina variabler Lagring av enkla datatyper Java har följande storlekar på sina enkla datatyper char byte short int long float double 2 byte Unicode 1 bytes 2 bytes 4 bytes 8 bytes 4 bytes 8 bytes Då en variabel av typen int lagras i datorns minne kommer den således att uppta 4 bytes minne.

6 Man kan enkelt räkna fram vilka talområden detta ger för heltalstyperna om man följer metoden i kompendiet "Datorsystem och programhantering", avsnitt intern datarepresentation. Samma avsnitt anger dessutom hur talområdet för flyttalen ska tolkas. byte till 127 short till int long +- 2^63 float E+-37, 6 siffrors noggrannhet double E+-308, 15 siffrors noggrannhet En tumregel är om man inte behöver använda sig av ett flyttal, dvs man ska räkna ett antal av något, el liknande, använder man int, annars använder man double. Exempel räkneprogram med olika datatyper class Compute { public static void main(string [] arg) { int antalbananer, antalapelsiner; double medelantal; } antalbananer = 89; antalapelsiner = 56; medelantal = (antalbananer + antalapelsiner) / 2.0; System.out.println( "Snitt "+ medelantal +" frukter av varje sort"); Det är en god vana att använda beskrivande variabelnamn. Rad 1-4 är de vanliga satserna för att påbörja huvudprogrammet. Rad 5 skapar två heltal med namnen antalbananer och antalapelsiner. Rad 6 skapar ett flyttal, dvs ett tal med decimaldel som ex Flyttalet medelantal deklareras som double trots att talområdet för float mer än väl räcker till. Motivet till att välja float skulle vara att en double ansågs ta upp för mycket minne. Floatdeklarationen påverkar emellertid ytterst sällan programmets storlek i någon väsentlig grad, därför väljer man alltid double av bekvämlighet. Rad 8 och 9 är vanliga tilldelningar. Rad 11: medelantal = (antalbananer + antalapelsiner) / 2.0; Parenteser används för att additionen ska utföras innan divisionen (annars blir det ju inget medelvärde). Därefter sker division med 2.0. Det inskrivna värdet 2.0 ska betraktas som att vara av typen float medan ett värde skrivet som 2 ska betraktas som att vara av typen int. Prova att ändra värdet 2.0 till värdet 2. Blir det någon skillnad vid programkörning? Rad 13: sort"); System.out.println( "Snitt "+ medelantal +" frukter av varje Här slår texten ihop med variabeln medelantal som är av typen double, variabeln skrivs därför ut som ett flyttal till skärmen, med decimaldel.

7 Längre fram i programmeringsstudierna är det viktigt att inse skillnaden mellan den interna representationen av heltal och flyttal (dess bitmönster i minnet) och dess representation på skärmen. På skärmen är det en textrepresentation som syns och i minnet är det en heltalsrepresentation respektive en flyttalsrepresentation som finns. Resultatet av programkörning blir Snitt 72.5 frukter av varje sort Som synes innehåller 72.5 en decimaldel som inte hade kunnat erhållits om vi deklarerat medelantal som heltal. 2.4 Uttryck och operationer Ett uttryck är en speciell syntaktisk konstruktion. De flesta programsatser är i sig själva ett uttryck, eller innehåller ett uttryck. Vi har redan sett flera exempel på uttryck med operatorer. Vi har bland annat sett: Uttryck 1: antalbananer = 89; och Uttryck 2: medelantal = (antalbananer + antalapelsiner) / 2.0; och Uttryck 3: sort"); System.out.println( "Snitt "+ medelantal +" frukter av varje Deklarationssatserna räknas inte till uttryck Uttryck 1 är ett enkelt uttryck medan uttryck 2 och 3 är sammansatta. Vi kan se att det enkla uttrycket 1 består utav en operator, =, och två operander. antalbananer och 89. Det sammansatta uttrycket är flera hopslagna enkla uttryck Binära operationer Den vanligaste formen av enkla uttryck är just en binär operator och dess operander. Operatorn kallas binär eftersom den alltid behöver två operander. De binära operatorerna i java är:

8 Aritmetiska operatorer + Addition Subtraktion * Multiplikation / Division % Modulus += Addition med tilldelning = Subtraktion med tilldelning *= Multiplikation med tilldelning /= Division med tilldelning %= Modulus med tilldelning Tilldelningsoperator = Tilldelning Logiska operatorer!= Icke lika med < Mindre än <= Mindre än lika med == Lika med > Större än >= Större än lika med && Logiskt AND Logiskt OR Bitoperatorer ^ Exklusivt OR & Bitvis AND Bitvis OR ^= Exklusivt OR med tilldelning &= Bitwise AND med tilldelning = Bitvis OR med tilldelning De enkla räkneoperatorerna har behandlats tidigare, förutom modulusoperatorn. Varje räkneoperator har en tilldelningsvariant, exempelvis har + operatorn en variant +=. Denna operator är en ren bekvämlighet. I program stöter man ofta på situationer när en variabel ska öka eller minska i värde. Exempelvis int i; i = 65; System.out.println( " i har nu värdet 65 "); i = i + 8; System.out.println( " i har nu värdet 73 "); Exemplet är ett lösryckt programavsnitt som måste fogas in i main(string[] ) metoden för att fungera som program. Rad 4 i exemplet kan man alltså läsa ut som: Tilldela variabeln i det tidigare värdet på i plus 8. Mer korrekt ses satsen som att den består utav två operationer, där operation 1 är i + 8 med resultatet 73 av typen int, operation 2 är i = 73, i tilldelas värdet 73. Att öka värdet på en variabel på detta sätt är så vanligt att man har skapat en operator som utför denna sammansatta sats i en enda operation +=. Det lösryckta programavsnittet ovan omskrivet med += operatorn ser då ut som

9 int i; i = 65; System.out.println( " i har nu värdet 65 "); i += 8; System.out.println( " i har nu värdet 73 "); En marginell skillnad kan tyckas, men man lär sig snabbt att trivas med detta skrivsätt. Dessutom blir det väldigt tydligt då man läser programkoden. Fler exempel på räkneoperatorer kombinerade med tilldelning int i; i = 65; System.out.println( " i har nu värdet 65 " ); i -= 15; System.out.println( " i har nu värdet 50 "); i /= 5; System.out.println( " i har nu värdet 10 "); i *= 2; System.out.println( " i har nu värdet 20 "); Modulusoperatorn kan tänkas vara en ny bekantskap. En modulusoperation beräknar resten vid heltalsdivision. Heltalsdivision får man då man dividerar två värden av typen int och anger resultatet som ett heltal, ex 7 / 2 = 3. Divisionen 7 / 2 går inte jämt upp utan det korrekta svaret borde varit 7 / 2 = 3.5. Men eftersom det är fråga om heltalsdivision anger man inte decimaldelen av kvoten utan bara heltalsdelen. Istället anger man en rest för den del av kvoten som inte gick jämt upp som 7 / 2 = 3 rest 1. Resten kan beräknas ur heltalskvot * nämnare + rest = täljare, eller rest = täljare heltalskvot * nämnare. Modulusoperatorn har ett antal speciella användningsområden som kommer att framgå senare av exempel Unära räkneoperatorer Det finns ytterligare aritmetiska operatorer som är av unär typ. Dessa operatorer tar alltså bara en operand. ++ prefix inkrement, operator placeras före operand ++ postfix inkrement, operator placeras efter operand -- prefix dekrement, operator placeras före operand -- postfix dekrement, operator placeras efter operand Dessa operatorer ökar respektive minskar värdet på en numerisk variabel med ett. Den prefixa varianten sätts före variabelnamnet och den postfixa sätts efter variabelnamnet. int a; a = 8; ++a; // prefix System.out.println( "a har värdet 9"); a++; // postfix System.out.println( "a har värdet 10"); --a; // prefix a--; // postfix System.out.println( "a har värdet 8"); Skillnaden mellan prefix och postfix märks först om man sätter in operationerna i sammansatta uttryck. Den prefixa operationen ger som resultat det värde som variabeln har efter operationen, den postfixa ger det värde variabeln hade före operationen.

10 int a; int i; a = 8; i = ++a; // prefix ++a utvärderas till värdet 9 System.out.println( "a har värdet 9 och i har värdet 9"); i = a++; // postfix ++a utvärderas till värdet nio System.out.println( "a har värdet 10 och i har värdet 9"); i = --a; // prefix uttrycket - a ger värdet 9 i = a--; // postfix uttrycket a - ger värdet 9 System.out.println( "a har värdet 8 i har värdet 9"); Det som är skrivet i programkoden ovan efter tecknen // är kommentarer. En kommentar som skrivs på en rad startar med // och slutar då raden slutar. Det som står efter kommentartecknen kommer kompilatorn inte att bry sig om. Kommentarer står också ofta ensamma på en rad. int a; // Nu är variabeln a deklarerad. Kompilatorn bryr sig inte om denna rad Kommentarer är otroligt användbara som minnesanteckningar i programkod. Man kan även Skriva kommentarblock som sträcker sig över flera rader med symbolerna /* och */ ( observera ordningen). Tänk på att inte av misstag råka skriva några programsatser som ska utföras i ett kommentarblock. int a; /* Nu är variabeln a deklarerad. Kompilatorn bryr sig inte om raderna inuti kommentarblocket. Som tar slut nu. */ a = 8; Tolkning av uttryck Funktionen hos ett binärt uttryck bestäms exakt av dess operator och dess operanders datatyper. Exempelvis Uttryck 1: antalbananer = 98; Tilldelningsoperatorn tillsammans med variabeln av typen int och siffran 98 av typen int anger att siffra 98 ( bestående av 4 bytes) ska kopiera (tilldela) dessa 4 bytes till variabeln antalbananer. Operationen som utförts kan beskrivas som (int ) = ( int ) Observera att detta inte är programsatser utan bara ett sätt att beskriva uttryck. Varje operation ger som resultat ett värde som kallas returvärde, detta värde har en datatyp som kallas returtyp eller resultattyp. Man får en exakt beskrivning av operationen om man dessutom anger returtypen som för Uttryck 1 är int. Detta kan man skriva som (int ) = (int ): int Generellt: ( datatyp operand till vänster ) operator ( datatyp operand till höger ) : returtyp Det som står till vänster om kolon kallas för operationens signatur. I tilldelningssatsen utnyttjas inte returvärdet. Det gör det däremot i den sammansatta satsen i Uttryck 2. medelantal = (antalbananer + antalapelsiner) / 2.0;

11 Satsen är sammansatt av tre enkla uttryck med var sin operator =, + och /. För att exakt hur satsen tolkas delar man upp den i dess enkla uttryck och utvärderar dom i tur och ordning. Denna ordning bestäms av operatorprioriteter som är angivna i bilaga operatorprioriteter. I korthet kan sägas att de flesta operatorer ska läsas från vänster till höger. Tilldelningsoperatorn = är ett tydligt undantag då den läses från höger till vänster. Uppenbara undantag finns också i aritmetiska uttryck som * 5. Uttrycket 4*5 beräknas före additionen med 3, detta kommer sig av just operatorprioriteten. Utvärderingsordningen för operatorer kan alltid ändra med hjälp av parenteser. Jämför: ( ) * 5 I tur och ordning utvärderas antalbananer + antalapelsiner denna operation är en addition mellan två heltal, och resultatet är ett heltal alltså ( int ) + ( int ) : int Då operationen är utförd har 89 och 56 adderats och resultatet 145 av typen int erhållits. Därefter utvärderas nästa operation, / operationen. Den kan man läsa ut som eller 145 / 2.0 (int ) / ( double ): double Detta kommer att medföra något som kallas type promotion där heltalet omvandlas till ett flyttal (mindre typ till större typ, det mindre talområdet omvandlas till det större). (double ) / ( double ): double Resultatet av en division med flyttal är ett flyttal. Av denna operation erhålls resultatet 72.5 av typen double. Därefter utförs operationen = eller medelantal = 72.5 ( double )= ( double ) : double För räkneoperatorerna gäller allmänt att om någon av operanderna är av flyttalstyp kommer resultatet vara av flyttalstyp, och omvänt, om båda operanderna är av heltalstyp kommer resultatet att vara av heltalstyp. Exempelvis ( double ) + ( double ) : double En addition av två flyttal ger resultat av flyttalstyp ( double ) - ( int ) : double En subtraktion av ett flyttal och ett heltal ger resultat av flyttalstyp på samma sätt som divisionen ovan..

12 Regeln för typer vid räkneoperationer kan ge en del oväntade resultat, i synnerhet vid division. Division mellan två heltal ger resultat av typen heltal ( int ) / ( int ) : int Exempelvis ger divisionen 13 / 5 resultatet 2. Betrakta: class StrangeDivision { public void main(string [] arg){ { int i, j; i = 14; j = 19; double resultat; resultat = j / i; System.out.println( " 19 / 14 = " + resultat); } } Vid programkörning skrivs på skärmen 19 / 14 = 1 Detta trots att variabeln resultat deklarerats som double. Eftersom operationen ( int ) / (int ) ger resultattyp int kommer variabeln resultat att innehålla värdet 1. Om vi stället hade skrivit Rad 8: resultat = j * 1.0 / i; Skulle vänsterledet i divisionen vara ett flyttal med divisionen ( double ) / ( int ) : double Och värdet på variabeln resultat skulle då vara

float Mindre rella tal ( floating point number ) double Rella tal/flyttal ( double precision floating point number )

float Mindre rella tal ( floating point number ) double Rella tal/flyttal ( double precision floating point number ) 1 Datatyper och Uttryck I räkneprogrammet tidigare såg vi att C++ kräver deklarationer av alla variabler som används. I räkneprogrammet användes bara variabler av heltalstyp, int, men det finns naturligtvis

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

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

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

Läs mer

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

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

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden Föreläsning 7 Uttryck, Operatorer Och Kontrollflöden Nyckelord I Java abstract double int super boolean else interface switch break extends long synchronized byte final native this case finally new throw

Läs mer

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

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

Läs mer

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

1 Funktioner och procedurell abstraktion

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

Läs mer

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

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

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

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

Läs mer

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

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

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

Läs mer

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

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

Läs mer

Introduktion till programmering

Introduktion till programmering Introduktion till programmering v. 1.12-2007-02-10 Mittuniversitetet Institutionen för Informationsteknologi och medier Datateknik Innehållsförteckning 1 Inledning...4 2 Språket C++...5 2.1 Valet av språket

Läs mer

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print. 1 Inmatning och utskrift Inmatning från tangentbord och utskrift till skärm sker i java med hjälp av objekten System.out och System.in. Dessa båda objekt är exempel på strömmar. En ström är en typ som

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

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

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

Läs mer

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

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

Läs mer

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

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014 Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public

Läs mer

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

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

Läs mer

Föreläsning 2 - Intro till Java

Föreläsning 2 - Intro till Java Föreläsning 2 - Intro till Java Sammanfattning av Lektion 1 (kap 2): Vad behövs för att kunna programmera? DrJava (t ex) Java (installera först!) Reserverade ord (t ex if, while...) Primitiva variabler

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

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

Objektorienterad programmering Föreläsning 4

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

Läs mer

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit Fler byggstenar Heltalsrepresentation Fyra heltalstyper Intern data representation Typomvandlingar Fler operatorer VŠljande & upprepande satser Tecken-bit by te t short t int t 7 bitar 15 bitar 31 bitar

Läs mer

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

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)

Läs mer

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Modul 2 Byggstenar PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Byggstenar 4 Nyckelord 4 Tecken 4 Syntax 5 Standardbibliotek 5 Vårt första program 5 Variabler 6 Konstanter 9 Operatorer 9 Övningar 9 Mer operatorer

Läs mer

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

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

Läs mer

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2 Strukturerad programmering l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll 1 2 Olika ansatser Begrepp Den manipulativa/imperativa

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

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll 2010-04-22

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll 2010-04-22 Översikt 732G11 PROGRAMMERING 1 Institutionen för datavetenskap Om kursen Vad är programmering (bra för)? Programmeringsspråket Java Utvecklingsmiljön Eclipse Genomgång av några programexempel Programmering

Läs mer

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

Läs mer

Föreläsning 2. Föreläsningen kommer ta upp valda delar av detta

Föreläsning 2. Föreläsningen kommer ta upp valda delar av detta Föreläsning 2 Täcker material från lektion 1-4 DrJava Variabler och Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor och iterationer main-metoden programmeringsstil Debugging 1.

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

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

Parameteröverföring. Exempel. Exempel. Metodkropp

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

Läs mer

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

Tentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102

Tentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102 Tentamen på kursen DA7351, Programmering 1 051102, kl 08.15-12.15 Tillåtna hjälpmedel: Valfri bok om Java. Vid bedömning av lösningarna tas hänsyn till om dessa uppfyller de krav på programkvalitet (strukturering,

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

LÖSNINGSFÖRSLAG TENTAMEN

LÖSNINGSFÖRSLAG TENTAMEN LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND

Läs mer

Språkkonventioner och redigering av tal.

Språkkonventioner och redigering av tal. Språkkonventioner och redigering av tal. Kap J3-1 Konventioner för olika språk hanteras med hjälp av klassen java.util.locale Ett objekt i denna klass beskriver en lokal konvention. Lokala konventioner

Läs mer

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

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion Deklaration och tilldelning OOP F2:2 int x; double d; char ch; boolean

Läs mer

Objektorienterad programmering i Java

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

Läs mer

TDIU01 - Programmering i C++, grundkurs

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

Läs mer

Lathund. C för inbyggda system

Lathund. C för inbyggda system Lathund C för inbyggda system Revision 1 2000-09-21 Anders Arvidsson Jonny Martinsson Synpunkter välkomnas! Innehållsförteckning 1 Introduktion...3 1.1 Assembler kontra C...3 1.2 Kodexempel...3 1.3 MPLAB...4

Läs mer

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

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

Läs mer

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean

Läs mer

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

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

Läs mer

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: 2014-12-17 Tid: 9.00-12.00 (OBS 3 tim) Rum: V

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: 2014-12-17 Tid: 9.00-12.00 (OBS 3 tim) Rum: V Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Erland Holmström Göteborg 16 dec 2014 Examination i PROGRAMMERINGSTEKNIK F1/TM1

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 Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper.

Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper. Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10 Skrivtid: 0800-1300 Inga hjälpmedel. Tänk på följande Maximal poäng är 40. För betygen 3 krävs 18 poäng. För betygen 4, 5 kommer något

Läs mer

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

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

Läs mer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT 2013 1 / 26

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT 2013 1 / 26 Programmering i C++ EDA623 Mer om klasser EDA623 (Föreläsning 6) HT 2013 1 / 26 Mer om klasser Innehåll Konstanta objekt Statiska medlemmar Pekaren this Vänner (friends) Överlagring av operatorer EDA623

Läs mer

DD1314 Programmeringsteknik

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:

Läs mer

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så

Läs mer

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen. TT Kapitel 3. Husdjur & Fisk Javaklasser Translation by Leif Lourié Java program består av klasser som beskriver saker (objekt) som finns på riktigt. Även om det finns många olika sätt att skriva program

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

Tentamen i Objektorienterad programmering

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

Läs mer

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

Läs mer

Java, klasser, objekt (Skansholm: Kapitel 2)

Java, klasser, objekt (Skansholm: Kapitel 2) Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU 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

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander F4 Klasser och Metoder ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Klasser och objekt Klasser definierar (utgör idén) Objekt instantierar (utgör förekomsten) En klassdefinition Många

Läs mer

725G61 - Laboration 1 Variabler och villkorssatser. Johan Falkenjack

725G61 - Laboration 1 Variabler och villkorssatser. Johan Falkenjack 725G61 - Laboration 1 Variabler och villkorssatser Johan Falkenjack October 16, 2013 1 Inledning till labbarna Any sufficiently advanced technology is indistinguishable from magic. - Arthur C. Clarke Citatet

Läs mer

En villkorssats är den konstruktion som finns i C++ för att göra en selektion av två alternativa sekvenser. Formen för if satsen är

En villkorssats är den konstruktion som finns i C++ för att göra en selektion av två alternativa sekvenser. Formen för if satsen är 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

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

Lektion 4. Datateknik A, Java I, 5 poäng

Lektion 4. Datateknik A, Java I, 5 poäng Datateknik A, Syfte: Att lära sig använda de primitiva typerna och olika operatorer för att bygga upp uttryck. Att använda kontrollflödeskonstruktioner för att styra flödet i programmet. Att stifta bekantskap

Läs mer

C++ - En introduktion

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

Läs mer

Tentamen , Introduktion till Java, dtaa98, dtea53

Tentamen , Introduktion till Java, dtaa98, dtea53 Mittuniversitetet 2007-09-01 Institutionen för informationsteknologi och medier Sid:1(3) dtaa98, dtea53 Martin Kjellqvist; Linda Karlsson, Ulf Reiman Lösningsansatser Tentamen 2007-09-01, Introduktion

Läs mer

Att skriva till och läsa från terminalfönstret

Att skriva till och läsa från terminalfönstret Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen

Läs mer

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4: (22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard

Läs mer

Introduktion C-programmering

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

Läs mer

Grunderna i SQL del 1

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

Läs mer

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

Grunderna i stegkodsprogrammering

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

Läs mer

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om

Läs mer

1 Egna klasser. 1.1 En punkt-klass

1 Egna klasser. 1.1 En punkt-klass 1 Egna klasser Vi har bekantat oss med klasser genom att se hur vi kan använda olika klasser. I synnerhet klassen Scanner och klassen Math. För scannerklassen skapade vi en instans för att sedan utnyttja

Läs mer

Objektorienterad programmering D2

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

Läs mer

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen 20150613, kl. 9.00-12.00

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen 20150613, kl. 9.00-12.00 Skolan för datavetenskap och kommunikation Objektorienterad Programkonstruktion, DD1346 FACIT Tentamen 20150613, kl. 9.00-12.00 Tillåtna hjälpmedel: Papper, penna och radergummi. Notera: Frågorna i del

Läs mer

Data, typ, selektion, iteration

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

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer C++ - en introduktion Eric Elfving Institutionen för datavetenskap 1 / 72 Översikt 1 Grunderna 2 Uttryck och satser 3 Funktioner 4 Poster 1 Grunderna Ett första

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

Lathund. C för inbyggda system

Lathund. C för inbyggda system Lathund C för inbyggda system Revision 2 2001-04-13 Anders Arvidsson Jonny Martinsson Synpunkter välkomnas! Innehållsförteckning 1 Introduktion... 3 1.1 Assembler kontra C... 3 1.2 Kodexempel... 3 1.3

Läs mer

2.4. Teckensträngar och logiska uttryck

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

Läs mer

1 Iteration. 1.1 for-satsen

1 Iteration. 1.1 for-satsen 1 Iteration Iteration innebär en upprepning, repetition av satser. Vi har nu sett hur en villkorssats kan välja att utföra ett satsblock beroende på om ett villkor är uppfyllt, selektion. För selektion

Läs mer

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1

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

Chapter 3: Using Classes and Objects

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

Läs mer

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

Undervisning. Examination

Undervisning. Examination Kursinfo Objektorienterad programmering Undervisning Föreläsning 1 Kursinformation Allmänt om programmering Java - några inledande exampel Grundbegrepp: variabler, uttryck, satser, typer. Föreläsningar

Läs mer