Noobie Δημοσ. 23 Αυγούστου 2014 Δημοσ. 23 Αυγούστου 2014 Ο χρήστης που καλεί το πρόγραμμα από το λειτουργικό θέλει να γνωρίζει για επιτυχία ή αποτυχία. Έστω ότι θέλει να το χρησιμοποιήσει σε κάποιο shell/batch script. Τότε πρέπει να ελέγχει μία επιστρφόμενη τιμή. Αν η επιστρεφόμενη τιμή ακόμη και για αρνητικούς είναι 0, τότε υπάρχει λογικό σφάλμα στο πρόγραμμα. Δεν ξέρω αν το κατάλαβες αλλά μιλάω για το συγκεκριμένο παράδειγμα και αποκλειστικά για το πρώτο return. Το συγκεκριμένο παράδειγμα τυπώνει το μήνυμα "type again", υπονοώντας ότι θα πρέπει να υπάρχει κάποια επανάληψη αν δοθεί αρνητικός αριθμός. Αν αφήσεις εκεί το return, θα τερματιστεί το πρόγραμμα με αποτέλεσμα να μην μπορέσει ο χρήστης να δώσει άλλον αριθμό άρα είναι λάθος να το βάλεις εκεί το return.
gon1332 Δημοσ. 23 Αυγούστου 2014 Δημοσ. 23 Αυγούστου 2014 Δεν ξέρω αν το κατάλαβες αλλά μιλάω για το συγκεκριμένο παράδειγμα και αποκλειστικά για το πρώτο return. Το συγκεκριμένο παράδειγμα τυπώνει το μήνυμα "type again", υπονοώντας ότι θα πρέπει να υπάρχει κάποια επανάληψη αν δοθεί αρνητικός αριθμός. Αν αφήσεις εκεί το return, θα τερματιστεί το πρόγραμμα με αποτέλεσμα να μην μπορέσει ο χρήστης να δώσει άλλον αριθμό άρα είναι λάθος να το βάλεις εκεί το return. Κι εγώ για το συγκεκριμένο μιλάω. Το λειτουργικό δε θα μπορέσει να καταλάβει το "type again", αλλά θα καταλάβει το -1.
Noobie Δημοσ. 23 Αυγούστου 2014 Δημοσ. 23 Αυγούστου 2014 Κι εγώ για το συγκεκριμένο μιλάω. Το λειτουργικό δε θα μπορέσει να καταλάβει το "type again", αλλά θα καταλάβει το -1. Το γνωρίζω αυτό, δεν ξέρω για ποιο λόγο το επαναλαμβάνεις. Αυτό που λέω είναι ότι είναι λογικό λάθος να βάλεις εκεί το return αν υπάρχει επανάληψη για να δώσει ο χρήστης αριθμούς.
gon1332 Δημοσ. 23 Αυγούστου 2014 Δημοσ. 23 Αυγούστου 2014 Το γνωρίζω αυτό, δεν ξέρω για ποιο λόγο το επαναλαμβάνεις. Αυτό που λέω είναι ότι είναι λογικό λάθος να βάλεις εκεί το return αν υπάρχει επανάληψη για να δώσει ο χρήστης αριθμούς. Υπάρχει επανάληψη; Δεν το συνεχίζω. Δεν έχω κάτι παραπάνω να πω.
Noobie Δημοσ. 23 Αυγούστου 2014 Δημοσ. 23 Αυγούστου 2014 Υπάρχει επανάληψη; Δεν το συνεχίζω. Δεν έχω κάτι παραπάνω να πω. Όπως είπα, υπονοείται ότι θα υπάρχει επανάληψη από το "type again". Αλλά ναι, δεν υπάρχει κάτι να πεις, το μόνο που λες επανειλημμένα αφορά τα system exit codes το οποίο το γνωρίζω ήδη, δεν ξέρω γιατί συνέχισες να το λες.
gon1332 Δημοσ. 24 Αυγούστου 2014 Δημοσ. 24 Αυγούστου 2014 Όπως είπα, υπονοείται ότι θα υπάρχει επανάληψη από το "type again". Αλλά ναι, δεν υπάρχει κάτι να πεις, το μόνο που λες επανειλημμένα αφορά τα system exit codes το οποίο το γνωρίζω ήδη, δεν ξέρω γιατί συνέχισες να το λες. Άλλος ο κώδικας που έδωσε ο OP και άλλος αυτός που περιγράφεις, τον οποίο μάλιστα έχει ήδη αναφέρει ο Kercyn εδώ.
Noobie Δημοσ. 24 Αυγούστου 2014 Δημοσ. 24 Αυγούστου 2014 Άλλος ο κώδικας που έδωσε ο OP και άλλος αυτός που περιγράφεις, τον οποίο μάλιστα έχει ήδη αναφέρει ο Kercyn εδώ. Νόμιζα ότι δεν θα συνέχιζες, άλλα λες άλλα κάνεις. Και εσύ έκανες λόγο για συνάρτηση που θα καλούταν επανειλημμένα, ακόμα και για batch/shell scripts ενώ δεν υπάρχει κάτι τέτοιο εδώ. Το να αφήσεις εκεί το return -1 σε ένα τέτοιο απλό πρόγραμμα όπου δεν ελέγχεται πουθενά (ούτε σε batch ούτε τίποτα) η επιστρεφόμενη τιμή δεν έχει πολλή ουσία. Ισχυρίστηκες ότι θα ήταν λογικό σφάλμα αν η επιστρεφόμενη τιμή ήταν 0 σε περίπτωση που ο χρήστης έδινε αρνητικό αριθμό αλλά σε αυτήν την περίπτωση δεν είσαι σωστός, την επιστρεφόμενη τιμή θα την πάρει μόνο το λειτουργικό σύστημα και οι system error codes έχουν σχεδιαστεί για να ενημερώνεται το λειτουργικό σύστημα για τυχόν σφάλματα συστήματος, δηλαδή όταν κάποιος κώδικας δεν έκανε αυτό που έπρεπε να κάνει και υπήρχε σφάλμα. Σε αυτήν την περίπτωση, ο κώδικας θα τρέξει μια χαρά άρα δεν υπάρχει λόγος να ενημερώσεις το λειτουργικό σύστημα ότι υπήρχε σφάλμα επειδή ο χρήστης έδωσε αρνητικό αριθμό, δεν νοιάζεται για αυτό το λειτουργικό σύστημα. Και μην λέμε τα ίδια για scripts, δεν υπάρχει τίποτα εδώ, μόνο στο λειτουργικό σύστημα θα πάει η επιστρεφόμενη τιμή.
gon1332 Δημοσ. 24 Αυγούστου 2014 Δημοσ. 24 Αυγούστου 2014 Σκέψου ότι στη θέση του λειτουργικού είναι η main και ότι στη θέση της main η συνάρτηση checked_input(). Ποιος κώδικας θα δούλευε ορθά (λογικά); Ποια η λογική των exit codes; Μόνο το λειτουργικό ενδιαφέρεται; Αυτό που έλεγα εγώ είναι κάτι τέτοιο και είναι ένας τρόπος για να καταλάβεις πως αυτό που πρότεινες περιέχει λογικό σφάλμα. Όχι ότι ντε και καλά θέλουμε να το τρέξουμε σε script. Ω ναι!!! Συνεχίζεται η κατάρα με τα απλά post για C.
Noobie Δημοσ. 24 Αυγούστου 2014 Δημοσ. 24 Αυγούστου 2014 Σκέψου ότι στη θέση του λειτουργικού είναι η main και ότι στη θέση της main η συνάρτηση checked_input(). Ποιος κώδικας θα δούλευε ορθά (λογικά); Ποια η λογική των exit codes; Μόνο το λειτουργικό ενδιαφέρεται; Αυτό που έλεγα εγώ είναι κάτι τέτοιο και είναι ένας τρόπος για να καταλάβεις πως αυτό που πρότεινες περιέχει λογικό σφάλμα. Όχι ότι ντε και καλά θέλουμε να το τρέξουμε σε script. Ω ναι!!! Συνεχίζεται η κατάρα με τα απλά post για C. Μην πηγαίνεις σε άλλα παραδείγματα, εγώ μιλάω μόνο για το συγκεκριμένο, ποτέ δεν είπα ότι ενδιαφέρεται μόνο το λειτουργικό για τα exit codes αλλά σε ΑΥΤΟ το παράδειγμα, μόνο το λειτουργικό θα το πάρει. Αδυνατείς να καταλάβεις ότι μίλησα μόνο για το συγκεκριμένο παράδειγμα.
gon1332 Δημοσ. 24 Αυγούστου 2014 Δημοσ. 24 Αυγούστου 2014 Και βέβαια καταλαβαίνω τι λες. Ο OP όμως είναι ακόμη νέος στον προγραμματισμό και προφανώς ακόμη δεν έχει δουλέψει με συναρτήσεις. Γιατί να μην έχει μία ιδέα από τώρα; Καλό είναι να μαθαίνει κάποιες συμβάσεις από τώρα. Επίσης, το πρόγραμμα που έδωσε κάνει μόνο μία δουλειά, μία ρουτίνα. Είτε το κυρίως πρόγραμμα είναι είτε μία συνάρτηση, πρέπει να ενημερώνει με κάποιον τρόπο τον caller.
Noobie Δημοσ. 24 Αυγούστου 2014 Δημοσ. 24 Αυγούστου 2014 Και βέβαια καταλαβαίνω τι λες. Ο OP όμως είναι ακόμη νέος στον προγραμματισμό και προφανώς ακόμη δεν έχει δουλέψει με συναρτήσεις. Γιατί να μην έχει μία ιδέα από τώρα; Καλό είναι να μαθαίνει κάποιες συμβάσεις από τώρα. Επίσης, το πρόγραμμα που έδωσε κάνει μόνο μία δουλειά, μία ρουτίνα. Είτε το κυρίως πρόγραμμα είναι είτε μία συνάρτηση, πρέπει να ενημερώνει με κάποιον τρόπο τον caller. Απλά σε αυτό το παράδειγμα δεν υπήρχε κάτι για να ελέγξει την επιστρεφόμενη τιμή αλλά σε κάποιο άλλο παράδειγμα σίγουρα θα του χρησιμέψει να ελέγχει την επιστρεφόμενη τιμή. Τέλος πάντων, πιστεύω αρκετά είπαμε σε αυτό το topic φίλε. Γεια χαρά.
gon1332 Δημοσ. 24 Αυγούστου 2014 Δημοσ. 24 Αυγούστου 2014 Τέλος πάντων, πιστεύω αρκετά είπαμε σε αυτό το topic φίλε. Γεια χαρά. είναι συχνό φαινόμενο για τέτοια απλά posts. Καλησπέρα! 1
timonkaipumpa2 Δημοσ. 24 Αυγούστου 2014 Δημοσ. 24 Αυγούστου 2014 είναι συχνό φαινόμενο για τέτοια απλά posts. Καλησπέρα! Χαχαχαχαχα!!!! Αυτό ακριβώς ετοιμαζόμουν να γράψω!!!! Ωραίος gon!
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα