Δομές διακλάδωσης, επαναλήψεις, μέθοδοι

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Advertisements

Εντολες Επιλογης (Selection)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Μεθοδολογίες Προγραμματισμού ΙΙ Μ Ε Τ Ρ Ι Κ Ε Σ ΑΝΤΚΕΙΜΕΝΟΣΤΡΕΦΟΥΣ ΣΧΕΔΙΑΣΗΣ Ποιότητα Λογισμικού Παναγιώτης Σφέτσος, PhD
ΗΥ-150 Προγραμματισμός Εντολές Ελέγχου Ροής.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Προγραμματισμός ΙΙ Διάλεξη #7: Περισσότερες Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΕΠΑΝΑΛΗΨΗΕΠΑΝΑΛΗΨΗ ΠΡΟΓΡΑΜΜΑΤΑ. ΠΡΟΓΡΑΜΜΑ 1 ΕΞΗΓΗΣΤΕ ΤΙ ΕΞΟΔΟ ΠΑΡΑΓΕΙ ΤΟ ΠΑΡΑΚΑΤΩ ΠΡΟΓΡΑΜΜΑ #include int main() { char ch; int i; float fl; printf("dose.
Υποθετικός τελεστής Ο υποθετικός τελεστής (?:) αποτελείται από δύο σύμβολα. Ανήκει στην κατηγορία των τελεστών που αποτελούνται από συνδυασμό συμβόλων.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Επανάληψη.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Προγραμματισμός ΗΥ Ενότητα 2: Συναρτήσεις Εισόδου ⁄ Εξόδου. Διδάσκων: Ηλίας Κ Σάββας, Αναπληρωτής Καθηγητής.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
Ο Άνθρωπος είναι ένα ον το οποίο φτιάχνει πολιτισμό και έχει βαθύ στοχασμό, συναισθήματα και σεβασμό στη ζωή των άλλων. Ορισμός.
Δομές Δεδομένων 8η Διάλεξη: Ταξινόμηση Ε. Μαρκάκης.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ «Εισαγωγή στον οντοκεντρικό προγραμματισμό (βασική εισαγωγή στο περιβάλλον εργασίας)» Ρουσσάκης Ιωάννης, ΤΕΙ Κρήτης,
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού - Μέθοδοι ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014:
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ευάγγελος Γ. Ούτσιος Θεόδωρος Γ. Λάντζος.
ΔΟΜΗ ΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ C 1.Σχόλια 2.Οδηγίες προεπεξεργαστή 3.Ορισμοί τύπων 4.Δηλώσεις συναρτήσεων (πρωτότυπα) 5.Ορισμός της main 6.Ορισμοί συναρτήσεων.
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού - Κλάσεις ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014:
Εισαγωγή στον Προγ/μό Η/Υ
Αντικειμενοστραφής Προγραμματισμός Ι
Η γλώσσα C Προγραμματισμός Ι
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Δεδομένα, μεταβλητές, υπολογισμοί
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Πίνακες και αλφαριθμητικά
Καθορίζουν το είδος των υπό δημιουργία περιπτώσεων ελέγχου.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
Τεχνολογία και Προγραμματισμός Υπολογιστών
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης
«Από τη MicroWorlds Pro στην Python»
ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΤΗΣ JAVA
Δομές Επανάληψης ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Πρωτογενείς τύποι δεδομένων
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
Αρχή συστήματος συντεταγμένων: Το σημείο 0,0,0 (x, y, z)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Γλώσσα Προγραμματισμού V PHP
Αναδρομικές Εξισώσεις και Αφηρημένοι Τύποι Δεδομένων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στη Java (Μέρος Α’)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Δομές ροής προγράμματος
ΑΣΚΗΣΕΙΣ.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

Δομές διακλάδωσης, επαναλήψεις, μέθοδοι Java – Βοηθητικό Υλικό

Αποφάσεις Δεν έχουμε ακολουθιακή εκτέλεση Διακόπτεται η κανονική ροή και ανάλογα με την τιμή μιας έκφρασης πραγματοποιείται μια διακλάδωση υπό συνθήκη Υπάρχουν και διακλαδώσεις που εκτελούνται χωρίς συνθήκη

