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

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

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

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

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

migf1 έγραψε:Καλή φάση :)

Πως σου φαίνεται το βιβλίο; Το ξεκίνησες;


Πολυ καλο. Ναι το εχω ξεκινησει απο προχθες....
ειμαι στην σελιδα 60 τωρα... ειναι επισης μια πολυ καλη
ευκαιρια να μάθω και μερικα αγγλικα παραπανω :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
Εκτύπωση

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

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

Ε ναι, προγραμματισμός και Αγγλικά πάνε μαζί, ευτυχώς δεν χρειάζεται να τα μιλάς φαρσί για να διαβάσεις το βιβλίο :)

Το βασικό σε αυτό το βιβλίο είναι η μεθοδικότητα και η οργάνωση με την οποία εισαγάγει τον αναγνώστη σε κάθε νέα έννοια της γλώσσας, καθώς και η προσοχή που δίνει στις λεπτομέρειες. Τα περνάει με λογική σειρά, προοδευτικά και εύστοχα. Κάτι που για παράδειγμα λείπει από το The C Programming Language των K&R ... εκείνο είναι πολύ καλό για reference, αλλά όχι τόσο για να μάθει κάποιος που πρωτο-ξεκινάει.

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

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

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

hahahaha στο μεταξυ μ αρεσει που στην σελιδα 52 λεει μεν οτι το κενό αναμεσα στα token δεν ειναι μείζονος σημασίας (δεν την σκότωσα την γενική ετσι? :lol: :lol: ) αλλα μην το παρακάνεις κιολας και βάζει εναν μπογο ολοκληρο !!!!!

Παντως δεν γραφει πουθενα οτι και τα constants θεωρούνται tokens και σε μια άσκηση μπερδεύτηκα.

στις directives επειδη δεν χρειάζεται ερωτηματικό στο τελος μας δεσμεύει να τις βάζουμε σε μια αποκλειστικα γραμμή ε?
χωρις κατι αλλο διπλα???

πχ εδω ->

Κώδικας: Επιλογή όλων
#include<stdio.h> int main(void)


κτυπάει ο compiler
Γνώσεις ⇛ 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, 18:07

Ναι, ένα directive ανά γραμμή.

Μπορείς όμως αν θες να σπάσεις ένα directive σε πολλές γραμμές, βάζοντας τον χαρακτήρα \ (ανάποδη κάθετος) στο τέλος της κάθε γραμμής, πλην της τελευταίας.
Π.χ...

Μορφοποιημένος Κώδικας: Επιλογή όλων
#define CLS()								\
do { \
int i = FMT_PGLINES+4; \
while ( i-- ) \
putchar('\n'); \
} while (0)

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

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

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

Tελικα και τα constants πχ 3 ειναι tokens.
Γνώσεις ⇛ 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, 18:33

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

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

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

migf1 έγραψε:Δεν χρειάζεται να σπαταλήσεις ώρα στα πόσα tokens είναι η κάθε εντολή, εκτός να σκέφτεσαι να γράψεις κάνα compiler.


Καλο θα ηταν ;) αλλα προέχουν αλλα τωρα...
γενικα οτι πιο underlying με βρίσκει σύμφωνο.
Γνώσεις ⇛ 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

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

btw μεσα στο βιβλιο στην σελιδα 52 λεει πως η C κουτσουρεύει το αποτέλεσμα της διαίρεσης 2 ints

έλυσα την πολυ δυσκολη ασκηση 4 :P

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

#include<stdio.h>
#define tax ( 5.0f / 100.0f ) // Σημαντικό να βάλεις το πρόθεμα f
// Διοτι η C κουτσουρεύει το αποτέλεσμα οταν 2 integers διαιρούνται

int main(void)

{

float old_amount , new_amount;

printf(" Enter an amount : ");
scanf("%f" , &old_amount);

new_amount = old_amount + tax * old_amount;

printf(" The amount including tax 5/100 is : %.2f " , new_amount);


return 0;
}


αλλα στο

Κώδικας: Επιλογή όλων
#define tax ( 5.0f / 100.0f )


Αν βγάλω το προθεματάκι f απο το 100 και το αφησω μονο στο 5.0 μου εμφανιζει κανονικα τα αποτελεσματα
μη κουτσουρεμενα... δεν ειναι απαραιτητο να υπάρχει αυτο το suffix και στα 2? αλλα μονο στο 1? η δουλευει βυλαψκ mono sto 1....
Τελευταία επεξεργασία από Star_Light και 24 Φεβ 2012, 18:53, έχει επεξεργασθεί 1 φορά/ες συνολικά
Γνώσεις ⇛ 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, 18:53

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

ΥΓ. Πρόσεχε όταν δουλεύεις με αριθμούς κινητής υποδιαστολής, όχι μόνο στην C αλλά γενικότερα. Υπάρχει θέμα με την απευθείας σύγκρισή τους. Αν δεν το έχεις δει, ρίξε μια ματιά εδώ: http://x-karagiannis.gr/prog/libs/conte ... x.html#Err
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

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

Σωστά ειναι επίθεμα και οχι πρόθεμα... το πρόθεμα μπαινει μπροστα.
Πάει το 2ο κεφάλαιο ;)

αν έχεις καμιά άσκηση εσυ πανω σε αυτο βάλε.....

:D πριν μπω στο 3.
Τελευταία επεξεργασία από Star_Light και 24 Φεβ 2012, 18:59, έχει επεξεργασθεί 1 φορά/ες συνολικά
Γνώσεις ⇛ 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
Εκτύπωση

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

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