Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 24 Φεβ 2012, 11:22

Star_Light έγραψε:παιδια... οι λυσεις των ασκησεων του βιβλιου C programming a modern approach 2nd edition
που συζητουσαμε τις προαλλες εδω με migf1

http://knking.com/books/c2/answers/

Κι έλεγα πως δεν θα τις ξετρύπωνες :)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 24 Φεβ 2012, 11:25

Star_Light έγραψε:ΕΓω μια απορια σε κάτι αλλο.... εφοσον τα // comments ειναι της C99
πως τα δεχεται και ο δικος μου compiler που ειναι C89 μιας και στο

Κώδικας: Επιλογή όλων
for( int i =0; i<n; i++) // Για κάποιο n


θα κτυπήσει? :S

Ποιος είναι ο δικός σου compiler; Πάντως οι περισσότεροι compilers πλέον υποστηρίζουν και το // για αρχή σχολίων, έστω και σαν extension. Αν θες να δοκιμάσεις με τον gcc, γύρισέ τον σε C89 ...

Κώδικας: Επιλογή όλων

gcc -std=c89 -pedantic ...
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 24 Φεβ 2012, 12:26

Ilias95 έγραψε:Καλησπέρα.
Θέλοντας να ασχοληθώ σοβαρά με τον προγραμματισμό αποφάσισα να αρχίσω την εκμάθηση μία εκ των C/C++.

Αυτό που θέλω να ρωτήσω είναι, ποιες είναι οι κυριότερες διαφορές των δύο γλωσσών.
Ποια τα πλεονεκτήματα και τα μειονεκτήματα της κάθε μίας;
Έχοντας ασχοληθεί με την python έχω ήδη γνωρίσει τον αντικειμενοστραφή προγραμματισμό αλλά δεν ξέρω αν έχει σημασία αυτό.

Με ποια απ' τις δύο θα μου προτείνατε να ασχοληθώ και γιατί;
Οι στόχοι μου αυτή τη στιγμή είναι καθαρά εκπαιδευτικοί οπότε με ενδιαφέρει να πάρω καλές βάσεις.

Ευχαριστώ εκ των προτέρων.

Καλημέρα Ηλία,

έχω παρατηρήσει πόσο μεθοδικός και αποτελεσματικός είσαι στην ενασχόλησή σου με την Python, η οποία παρεμπιπτόντως είναι εξαιρετική γλώσσα. Σε ότι αφορά την ερώτησή σου, και οι δυο γλώσσες C και C++ είναι παραπάνω από ικανές να σου δώσουν γερές βάσεις, μιας και υποθέτω πως αποφάσισες α) να εξοικειωθείς και με πιο low level πράγματα και β) να εξοικειωθείς με μια procedural γλώσσα.

Θα σου προτείνω κι εγώ C όχι γιατί είναι καλύτερη της C++, αλλά επειδή είναι (πολύ) πιο εστιασμένη και μικρή σε συντακτικό & keywords. Η C++ είναι πραγματικός ωκεανός. Ένα αβαντάζ της C είναι πως συνήθως ότι διαβάζεις αυτό είναι, κάτι που δεν ισχύει π.χ. σε γλώσσες που υποστηρίζουν υπερφόρτωση τελεστών ή/και συναρτήσεων (όπως η C++).

Ερχόμενος από Python στην αρχή θα δυσκολευτείς και με τη C και με τη C++, συχνά μπορεί ακόμα και να απογοητευτείς με τον κόπο που χρειάζεται να καταβάλλεις για να βγάλεις αποτέλεσμα που με την Python θα το έβγαζες σε χρόνο & κόπο λιγότερο από τον μισό. Από την άλλη μεριά, όταν ξεπεράσεις το αρχικό σοκ και προχωρήσεις και λίγο ίσως αρχίσεις να απολαμβάνεις την απόλυτη ελευθερία που έχεις σε όλο το μηχάνημα και τα εξαρτήματά του, είτε σε επίπεδο hardware είτε σε επίπεδο software.

Εφόσον όμως αποφάσισες να ασχοληθείς σοβαρά με τον προγραμματισμό, θεωρώ απαραίτητη τη γνώση της C (προσωπικά την θεωρώ κάτι σαν το αλφάβητο του προγραμματιστή).

ΥΓ1. Το βιβλίο που πρότεινα και στον Starlight είναι εξαιρετικό για να ξεκινήσεις με C. 1-2 σελίδες πριν υπάρχει κάπου ένα link για κατέβασμα σε pdf.
ΥΓ2. Κατόπιν κάποια στιγμή ίσως θελήσεις να εντρυφήσεις και σε functional γλώσσες, όπως π.χ. η Lisp.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 24 Φεβ 2012, 13:58

Στο μεταξύ ξεκίνησα να βελτιώνω τον HexViewer: https://forum.ubuntu-gr.org/viewtopic.p ... 44#p232044
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Ilias95 » 24 Φεβ 2012, 15:03

@migf1
Τελικά αποφάσισα να ξεκινήσω με την C μιας και είναι πιο λιτή απ' ότι κατάλαβα και επιπλέον θέλω να επικεντρωθώ σε procedural programming όπως σωστά λες.

Όσων αφορά την μετάβαση απ' την python μπορώ να πω ότι είμαι προετοιμασμένος ( :P ) και όπως επίσης είπες θέλω να εξοικειωθώ με πιο low level πράγματα των οποίων η κατανόηση πιστεύω ότι είναι σημαντική ακόμα και όταν προγραμματίζεις με κάποια πιο υψηλού επιπέδου γλώσσα.

migf1 έγραψε:ΥΓ2. Κατόπιν κάποια στιγμή ίσως θελήσεις να εντρυφήσεις και σε functional γλώσσες, όπως π.χ. η Lisp.

Ναι, αλλά πολύ αργότερα. Συγκεκριμένα για την Lisp, αυτά που έχω ακούσει/διαβάσει μου έχουν κινήσει αρκετά το ενδιαφέρον.
Όμως ένα πράγμα τη φορά. Προέχει να μάθω C πρώτα.

Ευχαριστώ για τις απαντήσεις.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 24 Φεβ 2012, 15:18

Πολύ χαίρομαι Ηλία, διότι κρίνοντας από την παρουσία σου στα της Python, θεωρώ ότι είσαι συγκροτημένος, μεθοδικός κι αποτελεσματικός. Όταν μπορώ και γνωρίζω είμαι παραπάνω από πρόθυμος να σε βοηθήσω σε ότι χρειαστείς.

Ίσως σου φανεί χρήσιμο να ξεκινήσεις γνωρίζοντας πως διατάσσεται ένα C πρόγραμμα στη μνήμη όταν εκτελείται σε Linux. Ένα χρήσιμος σύνδεσμος είναι αυτός: http://www.cyberplusindia.com/blog/inde ... -in-linux/, ενώ εδώ: http://dirac.org/linux/gdb/02a-Memory_L ... _Stack.php θα βρεις ένα αναλυτικό σχετικό οδηγό σε συνδυασμό με τον gdb (gdb είναι ο de-facto debugger σε περιβάλλοντα Posix).

Δεν θα σου χρειαστούν άμεσα, αλλά κάνε τα bookmark για όταν αποφασίσεις να χωθείς σε πιο βαθειά νερά. Το 1ο link δεν είναι τίποτα δυσκολο, ρίξε του μια ματιά απλώς για να έχεις εικόνα ;) Τον gdb μάθε να τον χρησιμοποιείς από νωρίς για να βρίσκεις bugs στα προγράμματά σου. 6-7 εντολές είναι οι βασικές που χρειάζεσαι για να τον χειριστείς ικανοποιητικά από γραμμή εντολών (θα βρεις άπειρα guides στο net). Απλά κάνε τα προγράμματά σου compile με -g3 flag όταν προτίθεσαι να κάνεις debug το παραγόμενο εκτελέσιμο.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Ilias95 » 24 Φεβ 2012, 15:30

Σε ευχαριστώ πολύ για τα καλά σου λόγια και για την βοήθεια.

Το "C Programming - A Modern Approach" βρίσκεται πλέον στον home μου οπότε μπορώ να ξεκινήσω. :P
Ευχαριστώ και για τα link. Μόλις πάρω μια πρώτη γεύση απ' την C θα τα κοιτάξω.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 24 Φεβ 2012, 15:38

Καλή αρχή :)

ΥΓ. Ο Κώστας πόσταρε κι ένα link με λύσεις κάποιων ασκήσεων του βιβλίου, αν τις χρειαστείς.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Star_Light » 24 Φεβ 2012, 17:33

migf1 έγραψε:
Κι έλεγα πως δεν θα τις ξετρύπωνες :)


Eχει στο βιβλίο μέσα μια ένδειξη W και ειδα στο υποσελιδο απο κατω
οτι αυτο μπαινει διπλα απο αυτες που έχουν λυθει στην τάδε διευθυνση πχ.

Σελ. 58
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 24 Φεβ 2012, 17:38

Καλή φάση :)

Πως σου φαίνεται το βιβλίο; Το ξεκίνησες;
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι