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

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

Objektorienterad Programmering (TDDC77)

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

Objektorienterad Programmering (TDDC77)

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Objektorienterad Programmering (TDDC77)

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

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

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

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

(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

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

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

TDIU01 - Programmering i C++, grundkurs

TDDC77 Objektorienterad Programmering

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

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

Övning2. Variabler. Data typer

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

OOP Objekt-orienterad programmering

Enkla datatyper minne

Objektorienterad programmering Föreläsning 4

F4. programmeringsteknik och Matlab

OOP Objekt-orienterad programmering

Programmering A. Johan Eliasson

SMD 134 Objektorienterad programmering

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

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

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

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

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

Anteckningar 1: Grundläggande saker

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Typkonvertering. Java versus C

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

TDDC77 Objektorienterad Programmering

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

Föreläsning 3-4 Innehåll

Parameteröverföring. Exempel. Exempel. Metodkropp

Tentamen OOP

Föreläsning 2, vecka 8: Repetition

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

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

Variabler, värden och typer

Föreläsning 1 & 2 INTRODUKTION

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

Föreläsning 1 & 2 INTRODUKTION

Variabler, värden och typer

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

Föreläsningsmaterial (Syntax och variabler)

Konvertering från sträng. Winstrand Development

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Classes och Interfaces, Objects och References, Initialization

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

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

OOP Objekt-orienterad programmering

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

PROGRAMMERING-JAVA TENTAMINA

TENTAMEN OOP

Föreläsning 3: Booleans, if, switch

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

LÖSNINGSFÖRSLAG TENTAMEN

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

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

Innehållsförteckning

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

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

Programmeringsteknik I

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Objektorienterad programmering i Java

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

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

PROGRAMMERING-Java Omtentamina

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

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

Tentamen , Introduktion till Java, dtaa98, dtea53

Programmering för språkteknologer II, HT2011. Rum

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

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

Programmering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world

Statistik över heltal

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

Data, typ, selektion, iteration

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

OOP Objekt-orienterad programmering

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

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Transkript:

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 ( String [] args ) { System. out. println (" hej på dig."); } }

Eclipse En s.k. IDE (Integrated Development Environment / Integrerad utvecklingsmiljö) Helt gratis. Till alla operativsystem. Finns i flera varianter får olika språk/tillämpningar. Sköter organisationen av filer, editering av filer, kompilering, exekvering och felsökning.

Ett sätt att lagra data Kan ses lite som en namngiven hink som man lägger keno-bollar i. H 2

Ett sätt att skilja på data av olika typ. Både data och variabler har en typ, som måste matcha. I hink-liknelsen kan datatypen illustreras av en färg, exempelvis blå för heltal. H 2

Heltal: int (-23, 0, 120) Flyttal: float (-34.2, 0.0, 123.2) Text: String ( nollan, ettan ) 2 2.3 nollan Några datatyper

Deklaration int tal1 ; float tal2 ; String text ; Deklaration Ett sätt att tala om vilken typ som gäller för en variabel. Motsvarar att måla hinkarna. tal1 tal2 text

Tilldelning tal1 = 2; tal2 = 2. 3; text = " nollan "; Tilldelning Ett sätt att ge en variabel ett värde. Motsvarar att tömma en hink och lägga en boll i en hinken. tal1 tal2 text 2 2.3 nollan

Som en variabel, men det går inte att ändra värde på den. Måste ha en typ, precis som en variabel. Deklareras med nyckelordet final. Brukar ges namn med enbart VERSALER och understreck. En konstant final int ANTAL_STOLAR = 40;

En literal är ett värde som ska tolkas bokstavligt. Inte en variabel eller konstant. Användning av literal int tal2 ; tal2 = 2;

Använd första bokstaven i typnamnet efter siffrorna för att indikera vilken typ ni menar. Fungerar för l=long, d=double, f=float. Ex 2.0f är en float medan 2.0d är en double. Ex 2f är en float medan 2d är en double.

konvertering int float float tal2 ; tal2 = 2; Implicit typkonvertering Ett sätt att byta typ på ett värde (så att det passar i sin hink) I vissa fall sker det automatiskt. tal2 2 tal2 2.0

konvertering float int int tal1 ; tal1 = ( int ) 2.0; Explicit typkonvertering Vissa typkonverteringar kan inte ske automatiskt. Då måste man göra en manuell konvertering genom att ange den önskade typen inom parentes innan värdet. tal1 2.0 tal1 2 2.0 (int)

Explicit eller implicit typkonvertering Varför kan man konvertera int float implicit, medan float int måste konverteras explicit? Konversioner där man inte förlorar möjliga värden görs implicit.

och värden Skilj på variabelns namn (hinkens namn) och värdet den representerar (vad som står på bollen).

Utmatning utmatning String greeting = " hej "; System. out. println ( greeting + "på dig."); Skriver ut meddelandet Hej på dig med en radbrytning efter.

alt. 1 Kopiera Keyboard-filen. int tal a = Keyboard. readint ();

alt. 2 import java. util. Scanner ; class Medelvarde { public static void main ( String [] args ) { Scanner in = new Scanner ( System. in ); int heltal = in. nextint (); } }

