FEN 2006-11-6IntroJava2006 - AAU1 Loops og algoritmer Sweep – for-loop Søgning – while-loop.

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

Søgning & sortering Intro søgning Lineær søgning Binær søgning
1 Bevisteknikker. 2 Bevisteknikker (relevant både ved design og verifikation) Teorem: Der findes uendeligt mange primtal Bevis: Antag at der findes et.
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.
Begreber og Redskaber 6. Plan for idag Tabeller Udvalgssortering, køretid Lidt mere om objekter Budskab: Køretid kan være et problem og bør løses med.
MEC, DAIMIIntroJava AAU1 Crayon-objekter nu med loops og metoder.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
FEN IntroJava AAU1 Grafik – Crayon-objekter.
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
I o p o DAIMI, AU, December 1999Introducerende objektorienteret programmering14A.1 Del, løs og kombinér.
KAPITEL 2 Renterisiko.
KAPITEL 3 Volatilitet, Beta og Tracking Error
KAPITEL 5 Delta Normal Value at Risk
dagsorden Metoder i samfundsfag – hvorfor?
Et liv med OCD Nicoline Møller.
KAPITEL 13 Kapitalkrav.
Billeder (Side 6-8 i artiklen: 2. Repræsentation og manipulation af Data)
SOPU Sund – motion Kondition og kredsløb.
Vejledning Opdaterede faktorer til kapacitetsberegning - Oktober 2016
Omkostninger til tilsyn m.v. for statsautoriserede revisorer
Forhandlingsteknik Strategi og proces Kommunikation Psykologi
Søgeradius med Aabenraa som udgangspunkt
Søgeradius med Kerteminde som udgangspunkt
Min første søgning for 4 – 5 klasse
Hvor går de unge hen, når de går ud?
Aarhus: Program - dag 1 - d. 17. januar
Analysegruppe: Astrid, Bent, Carla, David, Else
Det danske ejendomsmarked
Bevis for længdeformlen i rummet
Differentialregning Cecilie.
DK: Indledende: Jeg er jeres vært, og jeg har ansvaret for jer, mens I er her – og for, at I forlader bygningen igen, når vores møde er slut. I bedes derfor.
August, Holm, Olsen, Tobias og Viktor
Teknisk service på hoteller, konference - og feriecentre
Rekeparty Fredag 16. juni 2017 Kl. 18:00 Eventuelt:
Folkeskolens prøver i matematik
Polynomier Lars A. Clark.
Workshop Test viden med IF-AT
دور بورصة فلسطين في النمو الاقتصادي دراسة قياسية
Introduktion.
Informationsmøde om Praktikplads-AUB
Hans Ole Lund Christiansen
Rullede deje.
KVANTEFilosofi Jan Faye Institut for Medier, Erkendelse og Formidling
Skrivedag 2: At skrive analyserende
Redesign af antennetårn for test af antenner i DTU’s radiodøde rum, under integreret anvendelse af Creo Top-Down Design og Creo simulate Indlæg ved.
Co-Create dit arbejdsliv
Sted - klasse - dato H H H H H H H H H H
Kort-sitet Med alle relevante temaer fra Kommuneplanen
Borgerens adgang til egne data
Børnehus ved Jernalderlandsbyen Møde i Det Grønne Råd 14. maj 2019
3. Sundhedsmappe Patienten har log-in og password
Direktørmøde- Rammeaftale Sjælland 7. oktober 2016 kl
Hvem bestemmer dine valg? Tobaksforebyggelse i Sønderborg Kommune
Skabelsesberetningen: Fakta eller fiktion?
GD1/GD2 – DLS kvalitetssikring Agenda
Model og Tilgang strategi på det specialiserede voksenområde
             Økonomi Årsmøde på DBI 8. april 2019.
Økonomisk ulighed i Danmark
JOHANNES MOURITSEN Docent emeritus
Basal videnskabsteori i forbindelse med SRO og SRP
Lynæs Sejl- og Kajakklub åbner Sejlsportsligaen med Lynx-open d. 25
Dansk forum for sundhedstjenesteforskning 11. november 2009
Vejledning - Lokal tilpasning af oplæg og proces
Refleksionens betydning for den pædagogiske praksis i SFO og skole
GD1-GD2 Styregrupper Status på testprojektet 15. marts 2016
FoU-Projekt om børn- og ungeområdet på Efter- og Videreuddannelsen Specialisering i børne- og ungeafdelinger – gavner det børn, unge og familier? v/ Annemette.
Introduktion til kemiske reaktioner
Elevtrivselsundersøgelsen 2016
Præsentationens transcript:

FEN IntroJava AAU1 Loops og algoritmer Sweep – for-loop Søgning – while-loop

FEN IntroJava AAU2 Algoritmeskabeloner – eller mønstre Mange problemer kan løses ved algoritmer, som følger et givet mønster Et mønster er en abstrakt beskrivelse af løsning på en familie af problemer Et mønster beskriver en velprøvet og god løsning Ved eksplicit at arbejde med mønstre –udgår man at opfinde den dybe tallerken hver gang (genbruger gode ideer) –det bliver lettere at dokumentere og kommunikere løsninger Mønstre (ikke kun for algoritmer) er et centralt begreb i softwarekonstruktion

FEN IntroJava AAU3 Algoritmemønstre … Der findes mange: Sweep Pattern Search Pattern Merge Pattern Divide and Conquer Pattern Greedy Pattern Backtracking Pattern Dynamic Programming Pattern And many others… Vi ser kun på swep og search her.

FEN IntroJava AAU4 Sweep-algoritmer Gennemløber en collection (fx array) af elementer, ser på hvert element og gør evt. noget ved elementet Løber altid hele collectionen i gennem Eksempler: –Summere tallene i et array, finde gennemsnit, finde maximum og/eller minimum –Tælle antal elementer med en eller anden egenskab; fx tælle antal studenter, som har opnået en given karakter –Beregne en kundes totale køb

FEN IntroJava AAU5 Søgealgoritmer Finder et objekt med en bestemt egenskab i en collection Terminerer, når første element med den eftersøgte egenskab findes Eksempler: –Afgør om et bestemt tal findes i et array –Finde index på første forekomst af en værdi i et array –Finde en kunde med navn ”Hansen”

FEN IntroJava AAU6 Lav en metode, som returnerer antallet af lige tal i et int[ ]. Test den. (Vink: et tal er lige, hvis rest ved division med 2 er 0). public int countEvens(int[] a) {//sweep int count= 0; for(int i= 0; i<a.length; i++) { if(a[i]%2 == 0)//a[i] is even count++; } return count; } public class LoopSolutions{ private int[] myArray1= {11, 2, 5, 3}; private int[] myArray2= {1, 22, 5, 13, 12, 1}; public void main(){ System.out.println("Antal lige: “ + countEvens(myArray2)); } //--- Sweep gennem arrayet Tæl op, hvis tallet er lige

FEN IntroJava AAU7 Lav en metode, som tager en int x som parameter, og returnerer true, hvis x findes i et int [ ]. public boolean findX(int[] a, int x) {//search boolean found= false; int i= 0; while(!found && i<a.length){ if(a[i]==x) found= true; else i++; } return found; } Stop når elementet findes public class LoopSolutions{ private int[] myArray2= {1, 22, 5, 13, 12, 1}; public void main(){ System.out.println("Er 13 i myArray2?: " + findX(myArray2,13)); System.out.println("Er 7 i myArray2?: " + findX(myArray2,7)); } …eller hvis der ikke er flere elementer

FEN IntroJava AAU8 Lav en metode, som finder antallet af vokaler i et char[ ]. public int countVocals(char[] a) {//sweep int count= 0; for(int i= 0; i<a.length;i++){ if(isVocal(a[i])) count++; } return count; } Hvordan laves den? private boolean isVocal(char ch){ char[] vocals= {'a','e','i','o','u','y'}; boolean found= false; int i= 0; while(!found && i<vocals.length){ if(ch==vocals[i]) found= true; else i++; } return found; } Først et sweep Med en søgning blandt alle vokaler!! Her er vokalerne Her søges

FEN IntroJava AAU9 Og test: public class LoopSolutions { private char[] charArray= {'s','a','w','a','o','i'}; public void main() { System.out.println("Antal vokaler: "+ countVocals(charArray)); } //--- } public int countVocals(char[] a){ //--- if(isVocal(a[i])) //--- } private boolean isVocal(char ch){ //--- if(ch==vocals[i]) //--- }

FEN IntroJava AAU10 Og resten…? Arrays Tag udgangspunkt i klassen Methods i projektet javaFundamentals (.zip).zip 1.Lav en metode, som returnerer antallet af lige tal i et int[ ]. Test den. (Vink: et tal er lige, hvis rest ved division med 2 er 0) 2.Lav en metode, som returnerer antallet af tal i et double[ ], som ligger mellem 10,0 og 20,0. Test den. 3.Lav en metode, som tager en int x som parameter, og returnerer true, hvis x findes i et int [ ]. Ænder metoden, så index på første forekomst af x i arrayet returneres. 4.Lav en metode, som finder første forekomst af et tegn i et char[ ]. 5.Lav en metode, som finder antallet af vokaler i et char[ ]. (Vink: lav først en metode, som tager et bogstav som parameter, og returnerer true, hvis bogstavet er en vokal, ellers false.) Loops Tag udgangspunkt i projektet Drawer (.zip). Brug loops..zip 1.Ænder højhusmetoden, så der tegnes vha. et loop 2.Lav en metode, som tegner en trappe. 3.Overvej, hvordan en figur kan animeres. Afprøv din løsning på en simpel figur, fx en ”flyvende box”.