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

Slides:



Advertisements
Lignende præsentationer
Dagens program Hvad er frivillig.dk Hvordan er frivillig.dk bygget op
Advertisements

Hvordan bruger jeg MinInstitution?
Forsiden 1.Denne knap bruges når du vil taste dagens resultater ind. 2.Denne knap skal kun bruges hvis du allerede har gemt data og du finder ud af at.
Klik på Aktivér redigering på meddelelseslinjen.
Udlægning af en ny cache
Hvordan får jeg lagt First Class programmet ind på min egen computer ??? De følgende sider er en lille anvisning på, hvordan du selv kan installere programmet.
Klik på Aktivér redigering i meddelelseslinjen, Hvis videoerne i kurset ikke afspilles, skal du måske hente QuickTime eller blot skifte til PowerPoint.
Velkommen til Softwarekonstruktion
REGISTRERINGSDATABASEN
Beskyt din computer og dine data!
07 – Kort om OO Introduktion.
Hvordan bruger jeg First Class konferencerne ?
NetBeans Installation og brug.
GP 2, 13/ Grundlæggende programmering Forår 2002 Forelæsning 2 onsdag 13/ kl. 9:15 – 12:00.
Grundlæggende programmering Efterår 2001
GP 4, 19/ Grundlæggende programmering Efterår 2001 Forelæsning 4 onsdag 19/ kl. 9:15 – 12:00.
Fagets Informations Teknologi Introduktion til Programmering i Java For Industri, Global Forretningsudvikling, samt fri studie aktivitet ved Bent Thomsen.
Hvordan man skriver koden.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Intro Variabler - datatyper. 2. forelæsning Hvad skete sidste gang Hvad er PHP? Kursussammensætning: læse – newsgroup – forelæsning – øvelsestime – aflevering.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
FORTROLIGT. Må kun distribueres til partnere med aftale om hemmeligholdelse. Microsoft giver ingen garantier, hverken udtrykkeligt eller stiltiende. ©
Kursus om borger.dk og brugen af digital signatur
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Du finder registreringsskemaet på: dev2. siteloom
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Finde og åbne et chatrum Brug søgefunktionen i Lync til at finde de rum, du har adgang til. 1.I hovedvinduet i Lync skal du klikke på fanen Chatrum. 2.Skriv.
GP 9, 10/ Grundlæggende programmering Forår 2002 Forelæsning 9 onsdag 10/ kl. 9:15 – 12:00.
Hidtil har det været besværligt og tidskrævende at oprette værktøjer og tilhørende reservedele. Man kunne ikke gennem værktøjets navn/nummer se hvilke.
Forelæsning 3.1 Collections Javas for-each løkke
Videregående pc-vejledning Modul 07: Elektronisk post 60+Bornholm.
Videregående pc-vejledning 60+Bornholm Velkommen til.
Videregående pc-vejledning Modul 03: Harddisken 2 60+Bornholm.
Evaluering og IT Brøndby Gymnasium
Elever med særlige behov Lidt om allerede installerede hjælpe programmer i windows vista.
1 USB Gennemgang af installering af USB driver til ICT. Er fortaget på Windows XP.
Fundamentale datastrukturer
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
GP 5, 26/ Grundlæggende programmering Efterår 2001 Forelæsning 5 onsdag 26/ kl. 9:15 – 12:00.
Objekter og klasser Rasmus D. Lehrmann DM
GP 6, 13/ Grundlæggende programmering Forår 2002 Forelæsning 6 onsdag 13/ kl. 9:15 – 12:00.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
GP 6, 3/ Grundlæggende programmering Efterår 2001 Forelæsning 6 onsdag 3/ kl. 9:15 – 12:00.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
GP 4, 27/ Grundlæggende programmering Forår 2002 Forelæsning 4 onsdag 27/ kl. 9:15 – 12:00.
Grundlæggende programmering Forår 2002
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
FEN IntroJava AAU1 Introduktion til programmering Et program: HelloWorld Objekter og klasser.
Forelæsning Uge 4 – Mandag
SSO - Større skriftlig opgave
Dokumentation.
Flerfagligt Forløb 3 Klasse: Fag:.
Præsentationens transcript:

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

GP 1, 6/ 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

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

GP 1, 6/ 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 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.

GP 1, 6/ 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

GP 1, 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: hver onsdag med hjælpelærer, kl 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 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.

GP 1, 6/ 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).

GP 1, 6/ 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.

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

GP 1, 6/ 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

GP 1, 6/ 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.

GP 1, 6/ 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.

GP 1, 6/ Installation af BlueJ… NB: Java JDK 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

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

GP 1, 6/ 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.

GP 1, 6/ 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.

GP 1, 6/ 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.

GP 1, 6/ 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.

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

GP 1, 6/ 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

GP 1, 6/ 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.

GP 1, 6/ 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.

GP 1, 6/ Udtryk Et af de mest fundamentale begreber inden for programmering er udtryk, som beregnes (evalueres) til en værdi. Eksempel: værdi: 4 Eksempel: ”Karl” + ”Einar” værdi: ”KarlEinar” Eksempel: ”Hans ” + ”og Grethe”værdi: ”Hans og Grethe” Eksempel: == 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.

GP 1, 6/ Værdi og type En værdi kan f.eks. være – et heltal: – 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, , … –double er typen af kommatal: 1.0, , -32.3, 32E9, … –String er typen af tegnstrenge: "Bundskat:", "Ole-Johan", "", … –boolean er typen af sandhedsværdier: true, false

GP 1, 6/ Typer… “GP” 58 true -23 “afd” false 42.0 “42.0”

GP 1, 6/ 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?

GP 1, 6/ 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

GP 1, 6/ 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.

GP 1, 6/ 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.

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

GP 1, 6/ 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.

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