gon1332 Δημοσ. 24 Ιανουαρίου 2016 Δημοσ. 24 Ιανουαρίου 2016 Είναι κουραστικό σε ένα πρόγραμμα χιλιάδων γραμμών να προσέχεις πιο πολύ την σύνταξη παρά τη λύση του προβλήματος. Λογικά δε θες να αναφερθείς στη σύνταξη, αλλά σε έτοιμες δομές και αλγορίθμους που σου παρέχει ως βάση. Ας πούμε η σύνταξη της javascript είναι άσ'τα να πάνε. Δίνουν και παίρνουν τα βέλη και τα ({({()})}). Η python σε πιέζει με τη σύνταξη, αλλά για καλό κατά την γνώμη μου. Στη C ξεκινάς from scratch. Στη C++ ξεκινάς έχεις κάποια πράγματα έτοιμα, αλλά όταν αρχίσεις να χώνεσαι, θα αρχίσεις να βρίζεις χειρότερα από όταν ασχολιόσουν μόνο με C. Τα OOP patterns είναι must (προσπαθώ να μου θυμίζω να ξεκινήσω επιτέλους το βιβλίο των gang of four). Επίσης, αν έχεις ένα background σε C και έχεις κάποια πράγματα δεδομένα (χακεριές με διευθύνσεις και casts), στη C++ δεν πιάνουν αυτά. Είναι πιο αυστηρή. Η C για μένα είναι η πιο απλή γλώσσα που υπάρχει (μετά την assembly). Από την άποψη ότι δεν κάνει ανεξήγητα "μαγικά". Όλες οι εντολές που προσφέρει είναι πολύ απλές. Όμως αυτό σημαίνει πως θέλει πολύ μεγαλύτερη προσοχή σε σχέση με άλλες γλώσσες που σου προσφέρουν έτοιμα πολλά πράγματα. 1
the other one Δημοσ. 25 Ιανουαρίου 2016 Δημοσ. 25 Ιανουαρίου 2016 τι χακεριά επιτρέπει η C που δεν επιτρέπει η C++;
gon1332 Δημοσ. 25 Ιανουαρίου 2016 Δημοσ. 25 Ιανουαρίου 2016 Επιτρέπει και η C++, αλλά δεν είναι τόσο fluent όσο βγαίνει στη C: 1) C vs C++ 2) C vs C++
παπι Δημοσ. 25 Ιανουαρίου 2016 Δημοσ. 25 Ιανουαρίου 2016 Θα συμφωνησω πως είναι απλή και θα προσθέσω πως απλή δεν σημαίνει εύκολη. Για τον τιες. Σου είπα έμμεσα πριν να διαβάσεις για την fscanf. Δεν μπορούσα να γράψω αλλά διότι η λύση του προβλήματος που ειχες, ήταν.... for( ; fscanf(file, "%s", dummy) == 1 ; wordCount++ ) ; Αυτή. Για αυτό το πρόβλημα που έχεις, η λύση είναι πιο πολύπλοκη. Επειδή θες μια δομή λίστας που δεν υπάρχει στις βιβλιοθήκες της σε και φυσικά πρέπει να το φτιαξεις. Τι έλεγα; Α ναι, η απλότητα δεν σημαίνει ευκολία.
M2000 Δημοσ. 25 Ιανουαρίου 2016 Δημοσ. 25 Ιανουαρίου 2016 Μια ιδέα θα ήταν να διαβάσει πόσες γραμμές έχει το κείμενο και να το τραβήξει όλο στο δίσκο! Θα το κάνει με δυο περάσματα. Στο ένα θα μετρήσει τις αλλαγές γραμμών. Δεν χρειάζεται ούτε νούμερο στη πρώτη γραμμή (ποιος το σκέφτηκε)...
Dinos_12345 Δημοσ. 25 Ιανουαρίου 2016 Μέλος Δημοσ. 25 Ιανουαρίου 2016 Έδωσα το μάθημα σήμερα, πάει, στην άκρη. Εγώ που θέλω web developing και Android apps απλά την παρατάω. Ο καθηγητής "Ή C είναι η αγαπημένη γλώσσα όλων των προγραμματιστών"
Moderators Kercyn Δημοσ. 25 Ιανουαρίου 2016 Moderators Δημοσ. 25 Ιανουαρίου 2016 "Ή C είναι η αγαπημένη γλώσσα όλων των προγραμματιστών" ΝΑΙ ΝΑΙ!
gon1332 Δημοσ. 25 Ιανουαρίου 2016 Δημοσ. 25 Ιανουαρίου 2016 Και ο defacer ειρωνικά το είπε. Αφού κατα βάθος είναι η αγαπημένη του.
nplatis Δημοσ. 28 Ιανουαρίου 2016 Δημοσ. 28 Ιανουαρίου 2016 Έδωσα το μάθημα σήμερα, πάει, στην άκρη. Εγώ που θέλω web developing και Android apps απλά την παρατάω. Ο καθηγητής "Ή C είναι η αγαπημένη γλώσσα όλων των προγραμματιστών" Αν σκοπεύεις να γίνεις πληροφορικός και όχι απλά «προγραμματιστής εφαρμογών για web και Android» καλύτερα να προσπαθήσεις να παίρνεις όσο περισσότερα μπορείς από κάθε μάθημα που κάνεις. Δεν λέω ότι η C είναι η καλύτερη γλώσσα του κόσμου, όμως έχει έννοιες και τεχνικές που αποδεικνύονται χρήσιμες. Π.χ. μιας και σε ενδιαφέρει το Android, αν ξέρεις ήδη Java, έχεις καταλάβει τι είναι και πώς δουλεύουν τα references; Σου θυμίζουν τίποτα; Ή μήπως πιστεύεις ότι αν δεν δουλέψεις σε C/C++ δεν θα σε απασχολήσει η διαχείριση μνήμης ποτέ ξανά; Καλοί οι αυτοματισμοί, αλλά μέχρι στιγμής δεν είναι τόσο πολλοί ή τόσο καλοί ώστε να γράφουν μόνοι τους το πρόγραμμα! Αν δεν ξέρουμε τι γίνεται από πίσω μπορεί να καταλήξουμε είτε σε σφάλματα που δεν καταφέρνουμε να διορθώσουμε είτε με προγράμματα που τρέχουν πολύ χειρότερα από όσο θα μπορούσαν. 1
Dinos_12345 Δημοσ. 31 Ιανουαρίου 2016 Μέλος Δημοσ. 31 Ιανουαρίου 2016 Αν σκοπεύεις να γίνεις πληροφορικός και όχι απλά «προγραμματιστής εφαρμογών για web και Android» καλύτερα να προσπαθήσεις να παίρνεις όσο περισσότερα μπορείς από κάθε μάθημα που κάνεις. Δεν λέω ότι η C είναι η καλύτερη γλώσσα του κόσμου, όμως έχει έννοιες και τεχνικές που αποδεικνύονται χρήσιμες. Π.χ. μιας και σε ενδιαφέρει το Android, αν ξέρεις ήδη Java, έχεις καταλάβει τι είναι και πώς δουλεύουν τα references; Σου θυμίζουν τίποτα; Ή μήπως πιστεύεις ότι αν δεν δουλέψεις σε C/C++ δεν θα σε απασχολήσει η διαχείριση μνήμης ποτέ ξανά; Καλοί οι αυτοματισμοί, αλλά μέχρι στιγμής δεν είναι τόσο πολλοί ή τόσο καλοί ώστε να γράφουν μόνοι τους το πρόγραμμα! Αν δεν ξέρουμε τι γίνεται από πίσω μπορεί να καταλήξουμε είτε σε σφάλματα που δεν καταφέρνουμε να διορθώσουμε είτε με προγράμματα που τρέχουν πολύ χειρότερα από όσο θα μπορούσαν. Συμφωνώ σε αυτά που λες αλλά το αγκάθι της C το οποίο για πολλούς θεωρείται πλεονέκτημα είναι ότι αποτελεί μια γλώσσα υψηλού επιπέδου με δυνατότητες low level. Όμως αυτές οι δυνατότητες πολλές φορές μπαίνουν στο δρόμο σου για κάτι χωρίς να τις θες. Φυσικά και θα με απάσχολήσει η διαχείρηση μνήμης, είδικά στο Android που υπάρχει και περιορισμός αλλά τώρα να ξέρω πόσο πιάνει ο κάθε τύπος δεδομένων,να κρεμάει το πρόγραμμα επειδή έπρεπε να θυμηθώ ότι κάτι έπρεπε να δηλωθεί σαν float ή να μην χωράει ένα αποτέλεσμα σε μια μεταβλητή και να πρέπει να δηλώσω long και να ξεχνάς το & και να κρασάρει και και και και πάει πολύ. Όχι επειδή βαριέμαι ή δεν θέλω να δώσω attention to detail αλλά νομίζω πως η προσοχή μου πρέπει να είναι στο πραγματικό πρόβλημα και όχι στις ιδιοτροπίες της γλώσσας. Let the compiler decide. Από το μάθημα προγραμματισμού στο πρώτο εξάμηνο έμαθα να υπερπαλεύω κάθε πρόβλημα που συναντώ, φτάνει. Η C είναι μια χαρά γλώσσα, μέχρι και λειτουργικό γράφεις χωρίς να χρειάζεσαι τίποτα παραπάνω, αλλά για τον σκοπό μου δεν κάνει. Να υποθέσω με τα references αναφέρεσαι στους pointers που δίνουν την θέση μιας δομής, μεταβλητής, πίνακα κλπ σε μια συνάρτηση για να μην δώσει ολόκληρο αντίγραφο και να είναι memory efficient καθώς και οι αλλαγές να γίνονται στο κυρίως πρόγραμμα; Java ακόμα δεν έχω μάθει.
DDevil Δημοσ. 31 Ιανουαρίου 2016 Δημοσ. 31 Ιανουαρίου 2016 Για αυτο φτιάχνεις μια συνάρτηση μια φορά και μετά την χρησιμοποιεις και αλλου.Πχ μια φορά θα φτιάξεις μια αξιοπρεπή συνάρτηση που παιρνει εισοδο απο τον χρήστη χωρις να βάζει μέσα τα ενοχλητικά enter κτλπ μετα απο εκει και πέρα οποτε θα θελεις να τραβηξεις εισοδο θα χρησιμοποιεις αυτη την συνάρτηση που θα την έχεις αρχειο. Κάποιοι επειδη δεν γουστάρουν την C λενε οτι τους αναγκάζει να ανακαλύπτουν καθε λιγο τον τροχο εγω δεν συμφωνω σε αυτο διοτι αυτο αμα δεν έχεις την νοοτροπια να φτιάξεις ενα καλα οργανωμένο αρχειο θα το έχεις παντού αυτο το προβλημα. Εχουμε εναν στην δουλεια ο οποιος ρωτάει συνεχεια τα ιδια και τα ιδια του τα λες μια φορά δεν τα κάνει αρχειο / προσωπικο μετα λογικο να τα ξεχάσει και να επανέρχεται στα ιδια.Ολες οι δουλειες θέλουν ενα αρχειο το έκανες μια φορα το αποθηκευεις και το ξαναχρησιμοποιεις οταν χρειαστεί.
nplatis Δημοσ. 31 Ιανουαρίου 2016 Δημοσ. 31 Ιανουαρίου 2016 Συμφωνώ σε αυτά που λες αλλά το αγκάθι της C το οποίο για πολλούς θεωρείται πλεονέκτημα είναι ότι αποτελεί μια γλώσσα υψηλού επιπέδου με δυνατότητες low level. Όμως αυτές οι δυνατότητες πολλές φορές μπαίνουν στο δρόμο σου για κάτι χωρίς να τις θες. Συμφωνώ απόλυτα και δεν υποστήριξα πουθενά το αντίθετο. Για πολλά πράγματα υπάρχουν γλώσσες πολύ πιο κατάλληλες από την C. Φυσικά και θα με απάσχολήσει η διαχείρηση μνήμης, είδικά στο Android που υπάρχει και περιορισμός αλλά τώρα να ξέρω πόσο πιάνει ο κάθε τύπος δεδομένων,να κρεμάει το πρόγραμμα επειδή έπρεπε να θυμηθώ ότι κάτι έπρεπε να δηλωθεί σαν float ή να μην χωράει ένα αποτέλεσμα σε μια μεταβλητή και να πρέπει να δηλώσω long και να ξεχνάς το & και να κρασάρει και και και και πάει πολύ. Όχι επειδή βαριέμαι ή δεν θέλω να δώσω attention to detail αλλά νομίζω πως η προσοχή μου πρέπει να είναι στο πραγματικό πρόβλημα και όχι στις ιδιοτροπίες της γλώσσας. Let the compiler decide. Εδώ θα σε απογοητεύσω. Στην Java από όλα αυτά που λες το μόνο που γλυτώνεις είναι το &. Επίσης από τα «περίεργα» που έμαθες στην C γλυτώνεις τα malloc και free μόνο στο περίπου Από το μάθημα προγραμματισμού στο πρώτο εξάμηνο έμαθα να υπερπαλεύω κάθε πρόβλημα που συναντώ, φτάνει. Η C είναι μια χαρά γλώσσα, μέχρι και λειτουργικό γράφεις χωρίς να χρειάζεσαι τίποτα παραπάνω, αλλά για τον σκοπό μου δεν κάνει. Εξαρτάται ποιος θα είναι ο σκοπός σου. Μιας και πας τόσο πολύ για Android, περί NDK έχεις ακούσει; Για να το έχουν, κάποιος λόγος θα υπάρχει... Μάλλον σε κάποιες περιπτώσεις η Java δεν είναι αρκετά καλή και πρέπει να κατέβεις πιο χαμηλά. Ελπίζω πάντως σε 3 χρόνια που θα τελειώνεις να έχεις βρει πολύ περισσότερα ενδιαφέροντα στην Πληροφορική. Οι γλώσσες είναι απλά εργαλεία για να φτιάχνουμε ωραία πράγματα!
παπι Δημοσ. 31 Ιανουαρίου 2016 Δημοσ. 31 Ιανουαρίου 2016 Ddevil δεν έχει να κάνει με γούστα. Έχει να κάνει πως η γλώσσα είναι φτωχή. Δεν υπάρχει λόγος να πας c από την ώρα που υπάρχει c++.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα