giota74 Δημοσ. 29 Ιανουαρίου 2012 Δημοσ. 29 Ιανουαρίου 2012 καλησέρα!!! έχω ένα πρόβλημα σε μια ασκηση στην visual basic. έχω αυτόν τον κώδικα και τα αποτελέσματα... και έχω μπερδευτει..δεν μπορω να καταλάβω πως βγαίνει το αποτέλεσμα. Private Sub Command1_Click() Dim i, x As Integer x = 6 For i = 2 To 42 Step 6 If i - 5 < 29 - x Then MsgBox (CStr(i + 3)) Else MsgBox (CStr(i * 2)) End If Next End Sub τα αποτελέσματα είναι: 5, 11, 17, 23, 52, 64, 76 αν μπορεί να μου πει κάποιος την μεθοδολογία.....ειναι αναγκη . ευχαριστώ!!!!
dewn735 Δημοσ. 29 Ιανουαρίου 2012 Δημοσ. 29 Ιανουαρίου 2012 >Private Sub Command1_Click() Dim i, x As Integer x = 6 For i = 2 To 42 Step 6 'Το i θα ξεκινήσει από το 2 και θα αυξάνεται κατά 6. Αυτό θα επαναλαμβάνεται όσο η τιμή του i είναι μικρότερη ή ίση από το 42 If i - 5 < 29 - x Then 'Το x είναι σταθερά, οπότε έχουμε if i<29-6+5 δηλαδή if i<28 MsgBox (CStr(i + 3)) 'Εμφάνισε μήνυμα με το αποτέλεσμα της πράξης i+3 Else MsgBox (CStr(i * 2)) 'Εμφάνισε μήνυμα με το αποτέλεσμα της πράξης i*2 End If Next End Sub Οπότε κατά σειρά έχουμε: i=2 -> το i είναι μικρότερο από 28, οπότε εμφάνισε το i+3 = 5 Πρόσθεσε στο i το 6 ->i=2+6=8 i=8 -> το i είναι μικρότερο από 28, οπότε εμφάνισε το i+3 = 11 Πρόσθεσε στο i το 6 ->i=8+6=14 i=14 -> το i είναι μικρότερο από 28, οπότε εμφάνισε το i+3 = 17 Πρόσθεσε στο i το 6 ->i=14+6=20 i=20 -> το i είναι μικρότερο από 28, οπότε εμφάνισε το i+3 = 23 Πρόσθεσε στο i το 6 ->i=20+6=26 i=26 -> το i είναι μικρότερο από 28, οπότε εμφάνισε το i+3 = 29 (Εδώ μάλλον μας έχεις πει κάτι λάθος) Πρόσθεσε στο i το 6 ->i=26+6=32 i=32 -> το i είναι μεγαλύτερο από 28, οπότε εμφάνισε το i*2 = 64 Πρόσθεσε στο i το 6 ->i=32+6=38 i=38 -> το i είναι μεγαλύτερο από 28, οπότε εμφάνισε το i*2 = 76 Πρόσθεσε στο i το 6 ->i=38+6=44 i=44 -> το i είναι μεγαλύτερο από 42, επομένως βγαίνουμε από το loop και τελειώνει η συνάρτηση
TheELF Δημοσ. 29 Ιανουαρίου 2012 Δημοσ. 29 Ιανουαρίου 2012 For i = 2 To 42 Step 6 Το i αρχίζει με τιμή 2 και αυξάνεται κατά 6 κάθε φορά δηλαδή 2, 8, 14, 20 .... Για την πρώτη φορά If i - 5 (2-5=(-)3)< 29 - x(29-6=23 ) Then - αληθεύει οπότε MsgBox (CStr(i + 3)) i(2) =3 = 5 Για την πρώτη φορά If i - 5 (8-5=3)< 29 - x(29-6=23 ) Then - αληθεύει και πάλι οπότε MsgBox (CStr(i + 3)) i(8) =3 = 11 και πάει λέγοντας,κάποια στιγμή το i θα είναι ποιο μεγάλο από το 23 οπότε το i πάει επί 2.
giota74 Δημοσ. 29 Ιανουαρίου 2012 Μέλος Δημοσ. 29 Ιανουαρίου 2012 @dewn735, @TheELF 10000000 ευχαριστώ!!!! εγώ στο i+3 έβαζα το αποτέλεσμα i-5 αντί για το αρχικο i........ anyway και πάλι ευχαριστώ :-D :-D
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα