Προγραμματισμός & Εφαρμογές Υπολογιστών (βρόχος For next)

Post on 12-Jun-2015

98 views 0 download

Transcript of Προγραμματισμός & Εφαρμογές Υπολογιστών (βρόχος For next)

Βρόχος For … Next

Σκοπός Μαθήματος Χρήση For … Next για την εκτέλεση προκαθορισμένου αριθμού επαναλήψεων μιας ομάδα εντολών.

Αθήνα, Απρίλιος 2014

Επαναλήψεις Εντολών

Η Visual Basic υποστηρίζει επαναλήψεις ενός συνόλου εντολών:

• Για προκαθορισμένο αριθμό επαναλήψεων (For … Next).

• Όσο μια συνθήκη είναι αληθής (Do While ή Do Loop While).

• Μέχρι μια συνθήκη να γίνει αληθής (Do Until ή Do Loop Until).

For … Next

• Η απλούστερη μέθοδος επανάληψης ενός συνόλου εντολών για προκαθορισμένο αριθμό επαναλήψεων είναι με τη χρήση του βρόχου For…Next.

• Είναι ένας σύντομος τρόπος γραφής πολλών εντολών που θέλουμε να επαναλαμβάνονται.

For … Next

Το πλήθος των επαναλήψεων προκύπτειμέσω μίας μεταβλητής, η οποία παίρνει

μίααρχική τιμή πριν εκτελεστούν για

πρώτηφορά οι εντολές και η τιμή της αλλάζει

κάθεφορά που τελειώνει η εκτέλεση τωνεντολών αυτών

For … Next

For Μετρητής=αρχική τιμή To τελική τιμή [Step βήμα]

Εντολή(ες)

Next Μετρητής

For … Next

• Ο μετρητής επιτρέπεται να χρησιμοποιηθεί σε υπολογισμούς μέσα στο βρόχο. Η τιμή του δεν επιτρέπεται να τροποποιηθεί μέσα στο βρόχο.

• Δεν επιτρέπεται να μεταβληθεί η αρχική και η τελική τιμή του μετρητή. Πρέπει να έχουν τον ίδιο τύπο.

Παράδειγμα 1: For … Next

Dim i As Integer

For i = 1 To 50Print "Καλημέρα"; i

Next i

Παράδειγμα 2: For … Next

Dim i As Integer

For i = 1 To 50 Step 10Print "Καλημέρα "

Next i

Παράδειγμα 3: For … Next

Dim i As Integer

For i = 5 To 25 Step 5Print "Καλημέρα"

Next i

Παράδειγμα 4: For … Next

Dim i As Single

For i = 1 To 2.5 Step 0.5

Print i Next i

Παράδειγμα 5: For … Next

Dim i As Integer

For i = 50 To 1 Step -1 Print i

Next i

Παράδειγμα 6: For … Next

Dim i As Integer

For i = 1 To 15 FontSize = 10 + i Print "Γραμμή"; i Next i

Παράδειγμα 7: For … Next

Dim i As Integer, Name As String

Name = InputBox(“Δώσε όνομα”)

For i = 1 To 10 Print Name, "Τιμή

Μετρητή=" ; iNext i

Παράδειγμα 8: For … Next

Dim i As Integer, j As Integer

For i = 1 To 3For j = 1 To 2 Print i, j

Next jNext i

Παράδειγμα 9: For … Next

For i = 1 To 4 For j = 1 To 3 For k = 1 To 2 Print i, j, k Next k Next jNext i

Παράδειγμα 10: For … Next

Dim sum As Integer, i As Integer sum = 0For i = 1 To 100 sum = sum + iNext iPrint “Aθροισμα 1-100”; sum

Παράδειγμα 11: For … Next

Dim i As Integer, Number As SingleDim sum As Singlesum = 0For i = 1 To 10 Number = InputBox(”Δώσε αριθμό") sum = sum + NumberNext iMsgBox (“Άθροισμα=" & sum)

Παράδειγμα 12: For … Next

Dim gin As Single, i As Integer

gin = 1

For i = 1 To 10 gin = gin * i Next i

Print “Γινόμενο:=“, gin

Παράδειγμα 13: For … Next

Dim gin As Single, Number As Integer

