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

Slides:



Advertisements
Lignende præsentationer
Atomer Et programmeret forløb. En måde at lære på.
Advertisements

Sådan laver Du et POWER POINT program.
At Dividere.
CoDriver Afslut 1 Tastaturet Her kan du få lidt at vide om tastaturet og tasternes funktion. Klik på knapperne nederst til venstre for at bladre frem og.
Heraki for de forskellige regnearter
Game Maker 7. Sådan ser Game Maker ud når det startes op.
1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.
Udsagn (propositioner)
Formularer (Access, del 3)
Hvordan bruger jeg First Class konferencerne ?
Funktioner Graf og forskrift Venstreklik på musen for at komme videre
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
SMUT PAKKE 4 VIDEN OM MOTION.
NetBeans Installation og brug.
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.
 Det jeg har gjort er, at jeg har lavet en tast der starter det hele (mellemrum), derefter har jeg sat nogle lyde ind, og fået dem til at gentage sig.
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.
Introduktion til Access (Access, del 1)
Mit første spil Extreme Racing. Som det første, da jeg havde fået ideen til at lave et bilspil, lavede jeg bilen Jeg startede med at lave en rød kasse.
Spørgsmål: 1 Hvad er en knallertansvarsforsikring? Svarmuligheder: Ja
FEN Diskret matematik/Seminar 3 - proofs 1 Beviser Et bevis er en argumentation, som overbeviser om, at en påstand er sand, påstanden kaldes.
1 Bevisteknikker. 2 Bevisteknikker (relevant både ved design og verifikation) Teorem: Der findes uendeligt mange primtal Bevis: Antag at der findes et.
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 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
FEN Prædikater/Seminar 11 Prædikatslogik eller Kvantificerede udtryk Prædikater udvider propositionslogikken på to måder: –Vi tillader variable.
GP 1, 6/ Grundlæggende programmering Forår 2002 Forelæsning 1 onsdag 6/ kl. 9:15 – 12:00.
Anvendelser I Leg og spil.
GP 9, 10/ Grundlæggende programmering Forår 2002 Forelæsning 9 onsdag 10/ kl. 9:15 – 12:00.
Intro til C# apps Kodegennemgang af simpel C# app
1 USB Gennemgang af installering af USB driver til ICT. Er fortaget på Windows XP.
Grunde til at jeg elsker dig
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
Claus Brabrand, ITU, Denmark Mar 17, 2009Projekt: “Visualisering” Claus Brabrand [ ] ( “FÅP”: First-year Project Course, ITU, Denmark )
Fundamentale datastrukturer
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
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,
FEN IntroJava AAU1 Grafik – Crayon-objekter.
Oprettelse af tabeller (Access, del 2)
PD – kursusgang 3 Introduktion til Java Script. Mål Viden om hvordan JavaScripts indlejres i HTML dokumenter Viden om programmering i JavaScript  Erklæring.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
GP4, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 4 Vi begynder Slides ligger på hjemmesiden. Du er velkommen til.
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 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.
DAIMIIntroducerende objektorienteret programmering3B.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,
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
Forelæsning Uge 2 – Torsdag Java syntax og style guide Sætninger –Simple sætninger (assignment, interne og eksterne metodekald) –Sammensatte sætninger.
Forelæsning Uge 2 – Torsdag
Forelæsning Uge 4 – Mandag
Quiz – Uge 3 – mandag – første time
Forelæsning Uge 2 – Mandag
Studiepraktik Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Forelæsning Uge 2 – Mandag
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

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

GP 2, 13/ Dagens program Det praktiske Taltyper: Aritmetiske udtryk og operatorer, konversion, præcedens Sandhedsværdier: Logiske operatorer, præcedens Tegnemaskine Betingede ordrer Gentagelse af ordrer: while-løkker Gentagelse af ordrer: for-løkker Syntaks og formattering: Programlayout, semikolon

