TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 2 3 4 5 6 | |
| Pseudo | Commentaire |
|---|---|
| Page : 1 2 3 4 5 6 | |
Yazza
|
# Posté le 23/01/2006 18:13:45 |
![]() Groupe : Membres |
J't'avoue, j'ai lu l'chapitre un peu à la barbare,
en ecoutant d'la musique, sans essayer aucun code source... (Je sais, c'est pas bien )
Et j'ai quand même compris facilement du 1er coup. J'ai fait l'Q.C.M et j'ai eu 20/20
Merci M@theo ! |
Antartika
|
# Posté le 23/01/2006 18:28:40 |
|
Groupe : Membres |
Je connaissais déjà mais j'ai lu quand même (j'aime bien lire tes cours ^^)
Ca me parait très bien par contre un point me parraît manquant: tu ne précises pas queCode : C long *pointeur désigne un pointeur sur un long, Code : Cfloat *pointeur un pointeur sur un flottant etc...
Sinon je pense que c'est compréhensible par les débutants
|
Anonyme
|
# Posté le 23/01/2006 18:33:48 |
|
Groupe : |
Tout nombre en hexadécimal peut se convertir en décimal et inversement. Ainsi, A vaut 10, B vaut 11, C vaut 12... F vaut 15, F0 vaut 16, F1 vaut 17, F2 vaut 18 et ainsi de suite.
petite erreure ici je pense. F vaut 15, 10 vaut 16, 11 vaut 17, 12 vaut 18 ... |
M@teo21
|
# Posté le 23/01/2006 18:53:55 |
Doh ! Nuts. Mmh, donuts !![]() ![]() |
Erreur corrigée merci.
Par contre je tiens à prévenir yazza qu'il a fait exactement la PIRE chose qu'il fallait faire sur tout l'ensemble du tuto C / C++ : ne pas être attentif dans ce chapitre. Et ce n'est pas une note de 20/20 au qcm qui prouvera qu'il a entièrement tout compris, je suis sûr que les erreurs vont vite apparaître en pratiquant
Sauf si on a affaire à un nouveau génie du C bien sûr
<tuto etat="redaction" mode="venere" target="c++" /> Ce qui se conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément. Nicolas Boileau (je suis fan) Autobiographe à ses heures perdues ![]() |
Kr00pS
|
# Posté le 23/01/2006 19:02:18 |
Trashed and Lost![]() Groupe : Membres |
Encore un nouveau chapitre, ouaiiis
J'ai pas eu trop de mal à comprendre ce chapitre mais j'avais quelques doutes et j'ai dû le relire plusieurs fois mais j'ai reussi l'exercice à part une erreur que je comprenais pas :/ Mais bon tout est clair, merci pour ce chapitre
Kr00pS |
Willy_Paper
|
# Posté le 23/01/2006 19:19:54 |
Zero C![]() Groupe : Membres |
J'ai pas compris quelque chose ...
Dans la solution que tu donnes tu mets en prototype : Code : C void decoupeMinutes(long* heures, long* minutes);
et la fonction est : Code : C void decoupeMinutes(long* pointeurHeures, long* pointeurMinutes)
Je sais que les ça ne change rien mais bon !:D PS : Très bon tuto' !
Cliquez ici => En construction <= Cliquez ici |
Joe
|
# Posté le 23/01/2006 19:35:56 |
|
Groupe : Membres |
Ah, depuis le temps que je l'attendais ce chapitre. En tout cas j'ai tout compris du 1er coup ! Et si ce chapitre et si difficile à assimiler ça veut dire 2 choses :
-Soit que je suis un bosse en C ( personnelement j'y crois pas trop lol )
-Ou soit que tu explique très bien ton cours !!! Je penche plutot pour la 2eme solution lol .
En tout cas bravo à toi !
|
Renault
|
# Posté le 23/01/2006 19:54:15 |
« Tout est relatif »![]() Groupe : Membres |
Super tuto long mais facile à comprendre.
Comme les autres enfin certains j'ai été supris par la faciliter d'apprentissage, je comprenais tout d'un coup.
Je doute être un codeur né même si pour l'instant je n'ai guère de difficultés en C même si je pense que ça va pas tarder.
Mais bon en tout cas c'était très bien expliquer.
Brevo et bonne continuation M@teo21 Mon tutoriel : Comment et où se documenter sur les systèmes GNU/Linux ? Mon projet : PHP ou desigers pour un forum et modules de pronostiques de F1. Mon Jabber : Renault@develog.com Configuration matérielle : Intel Core 2 Duo x84_64 2.1 Ghz, nVidia Geforce 8800 GTS, 4 Go de mémoire vive et disque dur de 250Go, le tout sous ![]() ![]() |
Tchouboudou
|
# Posté le 23/01/2006 20:04:07 |
Tiens un éléphant rose !!!![]() Groupe : Membres |
Ouaaaaaaa, trop bien ce tuto, j'ai tout compris et j'ai eu 20/20 au QCM… Franchement, il est bien expliqué (j'ai 13 ans et j'suis un peu limité donc ça veut dire qu'il est bien expliqué siu j'ai tout compris). Un grand bravo.
Contrepèterie : Il fait beau et chaud |
Binabik
|
# Posté le 23/01/2006 20:11:08 |
Frappadingue![]() Groupe : Membres |
joli tuto
Moi je connaissais aussi mais j'étais comme toi j'ai galéré comme un barge avant de comprendre un tant soit peu ce que signifiait ces * et & lol A mon avis le succès de ce tuto tient srtout au fait que tu expliques bien comment est géré la mémoire là dedans (moi j'ai compris les pinteurs après les premiers cour sur les OS et le stockage des données en TP d'asm ou de binaire). Donc à tout les débutants, je vais vous le dire, je suis JALOU que vous ailliez un tuto aussi bien fait pour apprendre les pointeurs
|
fock
|
# Posté le 23/01/2006 20:16:46 |
![]() Groupe : Membres |
aaaah trop bien ce tuto!!!! |
Yazza
|
# Posté le 23/01/2006 20:54:59 |
![]() Groupe : Membres |
M@teo21 : Je sais c'est pas bien du tout !
Mais moi j'suis un gros barbare et je sais que j'me plenterai (Si c'est pas déjà fait )
PS : Evite de parler comme ça on dirais ma prof de Francais !
EDIT : Jusqu'a maintenant j'ai toujours travailler à la barbare, et j'me débrouille bien comme ça
(J'ai appris le HTML, CSS, PHP (SQL), ACTIONSCRIPT (Flash) de cet facon et ca ma pas poser d'problème... )
|
Seb087
|
# Posté le 23/01/2006 21:35:22 |
![]() Groupe : Membres |
Bonsoir,
ça faisait un petit temps qu'on l'attendait celui la!
En tout cas toutes mes félicitations, il est très bien rédiger, l'idée du fil rouge est géniale.
J'ai également compris du premier coup, j'ai essayé quelques trucs sur mes programmes actuels, tout à l'air de marcher. (ça fait très ventard mais c'est la stricte vérité !!).
Je suppose que c'est car tu as très bien fait ça. En tout cas bon courage pour la suite des rédactions, on attend tous avec impatience
Et merci encore! (Je met 20, bien que je sais que la perfection n'existe pas) |
louisclem
|
# Posté le 23/01/2006 21:42:52 |
J'aime le![]() Groupe : Membres |
Hum, je ne suis pas sûr de ce que je dis, mais dans le dernier code du QCM, ne faudrait-il pas mettre long **p2 = &p1; si p2 est un pointeur sur un pointeur ?
Je mets pas de note pour l'insant et j'ai pas grand chose d'autre à dire, mais j'aimerais qu'on m'éclaire sur ma remarque. |
rz0
|
# Posté le 23/01/2006 21:50:27 |
meuh![]() Groupe : Membres |
louisclem > En effet.
|
Red
|
# Posté le 23/01/2006 21:55:16 |
![]() Groupe : Membres |
Ouah, c'est compréhensible, mais dès qu'il faut faire un brainstorming, c'est autre chose...
Dites-moi, j'ai essayé l'exercice. J'avais eu l'idée d'initialiser les pointeurs au début (juste après les variables heures et minutes, en faisant long *pointeurHeures = &heures; par exemple). Quand j'ai fais mon test, les minutes fontionnaient bien mais pas les heures qui m'indiquaient toujours 0. Quelqu'un pourrait me faire un code source où les pointeurs sont initialisés au début pour que j'essaie de voir d'où pouvait provenir mon erreur ? EDIT : ha oui, 20/20 au QCM. La preuve que les questions ne sont pas à la hauteur du chapitre, mais je conçois qu'il soit plus facile de répondre à des questions que de résoudre un exercice... Ich will ein "Site du Zéro" auf Deutsch übersetzt ! |
garulfoUnix
|
# Posté le 23/01/2006 21:56:36 |
By the way ![]() Groupe : Membres |
alors rien a dire franchement !
bon je vais pas répéter et dire ce qu'il y a a dire vu que les autres zero ont déja tout dis .
je met 19 car il manque juste un passage montrant plusieur exemple ou les pointeurs sont utile. car pour moi, les pointeurs là sont utile que lorsqu'on travaille des variables dans des fonctions .
je ne vois pas d'autre utilité... et quel est aussi l'utilité de renvoyer plusieur valeur ?? quelqu'un pourrait me donné un exemple de programme. sinon, perso rien a dire sur tes cours !!! ca se voit que c'est pas fait a l'arache !!!
|
Ayoros
|
# Posté le 23/01/2006 21:58:44 |
![]() Groupe : Membres |
J'ai lu ce tutoriel connaissant déjà bien les pointeurs. Tout est bien expliqué ms par contre je trouve que ca fait très très lourd pour qq qui découvre... Ca serait à mon avis plus éfficace si ce chapitre était séparé en deux chapitres... |
Seb087
|
# Posté le 23/01/2006 22:07:42 |
![]() Groupe : Membres |
Ah bon Ayoros? Je le trouve déjà court moi.
louisclem et rz0, pourriez-vous m'éclairer s'il vous plait? La je dois avouer que je ne vois pas l'utilité d'une deuxième * N.B. : J'ai testé un code avec une seule ca marchait très bien, avec deux aussi... On initialise un pointeur p2 qui aura pour valeur l'adresse du pointeur p1 qui aura lui pour valeur l'adresse du nombre. Je me trompe pas? Et quand initialise un pointeur, on met une * devant le nom de celui-ci. Donc pourquoi en mettre deux? Mon raisonnement est-il incohérent ou le fait de mettre deux * serait une convention? Merci Bonne soirée Edit : bon je me suis un peu amusé sur le dernier exemple du QCM
Code : C #include <stdio.h>
#include <stdlib.h> int main(int argc, char *argv[]) { long nombre = 8; long *p1 = &nombre; long *p2 = &p1; printf("\n adresse de p2 %ld", &p2); printf("\n"); printf("\n adresse de p1 %ld", p2); printf("\n adresse de p1 %ld", &p1); printf("\n"); printf("\n adresse de nombre %ld", p1); printf("\n adresse de nombre %ld", &nombre); printf("\n"); printf("\n le nombre %ld", *p1); printf("\n le nombre %ld", nombre); printf("\n\n"); getchar(); return 0; } |
Christopho
|
# Posté le 23/01/2006 22:21:56 |
|
Groupe : Membres |
Très bon cours comme toujours
Les pointeurs sont très bien expliqués. Je connais le C depuis longtemps et je me suis reconnu en lisant le chapitre : moi aussi j'ai mis du temps avant de comprendre les pointeurs et de ne plus confondre les notations qui vont avec. Le chapitre est déjà très dense mais il y a un piège classique qui n'est pas abordé : quand on envoie un pointeur à une fonction, il faut que le pointeur pointe sur une variable bien précise. Sans quoi le programme plante à tous les coups. Exemple de programme qui plante à cause de ça : Code : C long *pointeurSurNombre;
scanf("%ld", pointeurSurNombre); Là, le pointeur contient une adresse indéfinie, donc la fonction scanf va tenter d'accéder à une zone probablement non autorisée de la mémoire, ce qui fera planter le programme. Le bon code est celui qui est donné dans le cours : Code : C long nombre;
long *pointeurSurNombre = &nombre; scanf("%ld", pointeurSurNombre); La plupart des plantages des programmes en C sont dus à ce genre d'erreurs
PS : pour Seb87 : en fait quand on déclare un pointeur, on écrit le type de la variable pointée, suivi d'une étoile, puis du nom du pointeur. Dans notre exemple : Code : C long nombre = 8;
long *p1 = &nombre; On met le type de la variable pointée (long), puis une étoile, puis le nom du pointeur (p1). Maintenant, on veut créer un pointeur p2 qui pointe vers p1. Or, le type de p1 n'est pas long mais long* car p1 est un pointeur ! Donc on écrit le type de p1 (long*) suivi d'une étoile et enfin du nom du pointeur (p2). Et du coup on se retrouve avec deux étoiles. Voilà pourquoi on devrait mettre : Code : C long **p2 = &p1;
Si le compilateur tolère qu'on ne mette qu'une étoile, c'est parce qu'il tolère beaucoup de choses pas très propres. Il faut compiler avec l'option qui affiche les avertissements (-Wall avec gcc) pour que ce genre d'erreur soit affiché par le compilateur. Je suis d'accord que ça marche quand même si on ne met qu'une étoile. En fait c'est parce que le compilateur convertit implicitement un long** en long*, mais là ça devient vraiment compliqué... Et je pense que M@teo21 se fera un plaisir d'expliquer les pointeurs de pointeurs dans un futur chapitre
Ce qui est sûr c'est qu'il est conseillé de compiler en activant les messages d'avertissements (warnings). Ca permet d'une part de détecter des bugs plus rapidement et d'autre part de se forcer à coder proprement. |
Seb087
|
# Posté le 23/01/2006 22:25:11 |
![]() Groupe : Membres |
Christopho > Bonjour
Si je ne m'abuse, je pense que c'est pour cette raison que mateo nous a appris a toujours déclarer les pointeurs de la manière long *pointeur = NULL; Juste? Edit : j'ai essayé ton premier exemple, ça ne plante pas... j'en déduis que j'ai eu de la chance?
En tout cas merci du conseil
Edit 2 : Hé ben non, j'ai testé, le "NULL" c'est pas pour ça, enfin je suis même pas sur. (j'ai réussi à le faire planter en tout cas )
|
Christopho
|
# Posté le 23/01/2006 22:44:18 |
|
Groupe : Membres |
Alors oui, ça veut dire que tu as eu de la chance Parce que je ne crois pas m'être trompé.
Si tu as initialisé le pointeur avec NULL, là c'est sûr que ça plante parce que tu tentes de lire un nombre et de le stocker à l'adresse "NULL". NULL est une adresse spéciale qui signifie que le pointeur ne pointe sur rien du tout. Donc inévitablement, le programme s'arrête. En réalité et pour l'anecdote, NULL est égal à l'adresse 0, et l'adresse 0 est interdite d'accès, d'où le plantage. |
Seb087
|
# Posté le 23/01/2006 23:05:43 |
![]() Groupe : Membres |
Merci pour ces précisions
Ma question destinée à louisclem et rz0 est toujours en attente d'une réponse
|
Christopho
|
# Posté le 23/01/2006 23:30:10 |
|
Groupe : Membres |
J'y ai répondu dans le PS de mon premier post
|
Infinity
|
# Posté le 23/01/2006 23:43:55 |
|
Lao-Tseu a dit...j'ai oublié Groupe : Membres |
rhaaa, génial ce chapitre j'ai eu du mal au début, alors j'ai expérimenté (je me suis même amusé à essayer de réccupérer des données contenues dans la mémoire, à n'importe quelle adresse(et je suis tombé sur un pointeur qui pointait sur une variable dont la valeur était 0 XD)
Au final, j'ai à peu près assimilé, j'ai eu 20 au QCM. Par contre, j'ai relevé une amélioration a apporter: essayez de changer la valeur initiale de heures , et vous aurez un mauvais résultat Code : C void decoupeMinutes(long *heures, long *minutes)
{ *heures = *heures + (*minutes / 60); // M@teo21 n'a pas fait pris en compte la possibilité que la valeur initiale d'heures ne soit pas nulle ;) *minutes = *minutes % 60; } Merci à M@teo pour ce superbe chapitre !!! |
Seb087
|
# Posté le 23/01/2006 23:58:46 |
![]() Groupe : Membres |
Si ca t'intéresse, j'avais déjà fait un convertisseur de temps à l'époque où j'ai appris les fonctions, ici je l'ai remanié avec les pointeurs. Si ça t'intéresse donc, je peux te filer le code source en PM histoire de pas trop polluer les commentaires.
En tout cas ta remarque est totalement juste (et ta parenthèse inutile au passage, la division prime sur l'addition )
|
M@teo21
|
# Posté le 23/01/2006 23:59:07 |
Doh ! Nuts. Mmh, donuts !![]() ![]() |
Bon alors là je dois vous dire que je suis complètement impressionné
Quand je vois que vous avez compris ce que j'ai expliqué, et qu'en plus vous le montrez (certains ayant faits des petits tests pour voir qui pointe sur qui, qui contient quoi etc), je suis vraiment très heureux
J'étais très sceptique sur les qualités pédagogiques de ce chapitre (extrêmement difficile à rédiger pour moi je vous le rappelle). Tous vos messages d'encouragements et preuves que j'ai réussi ne peuvent que me motiver encore plus
Je vais changer la dernière question du QCM dans laquelle il manque une étoile en effet. J'ai corrigé les petites erreurs signalées (rien de bien grave, le plus gros a été purgé pendant le bêta-test). Franchement, si vous réussissez aussi bien ce chapitre, alors vous allez vous gaver dans la suite. Ce sera une vraie ballade pour vous
(bon y'a le chapitre sur l'alloc dynamique qui m'est difficile à aborder aussi, mais bon c'est encore loin ça, d'ici là vous aurez largement assez pratiqué les pointeurs). <tuto etat="redaction" mode="venere" target="c++" /> Ce qui se conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément. Nicolas Boileau (je suis fan) Autobiographe à ses heures perdues ![]() |
jefft
|
# Posté le 24/01/2006 01:46:09 |
ProTB webmaster![]() Groupe : Membres |
Super! J'ai pas encore fini la lecture mais il est bien!
Un peu de misère a comprendre mais bon quand on a 11 ans... <°)))>< Aidez Redfish à exterminer Bunny en l'insérant dans votre signature !
Québécois, on dit Québécois et non Camadien, est-ce clair??? ![]() |
ddx39
|
# Posté le 24/01/2006 01:54:18 |
![]() Groupe : Membres |
Non franchement j'ai tout compris du premier coup, excellent travail en tout cas
![]() |
Mario
|
# Posté le 24/01/2006 02:35:40 |
|
Groupe : Membres |
Ouahou, 20/20 aux deux qcm.
Une lecture et c'est dans la poche.
Cela dit, je n'ai pas encore fait de test... En tout cas, chapeau bas :). |
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
Fil RSS |
XHTML 1.0 |
CSS 2.0
Édité par Simple IT SARL :
Nous contacter
| Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
473 Zéros connectés |
7 requêtes |
0.0463s (0.0313s)
