renouko Δημοσ. 29 Δεκεμβρίου 2010 Δημοσ. 29 Δεκεμβρίου 2010 καλησπερα θα ηθελα να ρωτησω το εξης αν εχω σε ενα προγραμμα στη c μεσα στην main την εντολη if(end(i,j)) break; οπου η end ειναι συναρτηση που παιρνει δυο ορισματα και τα ελεγχει για να δει ποιο απο τα δυο ειναι μεγαλυτερο μικροτερο η ισο(μεσα στην συναρτηση γινεται και η εκτυπωση για το ποιο ειναι πιο μεγαλο κτλ). θα ηθελα να ρωτησω τι ακριβως κανει η εντολη if(end(i,j)).
ktiniatros Δημοσ. 29 Δεκεμβρίου 2010 Δημοσ. 29 Δεκεμβρίου 2010 Για να δουλέψει η if πρέπει η end(i,j) να επιστρέφει boolean μεταβλητή, δηλαδή με τιμή true ή false. Π.χ. αν η end ελέγχει αν το i είναι μεγαλύτερο από το j, θα επιστρέψει true αν το i είναι μεγαλύτερο από το j οπότε και θα εκτελεστεί η if,διαφορετικά θα επιστρέψει false οπότε και δε θα εκτελεστεί η if.
moukoublen Δημοσ. 29 Δεκεμβρίου 2010 Δημοσ. 29 Δεκεμβρίου 2010 Προφανώς όλο αυτό είναι μέσα σε κάποιο loop που θα πρέπει να τερματίζεται αν κάποιο από τα δυο είναι μεγαλύτερο. Ας πούμε για παράδειγμα ότι πρέπει το i να είναι μεγαλύτερο από το j για να τερματιστεί το loop. Τότε πολύ απλά αυτό που κάνει η end είναι εκτος από την εκτύπωση μηνυμάτων, ή οτι άλλο κάνει παράλληλα μαζί με τους ελεγχους, επιστρέφει και το αποτέλεσμα του ποιο είναι μεγαλύτερο. για παραδειγμα: > int end(int i, int j){ if(i>j){ //Διαφορα προς εκτέλεση. }else if(i==j){ //Διαφορα προς εκτέλεση. }else{ //Διαφορα προς εκτέλεση. } return i>j; } Έτσι αν ισχύει η συνθήκη που θέλουμε (στο παράδειγμα μας το i να είναι μεγαλύτερο του j) κατά την εκτέλεση του προγράμματος θα μπει στο if statement και θα εκτελεστεί το break ώστε να τερματιστεί το loop.
_tasos Δημοσ. 29 Δεκεμβρίου 2010 Δημοσ. 29 Δεκεμβρίου 2010 Η συνάρτηση end(...) τι επιστρέφει σε κάθε περίπτωση; Αν αυτό που επιστρέψει είναι 0, τότε δεν θα εκτελεστεί η if. Αλλιώς, αν επιστρέψει θετική (ή αρνητική τιμή) τιμή, τότε η if θα εκτελεστεί. Στο δικό σου παράδειγμα, αν η end() επιστρέψει κάποια τιμή διαφορετική του 0 θα εκτελεστεί μετά η εντολή break;. Για να δουλέψει η if πρέπει η end(i,j) να επιστρέφει boolean μεταβλητή, δηλαδή με τιμή true ή false. Η C δεν έχει boolean τύπο. Υπάρχει ο τύπος bool στη C++.
moukoublen Δημοσ. 29 Δεκεμβρίου 2010 Δημοσ. 29 Δεκεμβρίου 2010 Η συνάρτηση end(...) τι επιστρέφει σε κάθε περίπτωση; Οτι επιστρέφει η συνθήκη (i>j).
_tasos Δημοσ. 29 Δεκεμβρίου 2010 Δημοσ. 29 Δεκεμβρίου 2010 Οτι επιστρέφει η συνθήκη (i>j). Τον renouko ρώτησα βασικά...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.