Προς το περιεχόμενο

C tutorial by phr0z in Greek


phr0z

Προτεινόμενες αναρτήσεις

Ρε έλεος, μανία με το πώς θα είναι η main...

 

Έλα ντε !!!

Τα σημαντικά σε ένα tutorial είναι άλλα πράγματα.

Το αν το πρόθεμα της main είναι int, void ή τίποτε πρακτικά είναι ανάξιο λόγου...

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 73
  • Δημ.
  • Τελ. απάντηση

κ εγώ διαβάζω το βιβλίο του ritchie που τα δείχνει όλα με main(), παρόλα αυτά όλοι παραδέχονται πως είναι τοπ στην c...

 

 

Λάθος βιβλίο διαβάζεις !!!!

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το αν το πρόθεμα της main είναι int, void ή τίποτε πρακτικά είναι ανάξιο λόγου...
Και το τι ορίσματα θα έχει είναι ένα ακόμα φλέγον ζήτημα...
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Και το τι ορίσματα θα έχει είναι ένα ακόμα φλέγον ζήτημα...

 

 

Χμμμ, όχι. Τα ορίσματα μερικές φορές χρειάζονται.

Π.χ. μπορεί να τρέξεις ένα πρόγραμμα Α το οποίο θα καλεί ένα πρόγραμμα Β.

Το πρόγραμμα Α δίνει στο πρόγραμμα Β κάποια ορίσματα που το Β διαβάζει μέσω της main.

Yπάρχει κι' άλλος τρόπος να γίνει αλλά με τα σωστά ορίσματα στη main συχνά βολεύει.

Όμως η εμμονή στο int αντί void (ή τίποτε) είναι απλή τυπολατρεία.

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το θέμα με το "void main" (και γιατί πρέπει να αποφεύγεται) αναλύεται διεξοδικότατα εδώ.

 

Το tutorial είναι πολύ ΚΑΚΗ εισαγωγή για προγραμματισμό σε C - από τη στιγμή που βλέπει κανείς σε tutorial/βιβλίο void main() - ή main() - καλύτερα να μένει μακριά.

+1

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

Το θέμα με το "void main" (και γιατί πρέπει να αποφεύγεται) αναλύεται διεξοδικότατα εδώ.

Σωστά, αλλά καλή τύχη με το να το εξηγήσεις σε πρωτάρη της C.

 

Συμφωνώ στο ότι η σωστή δομή της main πρέπει να εξηγείται μόλις (και όχι αργότερα) ο νέος προγραμματιστής μάθει τα στοιχειώδη περί τύπων, συναρτήσεων και πινάκων/δεικτών.

Στο οποίο σημείο πρέπει να κατανοήσει απόλυτα γιατί καλείται έτσι η main και γιατί επιστρέφει int.

 

Δεν το βρίσκω λάθος να ξεκινάει με κάτι που δεν θα τον δυσκολέψει όσο δεν χρειάζεται να το κατανοήσει (δηλ. στα πολύ απλά προγράμματα εισαγωγής του στη C).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το θέμα με το "void main" (και γιατί πρέπει να αποφεύγεται) αναλύεται διεξοδικότατα εδώ.

 

 

 

Aκόμα καλύτερα εδώ :

 

http://users.aber.ac.uk/auj/voidmain.shtml

 

Ωστόσο δεν είναι πρακτικά σημαντικό δεδομένου ότι το πρόγραμμα σχεδόν πάντα δουλεύει και χωρίς αυτό.

Δεν θυμάμαι ποτέ να είδα κάτι που να μην δούλευε κατά τα αναμενόμενα επειδή είχε τεθεί void ή τίποτε αντί int,

ούτε κάποιον που να μην έμαθε C επειδή αρχικά έθετε void.

 

Αντίθετα, για το πεπαλαιωμένο και κακογραμμένο βιβλίο των Κ & R που χρησιμοποιείται και συστήνεται κατά κόρον σε αρχάριους,

κανείς ειδήμων από εσάς δεν λέει τίποτε.

