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

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

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

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

Δημοσίευσηαπό migf1 » 16 Φεβ 2012, 13:10

Παρεμπιπτόντως, αν ο gdb σας φαίνεται δύσκολος, μη-πρακτικός, κλπ, τότε αν έχετε Windows, κατεβάστε την Pelles-C, και στις ρυθμίσεις του project ενεργοποιήστε τα debugging information στις καρτέλες του Compiler και του Linker, και αντί για Run διαλέξτε Debug.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

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

migf1 έγραψε:Συγχαρητήρια για το Lower! :)

Για να μη με κουράζεις, συνέκρινε τη δική σου ρουτίνα με την s_swap_static3() από τον κώδικα που ποστάρισα χτες, που κάνει αυτό που προσπαθείς να κάνεις :) Βάλε extra printf, βάλε τες στον gdb, βάλε ότι εν πάσει περιπτώσει σε εξυπηρετεί καλύτερα για να συγκρίνεις τις 2 ρουτίνες.


Ευχαριστω!!!!!
Ok! Παντως οριστε που τις βγαζω πλεον και τις ασκησουλες με τα string που φωναζες το καλοκαιρι !!!

Τα ανόμοια μήκη στα string φαντάζομαι διαχειρίζονται την μνήμη με βέλτιστο τροπο !!!!! Οταν θα τα δεσμέυεις δυναμικα

p.s Μια χαρα μου φαινεται ο gdb και ειναι και γραμμης εντολων που μου αρεσει.
Γνώσεις ⇛ 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 » 16 Φεβ 2012, 13:23

Ιδού η εν λόγω ρουτίνα, με σχόλια για να βοηθηθείς περισσότερο...

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

/*********************************************************//**
*
************************************************************/
int s_swap_static3( char *s1, char *s2 )
{
char c = '\0' /* for swapping characters */
char *cp = NULL; /* for saving last pos of shortest string*/
int i = 0; /* for parsing the 2 strings */

/* sanity checks */
if ( !s1 || !s2 )
return 0; /* FALSE */

/* swap chars between the 2 strings, until the end of the shortest one */
for (i=0; s1[i] && s2[i]; i++)
{
c = s1[i];
s1[i] = s2[i];
s2[i] = c;
}

/* s1 has more characters (copy them to s2) */
if ( '\0' != *(cp = &s1[i]) ) { /* cp remembers in s1 in which pos s2 ended*/
while ( s1[i] )
s2[i] = s1[i++];
*cp = '\0'; /* nil-terminate s1 at cp */
}
/* s2 has more characters (copy them to s1) */
else if ( '\0' != *(cp = &s2[i]) ) {
while ( s2[i] )
s1[i] = s2[i++];
*cp = '\0';
}
/* else both strings had equal current length */

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

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

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

Ωραιος. Ευχαριστω :)

btw δεν ξεχνω την κρυπτογραφια κιολας ! Απλα καναμε ενα διαλλειμα :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 » 16 Φεβ 2012, 13:35

Vigenere, απλά ξέχνα τον προς το παρόν! Αλήθεια το λέω, δεν υπάρχει περίπτωση! Μια ελπίδα να τον κουτσο-καταφέρεις είναι αν τον πίνακα tabula-recta τον κάνεις στατικό, κουτσουρεμένο, ανελαστικό και hard-coded όπως το έκαναν στο νήμα της Java.

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

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

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

migf1 έγραψε:Vigenere, απλά ξέχνα τον προς το παρόν! Αλήθεια το λέω, δεν υπάρχει περίπτωση! Μια ελπίδα να τον κουτσο-καταφέρεις είναι αν τον πίνακα tabula-recta τον κάνεις στατικό, κουτσουρεμένο, ανελαστικό και hard-coded όπως το έκαναν στο νήμα της Java.

Σε λιγάκι θα ποστάρω ανανεωμένο τον κώδικα του Vigenere (του σκέτου) με σχόλια σε κάθε συνάρτηση και μόλις ευκαιρήσω θα κάνω ενημερωτικό ποστ για το πως δουλεύει (αλλά δεν διατηρώ ελπίδες πως θα μπορέσετε να το παρακολουθήσετε... τουλάχιστον όχι χωρίς να καταβάλλετε προσπάθεια).


hahahahhaha

τουλαχιστον ( ΙΟυλιο ) Καισαρα ???? :D

Θα το πιστεψεις πως αυτο που μου λες το ένιωθα εξαρχης για τον Vigenere ????

νταξει ρε συ και ως εδω που εχω φτασει ευχαριστημενος ειμαι.... σου λεω δεν ειχα ιδεα.
Γνώσεις ⇛ 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 » 16 Φεβ 2012, 13:44

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

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

Δημοσίευσηαπό migf1 » 16 Φεβ 2012, 13:47

Star_Light έγραψε:
...
Θα το πιστεψεις πως αυτο που μου λες το ένιωθα εξαρχης για τον Vigenere ????

νταξει ρε συ και ως εδω που εχω φτασει ευχαριστημενος ειμαι.... σου λεω δεν ειχα ιδεα.

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

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

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

migf1 έγραψε:
Αν όταν είχαμε πιάσει τα strings πριν από αρκετούς μήνες ασχολιόσουν μόνο με αυτά για 10-15 μέρες, χωρίς να χοροπηδάς σε ένα κάρο άλλα άσχετα θέματα, σήμερα ο Vigenere θα σου ήταν παιχνιδάκι.


Δεν γινοταν φιλε μου. ΓΙατι το μυαλο θελει και εναν Α χρονο να εξοικειωθεί με αυτες τις έννοιες
ωστε να μπορει να βασισει την σκέψη του πανω σε αυτες και με γνωμονα αυτες εχω αδικο?

Εκτος αυτου δεν ηξερα καλα δεικτες.

Ειναι μεν και αυτο που λες αλλα οχι μονο αυτο !
Γνώσεις ⇛ 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 » 16 Φεβ 2012, 13:55

Star_Light έγραψε:
...
Ειναι μεν και αυτο που λες αλλα οχι μονο αυτο !

Μόνο αυτό είναι (υστερείς εσύ σε κάτι από όλο τον υπόλοιπο κόσμο; :P )

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

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

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