DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/



Relaterede dokumenter
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

Test af It-komponent

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 10

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

BRP Kursusintroduktion og Java-oversigt

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

DM507 Algoritmer og datastrukturer

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6

Eksempel: Skat i år 2000

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

Jacob Christiansen, Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense

Det er muligt at chekce følgende opg. i CodeJudge: og

Løsning af møntproblemet

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Abstrakte datatyper C#-version

Rekursion og dynamisk programmering

DM507 Algoritmer og datastrukturer

Kursus 02199: Programmering. Lidt om forelæseren. Velkommen til. Praktisk information: kursusaktiviteter. Praktisk information: forelæsninger

Datalogi OB, Efterår 2002 OH er, forelæsning 3/ forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)

Noter og opgaver. Programmering A IMADA. Niels Kjeldsen & Jacob Aae Mikkelsen. Med grundig korrektur og rettelser af Edmund Christiansen

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

DM507 Algoritmer og datastrukturer

DM01 DM Obl. Afl. Jacob Christiansen, , D12, Elias 18/ Side 1 af 11

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden.

Forelæsning Uge 2 Torsdag

Programmering 2. dprog2 E

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

Forelæsning Uge 5 Mandag

Hashing og hashtabeller

DM507 Algoritmer og datastrukturer

Anvendelse af metoder - Programmering

Programmering 2. dprog2 E

Forelæsning Uge 2 Torsdag

DM507 Algoritmer og datastrukturer

Datalogi C, Efterår 2004 OH er, forelæsning 14/ Datastrukturer og algoritmer. Henning Christiansen

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

Forelæsning Uge 2 Torsdag

DM536. Rapport og debug

Hvad er Objekter - Programmering

Maskinarkitektur. Lars Kristensen Christian Storm dmasark 1

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

Asymptotisk analyse af algoritmers køretider

Programmering. Udvidet Programmering. Kurserne. Kurset: programmering i sproget Java. Lærerne: Morten Larsen og Peter Sestoft

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen

Ugeseddel 4 1. marts - 8. marts

Tree klassen fra sidste forelæsning

02101 Indledende Programmering Introduktion til Eclipse

Undervisningsbeskrivelse

Integer.parseInt(args[0]) konverterer tegnstreng (f.eks. "10") til heltal (10). if (udtryk) else

Hvad er et distribueret objekt? Plan Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation

Undervisningsbeskrivelse

Objektorienteret Programmering

Singleton pattern i Java

DANMARKS TEKNISKE UNIVERSITET

Der er fejl i programmer. Ikke-trivielle programmer er næsten altid fejlbehæftede.

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

Parallelle algoritmer

Computere og Netværk (dcomnet)

Hashing og hashtabeller

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik

import java.awt.event.*; import java.awt.*; Container <- Panel <- Applet Component <- Button <- Checkbox <- ScrollPane <- Label

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Perspektiverende Datalogi Internetalgoritmer. MapReduce. Gerth Stølting Brodal

Tilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.

Grundlæggende Programmering ITU, Efterår Skriftlig eksamen i Grundlæggende Programmering

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

Skriftlig eksamen i Datalogi

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999

A Profile for Safety Critical Java

DM01 DM Obl. Afl. Jacob Christiansen, , D12, Elias 13/ Side 1 af 7

Rolf Fagerberg. Forår 2013

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Lær Python dag 1 - modul 1

Introduktion til Datalogi

Rolf Fagerberg. Forår 2012

RMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.

Rolf Fagerberg. Forår 2015

Undervisningsbeskrivelse

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Grundlæggende Algoritmer og Datastrukturer

Parallelle algoritmer

Undervisningsbeskrivelse

dintprog Manual Revision: 731 September 30, Introduktion Notation... 3 I Begreber 4 2 Grundbegreber om programmering 4

Asymptotisk analyse af algoritmers køretider

Java Klasse nedarvninger

Introduktion til DM507

DRONNINGER (QUEENS) Opgave 1

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Introduktion til ActionScript

Transkript:

DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1

DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne! Problemer? Konto på IMADAs system Kursets hjemmeside Holdfordelingsproblemer 2

Kursets form Forelæsninger Ca. 2 gange 2 timer per uge. Præsenterer og demonstrerer nyt stof Vil ofte være korte Øvelser Ca. 2 gange 2 timer per uge I løser og præsenterer opgaver I arbejder med opgaver Projekt-eksamen i 2 dele 3

