Algorithme avec do et while

widi Messages postés 34 Statut Membre -  
widi Messages postés 34 Statut Membre -
Bonjour tout le monde, j'ai un petit problème pour écrire mon algo, et en plus j'ai fait les choses à l'envers j'ai deja écrit mon programme:
mon programme :
do
{
cout<<"Entrer une longueur positive et inferieure a 80 de la zone d'affichage: "<<endl;
cin>>longueur;
}
while (longueur<0 || longueur>80);

ce n'est que le début mais c'est juste avec le do et le while que je ne sait pas comment faire. Je ne sais pas comment écrire le DO
Je vous remercie de vos réponses.

2 réponses

  1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Ou est le probleme ? Ta syntaxe est bonne, et ton algo aussi il me semble, du moins si tu as bien déclarer ta variable longueur avant. Tu as testé ton prog avant ou pas ?
    0
  2. widi Messages postés 34 Statut Membre
     
    ben oui mais ça c'est mon programme, c avec l'algo que j'ai un pb.

    do (mais en algo)
    {
    ecrire "Entrer une longueur positive et inferieure a 80 de la zone d'affichage: "
    }
    tant que 0<longueur<80
    ftant que

    tu comprend mon problème?
    Merci de repondre
    0
    1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
       
      hAAA

      Désolé j'ai mal compris ta question ^^

      En algo tu écrit comme ca :
      Faire
      
       BLABLABLA
      
      Tant que CONDITION
      


      En tout cas c'est comme ca qu'on m'a appris :)
      0
    2. widi Messages postés 34 Statut Membre
       
      ouai mais le do car tu peut avoit while sans do
      Tu l'écrit comme ça??
      0
    3. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
       
      Je t'ai répondu justement ^^

      Pour traduire un while :
      Tant que CONDITION FAIRE
           ....
           ....
      FIN TANT QUE
      


      Et pour traduire un do{ ... }while( ... );
      tu fais :
      FAIRE
            ....
            ....
      TANT QUE CONDITION
      
      0
    4. widi Messages postés 34 Statut Membre
       
      merci bcp
      bonne apres midi
      0
    5. widi Messages postés 34 Statut Membre
       
      Bonjour tout le monde j'ai fait un algorithme pour un programme et je voudrais savoir ce que vous en pensez je vous donne l'algo et le programme:
      algo:
      1/ Description du résultat.

      Afficher une zone rectangulaire dont la hauteur et la largeur est donnée par l’utilisateur. A l’intérieur de cette zone rectangulaire sera afficher un disque de centre, de rayon et de motif donnés.

      2/ Idée de l’algorithme.

      - Afficher la première largeur de la zone rectangulaire.
      - Afficher les débuts de ligne
      - Afficher le disque à l’endroit choisit par l’utilisateur
      - Afficher les fins de ligne
      - Afficher la deuxième largeur de la zone rectangulaire.

      3/ Lexique local des variables.

      colonne (entier) Intermédiaire (???)
      ligne (entier) Intermédiaire (???)
      longueur (entier) donnée
      largeur (entier) donnée
      abscisse (reel) donnée
      ordonnée (réel) donnée
      rayon (réel) donnée
      motif (????) donnée

      4/ Algorithme

      Faire
      Écrire « Entrez la largeur positive et inferieur à  80 de la zone d'affichage : »
      Largeur affecté de Lire
      Tant que 0<largeur<80
      Ftant que

      Faire
      Ecrire « Entrez la longueur positive et inférieur a 60 de la zone d'affichage : »
      longueur affecté de Lire
      Tant que 0<longueur<60
      Ftant que

      Ecrire « Entrez l'abscisse du centre du cercle :  »
      Abscisse affecté de Lire
      Ecrire « Entrez l'ordonnée du centre du cercle :  »
      ordonnée affecté de Lire

      Faire
      Ecrire « Entrez le rayon positif du cercle :  »
      rayon affecté de lire
      Tant que rayon<0
      Ftant que

      Faire
      Ecrire « Entrez le motif du cercle sauf ('+','-','|',' ') :  »
      motif affecté de Lire
      Tant que motif = « + », motif = « - », motif = « | », motif = «   »,
      Ftant que

      Ecrire « + »
      Pour colonne de 1 à inférieur à la largeur
      Ecrire « - »
      Fpour
      Écrire « + »
      Ecrire « \n »

      Pour ligne de 0 à inférieur à la longueur
      Ecrire « | »
      Pour colonne de 0 à inférieur à largeur
      Si racine carré ((ordonnée-ligne)(ordonnée-colonne)+(abscisse-ligne)(abscisse-colonne))
      Ecrire motif
      Sinon
      Ecrire «  »
      Fsi
      Fpour
      Ecrire « | »
      Ecrire « \n »
      Fpour
      Pour colonne de 1 à inférieur ou égale à largeur
      Ecrire « - »
      Fpour
      Ecrire « + »
      Ecrire « \n »

      Le programme:

      #include <iostream>
      #include <cmath>
      using namespace std;
      main (){


      int colonne, ligne,longueur, largeur;
      float abscisse,ordonnee,rayon;
      char motif;

      do
      {
      cout << "Entrez la largeur positive et inférieur à 80 de la zone d'affichage : "<<endl;
      cin >> largeur;
      }
      while(largeur<0 || largeur>80);
      do
      {
      cout << "Entrez la longueur positive et inférieur à 60 de la zone d'affichage : "<<endl;
      cin >> longueur;
      }
      while(longueur<0 || longueur>60);
      cout << "Entrez l'abscisse du centre du cercle : "<<endl;
      cin >> abscisse;
      cout << "Entrez l'ordonnée du centre du cercle : "<<endl;
      cin >> ordonnee;
      do
      {
      cout << "Entrez le rayon positif du cercle : "<<endl;
      cin >> rayon;
      }
      while(rayon<0);
      do
      {
      cout << "Entrez le motif du cercle sauf ('+','-','|',' ') : " << endl;
      cin >> motif;
      }
      while(motif=='+' || motif=='-' || motif=='|' || motif==' ');

      cout << '+';
      for(colonne=1;colonne<=largeur;colonne++)
      {
      cout << '-';
      }

      cout << '+';
      cout << endl;
      for(ligne=0;ligne<longueur;ligne++)
      {
      cout << '|';
      for(colonne=0;colonne<largeur;colonne++)
      {
      if(sqrt((ordonnee-ligne)*(ordonnee-ligne)+(abscisse-colonne)*(abscisse-colonne))<=rayon)
      {
      cout << motif;
      }
      else
      {
      cout << ' ';
      }
      }
      cout << '|' << endl;
      }
      cout << '+';
      for(colonne=1;colonne<=largeur;colonne++)
      {
      cout << '-';
      }

      cout << '+';
      cout << endl;


      }

      Sinon j'ai aussi un problème pour le char motif je ne sais pas comment le définir dans mon lexique des variables

      Merci de vos réponses
      0