Αποστολέας Θέμα: Βιβλία C/C++  (Αναγνώστηκε 228 φορές)

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2823
  • Πύργος Ηλείας
Βιβλία C/C++
« στις: 05 Νοέ 2020, 07:31:47 μμ »
Έχει κανείς άποψη για κάποιο/κάποια από τα παρακάτω βιβλία;

Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++, BJARNE STROUSTRUP
Η ΓΛΩΣΣΑ C++ ΣΕ ΒΑΘΟΣ, ΝΙΚΟΣ Μ. ΧΑΤΖΗΓΙΑΝΝΑΚΗΣ
C++ Προγραμματισμός, 9η Εκδ., Paul J. Deitel, Harvey M. Deitel
Προγραμματισμός με τη C++, 2η Έκδοση, Stroustrup Bjarne

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

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 530
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Βιβλία C/C++
« Απάντηση #1 στις: 05 Νοέ 2020, 07:43:22 μμ »
Ας περάσει από το https://www.pdfdrive.com/ να δει τι έχει έτοιμο και τσάμπα!

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1429
  • There are always possibilities...
Απ: Βιβλία C/C++
« Απάντηση #2 στις: 05 Νοέ 2020, 09:01:34 μμ »
Έχω την τρίτη έκδοση του Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ του  Stroustrup.

Όταν το διάβασα το βρήκα πολύ δύσκολο, αλλά το γεγονός ότι είναι από τον δημιουργό της γλώσσας είναι ίσως μια εγγύηση.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 530
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Βιβλία C/C++
« Απάντηση #3 στις: 05 Νοέ 2020, 10:03:33 μμ »
θα πρότεινα να δει όλα τα παραδείγματα εδώ:
http://www.rosettacode.org/wiki/Category:C%2B%2B



Λίγα λόγια για τη γλώσσα, όπως την έχω δει εδώ και πολλά χρόνια:

Η C++ στηρίζεται σε βιβλιοθήκες και το τελικό πρόγραμμα που κάνει κανείς είναι αποτέλεσμα επιλογών βιβλιοθηκών (το λέμε και framework).

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

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

1. Μένει σε προγράμματα απλής κονσόλας. (διεπαφή εποχής πριν το 1980)

2. Ξεκινάει με μια γλώσσα Visual τύπου, όπου κυριαρχούν οι φόρμες, τα αντικείμενα σε αυτές, δηλαδή μια εφαρμογή με γραφική διεπαφή (GUI), δηλαδή το τρόπο που δούλευαν τα πράγματα από την εποχή των Windows, και σε ευρύτερο βαθμό αποδοχής τεχνολογίας, από το 95, με τα Windows 95, και τους επεξεργαστές Pentium. To 96 θυμάμαι είχα αγοράσει το πρώτο Windows 95, με 32μπιτο Pentium 100Mhz, 32Mbyte Ram (πολύ καλύτερο από το πρώτο μου, Acorn Electron 8bit 6502, 2Mhz, 32kb Ram, 1984)

Το ερώτημα που προκύπτει είναι, γιατί υπάρχουν αυτές οι δυο κατηγορίες; Δηλαδή γιατί δεν παίζει μόνο αυτή με τα παράθυρα, που είναι πιο νέα; Η απάντηση είναι απλή, είναι θέμα λειτουργίας. Ό,τι δουλεύει με παράθυρα έχει μια εσωτερική διαδικασία ανάγνωσης μηνυμάτων που από τη φύση της τρώει από την ισχύ επεξεργασίας. Έτσι όταν θέλουμε να εκτελούνται υπολογισμοί με ενδιαφέρον στη ταχύτητα εκτέλεσης, τότε τρέχουμε κάτι χωρίς το message loop (τη διαδικασία ανάγνωσης μηνυμάτων). Υπάρχει τρόπος να συνδυαστεί ένα front-end (με message loop) με ένα back-end (καθαρό), το οποίο καλείται κάθε φορά σαν νέο πρόγραμμα ή πρόγραμμα σε αναμονή, να κάνει τη δουλειά του και επιστρέφει το αποτέλεσμα.

Αυτή η ιστορία του back-end & front-end, πήρε μεγάλες διαστάσεις μετά την έλευση του διαδικτύου, όπου εμφανίστηκε ο διαχωρισμός Desktop (εφαρμογές επιφάνειας εργασίας) και web app (εφαρμογές μέσα από browser, αναγνώστη ιστοσελίδων). Το βασίλειο της C++ έπεσε. Νέες γλώσσες φτιάχτηκαν για web app, οι οποίες ήταν τόσο βολικές που παίζουν πια σε desktop, και έμεινε λίγος χώρος για την C++, ίσως για τους λάτρεις του ρετρό!


