Algorithme avec do et while
Fermé
widi
Messages postés
34
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
16 décembre 2006
-
5 déc. 2006 à 13:08
widi Messages postés 34 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 16 décembre 2006 - 6 déc. 2006 à 09:54
widi Messages postés 34 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 16 décembre 2006 - 6 déc. 2006 à 09:54
A voir également:
- Algorithme while
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Code ascii algorithme - Guide
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Factorielle en c boucle while - Forum C
2 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
5 déc. 2006 à 13:59
5 déc. 2006 à 13:59
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 ?
widi
Messages postés
34
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
16 décembre 2006
5 déc. 2006 à 14:30
5 déc. 2006 à 14:30
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
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
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
5 déc. 2006 à 14:35
5 déc. 2006 à 14:35
hAAA
Désolé j'ai mal compris ta question ^^
En algo tu écrit comme ca :
En tout cas c'est comme ca qu'on m'a appris :)
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 :)
widi
Messages postés
34
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
16 décembre 2006
5 déc. 2006 à 14:53
5 déc. 2006 à 14:53
ouai mais le do car tu peut avoit while sans do
Tu l'écrit comme ça??
Tu l'écrit comme ça??
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
5 déc. 2006 à 15:14
5 déc. 2006 à 15:14
Je t'ai répondu justement ^^
Pour traduire un while :
Et pour traduire un do{ ... }while( ... );
tu fais :
Pour traduire un while :
Tant que CONDITION FAIRE .... .... FIN TANT QUE
Et pour traduire un do{ ... }while( ... );
tu fais :
FAIRE .... .... TANT QUE CONDITION
widi
Messages postés
34
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
16 décembre 2006
5 déc. 2006 à 15:30
5 déc. 2006 à 15:30
merci bcp
bonne apres midi
bonne apres midi
widi
Messages postés
34
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
16 décembre 2006
5 déc. 2006 à 18:06
5 déc. 2006 à 18:06
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
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