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

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

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

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

Δημοσίευσηαπό Ntelispak » 09 Μαρ 2012, 23:51

Off topic:
Συνήθως το υπόλοιπο της Ευκλείδειας διαίρεσης ορίζεται ως εξής : Αν m,n ακέραιοι τότε υπάρχουν μοναδικοί p, r ακέραιοι με m=pn+r και 0<=r<n. Η εντολή m%n, τουλάχιστον πριν τη συζήτηση αυτή, θα περίμενα να γυρνά το r του συνηθισμένου ορισμού. Φαντάζομαι οτι έχει ορισθεί έτσι όταν η επιλογή του r είναι διφορούμενη να επιστρέφει αυτή με την μικρότερη απόλυτη τιμή. Οι εφαρμογές του % που γνωρίζω, λχ έλεγχος εγκυρότητας ΑΦΜ, δεν επηρεάζονται πάντως από την επιλογή αυτή διότι όλοι οι αριθμοί είναι θετικοί. Σημασία έχει μονάχα όταν εμπλέκονται αρνητικοί αριθμοί.
Οδηγείες ΧρήσηςΤutorialsΑναζήτηση
⇛ Linux: noob ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Πολύ Καλά
⇛ Xubuntu 9.04 (Jaunty Jackalope) 64bit
⇛ Intel Core2Duo E6600 (2.4GHZ 4MB) ┃ Asus P5B 965 ┃ 2x1GB DDR2 667MHZ ┃ Radeon X1600P 256MB ┃ MAudio Audiophile 192
Άβαταρ μέλους
Ntelispak
babeTUX
babeTUX
 
Δημοσιεύσεις: 36
Εγγραφή: 19 Ιουν 2009, 20:15
Τοποθεσία: Μεταμόρφωση Αττικής
Εκτύπωση

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

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

@Start_Light

Απ' όσο θυμάμαι οι unary δείχνουν το πρόσημο του αριθμού:
Κώδικας: Επιλογή όλων
printf("%d", -4 / -2); // θα υπολογιστεί σαν (-4) / (-2) γιατί προηγούνται τα unary -

Τους right and left associative δεν ξέρω πως να τους εξηγήσω καλύτερα απ' το βιβλίο. Τα παραδείγματα που έχει μέσα δεν τα καταλαβαίνεις;
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 10 Μαρ 2012, 00:07

Ωχ ναι σωστα.... για αυτο προηγούνται.

Νταξει τα καταλαβα τα left & right associative

1.
http://en.wikipedia.org/wiki/Operator_associativity

2.
http://webcache.googleusercontent.com/s ... ve&ct=clnk

απλα στο βιβλιο μεσα λεει οτι ο τελεστης + πχ ειναι left associative και δεν καταλαβαινω για ποιο λογο το λεει αυτο αφου τα 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

Δημοσίευσηαπό Ilias95 » 10 Μαρ 2012, 00:10

Γενικώς όπου δεν είσαι σίγουρος για το πως θα υπολογιστεί βάζεις παρενθέσεις και καθάρισες. Γίνεται και πιο εύκολο να κατανοηθεί από άλλους.
Με μέτρο βέβαια για να μην χαθεί και η readablity. :P
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 10 Μαρ 2012, 00:18

Ilias95 έγραψε:Γενικώς όπου δεν είσαι σίγουρος για το πως θα υπολογιστεί βάζεις παρενθέσεις και καθάρισες. Γίνεται και πιο εύκολο να κατανοηθεί από άλλους.
Με μέτρο βέβαια για να μην χαθεί και η readablity. :P


Ναι οκ η παρένθεση τα καθαρίζει ολα που λεμε :p απλα σου λεω... δεν ξερω για ποιο λογο αν καταλαβαινω οντως αυτο που διαβαζω
τονιζει μεσα πως το + ας πουμε ειναι left.... ενω οπως φαινεται και στα λινκ πιο πανω παει και δεξια αλλα και αριστερα αν θες...

ας πουμε το παράδειγμα με το - ( + i) στο προσημο καταλαβαινω γιατι ειναι μονο right γιατι δεν μπορεις να εχεις πχ (+7) - δεν υπαρχει αυτο.
Γνώσεις ⇛ 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

Δημοσίευσηαπό Ilias95 » 10 Μαρ 2012, 00:21

Μα το ξεκαθαρίζει.
Τα binary + και - είναι left associative, ενώ τα unary + και - είναι right associative.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 10 Μαρ 2012, 00:47

Ilias95 έγραψε:Μα το ξεκαθαρίζει.
Τα binary + και - είναι left associative, ενώ τα unary + και - είναι right associative.


Οκ μπέρδεψα ένα παράδειγμα που έψαχνα και σε ένα άλλο βιβλιο το οποιο έδινε ενα παραδειγμα
με ένθετες παρενθέσεις οπου οι πράξεις γινονται απο μεσα προς τα εξω και το ειχε σαν τη δομη του 2ου λινκ
που έδωσα (το οποιο μάλλον δεν έχει σχέση με το πως οριζει η C αφου οπως λεει στο 1ο της wikipedia

" The associativity and precedence of an operator is a part of the definition of the programming language; "

αρα η C οριζει εξαρχης το + σε left. Εκει ηταν το σκαλωμα μου ... καταλαβες?

Γενικα ρωταω μπερδεμενα ωρες ωρες? Ποια η γνωμη σου?
Γνώσεις ⇛ 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

Δημοσίευσηαπό Ilias95 » 10 Μαρ 2012, 01:07

Star_Light έγραψε:Γενικα ρωταω μπερδεμενα ωρες ωρες? Ποια η γνωμη σου?

Τώρα με μπέρδεψες εντελώς. :lol: Ποια είναι η γνώμη μου ως προς τι; Ως προς το αν τα ρωτάς μπερδεμένα; :P

Βασικά η γνώμη μου είναι ότι κολλάς άδικα σε μη ουσιαστικά πράγματα όπως επισήμανε και ο migf1.
Κράτα την ουσία απ' αυτά που θέλει να διδάξει το βιβλίο και πήγαινε να λύσεις τα programming projects.
Εκεί πέρα θα σου βγουν οι πραγματικές απορίες και εκεί πέρα θα μάθεις ότι πρέπει να μάθεις...
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

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

@Ilias95 μιας και η κουβεντα το έφερε χθες σχετικα με την διαφορα των Μαθηματικων με την C . Και αυτο που σου λεω διαφέρει. Η C οριζει τον τελεστη (+) μαζι με τους αλλους σαν left associative .... στα κλασσικα Μαθηματικα δεν είναι αυστηρά ορισμένος σε left ή right... αυτο εψαχνα και τελικα το βρηκα.

Το διαβασα οτι το λεει ξεκαθαρα στο βιβλιο οτι ειναι left.

That's all.
Τελευταία επεξεργασία από Star_Light και 10 Μαρ 2012, 02:27, έχει επεξεργασθεί 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

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

Ωρες - ωρες με ενδιαφερει η λεπτομερεια φιλε Ηλία άσχετα απο τις πολυ σπουδαίες επισημάνσεις του migf1 ;)
Γνώσεις ⇛ 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
Εκτύπωση

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

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