Η δομή if Η πιο συνηθισμένη εντολή διακλάδωσης if (συνθήκη) Η πιο συνηθισμένη εντολή διακλάδωσης if (συνθήκη) { εντολή 1; εντολή 2; ……. } if (συνθήκη) εντολή 1; εντολή 2; …….

Else if (συνθήκη) { εντολές Α; } else εντολές Β;

1ο Παράδειγμα Να δημιουργηθεί πρόγραμμα το οποίο να παράγει ένα τυχαίο αριθμό μεταξύ του 1 και του 10 και στη συνέχεια να εξετάζει αν ο αριθμός είναι άρτιος ή περιττός. Υπόδειξη: Για την δημιουργία των τυχαίων αριθμών θα χρησιμοποιηθεί η συνάρτηση Math.random()

1ο παράδειγμα –Λύση Να δημιουργηθεί πρόγραμμα το οποίο να παράγει ένα τυχαίο αριθμό μεταξύ του 1 και του 10 και στη συνέχεια να εξετάζει αν ο αριθμός είναι άρτιος ή περιττός. Public class CheckNum { public static void main (String[] args) int number=0; number = 1+(int)(9*Math.random()); if(number%2==0) System.out.println (“Number “+number+” is even); else System.out.println (“Number “+number+” is odd); }

2ο Παράδειγμα – Ένθετα if Δίνονται 3 διαφορετικοί ακέραιοι x,y,z. Να τοποθετηθούν σε αύξουσα σειρά.

2ο Παράδειγμα - Λύση public class Order { public static void main (String [] args) int x=-45, y=115, z=0; if (x<y && x<z) if(y<z) System.out.println (“The order is “+x+”, “+y+”, “+z+”“); else System.out.println (“The order is “+x+”, “+z+”, “+y+”“); } if (x>z && x>y) { if(z>y) System.out.println (“The order is “+y+”, “+z+”, “+x+”“); else System.out.println (“The order is “+z+”, “+y+”, “+x+”“); } if(x<y && x>z) System.out.println (“The order is “+z+”, “+x+”, “+y+”“); if(x>y && x<z) System.out.println (“The order is “+y+”, “+x+”, “+z+”“);

Else if Public class Order1 { public static void main (String [] args) int x=-45,y=115, z=0; if (x<y && x<z) if (y<z) System.out.println (“The order is “+x+”, “+y+”, “+z+”“); else System.out.println (“The order is “+x+”, “+z+”, “+y+”“); else if(x>z && x>y) if (z>y) System.out.println (“The order is “+y+”, “+z+”, “+x+”“); else System.out.println (“The order is “+z+”, “+y+”, “+x+”“); else if (x<y && x>z) System.out.println (“The order is “+z+”, “+x+”, “+y+”“); System.out.println (“The order is “+y+”, “+x+”, “+z+”“); }

Οι τελεστές & και | Υπό συνθήκη And (&&) X==5 && y>=12 Εξετάζεται η πρώτη συνθήκη και εάν βρεθεί ψευδής δεν εξετάζεται η 2η Λογικό and (&) X==5 & y>=12 Έστω χ=5 και y=13 Εξετάζονται κάθε φορά και οι δύο συνθήκες Χρήσιμος όταν μεταβάλλεται η τιμή μιας μεταβλητής Π.χ.: χ==5 & ++y>=12

Τριαδικός τελεστής ?: Εμπλέκει 3 τελεστές if (a>b) max=a; else Τριαδικός τελεστής ?: Εμπλέκει 3 τελεστές if (a>b) max=a; else max=b; max = a > b ? a : b **Αρχικά ελέγχεται η συνθήκη, εάν είναι αληθής επιστρέφεται η τιμή α, αλλιώς η τιμή b

3ο Παράδειγμα Να κατασκευαστεί πρόγραμμα το οποίο να δημιουργεί δύο τυχαίους φυσικούς αριθμούς μικρότερους του 100 και στη συνέχεια να βρίσκει και να τυπώνει τον μεγαλύτερο και τον μικρότερο από αυτούς. Υπόδειξη: Για την δημιουργία των τυχαίων αριθμών θα χρησιμοποιηθεί η συνάρτηση Math.random()

