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