Η C++ είναι γλώσσα βασιλιάς αλλά την δουλειά την κάνουν άλλες γλώσσες!

ΓΚ
Και καλό ξεμπέρδεμα με το νέο LockDown..

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2823
  • Πύργος Ηλείας
Απ: Βιβλία C/C++
« Απάντηση #4 στις: 05 Νοέ 2020, 11:47:01 μμ »
Τα βιβλία της λίστας είναι αυτά που έχουν δώσει για να διαλέξουν οι φοιτητές από τον Εύδοξο για πανεπιστημιακό μάθημα προγραμματισμού. Επομένως δεν τίθεται θέμα για επιλογή της γλώσσας.

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 530
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Βιβλία C/C++
« Απάντηση #5 στις: 06 Νοέ 2020, 10:57:26 πμ »
Μια γεύση από C++ (αν δεν περιέχει το μάθημα τέτοια στοιχεία, τότε θα μιλάμε για προγραμματισμό στυλ ΑΕΠΠ σε πανεπιστήμιο).

Διάλεξα ένα θέμα από κώδικα στο rosseta code που δείχνει πώς στη C++, με χρήση αντικειμένου, να ορίσεις επιλογή παραμέτρου μεταξύ ακέραιας και πραγματικής.
Το πρόγραμμα το έβαλα εδώ και τρέχει κατευθείαν (είναι repl), δεν χρειάζεται να κατεβάσει κανείς τον compiler.
https://repl.it/@GeorgePhilip1/TroubledParchedServicepack#main.cpp

Ορίζεις int operator()(int x) και float operator()(float x), οπότε το αντικείμενο, κλάσης Acc, που λέγεται a, ως a(10) βάζει 10 ακέραιο και γυρνάει το συνολικό άθροισμα (σε ότι έχουμε βάλει) ως ακέραια τιμή, ενώ ως a(2.3f) βάζει το 2.3 πραγματικό και γυρνάει to άθροισμα ως πραγματική τιμή!

Ο κώδικας, πάρθηκε από εδώ http://www.rosettacode.org/wiki/Accumulator_factory#C.2B.2B


evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3525
  • to Iterate is human to Recurse divine
Απ: Βιβλία C/C++
« Απάντηση #6 στις: 06 Νοέ 2020, 06:54:05 μμ »
Αν θέλει να μάθει από την αρχή C++ και είναι αρχάριος το βιβλίο των Deitel είναι το καλύτερο, είναι πολύ μεγάλο και αναλυτικό, πλατιάζει πολύ, αλλά μπορεί από εκεί να μάθει C++ κάποιος όχι πολύ δυνατός μαθητής/φοιτητής και μάλιστα πολύ καλά.
Τώρα αν απλά πρέπει να επιλέξει ένα βιβλίο για την βιβλιοθήκη του συμφωνώ και εγώ με τον Παναγιώτη, Stroustrup ανεπιφύλακτα. Είναι προχωρημένο, πρέπει να έχεις γράψει κώδικα σε C++ για να το καταλάβεις και να το εκτιμήσεις. Αξίζει όμως τον κόπο.
Αν τώρα κάποιος έχει και άλλες ανησυχίες για την C++ προτείνω το Design and Evolution of C++, πάλι του Stroustrup .
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

dpa2006

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 722
Απ: Βιβλία C/C++
« Απάντηση #7 στις: 20 Νοέ 2020, 12:10:19 πμ »
Έχει κανείς άποψη για κάποιο/κάποια από τα παρακάτω βιβλία;

Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++, BJARNE STROUSTRUP
Η ΓΛΩΣΣΑ C++ ΣΕ ΒΑΘΟΣ, ΝΙΚΟΣ Μ. ΧΑΤΖΗΓΙΑΝΝΑΚΗΣ
C++ Προγραμματισμός, 9η Εκδ., Paul J. Deitel, Harvey M. Deitel
Προγραμματισμός με τη C++, 2η Έκδοση, Stroustrup Bjarne

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


Του Bjarne Stroustrup τα βιβλία είναι στριφνά και όχι για αρχή.
Για αρχή προτείνεται των Deitel.
Θα πρότεινα την αγγλική έκδοση των Deitel για να έχει και την πιο πρόσφατη έκδοση.
Έπειτα ας ασχοληθεί και με τα υπολοιπα.
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science