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

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

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

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

Δημοσίευσηαπό Star_Light » 20 Σεπ 2011, 21:46

Aν θελησω να υλοποιησω την δεξια ολισθηση καποια στιγμη στο μελλον δεν θα πρεπει να χρησιμοποιησω την memset?
Τελικα η αριθμηση που βάζω πιο πανω απο 0 δεν ξεκινάει? Πχ θεση 0 , θεση 1 κτλπ... ή δεν εχει τοση σημασια ?

P.S Στο πανεπιστημιο παλια σε ασκηση για τον CRC στα δικτυα ειχα βρει εναν κωδικα απο το ιντερνετ και ειχε μεσα μια συναρτηση την memset για αυτο εκανα συνειρμο
μην απογοητευεσαι παλι :lol: :lol: :lol:
Γνώσεις ⇛ 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 » 20 Σεπ 2011, 22:21

Star_Light έγραψε:Aν θελησω να υλοποιησω την δεξια ολισθηση καποια στιγμη στο μελλον δεν θα πρεπει να χρησιμοποιησω την memset?

Για ποιον ακριβώς λόγο να χρησιμοποιήσεις την memset(); Να κάνεις τι με αυτήν ως προς την ολίσθηση δηλαδή;

έγραψε:Τελικα η αριθμηση που βάζω πιο πανω απο 0 δεν ξεκινάει? Πχ θεση 0 , θεση 1 κτλπ... ή δεν εχει τοση σημασια ?

Δεν την έχει καλύψει αυτή την ερώτηση το προηγούμενο post μου;

έγραψε:P.S Στο πανεπιστημιο παλια σε ασκηση για τον CRC στα δικτυα ειχα βρει εναν κωδικα απο το ιντερνετ και ειχε μεσα μια συναρτηση την memset για αυτο εκανα συνειρμο
μην απογοητευεσαι παλι :lol: :lol: :lol:

Απογοητεύομαι, διότι παρόλες τις κουβέντες και τις συζητήσεις που έχουμε κάνει παρουσιάζεις π.χ. ως δεδομένο κάτι σαν κι αυτό...
έγραψε:P.S2 Η memset στην C που γεμίζει την μνήμη με μια τιμή και στην προκειμένη θα γεμίσει τις κενές θέσεις αυτες δηλαδη που αδειάζουν με 0!!!!

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

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

Δημοσίευσηαπό Star_Light » 20 Σεπ 2011, 22:39

A ναι εχεις δικιο την εχει καλυψει... επειδη ξεκινας απο 2^0 εκθέτη και πας μεχρι 2^7 στους εκθετες.

Εγω ο ιδιος δεν εχω ελενξει την εγκυροτητα αυτου που λεω αλλα επειδη εχω αρκετα καλη μνημη μου το ειχε πει ενας προγραμματιστης στην σχολη ο οποιος ηταν προγραμματιστης κανονικος δηλαδη οχι σαν εμενα... ηταν καλος. Η memset μου ειχε πει πως γεμιζει την μνημη με μια τιμη. Και μου ηρθε απλα στο μυαλο. Αυτο ;)

P.S Πλακα εκανα με το απογοητευεσαι , εδω δεν απογοητευομαι εγω (μιας και περα απο την πλακα που κανουμε δεν υπάρχει σοβαρος λογος) γιατι να απογοητευτεις εσυ? :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/C++

Δημοσίευσηαπό migf1 » 20 Σεπ 2011, 22:57

Star_Light έγραψε:
...
Εγω ο ιδιος δεν εχω ελενξει την εγκυροτητα αυτου που λεω αλλα επειδη εχω αρκετα καλη μνημη μου το ειχε πει ενας προγραμματιστης στην σχολη ο οποιος ηταν προγραμματιστης κανονικος δηλαδη οχι σαν εμενα... ηταν καλος. Η memset μου ειχε πει πως γεμιζει την μνημη με μια τιμη. Και μου ηρθε απλα στο μυαλο. Αυτο ;)

Η memset() όντως γεμίζει μια περιοχή μνήμης με μια δεδομένη τιμή, η σχέση της όμως με την ολίσθηση είναι όση του ποδηλάτη με την αχιβάδα :lol:! Εκεί ήταν η ένστασή μου, επειδή το παρουσίασες σαν να είχαν σχέση.

έγραψε:P.S Πλακα εκανα με το απογοητευεσαι , εδω δεν απογοητευομαι εγω (μιας και περα απο την πλακα που κανουμε δεν υπάρχει σοβαρος λογος) γιατι να απογοητευτεις εσυ? :D

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

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

Δημοσίευσηαπό Star_Light » 20 Σεπ 2011, 23:03

migf1 έγραψε:
Star_Light έγραψε:
...
Εγω ο ιδιος δεν εχω ελενξει την εγκυροτητα αυτου που λεω αλλα επειδη εχω αρκετα καλη μνημη μου το ειχε πει ενας προγραμματιστης στην σχολη ο οποιος ηταν προγραμματιστης κανονικος δηλαδη οχι σαν εμενα... ηταν καλος. Η memset μου ειχε πει πως γεμιζει την μνημη με μια τιμη. Και μου ηρθε απλα στο μυαλο. Αυτο ;)

Η memset() όντως γεμίζει μια περιοχή μνήμης με μια δεδομένη τιμή, η σχέση της όμως με την ολίσθηση είναι όση του ποδηλάτη με την αχιβάδα :lol:! Εκεί ήταν η ένστασή μου, επειδή το παρουσίασες σαν να είχαν σχέση.

έγραψε:P.S Πλακα εκανα με το απογοητευεσαι , εδω δεν απογοητευομαι εγω (μιας και περα απο την πλακα που κανουμε δεν υπάρχει σοβαρος λογος) γιατι να απογοητευτεις εσυ? :D

Εντάξει, τρόπος του λέγειν ήταν το απογοητεύομαι, απλά χρησιμοποίησα την ίδια λέξη που χρησιμοποίησες ;)


lol.

Οχι βρε παιδι μου εγω εννοουσα οτι αυτη περιοχη που θα αδειάσει θα γεμίσει με μια τιμη μεσω της memset . Τωρα οκ?

Υπο αυτη την εννοια οχι. Δεν υπάρχει σχεση. Αυτο εννοούσες και εσυ? Κοιταξε... βλεπω οτι ειστε πολυ τυπικοι στις εκφρασεις σας
και τελικα καλα κανετε γιατι τελικα αυτο φαινεται να ειναι το 100% σωστο . Οχι σαν εμας τους ρεμπεσκεδες. (εμενα)

Κοιτα migf1 περυσι τετοιο καιρο δεν ηξερα τι ηταν το φορματ my friend ;) hahahahahha απο περυσι χριστουγεννα αρχισα να ασχολουμαι.
Για αυτο σου ειπα και πιο πανω δεν υπάρχει ουδεις λογος ανησυχιας... εκτος αυτου οσα εχουμε συζητησει εδω μας εκαναν πολυ καλο απλα θελουν και λιγακι τον χρονο τους να ωριμασουν μεσα στο μυαλο μας. :)

Δεν εχω απαιτησεις να βγαλω και τρελα λεφτα σαν πληροφορικαριος -μεταξυ μας δεν τα αξιζω κιολας υπάρχουν ατομα εκει εξω που αξιζουν πολυ περισσοτερα στην πληροφορικη πχ απο εμενα- . Το τι του επιφυλασσει η ζωη του καθενος δεν το ξερει κανεις βεβαια!!!!
Μπορει τελικα να καταληξω και σε αλλο ποστο... θα δουμε δεν ειμαι απολυτος.
Τελευταία επεξεργασία από Star_Light και 20 Σεπ 2011, 23:13, έχει επεξεργασθεί 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/C++

Δημοσίευσηαπό Star_Light » 20 Σεπ 2011, 23:07

Off topic:
ΠΟλυ πολυ θα την πεσω σε καμια πλουσια και θα γινω προικοθηρας τεμπελης αχαχαχαχ έχει ο θεος σου λέω άαααραξε
τοτε θα εχω απλετο χρονο να ασχολουμαι και με την C βασικα οποτε με ενα σμπαρο 2 τριγωνια :lol:
Γνώσεις ⇛ 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 » 21 Σεπ 2011, 00:46

Star_Light έγραψε:
...
Οχι βρε παιδι μου εγω εννοουσα οτι αυτη περιοχη που θα αδειάσει θα γεμίσει με μια τιμη μεσω της memset . Τωρα οκ?
Υπο αυτη την εννοια οχι. Δεν υπάρχει σχεση. Αυτο εννοούσες και εσυ?

Κοιταξε... βλεπω οτι ειστε πολυ τυπικοι στις εκφρασεις σας και τελικα καλα κανετε γιατι τελικα αυτο φαινεται να ειναι το 100% σωστο

Τσου! Υπό οποιαδήποτε έννοια, η memset() ΟΥΔΕΜΙΑ ΣΧΕΣΗ έχει με την ολίσθηση !

