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

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

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

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

Δημοσίευσηαπό Qdata » 14 Ιουν 2011, 03:17

Off topic:
@clepto έκανα sticky το θέμα και συμπλήρωσα κάποια πράγματα στο αρχικό post. ;)
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 14 Ιουν 2011, 03:28

Φίλε Qdata, το code tag δυστυχώς δεν εξυπηρετεί, αφενός γιατί δεν έχει syntax-highlighting κι αφετέρου διότι δεν κρατάει τα tabs (τα μετατρέπει σε spaces). Οπότε ούτε να διαβαστεί μπορεί εύκολα ο κώδικας, αλλά ούτε και να επικολληθεί σε τοπικό editor.

Τώρα ετοιμάζομαι να ποστάρω ένα πρόγραμμα με περίπου 500 γραμμές κώδικα, θα του βγει το λάδι όποιου προσπαθήσει είτε να το διαβάσει είτε να το επικολλήσει στον editor του (με τα tabs άλλα αντί άλλων εννοώ) από το code-tag.

έγραψε:
[snip]

~Παρακαλώ να γίνετε οπωσδήποτε χρήση του code tag όπου υπάρχει κώδικας~


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

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

Δημοσίευσηαπό clepto » 14 Ιουν 2011, 12:11

Δήμο και εγώ πάνω που σου έλεγα να το κάνεις sticky :P
ευχαριστώ migf1!
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

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

Δημοσίευσηαπό Qdata » 14 Ιουν 2011, 12:12

@migf1 όντως είναι πρόβλημα και ιδικά σε γλώσσες προγραμματισμού που χρειάζονται τα tabs και τις πλοκάδες(πχ python).Αλλά δεν βάζουμε τον κώδικα σε [code][/code] και είναι πχ όπως είπες 500 σειρές θα γεμίσει όλη η οθόνη! :)
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

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

Δημοσίευσηαπό simosx » 14 Ιουν 2011, 12:22

Qdata έγραψε:@migf1 όντως είναι πρόβλημα και ιδικά σε γλώσσες προγραμματισμού που χρειάζονται τα tabs και τις πλοκάδες(πχ python).Αλλά δεν βάζουμε τον κώδικα σε [code][/code] και είναι πχ όπως είπες 500 σειρές θα γεμίσει όλη η οθόνη! :)


Είναι καλό να βάζουμε τον κώδικα σε αποθετήριο, κατά προτίμηση στο GitHub, και προσθέτουμε τα άλλα μέλη ως Collaborators.
Και όταν λέω ότι «είναι καλό», εννοώ κάντε το τώρα.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 14 Ιουν 2011, 12:29

Καλημέρα,
α, ρε συ νόμιζα πως ήταν "μπηχτή" προς εμένα επειδή ανεβάζω τον κώδικα και στο ideone.com :lol:

Έχεις απόλυτο δίκιο, εννοείται πως μεταξύ χύμα και code-tag, το 2ο είναι χαλαρά το ενδεδειγμένο!

Qdata έγραψε:@migf1 όντως είναι πρόβλημα και ιδικά σε γλώσσες προγραμματισμού που χρειάζονται τα tabs και τις πλοκάδες(πχ python).Αλλά δεν βάζουμε τον κώδικα σε [code][/code] και είναι πχ όπως είπες 500 σειρές θα γεμίσει όλη η οθόνη! :)


Δεν το ΄χω χρησιμοποιήσει ποτέ και για να είμαι απόλυτα ειλικρινής βαριέμαι αφάνταστα να μπω στη διαδικασία και να το μάθω και να το στήσω σε 3 διαφορετικά μηχανήματα με διαφορετικά OS (άρα και clients). Κάποια στιγμή θα ασχοληθώ όμως, αρκεί να μου έρθει η όρεξη (κοινώς να βαριέμαι πάααααρα πολύ :lol:)

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

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

Δημοσίευσηαπό clepto » 14 Ιουν 2011, 15:49

@migf1 έχω κάποιες απορίες σε σχέση με τον κώδικα σου...
Κώδικας: Επιλογή όλων
printf("\nXwrhtikothta %dhs aithoysas? ", iroom++ );

το iroom++ τι κάνει;

επίσης η fflush(stdin); τι κάνει; την αναφέραμε και στις προηγούμενες σελίδες...

Κώδικας: Επιλογή όλων
printf("%sapaitoymenoi Epithrhtes: %d\n", [b]INDENT[/b], nsupers( rseats ) )

τι κάνει το INDENT
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 14 Ιουν 2011, 16:09

clepto έγραψε:@migf1 έχω κάποιες απορίες σε σχέση με τον κώδικα σου...
Κώδικας: Επιλογή όλων
printf("\nXwrhtikothta %dhs aithoysas? ", iroom++ );

το iroom++ τι κάνει;

Ισοδυναμεί με: iroom = iroom + 1
Αυξάνει δηλαδή την τιμή της iroom κατά 1 (ομοίως το: iroom-- μειώνει την τιμή της iroom κατά 1)

έγραψε:επίσης η fflush(stdin); τι κάνει; την αναφέραμε και στις προηγούμενες σελίδες...

καθαρίζει την στάνταρ είσοδο της C (standard input, stdin) από τυχόν απομεινάρια που έχουν απομείνει από προηγούμενο διάβασμα. Με gcc σε Posix δεν κάνει τίποτα (με mingw σε Windows κάνει όμως).

έγραψε:
Κώδικας: Επιλογή όλων
printf("%sapaitoymenoi Epithrhtes: %d\n", [b]INDENT[/b], nsupers( rseats ) )

τι κάνει το INDENT

Έχω ορίσει το INDENT στην αρχή του προγράμματος ως μια string σταθερά που ισοδυναμεί με 5 χαρακτήρες tab. Χωρίς αυτή, το παραπάνω printf() για να βγάλει το ίδιο πράγμα γράφεται ως εξής:
Κώδικας: Επιλογή όλων

printf("\t\t\t\t\tapaitoymenoi Epithrhtes: %d\n", nsupers( rseats ) );

Ο χαρακτήρας '\t' σημαίνει tab στην C (και συνήθως αντιστοιχεί σε 8 spaces)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 14 Ιουν 2011, 16:19

Μισό γιατί δεν στο είπα καλά το: iroom++

Ναι μεν αυξάνει την τιμή της iroom κατά ένα, αφού όμως πρώτα χρησιμοποιήσει τη τιμή που είχε η iroom πριν την αυξήσει. Για παράδειγμα, όπως την έχουμε μέσα στην printf() τώρα, πρώτα τυπώνει την τρέχουσα τιμής της iroom και μετά την αυξάνει κατά 1.

Ο κώδικας θα μπορούσε να είναι κι έτσι:
Κώδικας: Επιλογή όλων

printf("\nXwrhtikothta %dhs aithoysas? ", iroom );
iroom = iroom + 1; // ή iroom += 1; ή iroom++;



Αντίστοιχα, αν έγραφες ++iroom (αντί για iroom++) μέσα στην printf() τότε θα αύξανε πρώτα κατά 1 την iroom και μετά θα την τύπωνε.

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

printf("\nXwrhtikothta %dhs aithoysas? ", ++iroom );

ισοδυναμεί με...
Κώδικας: Επιλογή όλων

iroom = iroom + 1; // ή iroom += 1; ή iroom++;
printf("\nXwrhtikothta %dhs aithoysas? ", iroom );
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

Δημοσίευσηαπό clepto » 14 Ιουν 2011, 16:23

καταλαβα...
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

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

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