3o Παράδειγμα - Λύση public class MinMax { public static void main (String [] args) int a=1+(int)(99*Math.random()) ; System.out.println(“The first is …” +a”); int b =1+(int)(99*Math.random()); System.out.println(“The first is …” +b”); int min=(a<b?a:b); int max=(a>b?a:b); System.out.println(“The minimum is …” +min”); System.out.println(“The maximum is …” +max”); }

Switch Δομή πολλαπλής διακλάδωσης Εξετάζεται μια μεταβλητή ή μια έκφραση που μπορεί να πάρει διάφορες τιμές Η χρησιμοποιούμενη έκφραση ή μεταβλητή πρέπει να είναι τύπου int, byte, short ή char Σε κάθε case πρέπει να βάζουμε την εντολή υπερπήδησης break, αλλιώς το πρόγραμμα θα συνεχίσει τη ροή του εκτελώντας την επόμενη εντολή case. Σύνταξη: Switch (έκφραση) { Case (τιμή1): Ομάδα εντολών1; Break; Case (τιμή2): Ομάδα εντολών2; …… Case (τιμήn): Ομάδα εντολώνn; } ….

4ο Παράδειγμα Έστω ότι έχουμε μια τυχαία εμφάνιση ενός αριθμού από 1 έως 5. Για τις τιμές 1 και 5 θέλουμε να τυπώνει στην οθόνη τα χρώματα μαύρο και άσπρο αντίστοιχα, ενώ για τις τιμές 2,3,4 να τυπώνονται τα τρία βασικά χρώματα κόκκινο, πράσινο, μπλε.

