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

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

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

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

Δημοσίευσηαπό Ilias95 » 14 Μαρ 2012, 23:54

Star_Light έγραψε:Στην ένθεση δεν σε υποχρεώνει το συστημα να βαλεις παρενθέσεις απλα ειναι μια πασιγνωστη τεχνικη

Δεν είμαι σίγουρος για το τι σημαίνει ένθεση αλλά δεν σε υποχρεώνει μόνο απ' τη στιγμή που θα δηλώσεις ένα αυτόνομο block μέσα σε άλλο block όπως είπε ο migf1.

Όμως αν έχεις περισσότερες από μία εντολές μέσα στην πλοκάδα του if πρέπει οπωσδήποτε να βάλεις άγκιστρα (όχι παρενθέσεις).
Διαφορετικά το:
Κώδικας: Επιλογή όλων
if (1)
x = 5;
y = 5;

Ειναι το ίδιο με:
Κώδικας: Επιλογή όλων
if (1) {
x = 5;
}
y = 5;
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 15 Μαρ 2012, 01:09

Η απάντηση μου βρίσκεται στην σελίδα 87-88 του King φίλοι μου :D

Η switch-ara ηρθε να μας δικαιώσει !!!
Enjoy it - this is one of the few places in C where braces aren't required

Μιας και έχετε φαγωθεί με τις παρενθέσεις !!!!!!!!!!!

Οσο για το βιβλιο το εχω ξαναπει το παω σιγα σιγα... οχι μονο επειδη θελω να κατανοησω
το 90% απο οσα γραφει μεσα αλλα επειδη ακομη και αν αυτο δεν παίξει (πραγμα που το αποκλειω γιατι ειμαι έξυπνος) :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

Δημοσίευσηαπό migf1 » 15 Μαρ 2012, 02:15

Star_Light έγραψε:Η
...
Enjoy it - this is one of the few places in C where braces aren't required

Μιας και έχετε φαγωθεί με τις παρενθέσεις !!!!!!!!!!!
...

Αν όμως θες να χρησιμοποιήσεις προσωρινή μεταβλητή μέσα στο statement, τότε τα άγκιστρα are -again- required (αυτό σας το λέω εγώ :) )

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

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

Δημοσίευσηαπό Star_Light » 15 Μαρ 2012, 02:21

migf1 έγραψε:
Αν όμως θες να χρησιμοποιήσεις προσωρινή μεταβλητή μέσα στο statement, τότε τα άγκιστρα are -again- required (αυτό σας το λέω εγώ :) )

ΥΓ. Τι σχέση έχει όμως η switch και τα άγκιστρα με την αλλοπρόσαλλη στοίχιση του κώδικα που ποστάρεις;


Δεν έχει. Το εκανα βιαστικα για αυτο δεν πρόσεξα την "οδοντωση" :lol: :lol:

btw αν θελει ας κοιταξει κανεις στην σελιδα 89 πανω απο το "Printing a day in Legal form"

εδω τι εννοει??? τι θελει να πει... οτι βαζεις επιτηδες μια break στο τελευταιο case ενω δεν χρειαζεται
μονο και μονο αν δει κανεις οτι ξέχασες το break στις προηγουμενες να το βαλει αυτος? :S
δεν βγαζω τα αγγλικα εδω.....
Γνώσεις ⇛ 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 » 15 Μαρ 2012, 02:29

Δεν ξέρω τι εννοεί, κράτα μόνο ότι είναι κοινή πρακτική να βάζουμε πάντα default στο τέλος όλων των switch, καθώς επίσης και να βάζουμε πάντα break (ή return) στο default.

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

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

Δημοσίευσηαπό Star_Light » 15 Μαρ 2012, 02:39

migf1 έγραψε:Δεν ξέρω τι εννοεί, κράτα μόνο ότι είναι κοινή πρακτική να βάζουμε πάντα default στο τέλος όλων των switch, καθώς επίσης και να βάζουμε πάντα break (ή return) στο default.

Γενικώς η switch είναι επικίνδυνη, ιδιαίτερα όταν έχουμε συνεχόμενα cases χωρίς break. Επίσης, ένα πολύ συχνό σφάλμα αρχαρίων είναι να θεωρούν πως τα break της switch "σπάνε" και το λουπ μέσα στο οποίο ενδέχεται να είναι φωλιασμένη η switch, κάτι που δεν ισχύει σε καμία περίπτωση!


Γιατι να βαζω break οπωσδηποτε στο default της switch εφοσον ουτως η αλλως φεύγει απο αυτην
αλλωστε το break απλα σε μεταφέρει στην μέτα τη switch εντολη. ΟΠως θα οδηγηθεις και φυσικα με το default.
Γνώσεις ⇛ 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 » 15 Μαρ 2012, 02:41

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

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

Δημοσίευσηαπό Star_Light » 15 Μαρ 2012, 02:48

migf1 έγραψε:Οκ, μη βάζεις εσύ!


ΕΓω δεν σου ειπα οτι δεν θα βαλω... εγω σε ρωταω το γιατι...
Το ιδιο γιατι έψαχνα και με την scanf. Αν ξερω
το γιατι ειναι καλυτερο καμια φορα... οχι παντα ;)
Γνώσεις ⇛ 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 » 15 Μαρ 2012, 02:54

Star_Light έγραψε:ΕΓω δεν σου ειπα οτι δεν θα βαλω... εγω σε ρωταω το γιατι...
Το ιδιο γιατι έψαχνα και με την scanf. Αν ξερω
το γιατι ειναι καλυτερο καμια φορα... οχι παντα ;)

Αφού και να σου πως, σε 2 μέρες θα με ξαναρωτήσεις το ίδιο, και μετά από 5 μέρες θα με ξαναρωτήσεις και μετά από 15 θα με ματα-ξανα-ρωτήσεις.

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

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

Δημοσίευσηαπό Star_Light » 15 Μαρ 2012, 03:06

migf1 έγραψε:
Αφού και να σου πως, σε 2 μέρες θα με ξαναρωτήσεις το ίδιο, και μετά από 5 μέρες θα με ξαναρωτήσεις και μετά από 15 θα με ματα-ξανα-ρωτήσεις.

Στο λέει και ο King, στο λέω κι εγώ πως είναι κοινή πρακτική... δεν σου αρκεί; :P


Ναι και ο King παντα την χρησιμοποιει αλλα δεν εχει κανει καπου λογο
γιατι την βαζει μετα το default ας πουμε εκτος και αν δεν το θυμαμαι εγω τωρα επειδη ειμαι και λιγο κουρασμενος. ΕΝιγουει δεν θα το ψιρίσω αλλο
προς μεγαλη σου εκπληξη!
Γνώσεις ⇛ 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
Εκτύπωση

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

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