Explication d'un programme langage C++
Fermé
shokoakyu
Messages postés
4
Date d'inscription
jeudi 18 mai 2017
Statut
Membre
Dernière intervention
19 mai 2017
-
Modifié le 18 mai 2017 à 21:21
[Dal] Messages postés 6204 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 27 février 2025 - 22 mai 2017 à 15:05
[Dal] Messages postés 6204 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 27 février 2025 - 22 mai 2017 à 15:05
A voir également:
- Explication d'un programme langage C++
- Langage ascii - Guide
- Programme demarrage windows 10 - Guide
- Langage binaire - Guide
- Mettre en veille un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
2 réponses
jordane45
Messages postés
38457
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mars 2025
4 740
18 mai 2017 à 21:20
18 mai 2017 à 21:20
Bonjour,
1 - Si ta question concerne le langage C .... il faut poster dans le forum "C" ! (je déplace ta question au bon endroit)
2 - Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
(j'édite ton message pour les mettre... merci d'y penser la prochaine fois )
3 - merci de lire ceci : https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
1 - Si ta question concerne le langage C .... il faut poster dans le forum "C" ! (je déplace ta question au bon endroit)
2 - Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
(j'édite ton message pour les mettre... merci d'y penser la prochaine fois )
3 - merci de lire ceci : https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
1 101
19 mai 2017 à 12:52
19 mai 2017 à 12:52
Salut shokoakyu,
Peux-tu préciser ce que tu ne comprends pas dans le code que tu as posté.
Dal
Peux-tu préciser ce que tu ne comprends pas dans le code que tu as posté.
Dal
shokoakyu
Messages postés
4
Date d'inscription
jeudi 18 mai 2017
Statut
Membre
Dernière intervention
19 mai 2017
19 mai 2017 à 13:03
19 mai 2017 à 13:03
Bonjour,
En fait je comprend très bien ce que fais le programme et ce qu'il sort mais je n'arrive pas à comprendre et à expliquer comment fonctionne les 4 boucles for imbriquées
En fait je comprend très bien ce que fais le programme et ce qu'il sort mais je n'arrive pas à comprendre et à expliquer comment fonctionne les 4 boucles for imbriquées
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
1 101
Modifié le 19 mai 2017 à 13:54
Modifié le 19 mai 2017 à 13:54
Oui, comme dirait un contributeur du forum, ce sont 4 boucles for imbriquées de l'enfer :-)
tu peux dérouler les boucles à la main pas à pas avec un papier et un crayon, en faisant les calculs, pour comprendre, ou faire en sorte que l'ordinateur fasse le travail répétitif pour toi (ce qui ne dispense pas de comprendre le résultat).
le programme C suivant permet d'étudier les 3 arguments qui sont passés à MetPoint :
sauf erreur, entre autres, on voit que :
- les 4 boucles appellent 3600 fois la fonction MetPoint()
- le 1er argument varie de 0 à 9
- le 2ème argument varie de 0 à 9
- le 3ème argument prend le contenu du tableau Dessin, en avançant par blocs de 10x10
- à chaque fois qu'un bloc de 10x10 données du tableau Dessin est terminé, les deux premiers arguments repartent à 0, 0
- chaque case du tableau Dessin de dimensions 60x60 est bien passée
Dal
tu peux dérouler les boucles à la main pas à pas avec un papier et un crayon, en faisant les calculs, pour comprendre, ou faire en sorte que l'ordinateur fasse le travail répétitif pour toi (ce qui ne dispense pas de comprendre le résultat).
le programme C suivant permet d'étudier les 3 arguments qui sont passés à MetPoint :
#include <stdio.h> int main(void) { for (int b=0;b<6;b++) for(int a=0;a<6;a++) for(int L=b*10;L<10+10*b ;L++) for(int C=a*10;C<10+10*a;C++) printf("%d, %d, Dessin[%d][%d]\n", C-10*a, L-10*b, C, L); return 0; }
sauf erreur, entre autres, on voit que :
- les 4 boucles appellent 3600 fois la fonction MetPoint()
- le 1er argument varie de 0 à 9
- le 2ème argument varie de 0 à 9
- le 3ème argument prend le contenu du tableau Dessin, en avançant par blocs de 10x10
- à chaque fois qu'un bloc de 10x10 données du tableau Dessin est terminé, les deux premiers arguments repartent à 0, 0
- chaque case du tableau Dessin de dimensions 60x60 est bien passée
Dal
shokoakyu
Messages postés
4
Date d'inscription
jeudi 18 mai 2017
Statut
Membre
Dernière intervention
19 mai 2017
>
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
19 mai 2017 à 13:51
19 mai 2017 à 13:51
De 0 a 6 non ? Sinon je comprend pas d'où vient le 9 :/
Je vais faire comme vous dîtes et dérouler à la main pour essayer de vraiment piger le truc
Merci de votre aide :)
Je vais faire comme vous dîtes et dérouler à la main pour essayer de vraiment piger le truc
Merci de votre aide :)
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
1 101
Modifié le 19 mai 2017 à 14:07
Modifié le 19 mai 2017 à 14:07
je parle des arguments effectivement passés à MetPoint()
de rien, et bon courage :-)
de rien, et bon courage :-)
shokoakyu
Messages postés
4
Date d'inscription
jeudi 18 mai 2017
Statut
Membre
Dernière intervention
19 mai 2017
>
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
19 mai 2017 à 17:39
19 mai 2017 à 17:39
J'ai fait un schéma pour décortiquer le truc et je voudrais vois si j'ai bien compris :
En fait :
a prend la valeur 0
b prend la valeur 0
donc L prend la valeur 0 et tant que L est strictement inférieur à 10 on incrémente L
et C prend la valeur 0 et tant que C est strictement inférieur à 10 on incrémente C
Du coup au premier tour on obtient
MetPoint(0,0,Dessin[0][0])
donc la fonction MetPoint affiche le contenu du tableau de la colonne 0 et de la ligne 0 à l'emplacement du pixel (0;0) de la fenêtre graphique
Après on remonte C prend la valeur 1 qui est strictement inférieur à 10 et on obtient
MetPoint(1,0,Dessin[1][0])
Donc la fonction MetPoint affiche le contenu du tableau de la colonne 1 et de la ligne 0 à l'emplacement du pixel (1;0) de la fenêtre graphique
Et ainsi de suite...
C'est bien ça ??
En fait :
a prend la valeur 0
b prend la valeur 0
donc L prend la valeur 0 et tant que L est strictement inférieur à 10 on incrémente L
et C prend la valeur 0 et tant que C est strictement inférieur à 10 on incrémente C
Du coup au premier tour on obtient
MetPoint(0,0,Dessin[0][0])
donc la fonction MetPoint affiche le contenu du tableau de la colonne 0 et de la ligne 0 à l'emplacement du pixel (0;0) de la fenêtre graphique
Après on remonte C prend la valeur 1 qui est strictement inférieur à 10 et on obtient
MetPoint(1,0,Dessin[1][0])
Donc la fonction MetPoint affiche le contenu du tableau de la colonne 1 et de la ligne 0 à l'emplacement du pixel (1;0) de la fenêtre graphique
Et ainsi de suite...
C'est bien ça ??
Modifié le 18 mai 2017 à 22:30
Le code est en C++, je l'ai déplacé sur ce forum, et j'ai corrigé le sujet.