GP 2, 13/ Det praktiske Foredrag: Michael Kölling, ”BlueJ -- The Past, Present and Future”, torsdag, kl. 15:15-16:15, lok (HER!). Be (t)here!BlueJ -- The Past, Present and Future Øvelseshold: fra i dag hver onsdag, kl. 13:00-16:00 (undtagen uge 42) –Hold 1: Eske, lok –Hold 2: Thomas L., lok –Hold 3: Kasper, lok –Hold 4: Thomas B. J., lok Tilmelding til øvelser: Kontakt Thomas L., (eller i person onsdag i lok. 3.16). Der er pladser til kursister fra GPF og ”gamle” Nyhedsgruppe: Brug nyhedsgruppe it-c.courses.GP på nyhedsserver news.it.edu for at stille og besvare spørgsmål angående kurset. Se også andre nyhedsgrupper på news.it.edu: f.eks. it-c.announce, it-c.chat, it-c.adm.sysadm, it-c.degrees.{swu, int, dkm, mmt, tit, ebuss, tit}, it-c.fredag_morgen.)it-c.courses.GP Kursussoftware: En CD-ROM med kursussoftware til hjemmeinstallation kan lånes fra studievejledningen (lige ved siden af studieadministrationen). Installationsvejledninger: til Windows, Linux, MacOS X. Se hjemmesiden. Spørgetime: Hver torsdag, kl , i lok

GP 2, 13/ Operatorer En operator er et symbol, som står for et eller flere operationer på 2 argumenter Eksempel: x + 2 Eksempel: Eksempel: “stra” + “bads” Operator: addition på int argumenter Venstre argument: int Højre argument: int Operator: addition på double argumenter Venstre argument: double Højre argument: double Operator: konkatenering på String argumenter Venstre argument: String Højre argument: String

GP 2, 13/ Overloading og konversion Når en operator står for flere end kun en operation, så er operatoren overloaded (“overlasset” med operationer). Typen af argumenterne bestemmer hvilken operation en overloaded operator står for. Hvis argumenttyperne ikke er ens, konverteres argumenterne automatisk: –int konverteres til double (men ikke omvendt) –int, double, etc. konverteres til String (men ikke omvendt) Eksempler: –  –“Resultatet er “ + 5  “Resultatet er “ + Int.toString(5)

GP 2, 13/ Aritmetiske operatorer Operatorer med høj præcedens binder stærkere end operatorer med lav præcedens, og udregnes først. Operatorerne *, /, og % har højere præcedens end + og - og udregnes altså før + og -. Når operatorer har samme præcedens (binder lige stærkt) regnes fra venstre mod højre. OperatorBetydningEksempel (int)Eksempel (double) *Multiplikation16 * * /Division9 / 59.0 / 5.0 %Rest9 % % Addition Subtraktion – -2.1

GP 2, 13/ Eksempler: Aritmetiske udtryk (1) Aritmetisk udtrykUdtrykkets typeUdtrykkets værdi 1.5 * * / / % %

GP 2, 13/ Komplicerede udtryk Vi kan lave vilkårligt komplicerede udtryk ved hjælp af operatorer, f.eks.: % 34.0 * / * giver Uden præcedensregler kan udtryk være tvetydige: vil * 4 give 24 eller 18? Eftersom * har højere præcedens (binder stærkere) end +, udregnes 4 * 4 først, og derefter lægges 2 til. Hvis vi vil lægge sammen først, skal vi benytte parenteser: (2 + 4) *4 giver 24. Eftersom * og / har samme præcedens, regnes fra venstre mod højre: 2 * 5 / 2 giver 5. Vi kan dividere først ved at sætte en parentes: 2 * (5 / 2) giver 4.

GP 2, 13/ Eksempler: Aritmetiske udtryk (2) Lad x = 2 og y = 4. UdtrykVærdi x + y * 2 x * y / 2 y / 2 * x (x + y) / 2 y % (x + y) % (x + 1) x – 2 + y x – (2 + y)

GP 2, 13/ Sammenligningsoperatorer OperatorBetydningEksempel <Mindre endx < 60 <=Mindre end eller lige medx <= 60 >Større endx > 60 >=Større end eller lige medx >= 60 ==Lig medx == 60 !=Forskellig frax != 60 Resultattypen er boolean. Dvs. resultatet er true eller false. De aritmetiske operatorer *, /, %, +, - binder alle stærkere end sammenligningsoperatorerne, >=. Sammenligningsoperatorerne, >= binder alle stærkere end == og !=.

GP 2, 13/ Eksempler: Logiske udtryk (1) Lad x = 2 og y = 4. Logisk udtrykVærdi false true true == false x != y x < 3 + y y < 3 + x x + y > 3 == false false != x < 3 x == y == false

GP 2, 13/ Logiske operatorer Argumenttyperne er boolean og resultattypen er boolean. Operatoren ! binder stærkere end &&, som binder stærkere end ||. ! binder også stærkere end sammenligningsoperatorerne og de aritmetiske operatorer. && og || binder svagere end sammenligningsoperatorerne og de aritmetiske operatorer. Udtrykket udregnes fra venstre mod højre. Operatorerne && og || udregner ikke mere end højst nødvendigt: –Hvis udtryk1 er falsk i udtryk1 && udtryk2 så udregnes udtryk2 ikke. –Hvis udtryk1 er sand i udtryk1 || udtryk2 så udregnes udtryk2 ikke. OperatorBetydningEksempel !Ikke (negation)!(x == 60) &&Og (konjunktion)0 <= x && x < 60 ||Eller (disjunktion)x = 60

GP 2, 13/ Eksempler: Logiske udtryk (2) Logisk udtrykVærdi ! false ! true ! true == false ! (true == false) true && false false && true true || false false || true x + y > 3 && x < y x + y == 3 || x < 4 x > y && (3 * 4 == 2 * 6 – 1 * 2 + 2) == ! (3 < x) Lad x = 2 og y =4.

GP 2, 13/ Skriv logiske udtryk Heltallet m er mindst 1 og højst 12: Tallet h er større end eller lig med 0, og mindre end 24: x i anden er mindre end 25: y er mindre end 40 eller større end 100: aar er delelig med 4: aar er ikke delelig med 100: aar er ikke delelig med 400: aar er et skudår: delelig med 4 men ikke med 100, eller delelig med 400: Var 1900 skudår?

GP 2, 13/ En Java tegnemaskine Et farvekridt modelleres i Java ved klassen Tegnemaskine. Vi vælger at se bort fra en række egenskaber, og være mere præcis med nogle andre. Vi lader den have en position. En af de ting vi kan gøre med farvekridtet er at flytte det til et andet sted – det trækker så en streg efter sig. Vi kan også flytte det uden at tegne. Vi skal kikke på denne tegnemaskine for at se på kontrolstrukturer

GP 2, 13/ Skabelse af et tegnemaskine objekt Under Tools er der et punkt der hedder ”Use Library Class” Vi skriver det fulde navn på klassen: edu.it.tegnemaskine.Tegnemaskine Vi vælger den første linje, som vil skabe et tegnemaskine objekt. Når der tykkes OK kommer der en lille dialog boks frem, som spørger hvad jeg vil kalde objektet. Der fremkommer et objekt (rød kasse med runde hjørner) nederst i BlueJ vinduet (som vist på forrige slide).

GP 2, 13/ Brug tegnemaskine Samtidigt med at vi lavede maskine1 kom der en tegneflade frem i et andet vindue. Vi skal nu prøve kridtet af. 1) aktiveringen af moveTo bringer en dialog boks frem hvor vi skal skrive hvor vi vil flytte hen. 2) Når der trykkes OK i dialog boksen flytter pennen til position 300, 300, og tegner en streg undervejs. Tegnemaskinen starter på midten, som er på plads 200,200.

