Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

GP 1, 6/2 20021 Grundlæggende programmering Forår 2002 Forelæsning 1 onsdag 6/2 2002 kl. 9:15 – 12:00.

Lignende præsentationer


Præsentationer af emnet: "GP 1, 6/2 20021 Grundlæggende programmering Forår 2002 Forelæsning 1 onsdag 6/2 2002 kl. 9:15 – 12:00."— Præsentationens transcript:

1 GP 1, 6/2 20021 Grundlæggende programmering Forår 2002 Forelæsning 1 onsdag 6/2 2002 kl. 9:15 – 12:00

2 GP 1, 6/2 20022 Dagens program Det praktiske: Kursus plan og form Programmeringsværktøj til Java – BlueJ Fagligt indhold i kommende periode –objekter og klasser –udtryk –variable Opgaver

3 GP 1, 6/2 20023 Det praktiske Lærere og hjælpelærere Øvelser Opgaver Eksamen GP-projekter GP-hjemmeside

4 GP 1, 6/2 20024 Lærere, forelæsninger, hjemmeside Lærer: Fritz Henglein Hjælpelærere: Kasper Bøgebjerg Pedersen, Thomas Brask Jørgensen, Thomas Lynge, Eske Sort Kursets hjemmeside er http://www.it-c.dk/courses/GP http://www.it-c.dk/courses/GP Hjemmesiden indeholder udleverede materialer, sidste nyt, … Kursusforløb, se forelæsningsplanen (også på nettet) Forelæsningsplanen indeholder forelæsningsplancherne Forelæsningsplancherne kommer normalt på nettet mandag før forelæsningen I skal holde øje med hjemmesiden hele semestret igennem. Brug nyhedsgruppen it-c.courses.GP til spørgsmål og svar.it-c.courses.GP Stil endelig spørgsmål under forelæsningerne.

5 GP 1, 6/2 20025 I har brug for… Lærebog: Lewis & Loftus: Java Software Solutions, anden udgave Lærebogen sælges af boghandelen Samfundslitteratur (kommer bl.a. i dag i lokale 1.05). Pris ca. 500 kroner. (Udgaven uden CD duer også.) Forelæsningsplancherne og deres eksempler er (mindst) lige så vigtige som lærebogen. Noter, som udleveres trykt i løbet af semestret Frivillig supplerende reference, mest nyttig til sidst (og efter kurset): Peter Sestoft, Java precisely, < 100 sider Konto på IT-højskolens maskiner (det skulle I allerede have fået) Ringbind til udleverede løbesedler, noter, forelæsningsplancher, mv. Disketter til programmer CD-ROM med nødvendige programmer til installation på hjemme-pcer i studievejledningen

6 GP 1, 6/2 20026 Øvelser Man lærer kun for alvor ved at prøve selv. Læsevejledning: brug ikke for lang tid på bogens store eksempler. Løs hellere opgaver og fokusér på forelæsningerne. Holdøvelser: hver onsdag med hjælpelærer, kl. 13-16 fra 5. September. Man kan normalt ikke nå at løse opgaverne på de to øvelsestimer. I skal bruge ekstratid hjemme eller på IT-C. I kan bruge maskinerne i 3.10/3.11 til programmeringsopgaver, samt IT-Cs studiepladser til tænkeopgaver. Øvelserne foregår på IT-højskolen, Glentevej 67 – se hjemmeside for lokaler Skriv jer på øvelsestilmeldingen (rundsendes) Ugentlige opgaver til skriftlig aflevering per email eller i Jeres instruktors dueslag uden for receptionen. Eksempel: –Opgaver stilles mandag 29/1 på løbesedlen –I forbereder opgaverne derhjemme –I kan arbejde med opgaver og spørge instruktorerne ved øvelserne onsdag 6/9 –I afleverer besvarelserne efter øvelserne, eller senest fredag 8/9 –I får de rettede besvarelser tilbage ved øvelserne mandag 13/9 Ud af semestrets 11 sæt obligatoriske opgaver skal mindst 8 godkendes for at I kan gå op til eksamen.

7 GP 1, 6/2 20027 Om kurset, motivation Kurset: programmering i sproget Java Kursusmål: I skal lære at skrive interessante programmer i Java Forudsætninger: I skal være vant til datamaskiner (f.eks. med Linux og/eller Windows), tekstbehandling og WWW Hvorfor lære programmering? –Fordi man kun på den måde virkelig forstår muligheder og begrænsninger i databehandling –Fordi det er nødvendigt i alle videregående tekniske kurser –Fordi man bedre kan forestille sig nye typer af løsninger og produkter –Fordi det er sejt at kunne (“Software developers are a hot commodity today, and they increasingly drive platform decisions within companies”, IBM talsperson i New York Times, July 24, 2000) –Øgede arbejdsmarkedskrav: Dynamisk indhold = programmeret indhold (“Know Java? It Could Help Your Salary: Salaries for IT professionals, especially those with Java training, continue to increase … gennemsnitligt $78750 i nordøst-USA (ACM TechNews, August 18, 2000).

8 GP 1, 6/2 20028 Hvorfor lære Java? Java er velegnet til generel programmering (ligesom C, Pascal, C++, Basic, Standard ML, etc.) Java er velegnet til programmering af vinduesorienterede brugergrænseflader Java er velegnet til programmer der skal køre ude hos brugeren: internethandel (eks: biografbilletter), hjemmebank (Unibank Onlineinvestering), interaktiv grafik, chat, distribuerede spil, … Java er motiverende pga. buzzeffekten Java er et udemærket sprog til at lære om programmeringsbegreber (specielt objektorienteret programmering), programkonstruktioner og opdeling af programmer i overskuelige dele uden alt for mange detaljer Advarsel: For at forstå programmering per se (fremfor kende Java) skal man kunne programmere i 2 eller flere, helst ret forskellige programmeringssprog; f.eks. Standard ML, C, Python.

9 GP 1, 6/2 20029 Objekter og klasser modellering fænomene r begreber abstraktion instansiering objekter klasser Modellering referent system/ problem område realiseret system

10 GP 1, 6/2 200210 Modellering af bankkonto I referent systemet (den virkelige verden) er der emner som –saldo –ejer(ere) –rentesats –filial –type: opsparing, anfordring, gevinst, studie lån. –rentetilskrivningsmetode –oprettelses dato –øgenavn –transaktioner –historie, f.eks. var min oprindelig en SDS. –skatte oplysninger –banktillid –overtræksgrænse Ved modellering sker der det at man udvælger (ud fra et formål med det system man skal lave) hvilke egenskaber der skal medtages. Vi vælger (tilfældigt) at vi vil have en konto med følgende egenskaber: saldo ejer (blot en) transaktioner hæv indsæt

11 GP 1, 6/2 200211 Konto klasse public class Konto {private double saldo; private String ejer; public Konto(String ejeren) { ejer = ejeren; saldo = 0; } public double hæv(double beløb) { saldo = saldo - beløb; return beløb; } public void indsæt(double beløb) { saldo += beløb; } public double aflæsSaldo() { return saldo; } Hvert objekt lavet ud fra klassen Konto har sin egen saldo og ejer. Når man laver et objekt skal man angive ejeren. Dette angives i konstruktøren. Der er tre metoder, som bruges til at hæve, indsætte, og aflæse saldo.

12 GP 1, 6/2 200212 Installation af BlueJ BlueJ vil blive gjort tilgængelig på hjemmesiden og på en CD-ROM, som kan hjemlånes (se hjemmeside for oplysninger) I HTML-filen ligger beskrivelse af hvordan man installerer programmet. I skal først installere Suns Java Development Kit (JDK) for at kunne bruge BlueJ. Beskrivelse af (dokumentation for) BlueJ. Læs tutorial først – det viser, hvordan man installerer og bruger BlueJ.

13 GP 1, 6/2 200213 Installation af BlueJ… NB: Java JDK 1.3.1 og BlueJ er allerede installeret på maskiner på IT-C. Vælg et passende sted at lægge BlueJ på harddisken. F.eks. C:\temp\bluej. Når Java allerede er installeret, så vil BlueJ typisk selv kunne finde det. Ellers skal det angives. På IT-C maskiner vil den komme med et forslag som ikke er dette. Vælg det den foreslår. Tryk Install

14 GP 1, 6/2 200214 Start af BlueJ Dobbeltklik for at starte BlueJ.

15 GP 1, 6/2 200215 Projekter i BlueJ Når der skal laves en klasse skal man først lave et ”Projekt”. Det er BlueJ snak for en folder i filsystemet. Dog gemmer BlueJ nogle informationer i folderen. Det er en god ide at lave en folder til alle sine BlueJ projekter. Den skal eventuelt laves før man aktiverer ”New Project”. Man skal give sit projekt et navn. Dette eksempel projekt kommer til at hedde Seminar1 Man kan se på ikonen ud for folder navnet om det er et BlueJ projekt eller en almindelig folder. Uge2 er et BlueJ projekt.

16 GP 1, 6/2 200216 Lav en klasse Man laver en ny klasse i projektet ved at trykke på denne knap, og så skrive klasse navnet i dialogboksen der kommer frem. Efter man har trykket OK kommer der en kasse frem i øverste del af BlueJ. Den repræsenterer en Java Klasse. Det at den er skraveret betyder at klassen ikke er oversat. Vi er nu parart til at beskrive hvordan konto klassen skal se ud. Det gør vi i editoren for Konto klassen. Ved at bruge højre muse knap kommer der en menu.

17 GP 1, 6/2 200217 Skriv koden for klassen Når man åbner editoren er der en masse standard tekst, som viser hvordan en klasse er opbygget. Det sletter vi, og kopierer teksten fra tidligere ind. Man kan nu oversætte (compile) klassen. Hvis man har skrevet noget forkert vil man få det at vide nederst i vinduet.

18 GP 1, 6/2 200218 Lav et objekt ud fra klassen Når klassen er oversat kan man lave et objekt (eller flere) ud fra den. Der er nu en indgang i menuen der hedder ”new Konto(String)”. Der kommer en dialog boks frem som spørger efter navn på objekt. Desuden skal man angive navnet på ejeren (at det er det man skal kan man ikke se, det skal man vide fra programmet). Navnet skal angives med gåseøjne omkring. Den nederste linje er objekt bænken (frit efter arbejdsbænk), og her kan man nu prøve objektets metoder.

19 GP 1, 6/2 200219 Prøv objektets metoder Hvis man vælger aflæsSaldo, kommer der en dialogboks frem der siger at saldoen er 0.0

20 GP 1, 6/2 200220 Prøv flere af objektets metoder Hvis man vælger indsæt, kommer der en dialogboks frem der spørger hvor meget man vil indsætte.Dette har dog ikke noget synligt resultat, og man må kalde aflæsSaldo igen for at se at saldoen nu er 10000.

21 GP 1, 6/2 200221 Prøv også den sidste metode Hvis man vælger hæv, kommer der en dialogboks frem der spørger hvor meget man vil hæve.Dernæst kommer der en dialogboks frem der siger hvor meget man har hævet. Der kommer en dialogboks frem og spør- ger om de ting der er i parentes. Hvis parentesen er tom spørges der ikke. double angiver at der gives et svar som er et komma tal.void angiver at der ikke gives et svar ved at kalde denne metode.

22 GP 1, 6/2 200222 Objekt inspektøren Hvis man vælger Inspect, kan man direkte se hvad tilstanden af objektet er. Inspektør vinduet kan man lade stå åbent, så kan man se at saldo ændrer sig som resultat af at indsætte og hæve.

23 GP 1, 6/2 200223 Udtryk Et af de mest fundamentale begreber inden for programmering er udtryk, som beregnes (evalueres) til en værdi. Eksempel: 2 + 2 værdi: 4 Eksempel: ”Karl” + ”Einar” værdi: ”KarlEinar” Eksempel: ”Hans ” + ”og Grethe”værdi: ”Hans og Grethe” Eksempel: 2 + 2 == 4værdi: sandt (true) Eksempel: ”Hans” == ”hans”værdi: falsk (false) Eksempel: 8 % 3 værdi: 2 Eksempel: 24værdi: 24 Eksempel: ”sum”værdi: ”sum” Eksempel: sumværdi: 5 Det er en variable. Hvad er dens værdi (indhold)? Svar: Den værdi, vi sidst har tildelt den.

24 GP 1, 6/2 200224 Værdi og type En værdi kan f.eks. være – et heltal: 120000 – et kommatal: 8.0 – en tegnstreng: "Bundskat: " – en sandhedsværdi: false eller true En type er en familie af værdier: –int er typen af heltal: 3, 4, 10, 117, -2, 0, 120000, … –double er typen af kommatal: 1.0, 42.456, -32.3, 32E9, … –String er typen af tegnstrenge: "Bundskat:", "Ole-Johan", "", … –boolean er typen af sandhedsværdier: true, false

25 GP 1, 6/2 200225 Typer… “GP” 58 true -23 “afd” false 42.0 “42.0” 42 + 23 23.0 - 12.0

26 GP 1, 6/2 200226 Variable En variabel er en navngiven ”skuffe” (et sted i datamatens lager) hvilken man kan lægge en værdi. Java, og mange andre programmeringssprog er pedantiske, og har forskellige slags skuffer til forskellige slags værdier. int sum = 2+3; Vi kan senere aflæse indholdet af variablen som del af et andet udtryk 5 + sum Og lægge en anden værdi i variablen vha. en tildelingsordre. sum = 10 + sum; Typen af værdier der kan lægges i skuffen. int er Java’s måde at sige ”integer” (heltal på dansk) Navnet på skuffen. Den kunne også hedde Jens. men vælg et navn der siger noget om hvad vi lægger i den. Værdien vi lægger i skuffen er resultatet af udtrykket 2+3. Hvad er indholdet af variablen nu?

27 GP 1, 6/2 200227 Variable i Konto klassen public class Konto {private double saldo; private String ejer; public double hæv(double beløb) { saldo = saldo - beløb; return beløb; } public Konto(String ejeren) { ejer = ejeren; saldo = 0; } public void indsæt(double beløb) { saldo += beløb; } public double aflæsSaldo() { return saldo; } variable der skrives i klassen kaldes instans variable. De er et sæt af dem knyttet til hver instans (objekt) lavet ud fra klassen. En tildeling (assignment) giver her saldo variablen en ny værdi. beløb er en variabel som får sin værdi når vi kalder metoden hæv. En sådan variabel kaldes en parameter til metoden. Der kan også erklæres variable som en del af metoder. Det er der ikke nogen eksempler på her, men det kommer senere i andre klasser. Det er meget almindeligt at man skal lægge noget til den værdi der i forvejen er i en variabel. Den særlige tildeling ”+=” gør det. Instans variable bruges til at holde fast ved objektets tilstand

28 GP 1, 6/2 200228 Metoder public class Konto {private double saldo; private String ejer; public double hæv(double beløb) { saldo = saldo - beløb; return beløb; } public Konto(String ejeren) { ejer = ejeren; saldo = 0; } public void indsæt(double beløb) { saldo += beløb; } public double aflæsSaldo() { return saldo; } metoden beskriver hvilken type svar den vil give. hæv giver en double (kommatal), indsæt giver void (ingenting). Når man kalder metoden skal der ofte angives nogle værdier der siger noget om detaljerne i det man vil have metoden til at gøre, f.eks. hvor meget der skal hæves. Disse parametre angives som variable i parentes. Konstruktøren er en særlig type metode der bruges til at give instansvariablene en passende startværdi. Konstruktøren skal hedde det samme som klassen. Der skal ikke angives svar type. retur kommandoen angiver hvad svaret skal være fra en metode. metoder beskriver hvad man kan bede et objekt om at gøre.

29 GP 1, 6/2 200229 Syntaks fejl 1 Java oversætteren er, som alle andre oversættere, er utrolig nærtagende. Hvis man f.eks. glemmer et semikolon får man straks en fejl. Hvis man ikke forstår fejlen umiddelbart, er der nogle gange hjælp at hente ved at trykke på ”?”-knappen.

30 GP 1, 6/2 200230 Syntaks fejl 2 – hvad er fejlene?

31 GP 1, 6/2 200231 Praktiske opgaver Gør dig fortrolig med BlueJ Skriv programmet på næste slide ind. Oversæt og kør det. Prøv at fjerne det semikolon du forhåbentlig skrev efter ”return "Goddag " + navn” –Oversæt det. –Tryk på hjælp, og læs hvad den skriver der. –Indsæt ”;” igen, oversæt og se at det virker, fjern så ”+”, og se fejlen. Lav en variabel sum, som sættes til summen af 12 og 14. Skriv dernæst indholdet af sum ud. Man skriver ud ved at skrive ”System.out.println(sum);” Behold sum variablen, men udvid med et test af om sum er positiv. Hvis den er det skrives summen ud, ellers skrives ”Uha, det er negativt!” (Det kan gøres ved at skrive ”System.out.println(”Uha...”); Lav om, så sum sættes til 12 minus 14. Skriver programmet ”Uha...” Find opgaverne til lektion 1 på GP-hjemmesiden.

32 GP 1, 6/2 200232 Goddag og Farvel program public class GoddagOgFarvel { public String goddag(String navn){ return "Goddag " + navn; } public String farvel(String navn){ return "Farvel " + navn; }


Download ppt "GP 1, 6/2 20021 Grundlæggende programmering Forår 2002 Forelæsning 1 onsdag 6/2 2002 kl. 9:15 – 12:00."

Lignende præsentationer


Annoncer fra Google