Dim i As IntegerNumber = InputBox("Δώσε αριθμό")gin = 1For i = 1 To Number gin = gin * iNext iPrint “Γινόμενο=“; gin

Αλγόριθμος εύρεσης Μέγιστου

5 3 6 2 1 10 8 9

Είσοδος

Αλγόριθμος

10

Έξοδος

Παράδειγμα

5 3 6 2 1 10 8 9

5

5ΜΑΧ

5 3 6 2 1 10 8 9

5

5ΜΑΧ

3

5 3 6 2 1 10 8 9

5

5ΜΑΧ

3 6

5 3 6 2 1 10 8 9

5

6ΜΑΧ

3 6

5 3 6 2 1 10 8 9

5

6ΜΑΧ

3 6 2

5 3 6 2 1 10 8 9

5

6ΜΑΧ

3 6 2 1

5 3 6 2 1 10 8 9

5

6ΜΑΧ

3 6 2 1 10

5 3 6 2 1 10 8 9

5

10ΜΑΧ

3 6 2 1 10

5 3 6 2 1 10 8 9

5

10ΜΑΧ

3 6 2 1 10 8

5 3 6 2 1 10 8 9

5

10ΜΑΧ

3 6 2 1 10 8 9

Αλγόριθμος σε φυσική γλώσσα

Αποθηκεύουμε τον πρώτο αριθμό σαν μέγιστο. Στη συνέχεια, συγκρίνουμε κάθε αριθμό που δίνεται, με το μέγιστο. Αν ο αριθμός είναι μεγαλύτερος από το μέγιστο, αποθηκεύουμε αυτόν στη θέση του μέγιστου.

Άσκηση 1

• Να γραφεί πρόγραμμα το οποίο δέχεται σαν είσοδο 5 ακέραιους αριθμούς.

• Το πρόγραμμα εμφανίζει στην έξοδο το μεγαλύτερο από τους αριθμούς που δόθηκαν.

Αρχή

Διάβασε Μ

Αρχή

Διάβασε Μ

ΜΑΧ Μ

Αρχή

Για 4 φορές επανέλαβε

Διάβασε Μ

ΜΑΧ Μ

Αρχή

Για 4 φορές επανέλαβε

Διάβασε Μ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

Τύπωσε ΜΑΧ

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 5

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 5

5

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 5

5

Μετρητής

1

1 4 ?

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 2

5

2

Μετρητής

1

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 2

5

2

Μετρητής

1

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 2

5

2

Μετρητής

2

2 4 ?

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 6

5

2

Μετρητής

2

6

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 6

5

2

Μετρητής

2

6

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 6

6

2

Μετρητής

2

6

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 6

6

2

Μετρητής

3

3 4 ?

6

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 3

6

2

Μετρητής

3

63

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 3

6

2

Μετρητής

3

63

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 3

6

2

Μετρητής

4

63

4 4 ?

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 1

6

2

Μετρητής

4

631

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 1

6

2

Μετρητής

4

631

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 1

6

2

Μετρητής

5

631

5 4 ?

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 1

6

2

Μετρητής

5

631

6

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Μ

ΜΑΧ

Είσοδος

Έξοδος

5 1

6

2

Μετρητής

5

631

6

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Number = inputbox(“Δώσε αριθμό”)

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Number = inputbox(“Δώσε αριθμό”)

Max = Number

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Number = inputbox(“Δώσε αριθμό”)

Max = Number

For i=1 to 4

Next i

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Number = inputbox(“Δώσε αριθμό”)

Max = Number

For i=1 to 4

Number = inputbox(“Δώσε αριθμό”)

Next i

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Number = Inputbox(“Δώσε αριθμό”)

Max = Number

For i=1 to 4

Number = Inputbox(“Δώσε αριθμό”)

If Number > Max then

End if

Next i

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Number = Inputbox(“Δώσε αριθμό”)

Max = Number

For i=1 to 4

Number = inputbox(“Δώσε αριθμό”)

If Number > Max then

Max = Number

End if

Next i

Για 4 φορές επανέλαβε

Διάβασε Μ

Μ>ΜΑΧ ?

ΜΑΧ Μ

ΝΑΙ ΟΧΙ

