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

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

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

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

Δημοσίευσηαπό migf1 » 10 Σεπ 2011, 14:12

Καλημέρα,

κοίτα στο μόνο που σε κακομαθαίνουν είναι στο να σου "κρύβουν" τις γραμμές εντολών για το compilation, δεν μαθαίνεις δηλαδή ποια options πρέπει να περάσεις στη γραμμή εντολών του gcc π.χ. για σκέτο linking ή για σκέτο assembling ή για σκέτο preprocessing, κλπ (ή όποιου άλλου compiler χρησιμοποιείς, γιατί ο καθένας έχει δικά του options για αυτές τις δουλειές).

Αν είσαι εξοικειωμένος με αυτά, τότε τα IDE πραγματικά σου προσφέρουν πολύ μεγάλες ευκολίες όταν γράφεις πολύ κώδικα. Προσωπικά λατρεύω π.χ. τη δυνατότητα που με δεξί κλικ σε ένα keyword κι ένα ακόμα κλικ ανοίγει η τεκμηρίωση του keyword ή της συνάρτησης. Ή π.χ.το δέντρο με όλες τις συναρτήσεις που έχεις φτιάξει και με διπλό κλικ σε πάει απευθείας σε αυτήν (για να μη παιδεύεσαι π.χ. με PgUp/PgDown).

Έχουν πολύ χρήσιμα πράγματα που πραγματικά επισπεύδουν τη δουλειά σου. Άλλωστε τα περισσότερα IDE στο κάτω μέρος της οθόνης έχουν ένα μικρό παράθυρο που λειτουργεί σαν γραμμή εντολής απευθείας (στην Pelles-C δεν έχει νομίζω, αλλά π.χ. στο Code::Blocks που για C/C++ το θεωρώ από τα κορυφαία cross-platform έχει).

Α και btw, εγώ την Pelles-C στα Windows από γραμμή εντολών τη δουλεύω (από το ειδικό παράθυρο του Notepad++ στην κάτω μεριά της οθόνης). Στο IDE της Pelles-C μπαίνω μόνο όταν θέλω να χρησιμοποιήσω τον debugger της που είναι πάρα πολύ καλός!
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 10 Σεπ 2011, 14:41

ok συμφωνουμε δεν ειμαι τελειως ασχετος τελικα... δεν θα παω για φουντο :lol: :lol:
Γνώσεις ⇛ 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/C++

Δημοσίευσηαπό migf1 » 10 Σεπ 2011, 14:48

:lol: σε είπε κανείς άσχετο να του σπάσω το κεφάλι; :lol:

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

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

Δημοσίευσηαπό Star_Light » 10 Σεπ 2011, 15:02

migf1 έγραψε::lol: σε είπε κανείς άσχετο να του σπάσω το κεφάλι; :lol:

ΥΓ. Την άσκηση θα την κάνετε για να συνεχίσουμε;


hahaha οχι ρε... πλακα κανω... !!! Δυστυχως πρεπει να παω για αγγλικα :/ (τα διαβαζω καθε μερα και με δικο μου προγραμμα γιατι αμα περιμενεις μονο απο το φροντιστηριο δεν μαθαινεις... δυστυχως. Δεν κανουν σωστη δουλεια... μα επιτρεπεται τις λεξεις να σε βαζουν να τις μαθαινεις ξερες??? Απλα σου βαζει 10 λεξεις με "=" διπλα να γραψεις τι σημαινουν... μα δεν μαθαινεις ετσι... εδω το καλοκαιρι που αρχισα να μαθαινω λεξεις οχι παπαγαλια αλλα προσπαθοντας να φτιαξω μονος μου προτασεις εμαθα ρε συ σε 2 μηνες να μιλαω... απιστευτο. Και οι αλλοι με κοιταζαν σαν χανοι νομιζαν οτι διαβασα 500 ωρες ολο το καλοκαιρι ενω μονο 1.5 ωρα την ημερα αφιερωνω αντε 2...)

μπορω να την κανω το απογευμα? Να ξεκουραστουμε και λιγο γιατι ειδα σημερα πως ανεβασες 2 μεγαλα ποστ...

δεν θα προλαβουμε να τα διαβασουμε καλα πχ.
Γνώσεις ⇛ 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/C++

Δημοσίευσηαπό migf1 » 10 Σεπ 2011, 15:07

Ναι βρε συ, το ρωτάς; Κι εγώ αισθάνομαι λίγο κουρασμένος σήμερα. Θα πάω τώρα σπίτι κι όπως το κόβω μάλλον θα φάω και θα την πέσω για νάνι.

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

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

Δημοσίευσηαπό Star_Light » 10 Σεπ 2011, 18:45

migf1 έγραψε:
Λοιπόν, έφτιαξα τον σκελετό του table.c: http://ideone.com/uJaOd

Το πρόγραμμα ζητάει από τον χρήστη το μέγιστο πλήθος στοιχείων του πίνακα, τον δημιουργεί δυναμικά στη μνήμη και τον αρχικοποιεί με την τιμή EMPTYELEM. Κατόπιν τυπώνει τα στατιστικά του πίνακα, απελευθερώνει τη μνήμη που είχε δεσμευτεί για αυτόν και τερματίζει.

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

Αν δεν έχετε απορίες, τότε για αρχή προσθέστε μια συνάρτηση...
Κώδικας: Επιλογή όλων

void table_print_contents( int *table, const int maxelems );

η οποία θα τυπώνει όσα στοιχεία του πίνακα δεν είναι κενά, το ένα δίπλα στο άλλο ξεχωρισμένα με ένα κενό διάστημα.


Λοιπον... το κοιταξα. Εχω μια ερωτηση στην γραμμη

Κώδικας: Επιλογή όλων
if(table[i]==TABLE_EMPTYCELL)
return i;


Ουσιαστικα επιστρεφεις το σημειο του πινακα στο οποιο υπάρχει άκυρη εγγραφη?

επισης οταν λεμε δεν ειναι κενο ενα στοιχειο εννοουμε να μην ειναι 0 ?
Γνώσεις ⇛ 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/C++

Δημοσίευσηαπό migf1 » 10 Σεπ 2011, 18:53

Ξέχασα να το γράψω στην αρχή, θα ξεκινήσουμε το πρόγραμμα με έναν πίνακα θετικών ακεραίων από το 0 και πάνω. Οπότε χρησιμοποιώ την τιμή -1 για να μαρκάρω ως κενά τα στοιχεία (κελιά) του πίνακα που δεν τους έχουμε βάλει ακόμα τιμή. Και απλά έχω αντιστοιχήσει το -1 με την σταθερά TABLE_EMPTYCELL για να είναι πιο ευανάγνωστος ο κώδικας.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 10 Σεπ 2011, 18:57

migf1 έγραψε:Ξέχασα να το γράψω στην αρχή, θα ξεκινήσουμε το πρόγραμμα με έναν πίνακα θετικών ακεραίων από το 0 και πάνω. Οπότε χρησιμοποιώ την τιμή -1 για να μαρκάρω ως κενά τα στοιχεία (κελιά) του πίνακα που δεν τους έχουμε βάλει ακόμα τιμή. Και απλά έχω αντιστοιχήσει το -1 με την σταθερά TABLE_EMPTYCELL


εχμ οποτε την δινεις την λυση της 1ης ασκησης που ζητησες χθες... δηλαδη να τυπωσουμε οσα δεν ειναι κενα και το ενα διπλα στο αλλο η οχι? :crazy:
Γνώσεις ⇛ 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/C++

Δημοσίευσηαπό migf1 » 10 Σεπ 2011, 19:03

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

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

Δημοσίευσηαπό Star_Light » 10 Σεπ 2011, 19:04

οκ... τελικα αυτο ηταν... το σημειωσα λιγο στο χαρτι... απλα στο χαρτι εδωσα

Κώδικας: Επιλογή όλων
if(table[i]!=0) ή και if(table[i])


επειδη φυσικα δεν μας ειχες πει πως με το -1 δειχνεις πως κατι ειναι κενο ας πουμε....

οποτε σωστα το σκεφτηκα... οποτε και προχωραω στην ασκηση της σελ.136 καλα μπηκαμε στους πινακες μου φαινονται αρκετα ευκολοι

φαω δεν φαω το κεφαλι μου μετα... :D
Γνώσεις ⇛ 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
Εκτύπωση

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

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