Πώς ακριβώς θα γεμίσεις μερικά bits ενός byte με μια συνάρτηση που γεμίζει ολόκληρα bytes; Δεν είναι ζήτημα τυπικότητας, είναι ζήτημα πλήρως εσφαλμένης παρουσίασης των πραγμάτων!

έγραψε:Κοιτα migf1 περυσι τετοιο καιρο δεν ηξερα τι ηταν το φορματ my friend ;) hahahahahha απο περυσι χριστουγεννα αρχισα να ασχολουμαι.
Για αυτο σου ειπα και πιο πανω δεν υπάρχει ουδεις λογος ανησυχιας... εκτος αυτου οσα εχουμε συζητησει εδω μας εκαναν πολυ καλο απλα θελουν και λιγακι τον χρονο τους να ωριμασουν μεσα στο μυαλο μας. :)

Δεν εχω απαιτησεις να βγαλω και τρελα λεφτα σαν πληροφορικαριος -μεταξυ μας δεν τα αξιζω κιολας υπάρχουν ατομα εκει εξω που αξιζουν πολυ περισσοτερα στην πληροφορικη πχ απο εμενα- . Το τι του επιφυλασσει η ζωη του καθενος δεν το ξερει κανεις βεβαια!!!!
Μπορει τελικα να καταληξω και σε αλλο ποστο... θα δουμε δεν ειμαι απολυτος.

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

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

Δημοσίευσηαπό Star_Light » 21 Σεπ 2011, 01:49

OK. Ας σοβαρευτω . Eχεις δικιο. Δεν μπορω να μιλαω για την memset απο την στιγμη που δεν γνωριζω ουτε την βασικη της τεκμηριωση.

Ο κωδικας που εβαλα ικανοποιει ενα απλο και αρχικο παραδειγμα ολισθησης?

Επειδη δεν τον σχολιασες καθολου για αυτο ρωταω
Γνώσεις ⇛ 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 » 21 Σεπ 2011, 14:43

Star_Light έγραψε:
...
Ο κωδικας που εβαλα ικανοποιει ενα απλο και αρχικο παραδειγμα ολισθησης?

Επειδη δεν τον σχολιασες καθολου για αυτο ρωταω

Το πιο ενδεικτικό θα ήταν αυτός ο κώδικας να δείχνει και τις δυαδικές απεικονίσεις του αριθμού μαζί με τις δεκαδικές, πριν και μετά την ολίσθηση, αλλά αυτό θέλει δουλίτσα.

Παραθέτω άλλο παράδειγμα που παρουσιάζει πολλαπλασιασμό και πηλίκο διαίρεσης με δυνάμεις του 2, χρησιμοποιώντας ολίσθηση...
Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define MAXINBUF 255+1

int main( void )
{
char inbuf[ MAXINBUF ] = {'\0'};
int n = 0, op = 0, pow2 = -1;

/* διάβασμα ακεραίου */
do {
printf("Δώστε έναν ακέραιο -500 έως 500:\t\t");
fgets(inbuf, MAXINBUF, stdin);
n = atoi( inbuf );
} while ( n < -500 || n > 500 );

/* διάβασμα πράξης */
do {
printf("(1) πολλαπλασιασμός ή (2) πηλίκο διαίρεσης;\t");
fgets(inbuf, MAXINBUF, stdin);
op = atoi( inbuf );
} while( op != 1 && op != 2 );

/* διάβασμα δύναμης του 2 */
do {
printf("Με ποια δύναμη του 2 (0 έως 7);\t\t\t");
fgets(inbuf, MAXINBUF, stdin);
pow2 = atoi( inbuf );
} while( pow2 < 0 || pow2 > 7 );

putchar('\n');

/* εκτέλεση της πράξης */

if ( op == 1 ) { /* πολλαπλασιασμός του n με (2 ^ pow2) */
printf( "\tμισό λεπτάκι... ( %d * 2^%d ) = ( %d * %g ) ...\n",
n, pow2, n, pow(2, pow2) );
n <<= pow2;
}
else { /* πηλίκο διαίρεσης του n με (2 ^ pow2) */
printf( "\tμισό λεπτάκι... ( %d / 2^%d ) = ( %d / %g ) ...\n",
n, pow2, n, pow(2, pow2) );
n >>= pow2;
}

/* τύπωμα αποτελέσματος */
printf("\tΑΠΟΤΕΛΕΣΜΑ: %d\n\n", n);

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

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

Δημοσίευσηαπό Star_Light » 21 Σεπ 2011, 14:46

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

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

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