GP 2, 13/ Tegnemaskinen (0,0) (0,399) (399,0) (399,399) Koordinat systemet for tegnemaskinen har (0,0) i øverste venstre hjørne. Første aksen er vandret, fra venstre mod højre, og anden aksen er lodret, fra oven og ned.

GP 2, 13/ Betingede ordrer Ud over det at kunne give variable nye værdier, er der to centrale ting man gør i et program, nemlig at vælge om man skal gøre A eller B, og at gentage en given ting et antal gange. F.eks. finde det største af to tal. if (a>b) { max = a; } else { max = b; } System.out.println(”Max af a og b er: ” + max); Dette er kriteriet vi vælger efter. Kriteriet er et udtryk der returnerer en sandhedsværdi (true/false) Dette er det der udføres hvis kriteriet er sandt (true) Dette er det der udføres hvis kriteriet er falsk.

GP 2, 13/ Gentagelse Ofte vil man udføre den samme ting flere gange. Hvis man vil bruge farvekridtet til at tegne et kvadrat med, så kan det gøres ved at lave følgende metode: Dette gentages 4 gange

GP 2, 13/ While-løkker En typisk måde at gentage på, er ved at gøre noget indtil et kriterie er opfyldt. (I Java er det den eneste måde at gentage på.) Variablen gange tæller hvor mange sider vi har tegnet Kriteriet for gentagelse er at vi ikke har fået tegnet alle sider endnu. Tæl op med en. Tegn en side, og drej. Her vil vi gentage 4 gange. Dette må vi gøre med en variabel som vi benytter som tæller.

GP 2, 13/ While-løkker Ved at ændre sidelængden løbende, og dreje lidt mere end 90 grader hver gang får man en ganske andet figur. Vi starter med at gå ind til midten variablen sidelængde sættes til 5 til at begynde med Sålænge værdien i sidelængde variablen er mindre end 200, gentager vi kroppen af løkken. Efter hvert gennemløb lægger vi 2 til værdien i variablen sidelængde.

GP 2, 13/ For løkker Java er en videreudvikling af programmeringssproget C. Derfra har det arvet en løkke form der kaldes en ”for” løkke. Det er en anden syntaks for en while løkke, hvor det er pointeret at stop kriteriet er baseret på en variabel der tælles op i hvert løkke gennemløb. variablen erklæres inde i for løkken. den tælles op og kriteriet undersøges også separat fra løkke-kroppen.

GP 2, 13/ For-løkken og ++ operatoren Et idiom er en særegen fast vending i et sprog eller dialekt. Der knytter sig et særlig idiom til forløkken, som gælder løkker hvor man tæller en variabel op med en i hvert gennemløb. Hvis variablen ”tæl” skal gennemløbe værdierne 1, 2, 3,..., 100, gøres det ofte ved at følge følgende idiom: for (int tæl = 1; tæl<=100; tæl++){... } tæl++ er et udtryk der returnerer indholdet af variablen tæl, og derefter lægger 1 til tæl’s værdi. I eksemplet ovenfor bruger vi ikke værdien af udtrykket til noget, men udnytter blot at der bliver lagt en til tæl. Her anvendes for-løkken til at tælle fra 1 til for at forsinke tegningen således at man kan se hvad der sker. Der er ikke nogen krop til denne løkke

GP 2, 13/ ”Gætteleg” Hvad betyder tæl -- ++tæl tæl += 2 tæl *= 2 tæl += tæl++ tæl = ++tæl Hvor mange gange udføres kroppen på følgende for-løkker: for (int i = 0; i<=100; i++){...} for (int i = 0; i<100;i++){...} for (int i = 100;i>0;i--){...} for (int i = 100; i>0;i++){...}

GP 2, 13/ Hvor skal der være semikolon? Intet semikolon efter en `født' ordre: if, while osv. Put semikolon efter en ordre lavet af et udtryk: tildeling, metodekald, osv. Put semikolon efter variabel-erklæringer. Der skal ikke semikolon efter en blok {... } Der skal være præcis to semikolonner i hovedet på en for-løkke.