Ett riktigt program Vi ska låta användaren skriva två heltal som programmet ska räkna ut medelvärdet för och sen skriva ut resultatet på skärmen. Hur börja?

Fråga användaren efter ett heltal Läs in ett heltal x Fråga användaren efter ett heltal Läs in ett heltal y Räkna ut medelvärdet = (x+y) / 2 Skriv ut medelvärdet Ett riktigt program

Ett riktigt program Medelvärde.java Scanner in = new Scanner ( System. in ); int tal1, tal2, medelvarde ; System. out. println (" Mata in ett heltal :"); tal1 = in. nextint (); System. out. println (" Mata in ett heltal :"); tal2 = in. nextint (); medelvarde = ( tal1 + tal2 )/ 2; System. out. println (" Medelvärdet är: " + medelvarde );

En bugg? Det finns ett fel i medelvärdesprogrammet som gör att det räknar fel ibland. Kan du hitta problemet?

Buggar, löss, fel

Spårutskrifter Man skriver helt enkelt ut väl valda värden på variabler under programkörning. En av de vanligaste och enklaste sätten att felsöka ett program.

Spårutskrifter Spårutskrifter public static void main ( String [] args ) { int tal1 = 6, tal2 = 5; int svar = tal1 + tal2 ; System. out. println ( tal1 + " + " + tal2 + " }

Fler datatyper Finns det fler datatyper?

Ett sanningsvärde Kan anta värdena true och false (sant respektive falskt). Resultatet vid jämförselser och av logiska operatorer.

Jämförelser Några olika jämförelser int a = 1; int b = 2; boolean res ; res = (a < b); // true res = (a <= b); // true res = (a > b); // false res = (a >= b); // false res = (a == b); // false res = (a!= b); // true

Logiska operatorer (a && b) sant omm a och b sanna (a b) sant omm a eller b sanna!a sant omm a falsk

byte: 128 <= x <= 127 short: 32, 768 <= x <= 32, 767 Heltalstyper int: 2, 147, 483, 648 <= x <= 2, 147, 483, 647 long: 9, 223, 372, 036, 854, 775, 808 <= x <= 9, 223, 372, 036, 854, 775, 807 char: Representerar enstaka tecken, lika stor som en short, men kan bara innehålla positiva tal. Skrivs med apostrofer: a Kan konverteras till/från heltal vilket är förvirrande och bör undvikas.

Flyttalstyper float double Det som skiljer är framför allt precisionen.

Två kategorier av typer Primitiva typer: Alla typer med liten begynnelsebokstav (int, float, byte osv.) : Alla typer med Stor begynnelsebokstav och arrayer (String, int[], String[] osv).

Rader av tecken, text helt enkelt. Litteraler skall omges av citationstecken (dubbelfnuttar).

Små skillnader Man skriver String med stora bokstäver. Man skriver new String() för att initiera (tom sträng). int tal1 = 0; String text = new String (); String namn = " Johan ";

En String är ett objekt En String innehåller/erbjuder metoder. Får inte jämföras med ==, använd String.equals( lösenord ) Stora skillnader String entext = " This is a String "; entext. length () -> 16 entext. charat (0) -> T entext. charat (10) -> S Jämför med char[]...

Medelvärden (igen) Programmet från tidigare fungerar bra för två värden. Kan lätt utökas till 3, 4, 5 osv värden. Medelvärdet av tre tal int tal1, tal2, tal3, medelvärde ; System. out. println (" Mata in ett heltal :"); tal1 = in. nextint (); System. out. println (" Mata in ett till heltal :" tal2 = in. nextint (); System. out. println (" Mata in ett heltal :"); tal3 = in. nextint ();... Medelvärdet av 5000 värden?

Ofta behöver man flera likadana variabler, en Array Kallas ibland på svenska för Fält. Skapar en Array av heltal int [] integers = new int [ noofintegers + 1]; float [] floats = {2.2f, 4.6 f};...

Använda arrayer double [] minatal = new double [ MAX ];... eller... double [] minatal ; minatal = new double [ räknautantal ()]; double etttal = minatal ; // Fel! double etttal = minatal [ 3]; // Rätt! double etttal = minatal [ index ()]; // Rätt!

Medelvärden Medelvärdet av tre tal int [] integers = new int [ 4]; System. out. println (" Mata in ett heltal :"); integers [0] = in. nextint (); System. out. println ("... ett till heltal :"); integers [1] = in. nextint (); System. out. println ("... ett till heltal :"); integers [2] = in. nextint (); System. out. println ("... ett till heltal :"); integers [3] = in. nextint ();... Häftigt, men inte mycket bättre för 5000 värden.

En bit kod med ett eget namn Kan anropas flera gånger från olika delar av programmet. När de körts färdigt fortsätter programmet där man var innan.

Metoder kan returnera värden Returvärden noofintegers = in. nextint ();

Metoder kan ta emot argument Argument String message = " hej "; System. out. println ( message );

Skriv ett program som skapar en array med 5 heltal. Byt plats på de två sista talen. Summera talen på jämna index (0, 2, 4). Papper ochj penna... Försök få med så mycket detaljer som möjligt.

int tal [] = {2, 3, 5, 4, 8}; int tmp = tal [4]; tal [4] = tal [3]; tal [3] = tmp ; int summa = tal [0] + tal [2] + tal [ 4];