4o Παράδειγμα - Λύση Public class ShowSwitch { public static void main (String[] args) int x=(int)(1+5*Math.random()); switch (x) case 1: System.out.println(“Black” ); break; case 2: System.out.println(“Red”); case 3: System.out.println(“Green” ); break; case 4: System.out.println(“Blue”); case 5: System.out.println(“White ”);

Εντολές επανάληψης - βρόχοι Γνωστός αριθμός επαναλήψεων  for Άγνωστος ο αριθμός των επαναλήψεων  while ή do – while Οι εντολές επαναλαμβάνονται εφόσον εξακολουθεί να ισχύει μια λογική συνθήκη

for Περιέχει μια συνθήκη με μετρητή Η εκτέλεση των εντολών που υπάρχουν μέσα στο βρόχο γίνεται εφόσον ο μετρητής επαληθεύει τη συνθήκη Έκφραση1: Οποιαδήποτε παράσταση Εκτελείται μια φορά στην αρχή του βρόχου Έκφραση2: Οπωσδήποτε λογική έκφραση Ελέγχεται πριν από κάθε επανάληψη, αν είναι ψευδής ο βρόχος τερματίζεται Έκφραση3: Καθορίζει το βήμα της επανάληψης Σύνταξη: for (συνθήκη ελέγχου) { Εντολές } for( έκφραση1; Έκφραση2; Έκφραση3 )

5ο Παράδειγμα Να δίνεται ο ακέραιος αριθμός Ν και στη συνέχεια να υπολογίζεται το άθροισμα των αριθμών 1+2+3+…+Ν.

5ο Παράδειγμα - Λύση Να δίνεται ο ακέραιος αριθμός Ν και στη συνέχεια να υπολογίζεται το άθροισμα των αριθμών 1+2+3+…+Ν Public class summation { public static void main (String[] args) int N=100; int Sum=0; for (int i=1; i<N; i++) Sum=Sum+i; System.out.println (“The sum is “+Sum); }

While Ο αριθμός των επαναλήψεων δεν είναι προκαθορισμένος αλλά εξαρτάται από μια συνθήκη Εφόσον η συνθήκη είναι αληθής εξακολουθεί να εκτελείται

6ο Παράδειγμα Να δημιουργηθεί πρόγραμμα το οποίο να δίνει σε μια μεταβλητή τύπου float την τιμή 10.0. Στη συνέχεια η μεταβλητή αυτή να υποδιπλασιάζεται μέχρι να γίνει μικρότερη από την τιμή 0,01

6ο Παράδειγμα - Λύση Να δημιουργηθεί πρόγραμμα το οποίο να δίνει σε μια μεταβλητή τύπου float την τιμή 10.0. Στη συνέχεια η μεταβλητή αυτή να υποδιπλασιάζεται μέχρι να γίνει μικρότερη από την τιμή 0,01 Public class halves { public static void main (String[] args) float x=10.0; System.out.println (“initial value of x=“+x); while (x<0.01) x/=2; System.out.println(“x is now”+x); }

Do - while Ο έλεγχος γίνεται στο τέλος του βρόχου και όχι στην αρχή όπως στο while. Με τον τρόπο αυτό εξασφαλίζεται η εκτέλεση του βρόχου μια φορά ακόμα και αν η συνθήκη είναι ψευδής. Σύνταξη: do { εντολές } while (συνθήκη);

7ο Παράδειγμα Να υπολογιστεί το άθροισμα 1+2+3+…+Ν με τη δομή do-while.

7ο Παράδειγμα Public class summation { public static void main (String[] args) int N=100; int i=1; int Sum=0; do { Sum+=i++; } while (i<=N); System.out.println (“The sum is” +Sum);

Ένθετοι βρόχοι Ο εσωτερικός βρόχος πρέπει να περικλείεται εξ ολοκλήρου στον εξωτερικό Δεν μπορούμε να μπούμε στο εσωτερικό ενός βρόχου αν δεν περάσουμε από την πρώτη εντολή του Δεν μπορούμε να χρησιμοποιήσουμε την ίδια μεταβλητή ως απαριθμητή σε δυο ή περισσότερους βρόχους, που ο ένας να περιέχεται στον άλλο

8ο Παράδειγμα Να φτιαχτεί πρόγραμμα που να υπολογίζει την προπαίδεια μέχρι το 10.

8ο Παράδειγμα - Λύση Public class propaidia { public static void main (String[] args) int c=0; for (int a=1; a<=10; a++) for (int b=1; b<=10; b++) { c=a*b; System.out.println(a+”x”+b+”=” +c); } System.out.println();

Βρόχος καθυστέρησης Καθυστερεί την εκτέλεση του προγράμματος για συγκεκριμένο χρονικό διάστημα Π.χ.: for (int i=1; i<100000000; i++) { }

Continue Χρησιμοποιείται σε περιπτώσεις στις οποίες δεν θέλουμε να εκτελεστεί το περιεχόμενο ενός βρόχου για μια συγκεκριμένη τιμή της συνθήκης ή του μετρητή Public static void main (String[] args) { int sum=0; for (int i=1; i<=10; i++) if (i==4 | i==8) continue; System.out.println(i); Sum=Sum+i; } System.out.println(“The sum is”+sum);

Continue με ετικέτα Χρησιμοποιείτε σε περίπτωση που θέλουμε να βγούμε από τον εσωτερικό βρόχο για κάποιες συγκεκριμένες τιμές και να μεταφερθούμε στον εξωτερικό.

9ο Παράδειγμα Να υπολογιστεί το παραγοντικό των αριθμών από 1 έως 20, εκτός των αριθμών 5 και 15

9ο Παράδειγμα - Λύση Public class showcontinue { Public static void main (String[] args) int ubound=20; long fact=1; Label1: For (int i=1; i<ubound; i++) { Fact=1; For (int j=2; j<=1; j++) If (i==5 | i==15) Continue label1; Fact *=j; } System.out.println(i+”!”+”is “+fact); }}}

Μέθοδοι Αποτελούν ένα σύνολο από δηλώσεις και εντολές οι οποίες ομαδοποιούνται ώστε να αποτελέσουν ένα ανεξάρτητο πρόγραμμα Τιμή_επιστροφής όνομα_μεθόδου (λίστα παραμέτρων) { Δηλώσεις και εντολές } Όνομα: Οποιοδήποτε έγκυρό όνομα Τιμή επιστροφής: Ο τύπος δεδομένων που επιστρέφει η μέθοδος σε αυτόν που την καλεί Εάν η μέθοδος δεν επιστρέφει καμία τιμή τότε πρέπει να μπει η λέξη void. Οι δηλώσεις και οι εντολές οι οποίες ανήκουν στη μέθοδο πρέπει να περικλείονται σε άγκιστρα

Μέθοδοι Για να καλέσει τη μέθοδο ο χρήστης θα πρέπει να καλέσει το όνομα της στο σημείο που το χρειάζεται

Τέλος