Το γεγονός ότι εκεί οι K & R δεν χρησιμοποιούν πουθενά int και η main ούτε καν επιστρέφει τιμή (άρα και το βιβλίο τους είναι

κάκιστο πέραν των υπολοίπων και γι' αυτό), ενώ σε άλλο μεταγενέστερο σύγγραμά τους χρησιμοποιούν, δεν το σχολιάζετε...

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Aκόμα καλύτερα εδώ :

 

http://users.aber.ac.uk/auj/voidmain.shtml

Αν διαβάσεις με προσοχή την ιστό-σελίδα που ανάρτησα θα δεις ότι στο τέλος παρέχει παραπομπή (link) προς την σελίδα που αναφέρεις:

 

And finally, this page gives some more background information as to why void main is bad.

 

Ωστόσο δεν είναι πρακτικά σημαντικό δεδομένου ότι το πρόγραμμα σχεδόν πάντα δουλεύει και χωρίς αυτό.

Δεν θυμάμαι ποτέ να είδα κάτι που να μην δούλευε κατά τα αναμενόμενα επειδή είχε τεθεί void ή τίποτε αντί int,

ούτε κάποιον που να μην έμαθε C επειδή αρχικά έθετε void.

 

Αντίθετα, για το πεπαλαιωμένο και κακογραμμένο βιβλίο των Κ & R που χρησιμοποιείται και συστήνεται κατά κόρον σε αρχάριους,

κανείς ειδήμων από εσάς δεν λέει τίποτε.

Το γεγονός ότι εκεί οι K & R δεν χρησιμοποιούν πουθενά int και η main ούτε καν επιστρέφει τιμή (άρα και το βιβλίο τους είναι

κάκιστο πέραν των υπολοίπων και γι' αυτό), ενώ σε άλλο μεταγενέστερο σύγγραμά τους χρησιμοποιούν, δεν το σχολιάζετε...

 

-

Είμαι από εκείνες τις ελάχιστες περιπτώσεις που δεν έμαθα C από το βιβλίο του K&R οπότε για εμένα δεν είναι θέσφατο, συνεπώς δεν μπορώ να πάρω θέση για την ποιότητα του ειδικά όταν το διάβασα πολύ αργότερα (για να έχω μια εικόνα επ' αυτού), δεν το χρησιμοποίησα ποτέ ως πηγή εκμάθησης κλπ. Αυτό που μπορώ να πω όμως είναι ότι διάφορα παλιά βιβλία διδασκαλίας της C προ του ANSI-C89/90 στο θέμα της main ακολουθούν τους K&R, πράγμα λογικό καθώς μέχρι τότε αυτό το βιβλίο ήταν το ανεπίσημο "στάνταρτ" της C.

 

Από εκεί και πέρα όμως τα πράματα άλλαξαν, καθώς εμφανίστηκε ένα στάνταρτ για την γλώσσα C που λύνει το συγκεκριμένο θέμα (και είναι επίσης προς-τα-πίσω συμβατό με ήδη υπάρχοντα κώδικα) και ύστερα ένα ακόμα νεότερο στάνταρτ (C99) που ξεκαθαρίζει την κατάσταση μια και καλή (και δεν χρειάζεται πια να είναι προς-τα-πίσω συμβατό με πεπαλαιωμένο κώδικα). Δεν βλέπω λοιπόν τον λόγο τώρα, γιατί να μην το ακολουθήσουμε και χρειάζεται να γίνει ντόρος και ο καθένας να λέει το μακρύ του και το κοντό του.

 

Με απλά λόγια, ως πριν 22+ χρόνια μπορούσε να ήταν και "(void) main", μετά συστήθηκε ότι καλό είναι, να είναι "int main" και όχι "(void) main" και τώρα πρέπει να είναι "int main".

 

Τέλος - απλά πράματα, τα οποία μπορούν μέσα σε 30 λεπτά να εξηγηθούν πλήρως σε κάθε αρχάριο φοιτητή ή μη και όλοι (καθηγητές & φοιτητές - σπουδαστές - what ever..) να είναι ευτυχισμένοι.

 

:)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

Τέλος - απλά πράματα, τα οποία μπορούν μέσα σε 30 λεπτά να εξηγηθούν πλήρως σε κάθε αρχάριο φοιτητή ή μη και όλοι (καθηγητές & φοιτητές - σπουδαστές - what ever..) να είναι ευτυχισμένοι.

Η δική μου εμπειρία λέει ότι αυτά τα "απλά" πράγματα δεν εξηγούνται μέσα σε 30 λεπτά σε αρχάριους (ούτε στο πρώτο μάθημα, ούτε στο δεύτερο). Το μόνο ρεαλιστικό σενάριο είναι "μάθε τε το έτσι και όταν φτάσουμε στο τάδε κεφάλαιο θα σας το εξηγήσω/θα καταλάβετε".

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η δική μου εμπειρία λέει ότι αυτά τα "απλά" πράγματα δεν εξηγούνται μέσα σε 30 λεπτά σε αρχάριους (ούτε στο πρώτο μάθημα, ούτε στο δεύτερο). Το μόνο ρεαλιστικό σενάριο είναι "μάθε τε το έτσι και όταν φτάσουμε στο τάδε κεφάλαιο θα σας το εξηγήσω/θα καταλάβετε".

Διαφωνώ καθώς η υφή του συγκεκριμένου θέματος είναι εξαιρετικά απλή στην κατανόηση της αρκεί να δοθεί με λόγια απλά στους μαθητευόμενους σε συνδυασμό με μια μικρή σύντομη ιστορική αναδρομή ώστε να αντιληφθούν έστω περίπου (στην αρχή) το πως & γιατί. Παρόλα αυτά, δέχομαι το "μάθε τε το έτσι και όταν φτάσουμε στο τάδε κεφάλαιο θα σας το εξηγήσω/θα καταλάβετε" αν διαπιστωθεί τελικά ότι η ικανότητα της πλειοψηφίας του ακροατηρίου είναι χαμηλή οπότε η διδασκαλία οφείλει να προσαρμοσθεί.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Με απλά λόγια, ως πριν 22+ χρόνια μπορούσε να ήταν και "(void) main", μετά συστήθηκε ότι καλό είναι να

είναι "int main" και όχι "(void) main" και τώρα πρέπει να είναι "int main".

 

Επί προσωπικού, αυτό είναι που θέλω να θυμάμαι.

Δεν υπάρχει κάτι το τεχνικά δυσνόητο και δεν βλέπω πού είναι η δυσκολία να καταλάβει κάποιος αυτό που

έγραψε ο DirectX ως εξήγηση, ακόμα κι' αν είναι εντελώς αρχάριος.

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

Ναι, ιδανικά θα ήταν ωραίο να έπιαναν οι αρχάριοι πουλιά στον αέρα -εντάξει όχι κι έτσι, αλλά να καταλάβαιναν όταν τους αναφέρεις τους όρους "συνάρτηση" "επιστρεφόμενη τιμή" "παράμετρος" "ορίσματα" "τύπος" "shell/περιβάλλον κλήσης" "πίνακας" και "δείκτης" και τα λοιπά παρελκόμενα της main() μαζί με τις υπόλοιπες εισαγωγικές έννοιες της C και μεταγλώττισης στα αρχικά μαθήματα. Ειδικά όταν quick'n'dirty το "hello world" και τα εισαγωγικά δοκιμαστικά προγραμματάκια θα τους βολέψουν για μερικές εβδομάδες (μέχρι να φτάσετε επίσημα στις συναρτήσεις και δείκτες).

Επειδή όμως έχει ενδιαφέρον, προσωπικά, το έχεις δοκιμάσει/εφαρμόσει σε διδασκαλία; Υπήρχε ανταπόκριση;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Με απλά λόγια, ως πριν 22+ χρόνια μπορούσε να ήταν και "(void) main", μετά συστήθηκε ότι καλό είναι να

είναι "int main" και όχι "(void) main" και τώρα πρέπει να είναι "int main".

 

Αυτό είναι η ουσία που πρέπει να θυμόμαστε, τα υπόλοιπα είναι τυπολατρείες και αμπελοφιλοσοφίες.

Πού είναι η δυσκολία για τον αρχάριο ; Και τι θα πάθει αν αρχικά δεν το ξέρει ;

 

Tέλος, οι έννοιες "συνάρτηση", "επιστρεφόμενη τιμή", "παράμετρος", "ορίσματα", "τύπος" είναι αναπόσπαστα με τον

ορισμό-έννοια μιας συνάρτησης, άρα και της main αφού κι' αυτή είναι συνάρτηση, είναι απλούστατες και διδάσκονται σχεδόν αμέσως.

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

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.


  • Δημιουργία νέου...