1 / 33

Grundlæggende programmering Efterår 2001

Grundlæggende programmering Efterår 2001. Forelæsning 1 onsdag 29/8 2001 kl. 9:15 – 12:00. 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. Det praktiske.

tino
Download Presentation

Grundlæggende programmering Efterår 2001

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Grundlæggende programmeringEfterår 2001 Forelæsning 1 onsdag 29/8 2001 kl. 9:15 – 12:00

  2. 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. Det praktiske • Lærere og hjælpelærere • Øvelser • Opgaver • Eksamen • GP-projekter • GP-hjemmeside

  4. Lærere, forelæsninger, hjemmeside • Lærere: Fritz Henglein og Michael Florentin Nielsen • Hjælpelærere: Kasper Bøgebjerg Pedersen, Thomas Brask Jørgensen, Stig Lundbeck, Christoffer Soya (alle stud.it. på IT-C) • Kursets hjemmeside erhttp://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 • Stil endelig spørgsmål under forelæsningerne.

  5. 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(kan lånes 3 dage – se mere om det på hjemmesiden)

  6. Ø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: hveronsdag 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 onsdag6/9 • I afleverer besvarelserne efter øvelserne, eller senest fredag8/9 • I får de rettede besvarelser tilbage ved øvelserne mandag 13/9 • Ud af semestrets 11 sæt obligatoriske opgaver skal mindst 8godkendes for at I kan gå op til eksamen.

  7. 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 ogbegræ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 theyincreasingly drive platform decisions within companies”, IBMtalsperson i New York Times, July 24, 2000) • Øgede arbejdsmarkedskrav:Dynamisk indhold = programmeret indhold (“Know Java? It Could Help Your Salary: Salaries for ITprofessionals, especially those with Java training, continue toincrease …gennemsnitligt $78750 i nordøst-USA (ACMTechNews, August 18, 2000).

  8. Hvorfor lære Java? • Java er velegnet til generel programmering (ligesom C, Pascal, C++, Basic, Standard ML, etc.) • Java er velegnet til programmering af vinduesorienteredebrugergræ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 udenalt 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. Slægtskab mellem udvalgte programmeringssprog

  10. Objekter og klassermodellering Modellering instansiering klasser begreber abstraktion fænomener objekter referent system/ problem område realiseret system

  11. 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. Modellering af bankkonto • Vi vælger (tilfældigt) at vi vil have en konto med følgende egenskaber: • saldo • ejer (blot en) • transaktioner • hæv • indsæt

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

  13. 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. Beskrivelse af (dokumentation for) BlueJ. Læs tutorial først – det viser, hvordan man installerer og bruger BlueJ. I skal først installere Suns Java Development Kit (JDK) for at kunne bruge BlueJ.

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

  15. Start af BlueJ Dobbeltklik for at starte BlueJ.

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

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

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

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

  20. Prøv objektets metoder Hvis man vælger aflæsSaldo, kommer der en dialogboks frem der siger at saldoen er 0.0

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

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

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

  24. 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: ”Karl” + ” Einar” værdi: ”Karl Einar” • Eksempel: ”Hans ” + ”og Grethe” værdi: ”Hans og Grethe” • Eksempel: 2 + 2 == 4 værdi: sandt (true) • Eksempel: ”Hans” == ”hans” værdi: falsk (false) • Eksempel: 8 % 3 værdi: 2 • Eksempel: 24 værdi: 24 • Eksempel: ”sum” værdi: ”sum” • Eksempel: sum værdi: 5 Det er en variable. Hvad er dens værdi (indhold)? Svar: Den værdi, vi sidst har tildelt den.

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

  26. Typer…

  27. 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; Værdien vi lægger i skuffen er resultatet af udtrykket 2+3. Navnet på skuffen. Den kunne også hedde Jens. men vælg et navn der siger noget om hvad vi lægger i den. Typen af værdier der kan lægges i skuffen. int er Java’s måde at sige ”integer” (heltal på dansk) Hvad er indholdet af variablen nu?

  28. Variable i Konto klassen Instans variable bruges til at holde fast ved objektets tilstand variable der skrives i klassen kaldes instans variable. De er et sæt af dem knyttet til hver instans (objekt) lavet ud fra 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; } } 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. En tildeling (assignment) giver her saldo variablen en ny værdi. 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. 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.

  29. Metoder metoder beskriver hvad man kan bede et objekt om at gøre. 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.

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

  31. Syntaks fejl 2 – hvad er fejlene?

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

  33. Goddag og Farvel program public class GoddagOgFarvel { public String goddag(String navn){ return "Goddag " + navn; } public String farvel(String navn){ return "Farvel " + navn; } }

More Related