Boucle répéter [Résolu]

Messages postés
256
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
10 mars 2016
-
Bonjour, je suis sur codeblocks cette fois avec les cout et cin mais je sèche un peu, voici l'énoncé :


programme tableDeMultiplication
val, k : entier
debut
repeter
afficher "Entrez un nombre entier = "
saisir val
jusqu'à val>=1 et val<=9
pour k de 1 à 10
afficher val, " * ", k, " = ", (val*k)
finpour
fin

et j'ai codé cela mais ce n'est pas suffisant :
int main()
{
    int val = 1, k = 1, z ;
    cout << " Table de multiplication\n ";
    cout << " Entrer un nombre : ";
    cin >> k;
    while ( val <=9 && k <= 10)
    {
        z = val * k;
        cout << ("z = val * k", val, k, z);
        k = k + 1 ;
    }
    return 0 ;
}

Mais je ne sais pas comment on écrit la boucle répéter !
Afficher la suite 

3 réponses

Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
8
0
Merci
Bonjour,
je ne connais pas bien le c++ mais comme je me souviens

peut-etre

int main()
{
    int val = 1, k = 1, z ;
    cout << " Table de multiplication\n ";
    
   
do    
{
cout << " Entrer un nombre : ";
    cin >> val;
    }
 while ( !( val >= 1 && val <= 9 ))

       for (k=1;k<=10;k++)
       {
        z = val * k;
        cout << (" %d * %d = %d\n", val, k, z);
        }
    return 0 ;
}



Bonne journée
Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
Commenter la réponse de cgandco
Messages postés
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
10 juin 2019
85
0
Merci
Bonjour.

Code::block est un éditeur (comme peut l'être QtCreator, Visual Studio, etc...).
La "vraie" information, c'est que tu fais maintenant du C++.

Ton erreur, vient du fait que tu n'essaies pas de comprendre la logique, mais de traduire l'algo qu'on te donne.
Tu y vas à "l'aveugle", et ça ne passera pas à long terme. En lisant l'algo, on comprends qu'il y a deux phases.
La première demande à l'utilisateur un nombre entre 1 et 10 compris. Si ce n'est pas le cas, on redemande à l'utilisateur une valeur correcte.
La deuxième, affiche la multiplication du nombre donné avec les chiffres de 1 à 10.

Tu dois absolument, quand on te donne ce genre d'exercice, écrire sur papier ce que ça fait en "français", comme je viens de le faire ci-dessus. Il te faut impérativement comprendre globalement ce que fait un code, puis être capable d'en analyser les différentes parties (c-à-d découper en paragraphes "logiques").

Attention, il est (fortement) conseillé d'éviter les using namespace, voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace

Voici le code corrigé:
#include <iostream>

int main()
{
  int val = 0;

  std::cout << "Table de multiplication" << std::endl;

  // Demande un nombre entre 1 et 10 compris.
  // Si pas dans cette plage, recommence.
  do
  {
    std::cout << "Entrez un nombre: ";
    std::cin >> val;
  }
  while (val < 1 || val > 10);

  // Affichage des 10 premières valeurs de la table de "val"
  for (int k = 1; k <= 10; ++k)
    std::cout << val << " * " << k << " = " << val * k << std::endl;

  return 0;
}


Pour les prochaines fois où tu posteras, je te demanderai de me joindre le découpage logique, et ce que tu comprends de la fonction qu'on te donne. Ce n'est pas pour t'embêter, mais si je te fais tes exos, sans que tu fasses cette étape, ça te sera préjudiciable.


Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
Commenter la réponse de cptpingu
Messages postés
256
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
10 mars 2016
1
0
Merci
cptpingu il n'y a aucuns problèmes je sais que ce n'est pas pour m'embêter d'ailleurs je te remercie d'être aussi "scolaire" (ne le prend pas mal, ici c'est un compliment), avec moi. Tu as tout a fait raison, il faut aussi que je comprenne ! C'est d'ailleurs ce que je souhaite comprendre alors merci de ta patiente
Commenter la réponse de TheRogerFederer