Προγραμματισμός & Εφαρμογές Υπολογιστών (εντολή If ...
Transcript of Προγραμματισμός & Εφαρμογές Υπολογιστών (εντολή If ...
Εντολή If-Then-Else Σκοπός Μαθήματος Χρήση εντολής If…Then…Else για διακλάδωση σε ένα σύνολο εντολών ανάλογα με το αποτελέσματα μιας μεταβαλλόμενης συνθήκης.
Η σύνταξη της If … Then είναι η εξής:
If Συνθήκη Then Εντολή(-ές)
End If
Εντολή If-Then
Παράδειγμα:
Number=100 If Number<=120 Then
Price = 100 End If
Εντολή If-Then
Εντολή If … Then
Συντακτικό
If Συνθήκη Then
εντολή-a1
…
εντολή-am
End If
Λειτουργικότητα
Αν ικανοποιείται η Συνθήκη Τότε
εκτέλεσε τις εντολές
εντολή-a1
…
εντολή-am
Συντακτικό
If Συνθήκη Then
εντολή-1
…
εντολή-m
End If
Εντολή If-Then
Συνθήκη
εντολή-a1
…
εντολή-am
ΝΑΙ
ΟΧΙ
Λογικό Διάγραμμα
Παράδειγμα:
If Score>=20 Then Ward = 1000 Label1.Caption=‘‘ You Win‘‘ End If
Εντολή If-Then
Εντολή If-Then [05]
Πρόγραμμα:
• Διαβάζει ένα βαθμό.
• Αν ο βαθμός είναι τουλάχιστον 5 βγάζει το μήνυμα
Εύγε, Πέρασες!
Private Sub Command1_Click() Dim bathmos As Single bathmos = InputBox("Δώσε το βαθμό σου") If bathmos >= 5 Then MsgBox("Εύγε, Πέρασες!") End If End Sub
Εντολή If-Then
Εντολή If-Then
Private Sub Command1_Click()
Dim bathmos As Single
bathmos=InputBox(“Δώσε βαθμό”)
If bathmos >= 5 Then
MsgBox ("ΕΥΓΕ, ΠΕΡΑΣΕΣ!!!")
End If
Print "ΤΕΛΟΣ ΑΞΙΟΛΟΓΗΣΗΣ"
End Sub
Εάν μετά τη δεσμευμένη λέξη κλειδί Then ακολουθεί μια και μόνο εντολή τότε η σύνταξη της μπορεί να είναι η εξής:
If Συνθήκη Then Εντολή
Εντολή If-Then
Παράδειγμα: If bathmos >= 5 Then
MsgBox("Εύγε, Πέρασες!") End If
ή If bathmos >= 5 Then MsgBox("Εύγε, Πέρασες!")
Εντολή If … Then
Η σύνταξη της If…Then…Else είναι η εξής:
If Συνθήκη Then Εντολή(-ές)1
Else Εντολή(-ές)2 End If
Εντολή If…Then…Else
Εντολή If-Then-Else
Συντακτικό
If Συνθήκη Then
εντολή-a1
…
εντολή-am
Else
εντολή-b1
…
εντολή-bn
End If
Λειτουργικότητα
Αν ικανοποιείται η συνθήκη Τότε
εκτέλεσε τις εντολές
εντολή-a1
…
εντολή-am
Διαφορετικά
εκτέλεσε τις εντολές
εντολή-b1
…
εντολή-bn
Εντολή If-Then-Else
Συντακτικό
If συνθήκη Then
εντολή-a1
…
εντολή-am
Else
εντολή-b1
…
εντολή-bn
End If
συνθήκη
εντολή-a1
…
εντολή-am
ΝΑΙ
ΟΧΙ
εντολή-b1
…
εντολή-bn
Λογικό Διάγραμμα
Εντολή If-Then
Πρόγραμμα:
• Διαβάζει ένα βαθμό.
• Αν ο βαθμός είναι τουλάχιστον 5 βγάζει το μήνυμα
Εύγε, πέρασες!
• Στην αντίθετη περίπτωση βγάζει το μήνυμα
Κόπηκες! Διάβασε περισσότερο!
Private Sub Command1_Click() Dim bathmos As Single bathmos = InputBox("Δώσε το βαθμό σου") If bathmos >= 5 Then MsgBox ("Εύγε, πέρασες!") Else MsgBox ("Κόπηκες! Διάβασε Περισσότερο!") End If End Sub
Εντολή If-Then-Else
Εντολή If-Then-Else
Private Sub Command1_Click()
Dim bathmos As Single
bathmos = InputBox(“Δώσε βαθμό”)
If bathmos >= 5 Then
MsgBox ("ΕΥΓΕ, ΠΕΡΑΣΕΣ!!!")
Else
MsgBox ("ΚΟΠΗΚΕΣ! ΔΙΑΒΑΣΕ ΠΕΡΙΣΣΟΤΕΡΟ!")
End If
Print "ΤΕΛΟΣ ΑΞΙΟΛΟΓΗΣΗΣ"
End Sub
Τελεστές Σύγκρισης
= Ίσο με
<> Διάφορο του
> Μεγαλύτερο από
< Μικρότερο από
>= Μεγαλύτερο από ή ίσο με
<= Μικρότερο από ή ίσο με
Τελεστές Σύγκρισης–Παραδείγματα
x = 0
x > 5
x >= y
5 < y
x > (y + 5)
(x-3) < (y + 5)
Η Visual Basic επιτρέπει τον έλεγχο περισσοτέρων από μια συνθήκες με τη χρήση ενός ή περισσοτέρων λογικών τελεστών. Οι κυριότεροι λογικοί τελεστές είναι AND, OR, EQV, XOR, και NOT. Οι τελεστές αυτοί ορίζονται παραδοσιακά με πίνακες αληθείας.
Λογικοί Τελεστές
A B A AND B A OR B F F F F F T F T T F F T T T T T
Λογικοί Τελεστές
A B A EQV B A XOR B F F T F F T F T T F F T T T T F
Λογικοί Τελεστές
A NOT A F T T F
Λογικοί Τελεστές
Flower="Τριαντάφυλλο" Price = 4
• Flower="Τριαντάφυλλο" AND Price<6 (True)
• Flower="Γαρύφαλλο" OR Price<6 (True)
• NOT Price<=6 (False)
Λογικοί Τελεστές
ΠΙΝΑΚΕΣ ΑΛΗΘΕΙΑΣ
συνθ1 συνθ2 συνθ1 And συνθ2 συνθ1 Or συνθ2
False False False False
False True False True
True False False True
True True True True
συνθ Not(συνθ)
False True
True False
Συνθήκες (Προτάσεις)
συνθ1: p > 8
συνθ2: q < 3
συνθ3: Ο Γιάννης είναι ψηλός.
Αν ισχύει:
p = 12
q = 10
συνθ3 είναι False
Τότε:
συνθ1 And συνθ2 είναι False
συνθ1 Or συνθ2 είναι True
Not(συνθ1) είναι False
συνθ1 Or συνθ3 είναι True
Not(συνθ3) είναι True
Μια συνθήκη (πρόταση) είναι αποκλειστικά
είτε Αληθής (True) είτε Ψευδής (False).
ΠΑΡΑΔΕΙΓΜΑΤΑ
Λογικοί Τελεστές
Λογικοί Τελεστές
ΠΙΝΑΚΕΣ ΑΛΗΘΕΙΑΣ
συνθ1 συνθ2 συνθ1 And συνθ2 συνθ1 Or συνθ2
False False False False
False True False True
True False False True
True True True True
συνθ Not(συνθ)
False True
True False
Αν ισχύει:
p = 12
q = 10
συνθ3 είναι False
Τότε:
Not(συνθ1 And συνθ2) Οr (συνθ3)
είναι True.
Μια συνθήκη (πρόταση) είναι αποκλειστικά
είτε Αληθής (True) είτε Ψευδής (False).
Συνθήκες (Προτάσεις)
συνθ1: p > 8
συνθ2: q < 3
συνθ3: Ο Γιάννης είναι ψηλός.
Εντολή If-Then-Else
Πρόγραμμα
• Διαβάζει ένα βαθμό.
• Αν ο βαθμός δεν είναι έγκυρος (<0 ή >10) εμφανίζει
κατάλληλο μήνυμα.
• Αν ο βαθμός είναι τουλάχιστον 5 εμφανίζει το μήνυμα
Εύγε, πέρασες! αλλιώς το μήνυμα
Κόπηκες! Διάβασε περισσότερο!
bathmos = InputBox("Δώσε το βαθμό σου") If bathmos >= 0 AND bathmos<=10 Then If bathmos >= 5 Then MsgBox ("Εύγε, πέρασες!!!") Else MsgBox ("Κόπηκες! Διάβασε Περισσότερο!") End If Else MsgBox("ΜΗ ΕΓΚΥΡΟΣ ΒΑΘΜΟΣ!") End If
Εντολή If-Then-Else
Private Sub Command1_Click()
bathmos = InputBox(“Δώσε βαθμό”) If (bathmos >= 0) And (bathmos <= 10) Then
If bathmos >= 5 Then
MsgBox ("ΕΥΓΕ, ΠΕΡΑΣΕΣ!!!")
Else
MsgBox ("ΚΟΠΗΚΕΣ! ΔΙΑΒΑΣΕ ΠΕΡΙΣΣΟΤΕΡΟ!")
End If
Else
MsgBox ("ΜΗ ΕΓΚΥΡΟΣ ΒΑΘΜΟΣ!!!!!")
End If
Print "ΤΕΛΟΣ ΑΞΙΟΛΟΓΗΣ"
End Sub
Εντολή If-Then-Else
Private Sub Command1_Click()
bathmos = InputBox(“Δώσε βαθμό”)
If (bathmos < 0) Or (bathmos > 10) Then
MsgBox ("ΜΗ ΕΓΚΥΡΟΣ ΒΑΘΜΟΣ!!!")
Else
If bathmos >= 5 Then
MsgBox ("ΕΥΓΕ, ΠΕΡΑΣΕΣ!!!")
Else
MsgBox ("ΚΟΠΗΚΕΣ! ΔΙΑΒΑΣΕ ΠΕΡΙΣΣΟΤΕΡΟ!")
End If
End If
Print "ΤΕΛΟΣ ΑΞΙΟΛΟΓΗΣΣ"
End Sub
Εντολή If-Then-Else
If Συνθήκη1 Then Εντολή(ές)1
ElseIf Συνθήκη2 Then Εντολή(ες)2
… Else
Εντολή(ες)Ν End If
Εντολή If…Then…Else
If Age <= 6 Then
Print "Μωρό"
ElseIf Age <= 12 Then
Print "Παιδί"
ElseIf Age <= 18 Then
Print "Εφηβος"
ElseIf Age <= 70 Then
Print "Ενήλικας"
Else
Print "Ηλικιωμένος"
End If
Εντολή If…Then…Else
Να γραφεί πρόγραμμα όπου δίνεται η θερμοκρασία περιβάλλοντος και εμφανίζει το εξής μήνυμα:
• εάν η θερμοκρασία είναι μικρότερη ή ίση με 8 βαθμούς εμφανίζει το μήνυμα "Κάνει παγωνιά",
• εάν η θερμοκρασία είναι μεγαλύτερη από 8 και μικρότερη ή ίση με 15 εμφανίζει το μήνυμα "Κάνει ψύχρα",
• εάν η θερμοκρασία είναι μεγαλύτερη από 15 και μικρότερη ή ίση με 28 εμφανίζει το μήνυμα "Έχει καλό καιρό",
• εάν η θερμοκρασία είναι μεγαλύτερη από 28 τότε εμφανίζει το μήνυμα "Κάνει πολύ ζέστη".
Εντολή If-Then-Else
Dim Temp As Single Temp = InputBox("Δώσε θερμοκρασία") If Temp <= 8 Then MsgBox("Κάνει παγωνιά“) ElseIf Temp <= 15 Then MsgBox("Κάνει ψύχρα”) ElseIf Temp <= 28 Then MsgBox("Έχει καλό καιρό“) Else MsgBox( "Κάνει πολύ ζέστη“) End If
Εντολή If…Then…Else
Dim Temp As Single Temp = InputBox("Δώσε θερμοκρασία") If Temp <= 8 Then Label1.Caption = "Κάνει παγωνιά" ElseIf Temp > 8 AND Temp <= 15 Then Label1.Caption = "Κάνει ψύχρα" ElseIf Temp > 15 AND Temp <= 28 Then Label1.Caption = "Έχει καλό καιρό" Else Label1.Caption = "Κάνει πολύ ζέστη" End If
Εντολή If…Then…Else
Εντολή If-Then-Else
Πρόγραμμα
• Διαβάζει μια θερμοκρασία t και βγάζει ένα από τα παρακάτω
μηνύματα:
- ΚΑΝΕΙ ΠΑΓΩΝΙΑ, αν t <= 3.
- ΚΑΝΕΙ ΨΥΧΡΑ, αν 3 < t < 18.
- ΚΑΝΕΙ ΚΑΛΟ ΚΑΙΡΟ, αν 18 <= t < 32.
- ΚΑΝΕΙ ΖΕΣΤΗ, αν 32 <= t.
ΠΑΓΩΝΙΑ ΚΑΝΕΙ ΨΥΧΡΑ ΚΑΛΟ ΚΑΙΡΟ ΚΑΝΕΙ ΖΕΣΤΗ
3 18 32
Private Sub Command1_Click()
Dim t As Single
t = InputBox(“Δώσε Θερμοκρασία”)
If t <= 3 Then
Label1.Caption = “ΚΑΝΕΙ ΠΑΓΩΝΙΑ"
Else ' Ισχύει t > 3
If t < 18 Then
Label1.Caption = " ΚΑΝΕΙ ΚΡΥΟ"
Else ' Ισχύει t >= 18
If t < 32 Then
Label1.Caption = " ΚΑΝΕΙ ΚΑΛΟ ΚΑΙΡΟ"
Else ' Ισχύει t >= 32
Label1.Caption = " ΚΑΝΕΙ ΖΕΣΤΗ"
End If
End If
End If
Print "ΟΛΟΚΛΗΡΩΣΗ ΕΚΤΕΛΕΣΗΣ
End Sub
Private Sub Command1_Click()
Dim t As Single
t = InputBox(“Δώσε Θερμοκρασία”)
If t < 18 Then
If t <= 3 Then
Label2.Caption = "ΚΑΝΕΙ ΠΑΓΩΝΙΑ"
Else ' 3 < t < 18 Label2.Caption = "ΚΑΝΕΙ ΚΡΥΟ"
End If
Else ' Ισχύει t >= 18
If t < 32 Then
Label2.Caption = "ΚΑΝΕΙ ΚΑΛΟ ΚΑΙΡΟ"
Else ' Ισχύει t >= 32 Label2.Caption = "ΚΑΝΕΙ ΖΕΣΤΗ"
End If
End If
Print "ΟΛΟΚΛΗΡΩΣΗ ΕΚΤΕΛΕΣΗΣ End Sub
Να γραφεί πρόγραμμα που δέχεται σαν είσοδο το όνομα ενός παραγωγού, και τη σοδειά του σε κιλά, και την ποιότητα του προιόντος. Η τιμή του προϊόντος ανά κιλό προκύπτει ως εξής, ανάλογα με την ποιότητά του Ποιότητα 1 10 ευρώ το κιλό. Ποιότητα 2 8 ευρώ το κιλό. Ποιότητα 3 6 ευρώ το κιλό. Ποιότητα 4 5 ευρώ το κιλό. Το πρόγραμμα εμφανίζει στην έξοδο το όνομα του παραγωγού και το ποσό που αυτός πρέπει να εισπράξει.
Παράδειγμα 1
Να γραφεί πρόγραμμα το οποίο διαβάζει: (α) τον αριθμό μητρώου ενός εμπόρου και (β) την ποσότητα μήλων σε κιλά που
αγόρασε. Το πρόγραμμα να υπολογίζει κλιμακωτά
το ποσό που θα πρέπει να πληρώσει σύμφωνα με τον παρακάτω πίνακα και να εμφανίζει τον αριθμό μητρώου και το ποσό που θα πληρώσει ο έμπορος.
Παράδειγμα 2
Παράδειγμα 2
Ποσότητα μήλων σε κιλά Τιμή σε Ευρώ/κιλό
Από 0 έως και 20 4 Ευρώ
Από 20 έως και 50 3 Ευρώ
Από 50 και άνω 2 Ευρώ
Code=InputBox (“Please give code”) Posotita=InputBox(“Please give quantity”) If Posotita <= 20 Then Poson= 4*Posotita ElseIf Posotita>20 AND Posotita<= 50 Then Poson = 80 + (Posotita -20) * 3 Else Poson= 80 +90 + (Posotita-50) * 2
End If
Παράδειγμα 2
Να γραφεί πρόγραμμα το οποίο δέχεται σαν είσοδο το εισόδημα ενός πολίτη και υπολογίζει το φόρο που θα πληρώσει με τον παρακάτω τρόπο:
Για εισόδημα: • Μέχρι και 10.000 € δεν αναλογεί φόρος • Μέχρι και 25.000 € αναλογεί φόρος 5% • Μέχρι και 40.000 € αναλογεί φόρος 15% • Μέχρι και 70.000 € αναλογεί φόρος 30% • Μεγαλύτερο των 70.000 € αναλογεί φόρος 40%
Παράδειγμα 3: Υπολογισμός φόρου για εκκαθάριση φορολογίας εισοδήματος
If NetIncome <= 10000 Then Tax = 0 ElseIf NetIncome <= 25000 Then Tax = (NetIncome - 10000) * 0.05 ElseIf NetIncome <= 40000 Then Tax = 750 + ((NetIncome - 25000) * 0.15) ElseIf NetIncome <= 70000 Then Tax = 750 + 2250 + ((NetIncome - 40000) * 0.3) Else Tax = 750+2250+9000 + ((NetIncome - 70000)* 0.4)
End If
Παράδειγμα 3: Υπολογισμός φόρου για εκκαθάριση φορολογίας εισοδήματος
Dim NetIncome As Single, Tax As Single NetIncome = InputBox("Δώσε εισόδημα") If NetIncome >= 0 Then If NetIncome <= 10000 Then Tax = 0 ElseIf NetIncome <= 25000 Then Tax = (NetIncome - 10000) * 0.05 ElseIf NetIncome <= 40000 Then Tax = 750 + ((NetIncome - 25000) * 0.15) ElseIf NetIncome <= 70000 Then Tax = 750 + 2250 + ((NetIncome - 40000) * 0.3) Else Tax = 750+2250+9000 + ((NetIncome - 70000)* 0.4) End If
MsgBox (Tax), , "Φόρος Εισοδήματος"
Else MsgBox "Λάθος Δεδομένα" End If
Παράδειγμα 3:
• Η σειρά των συνθηκών στις προτάσεις If-Then και ElseIf έχει πολύ μεγάλη σημασία.
• Τι θα συμβεί αν αντιστρέψετε τη σειρά των συνθηκών στο παράδειγμα της κλίμακας φορολογίας;
• Η Visual Basic σταματάει στην πρώτη συνθήκη που είναι αληθής, ακόμα και αν αληθεύουν και κάποιες από τις υπόλοιπες συνθήκες.
Συμβουλή
Παράδειγμα 4
Γράψτε ένα πρόγραμμα που δέχεται σαν είσοδο το όνομα ενός παραγωγού και τον αριθμό των στρεμμάτων που αυτός καλλιεργεί. Το κόστος καλλιέργειας ανά στρέμμα προκύπτει ως εξής:
Για λιγότερα από 10 στρέμματα 300 ευρώ ανά στρέμμα
Από 10 μέχρι 100 (όχι 100) 250 ευρώ ανά στρέμμα
Από 100 μέχρι 500 (όχι 500) 200 ευρώ ανά στρέμμα
Από 500 και πάνω 150 ευρώ ανά στρέμμα
Το πρόγραμμα επιστρέφει στην έξοδο το όνομα του παραγωγού και το κόστος που πλήρωσε για την καλιέργειά του.
Για τη μέτρηση της ποιότητας της ατμόσφαιρας μετρούνται δύο ρύποι: ΝΟ2 και Ο3.
ΝΟ2 >400 ή Ο3 > 250 Προσοχή υψηλοί ρύποι ΝΟ2 >500 ή Ο3 > 300 Πολύ υψηλοί ρύποι ΝΟ2 >700 ή Ο3 > 500 Πάρα πολύ υψηλοί ρύποι
Παράδειγμα 5: Ατμοσφαιρική Ρύπανση
Dim NO2 As Integer Dim O3 As Integer NO2 = InputBox("Παρακαλώ πληκτρολογήστε τη
τιμή για το διοξείδιο του αζώτου") O3 = InputBox("Παρακαλώ πληκτρολογήστε τη
τιμή για το όζον")
Παράδειγμα 5: Ατμοσφαιρική Ρύπανση
If NO2 > 700 Or O3 > 500 Then Label1.Caption = " Πάρα πολύ υψηλοί ρύποι" ElseIf NO2 > 500 Or O3 > 300 Then Label1.Caption = "Πολύ υψηλοί ρύποι" ElseIf NO2 > 400 Or O3 > 250 Then Label1.Caption = "Προσοχή υψηλοί ρύποι" Else Label1.Caption = "Ρύποι μέσα στα όρια" End If
Παράδειγμα 5: Ατμοσφαιρική Ρύπανση
x = Text1.Text y = Text2.Text If Option1.Value = True Then Label1.Caption = x + y End If If Option2.Value = True Then Label1.Caption = x - y End If
Παράδειγμα 6: Calculator