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

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

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

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

Δημοσίευσηαπό Star_Light » 18 Νοέμ 2011, 02:53

Να εκτυπώνεις ποιές λέξεις ? :) Ο κωδικας που δίνεις δεν κάνει κάτι. Με την έννοια οτι δεν παίρνει κάποια είσοδο.
επομένως δεν κάνει κάποια επεξεργασία ως προς αυτο.

Επίσης οι συναρτήσεις που χρησιμοποιείς δεν κάνουν για την δουλειά που θέλεις. Αν κοιτάξεις στο manual

http://www.cplusplus.com/reference/clib ... o/getchar/

θα δεις οτι int getchar ( void );

Get character from stdin
Returns the next character from the standard input (stdin).
It is equivalent to getc with stdin as its argument.


δηλαδη απλά επιστρέφουν εναν χαρακτήρα που έχουν παρει απο το stdin ενω εσυ ζητας μια λέξη ανα σειρά.
Δεν νομιζω οτι ειναι αυτες που χρειάζεσαι. Πρέπει να ψάξεις για αρχεία και τις συναρτήσεις fgetc & fputc.
Γνώσεις ⇛ 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 » 18 Νοέμ 2011, 18:41

Το παρακάτω φίλε Γιώργο... ΔΕΝ είναι C :lol:

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

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

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

Δημοσίευσηαπό Star_Light » 19 Νοέμ 2011, 00:42

migf1 έγραψε:Το παρακάτω φίλε Γιώργο... ΔΕΝ είναι C :lol:

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

if(c == ' ' || '\t' || '\n')


Και πως και το δέχτηκε το συστημα σε .c αρχείο? :/
Γνώσεις ⇛ 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++

Δημοσίευσηαπό simosx » 19 Νοέμ 2011, 02:09

Star_Light έγραψε:
migf1 έγραψε:Το παρακάτω φίλε Γιώργο... ΔΕΝ είναι C :lol:

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

if(c == ' ' || '\t' || '\n')


Και πως και το δέχτηκε το συστημα σε .c αρχείο? :/


Είναι αποδεκτός κώδικας C.
Τα \t και \n αποτιμούνται με τις τιμές τους κατά ASCII (δες σε πίνακα).
Και ο gcc κατά τη μεταγλώττιση θα βελτιστοποιήσει το if() διότι η έκφραση ? ή ΑΛΗΘΕΣ έχει αποτέλεσμα πάντα ΑΛΗΘΕΣ,
οπότε θα εκτελεί άμεσα τον κώδικα μέσα στο if().
προσωπικό ιστολόγιο ϗ πλανήτης 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++

Δημοσίευσηαπό Star_Light » 22 Νοέμ 2011, 21:10

simosx έγραψε:

Είναι αποδεκτός κώδικας C.
Τα \t και \n αποτιμούνται με τις τιμές τους κατά ASCII (δες σε πίνακα).
Και ο gcc κατά τη μεταγλώττιση θα βελτιστοποιήσει το if() διότι η έκφραση ? ή ΑΛΗΘΕΣ έχει αποτέλεσμα πάντα ΑΛΗΘΕΣ,
οπότε θα εκτελεί άμεσα τον κώδικα μέσα στο if().


Ευχαριστω σιμο ;) .

Οταν λες βελτιστοποιηση στον gcc τι ακριβως εννοεις? Αν εχεις προχειρο καποιο τουτοριαλ
δωσε να το τσεκαρω.
Γνώσεις ⇛ 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++

Δημοσίευσηαπό Garrus » 29 Νοέμ 2011, 23:47

Ε ρε κατι κενα που εχω στη C!
Πως κανω μαλλοκ ακριβως την παρακατω, μεσα σε μια συναρτηση η οποια πρεπει να επιστρεφει το μαλλοκ'ντ στρακτ?

Κώδικας: Επιλογή όλων
struct s1{
struct s2 **spp;
int a,b;
struct s3 *sp;
}


ξερω πως:
κανεις πρωτα malloc μια s1.Με την malloc αυτη,δημιουργειται χωρος για την δομη και τα μελη της. Μετα πρεπει να κανεις malloc και για αυτο που θα δειχνει ο *sp, και για αυτα που θα δειχνουν οι **sp.
Δηλαδη μια malloc για την s1, αλλη μια για το target του sp - τυπου s3, και i malloc για τα i αντικειμενα τυπου s2, στα οποια θα δειχνουν οι i s2 pointers.

