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

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

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

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

Δημοσίευσηαπό migf1 » 16 Αύγ 2011, 16:47

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

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

Δημοσίευσηαπό Star_Light » 16 Αύγ 2011, 16:48

ναι αυτο το εχω διαβασει και εγω... ενα προγραμμα παιζει με εικονικες διευθυνσεις στον επεξεργαστη και φαινεται να έχει πολυ μεγαλη μνημη (σαν να ειναι ολη δικια του πχ) ενω στην πραγματικοτητα δεν ισχυει αυτο μιας και στην RAM μικραινει αλλα η αναπληρωση γινεται μεσω του σκληρου που λεει και o migf , επισης καπου εχω διαβασει πως στην RAM εν τελει φορτωνονται τα πολυ βασικα πραγματα για την εκτελεση ενος προγραμματος τα αλλα που ειναι μονιμα απλα μενουν στον δισκο. Πολυ γενικα βεβαια ολα αυτα καθως ειναι τοσα πολλα που στο τελος ξεχνας καποια πραγματα.
Γνώσεις ⇛ 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++

Δημοσίευσηαπό Star_Light » 16 Αύγ 2011, 16:49

δοκιμασα να κανω τετοια συζητηση παλαιοτερα στο θρεντ της τεχνολογιας σχετικα με τον πυρηνα και την RAM και εχω ανοιξει και ενα θρεντ στο περι τεχνολογιας για assembly αλλα απο τοτε εχουμε να μιλησουμε.... και να γραψουμε εκει.. (ε δεν μπορεις να τα κανεις και ολα!!!!)

γεια σου φιλε 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
Εκτύπωση

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

Δημοσίευσηαπό stamatiou » 17 Αύγ 2011, 21:30

Δεν πρόλαβα να διαβάσω όλο τον κώδικα αλλά όσο για τη συνάτηση που ανακατεύει την array κάθε φορά που θα καλείται θα αλλάζει μια ήδη ανακατεμμένη; Επίσης στη πρώτη συνάρτηση δεν κατάλαβα τι εννοείς με το ότι τις χωρίζεις σε κομμάτια :/
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό giannosfor » 18 Αύγ 2011, 03:15

Έχω μία ιδέα για άσκηση.Να γραφτεί πρόγραμμα όπου πέρνει ένα κείμενο,συμβολοσειρά ή αρχείο και αλλάζει το κείμενο κάπως έτσι.
έγραψε:Σνφμύωα με μαι έυρενα σοτ Πμανιπσήτετο τυο Κμτρπιαιζ, δνε πεαίζι ρλόο με τι σριεά ενίαι τοθοπεμέτενα τα γταμαμρά μσέα σε μαί λξηέ, αεκρί το πώτρο κια το ταελείτυο γάμρμα να ενιαί σητ στωσή θσέη.
Τα υλοπιόπα μροπούν να ενίαι σε τχίυεας θιέεσς κια να μροπετίε να τςι δαβαιάεστε χρωίς πλβημόρα. Ατυό γνίταει γαιτί ο απρώνθονις εκέγλφοας δνε δαεβζιάι γάμρμα γάμρμα κθάε λξηέ αλλά τνη λξηέ σνα σνύλοο.

Ατίπτσυεο ε;
Είναι αναγραμματισμός αλλά το πρώτο και το τελευταίο γράμμα της κάθε λέξης μένουν το ίδιο ώστε να γίνεται κατανοητή.
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

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

Δημοσίευσηαπό stamatiou » 18 Αύγ 2011, 19:54

giannosfor έγραψε:Έχω μία ιδέα για άσκηση.Να γραφτεί πρόγραμμα όπου πέρνει ένα κείμενο,συμβολοσειρά ή αρχείο και αλλάζει το κείμενο κάπως έτσι.
έγραψε:Σνφμύωα με μαι έυρενα σοτ Πμανιπσήτετο τυο Κμτρπιαιζ, δνε πεαίζι ρλόο με τι σριεά ενίαι τοθοπεμέτενα τα γταμαμρά μσέα σε μαί λξηέ, αεκρί το πώτρο κια το ταελείτυο γάμρμα να ενιαί σητ στωσή θσέη.
Τα υλοπιόπα μροπούν να ενίαι σε τχίυεας θιέεσς κια να μροπετίε να τςι δαβαιάεστε χρωίς πλβημόρα. Ατυό γνίταει γαιτί ο απρώνθονις εκέγλφοας δνε δαεβζιάι γάμρμα γάμρμα κθάε λξηέ αλλά τνη λξηέ σνα σνύλοο.

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

Καλή ιδέα αλλά για να το κάνουμε αυτό θα χρειαστούμε αυτή τη συνάρτηση που ανακατεύει το array ώστε να τη ρυθμίσουμε για κάθε λέξη την οποία συνάρτηση όμως δεν μπορώ να βρω τον αλγόριθμο!
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 22 Αύγ 2011, 17:16

giannosfor έγραψε:Έχω μία ιδέα για άσκηση.Να γραφτεί πρόγραμμα όπου πέρνει ένα κείμενο,συμβολοσειρά ή αρχείο και αλλάζει το κείμενο κάπως έτσι.
έγραψε:Σνφμύωα με μαι έυρενα σοτ Πμανιπσήτετο τυο Κμτρπιαιζ, δνε πεαίζι ρλόο με τι σριεά ενίαι τοθοπεμέτενα τα γταμαμρά μσέα σε μαί λξηέ, αεκρί το πώτρο κια το ταελείτυο γάμρμα να ενιαί σητ στωσή θσέη.
Τα υλοπιόπα μροπούν να ενίαι σε τχίυεας θιέεσς κια να μροπετίε να τςι δαβαιάεστε χρωίς πλβημόρα. Ατυό γνίταει γαιτί ο απρώνθονις εκέγλφοας δνε δαεβζιάι γάμρμα γάμρμα κθάε λξηέ αλλά τνη λξηέ σνα σνύλοο.

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

Καλησπέρα, μόλις γύρισα από ολιγοήμερες διακοπές (καλό χειμώνα σε όσους έχουν επιστρέψει επίσης, καλό υπόλοιπο στους υπόλοιπους :) )

Αυτή την άσκηση την έχω λύσει στο code-golf του stack-exchange: http://codegolf.stackexchange.com/quest ... /3314#3314 (εγώ είμαι εκείνος ο Harry K. :) )
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

Δημοσίευσηαπό stamatiou » 22 Αύγ 2011, 18:31

migf1 έγραψε:
giannosfor έγραψε:Έχω μία ιδέα για άσκηση.Να γραφτεί πρόγραμμα όπου πέρνει ένα κείμενο,συμβολοσειρά ή αρχείο και αλλάζει το κείμενο κάπως έτσι.
έγραψε:Σνφμύωα με μαι έυρενα σοτ Πμανιπσήτετο τυο Κμτρπιαιζ, δνε πεαίζι ρλόο με τι σριεά ενίαι τοθοπεμέτενα τα γταμαμρά μσέα σε μαί λξηέ, αεκρί το πώτρο κια το ταελείτυο γάμρμα να ενιαί σητ στωσή θσέη.
Τα υλοπιόπα μροπούν να ενίαι σε τχίυεας θιέεσς κια να μροπετίε να τςι δαβαιάεστε χρωίς πλβημόρα. Ατυό γνίταει γαιτί ο απρώνθονις εκέγλφοας δνε δαεβζιάι γάμρμα γάμρμα κθάε λξηέ αλλά τνη λξηέ σνα σνύλοο.

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

Καλησπέρα, μόλις γύρισα από ολιγοήμερες διακοπές (καλό χειμώνα σε όσους έχουν επιστρέψει επίσης, καλό υπόλοιπο στους υπόλοιπους :) )

Αυτή την άσκηση την έχω λύσει στο code-golf του stack-exchange: http://codegolf.stackexchange.com/quest ... /3314#3314 (εγώ είμαι εκείνος ο Harry K. :) )

Μήπως μπορείς να εξηγήσεις γενικά τον αλγόριθμο με το ανακάτεμα;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 22 Αύγ 2011, 19:11

Ευχαρίστως :)

Η δουλειά γίνεται στη συνάρτηση:
Κώδικας: Επιλογή όλων

// -----------------------------------------------------------------------
r( char *s )
{
int m, j, l=strlen(s)-2, i=l;

while (--i>0)
{
j = rand() % l + 1;

m = s[j];
s[j] = s[1];
s[1] = m;
}

}

Καταρχήν, το ότι loop σταματάει όταν τον i γίνει 0 εξασφαλίζει πως δεν θα πειράξουμε τον 1ο χαρακτήρα του s (δλδ τον s[0]) ενώ το j = rand() % l + 1 με το l ορισμένο ίσο με l = strlen(s)-2 εξασφαλίζει πως μέσα στο loop επιλέγεται ένας τυχαίος αριθμός από το 1 έως τον προτελευταίο ωφέλιμο χαρακτήρα του s (δλδ τον s[ strlen(s) - 2 ] ... μιας και ο s[ strlen(s) -1 ] είναι ο τελευταίος ωφέλιμος χαρακτήρας τους s).

Κατόπιν εναλλάσσουμε τον χαρακτήρα που βρίσκεται στη θέση j ( s[j] ) με τον χαρακτήρα που βρίσκεται στη θέση 1 ( s[1] ) που είναι ο 2ος χαρακτήρας του s (o 1ος είναι ο s[0] ).

Η διαδικασία επαναλαμβάνεται τόσες φορές όσο είναι το πλήθος χαρακτήρων από τον προτελευταίο έως και τον 2ο χαρακτήρα του s (συμπεριλαμβανομένων).

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

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

Δημοσίευσηαπό migf1 » 22 Αύγ 2011, 19:14

migf1 έγραψε:...μια συνάρτηση που θα παίρνει σαν όρισμα ένα strings s και θα συγκεντρώνει στην αρχή του s όλα τα σύμφωνα, στο τέλος του όλα τα φωνήεντα, και στη μέση όποιους χαρακτήρες δεν είναι γράμματα. Για ευκολία θεώρησε πως δεν υπάρχουν Ελληνικά γράμματα στο s.

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

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

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