De første uger De primære mål er: Alle kommer i gang med at skrive, køre og fejlfinde programmer Alle lærer den basale Java-syntaks Alle bliver klar til at lave den første projekt-opgave 4

Dvs Enten arbejder I i terminalrummet Brug af IMADAs system Det er ikke et krav at I sidder i terminalrummet og arbejder når I løser opgaverne, men Det er et krav at de programmer I afleverer kan køre på IMADAs system Ellers tester I i terminalrummet 5

Programmeringsprocessen Hvad er et program? Instruktioner til computeren (den er dum :-) Input Beregning Output 6

Programmering Hvad er programmering? Problemløsning på computer Eksempler på problemer man (vi) kan løse: SuDoKu Ordforråd i en tekst (Lix) Korteste vej fra A til B (maps.google.dk) Pakning af en flyttebil Osv... Fælles: Model, abstraktion og struktur 7

Programmering Opgave / kundens problem Problemanalyse Program-specifikation (hvad?) Datastrukturer + algoritmer Program-design (hvordan?) Implementering (i fx Java) Implementation Afprøvning og indkøring Program / produkt 8

Programmering 9

Programmering i DM502 Problemorienteret Bruger emner fra hele bogen straks Interaktiv Online modellering og udvikling Afprøvning vha. debugger (Jswat) Forklarer for lidt og for meget Programmerne er små, men tænk på: Programmering for andre Programmering med andre 10

Programmering er SIMPELT Simple instruktioner, simpelt data Sekvens: Gentagelse af sekvens: I1, I2, I3,... Gentag I1, I2, I3, Indtil betingelse Betinget sekvens: Hvis betingelse da I1, I2, I3, Ellers J1, J2, J3 Delprogrammer (funktioner): Data: Resultat = funktion(input) Skalarer, Klasser / objekter 11

HelloWorld.java // HelloWorld.java // Author: Peter Schneider-Kamp (+ millions) public class HelloWorld { } public static void main(string[] args) { } System.out.println("Hello World!"); 12

HelloWorld.java // HelloWorld.java // Author: Peter Schneider-Kamp (+ millions) public class HelloWorld { } public static void main(string[] args) { } System.out.println("Hello World!"); 13

HelloWorld.java // HelloWorld.java // Author: Peter Schneider-Kamp (+ millions) public class HelloWorld { } public static void main(string[] args) { } System.out.println("Hello World!"); 14

HelloWorld.java // HelloWorld.java // Author: Peter Schneider-Kamp (+ millions) public class HelloWorld { } public static void main(string[] args) { } System.out.println("Hello World!"); 15

HelloWorld.java // HelloWorld.java // Author: Peter Schneider-Kamp (+ millions) public class HelloWorld { } public static void main(string[] args) { } System.out.println("Hello World!"); 16

HelloWorld.java 17

HelloWorld.java 18

HelloWorld.java 19

HelloWorld.java 20

HelloWorld.java 21

Fibonacci Fibonacci-tallene: Summen af de to foregående tal, startende med 0 og 1 0, 1, 1, 2, 3, 5, 8, Model: To tal a = 0, b = 1 Algoritme: Så længe vi vil have flere tal: print a; temp = b; b = a + b; a = temp; 22

Fibonacci Algoritme: print a; temp = b; b = a + b; a = temp; Hvorfor ikke?: b = a + b; a = b; Eller: b = a + b; a = b - a; 23

public class Fibonacci { public static void main( String[] args ) { int a = 0, b = 1, temp; 24

public class Fibonacci { public static void main( String[] args ) { int a = 0, b = 1, temp; 25

public class Fibonacci { public static void main( String[] args ) { int a = 0, b = 1, temp; while( a < 10000 ) { System.out.print( a + " " ); temp = b; b = a+b; a = temp; } 26

public class Fibonacci { public static void main( String[] args ) { int a = 0, b = 1, temp; while( a < 10000 ) { System.out.print( a + " " ); temp = b; b = a+b; a = temp; } 27

public class Fibonacci { public static void main( String[] args ) { int a = 0, b = 1, temp; while( a < 10000 ) { System.out.print( a + " " ); temp = b; b = a+b; a = temp; } } } System.out.println(); 28

Fibonacci Oversættelse: javac Fibonacci.java Kørsel: java Fibonacci Oversættelse til debugging: javac -g Fibonacci.java Debug med Jswat Fejl og mangler? 29

Java Class Library contains standard data structures and algorithms contains interfaces to EveryThing TM http://download-llnw.oracle.com/javase/6/docs/api/ 30