Διάβασε Μ

ΜΑΧ Μ

Αρχή

ΤέλοςΤύπωσε ΜΑΧ

Number = inputbox(“Δώσε αριθμό”)

Max = Νumber

For i=1 to 4

Number = inputbox(“Δώσε αριθμό”)

If Νumber > Μax then

Μax = Νumber

End if

Next i

Msgbox(“o μεγαλύτερος αριθμός είναι ο “ & max)

Άσκηση 1: Διαφορετικός Αλγόριθμος

Dim i As Integer, Number As Single, max As Single

For i = 1 To 5Number = InputBox(“Δώσε αριθμό " & i)

If i = 1 Then max = Number End If If Number > max Then max = Number End IfNext iPrint “Ο μεγαλύτερος αριθμός είναι=", max

Να γραφεί πρόγραμμα που δέχεται σαν είσοδο τα ονόματα 3 παραγωγών, και την ποσότητα του προϊόντος σε κιλά που παρήγαγε ο καθένας. Η τιμή του προϊόντος είναι 2 € το κιλό. Το πρόγραμμα να εμφανίζει στην έξοδο:

1. Το όνομα κάθε παραγωγού και το ποσό που αυτός εισέπραξε.

2. Το ποσό που εισέπραξαν συνολικά οι παραγωγοί.

3. Τη μέση είσπραξη ανά παραγωγό.

Άσκηση 2

Άσκηση 2: For … Nextsum = 0For i = 1 To 3 Name = InputBox("Ονοματεπώνυμο") posotita = InputBox("Ποσότητα παραγωγής") poson = 2 * posotita sum = sum + poson Print Name, "Ποσό που εισέπραξε="; posonNext iPrint “Η συνολική είσπραξη είναι“; sumPrint “H μέση είσπραξη ανά παραγωγό είναι“; sum/3

Να γραφεί πρόγραμμα το οποίο:• Διαβάζει 10 αριθμούς.• Υπολογίζει το άθροισμα των αριθμών αυτών.Μετά το τέλος εισαγωγής των στοιχείων το πρόγραμμα εμφανίζει στην οθόνη: • Tο άθροισμα των αριθμών αυτών.• Tο μεγαλύτερο από τους αριθμούς. • Tο μικρότερο από τους αριθμούς.

Άσκηση 3

Άσκηση για το σπίτι

Να γραφεί πρόγραμμα που δέχεται σαν είσοδο τα ονόματα 5 παραγωγών, καθώς και την ποσότητα του προϊόντος που αυτός παρήγαγε. Το πρόγραμμα εμφανίζει στην έξοδο:

Α) το όνομα του παραγωγού με τη μεγαλύτερη σοδειά, και την ποσότητα του προϊόντος που αυτός παρήγαγε

Β) Το πλήθος των παραγωγών που παρήγαγαν πάνω από 500 κιλά έκαστος

Γ) Τη συνολική ποσότητα προϊόντος που παρήγαγαν και οι 5 παραγωγοί.

sum1 = 0sum2 = 0pl1 = 0pl2 = 0plithos = 5For i = 1 To plithos onoma = InputBox("όνομα

παραγωγού “)

eidos = InputBox("είδος 1 ή 2 ") posot = InputBox("ποσότητα

παραγωγής") timi = InputBox("τιμή μονάδος")

axia = posot * timi If eidos = 1 Then sum1 = sum1 + posot pl1 = pl1 + 1 End If If eidos = 2 Then sum2 = sum2 + posot pl2 = pl2 + 1 End If Print onoma, axia Next i

Print "ειδος 1 ", sum1, pl1Print "ειδος 2 ", sum2, pl2

Για να βγούμε από ένα For…Next πριν ολοκληρωθεί η εκτέλεσή του, χρησιμοποιούμε την εντολή Exit For.

Η εντολή Exit For χρησιμοποιείται κυρίως όταν χρειάζεται να αντιμετωπισθούν ειδικές περιπτώσεις μέσα στο βρόχο και συντάσσεται κυρίως σε συνδυασμό με τη δομή If…Then.

Exit For

Dim i As Integer

For i= 1 To 20If i =5 Then Exit For

Next i

Παράδειγμα: Exit For