Σωστα?
1 Γνώσεις Linux: Ελπίζω τουλ. μέτρια ┃ Προγραμματισμού: Καλή ┃ Αγγλικών: Very best englands
2 Ubuntu 15.10 wily 64bit (en_US.UTF-8),
3 Intel Core i5-3210M CPU @ 2.50GHz ‖ RAM 3843 MiB ‖ SAMSUNG ELECTRONICS CO., LTD. NP350E5C-S03GR [...]
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09) ⋮ [AMD/ATI] Thames [Radeon HD 7500M/7600M Series] [1002:6840] (rev ff)
5 enp2s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 09) ⋮ wlp3s0: Qualcomm Atheros AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Garrus
punkTUX
punkTUX
 
Δημοσιεύσεις: 179
Εγγραφή: 26 Ιαν 2011, 03:23
Εκτύπωση

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

Δημοσίευσηαπό Garrus » 30 Νοέμ 2011, 01:25

Και πως τα κανω free() βασικα..
1 Γνώσεις Linux: Ελπίζω τουλ. μέτρια ┃ Προγραμματισμού: Καλή ┃ Αγγλικών: Very best englands
2 Ubuntu 15.10 wily 64bit (en_US.UTF-8),
3 Intel Core i5-3210M CPU @ 2.50GHz ‖ RAM 3843 MiB ‖ SAMSUNG ELECTRONICS CO., LTD. NP350E5C-S03GR [...]
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09) ⋮ [AMD/ATI] Thames [Radeon HD 7500M/7600M Series] [1002:6840] (rev ff)
5 enp2s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 09) ⋮ wlp3s0: Qualcomm Atheros AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Garrus
punkTUX
punkTUX
 
Δημοσιεύσεις: 179
Εγγραφή: 26 Ιαν 2011, 03:23
Εκτύπωση

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

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

Είναι πολύ λίγες οι πληροφορίες που μας δίνεις και καθόλου περιγραφικά τα ονόματα των μεταβλητών, οπότε δεν νομίζω να μπορεί να σε βοηθήσει κανείς στο πως να κάνεις malloc. Π.χ. τι περιέχουν τα structs s2 και s3; Και για τι χρήση προορίζονται οι δείκτες *sp και **sp (απλοί δείκτες, δυναμικοί πίνακες, ένα κι ένα; )
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

Δημοσίευσηαπό stamatiou » 29 Δεκ 2011, 19:42

Γεια σας και πάλι!
Συγνώμη για την απουσία αλλά μία με τα ωριαία μία με τα απροειδοποίητα, που να βρω χρόνο για C!
Όμως επανέρχομαι με μια άσκηση!
Off topic:
Αν και για να λέμε την αλήθεια, ούτε εγώ μπορώ να τη λύσω!
Θέλουμε να βρούμε πόσοι συνδυασμοί των 16 χαρακτήρων υπάρχουν που να υπακούν στους παρακάτω κανόνες:
Ας πούμε πως έχουμε ένα συνδυασμό του τύπου ABCDEFGHIJKLMNOP, οι κανόνες που θα πρέπει να ισχύουν είναι:
1. Ο συνδυασμός θα πρέπει να είναι 16 χαρακτήρες.
2. Ο χαρακτήρας στη θέση I (δλδ. o 9ος) θα πρέπει να είναι σύμφωνα με το ASCII ίσος με τη θέση Α + 1.
3. Ο χαρακτήρας στη θέση J θα πρέπει να είναι ίσος με B - 1.
4. Ο χαρακτήρας στη θέση Κ θα πρέπει να είναι ίσος με C - 3.
5. Ο χαρακτήρας στη θέση L θα πρέπει να είναι ίσος με D + 5.
6. Ο χαρακτήρας στη θέση Μ θα πρέπει να είναι ο ίδιος με εκείνον στη θέση Ε.
7. Ο χαρακτήρας στη θέση Ν θα πρέπει να είναι ο ίδιος με εκείνον στη θέση Η.
8. Ο χαρακτήρας στη θέση Ο θα πρέπει να είναι ίσος με G + 18.
9. Ο χαρακτήρας στη θέση P θα πρέπει να είναι ίσος με Α + 10.
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό medigeek » 31 Δεκ 2011, 01:43

Δεν κατάλαβα την εκφώνηση της άσκησης, ειδικά αυτό το μέρος:
stamatiou έγραψε:
2. Ο χαρακτήρας στη θέση I (δλδ. o 9ος) θα πρέπει να είναι σύμφωνα με το ASCII ίσος με τη θέση Α + 1.
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

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

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