Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal > Autres IDE
Autres IDE Les autres environnements de développement (PP Compiler, ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/10/2011, 20h07   #1
elseif
Invité de passage
 
Inscription : octobre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 2
Points : 0
Points : 0
Par défaut Dessin d'un carré de x étoiles de côté, x entré par l'utilisateur

Bonjour tout le monde,

J'ai récemment débuté en Pascal et j'ai un petit truc à faire mais je cale, j'ai tout essayé mais ça ne marche pas. Le but du programme est que l'utilisateur entre un chiffre et que le programme affiche le carré de ce chiffre en '*'. Exemple :

L'utilisateur entre 10 , le programme écrit :
Citation:
**********
**********
**********
**********
**********
**********
**********
**********
**********
**********
Donc un carré de 10 sur 10.

Voici où j'en suis :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
program lecarre(input,output);
var a:string;
var cpt:integer;
var b:integer;
begin
repeat
a:='*';
cpt:=0;
writeln('Entrez un chiffre');
readln(b);
readln();
while cpt<b do
begin
writeln(a);
a:=a * '*';
inc(cpt);
end
until b=0;
readln;
 
end.
Le compilateur me donne l'erreur "Operator is not overloaded" à la ligne "a:=a * '*';"

Voilà, merci d'avance pour vos réponses.
elseif est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 20h53   #2
tabouet
Membre habitué
 
Homme Alexis Amand
pitête développeur....
Inscription : octobre 2007
Messages : 187
Détails du profil
Informations personnelles :
Nom : Homme Alexis Amand
Âge : 33
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : pitête développeur....

Informations forums :
Inscription : octobre 2007
Messages : 187
Points : 149
Points : 149
Envoyer un message via MSN à tabouet Envoyer un message via Yahoo à tabouet
Bonsoir,

Mon pascal remonte à quelques années mais si mes souvenirs sont bons, avec

Tu multiplies une chaîne de caractères (string) par une autre...
Si tu veux concaténer tes chaînes, il faut que tu utilises + ou concat()

J'ai testé ton programme, ça marche pas trop

A bientôt,
Alexis
__________________
J'aimerais mieux être le premier dans ce village que le second à Rome. (Caius Julius Caesar)

Mon blog historico-généalogique genealexis.fr
Création de site web, cours à domicile et tutoriels boitasite.com
tabouet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 21h05   #3
Alcatîz
Responsable Pascal

 
Avatar de Alcatîz
 
Homme Jean-Luc Gofflot
Ressources humaines
Inscription : mars 2003
Messages : 5 511
Détails du profil
Informations personnelles :
Nom : Homme Jean-Luc Gofflot
Âge : 46
Localisation : Belgique

Informations professionnelles :
Activité : Ressources humaines
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 5 511
Points : 39 419
Points : 39 419
Envoyer un message via ICQ à Alcatîz Envoyer un message via MSN à Alcatîz Envoyer un message via Yahoo à Alcatîz Envoyer un message via Skype™ à Alcatîz
Bonjour,

C'est assez logiquement l'opérateur + qui permet d'ajouter une chaîne à une autre :
Sans te donner une solution toute faite, voici une piste de réflexion : l'utilisateur a entré un nombre b, qui est à la fois la largeur et la hauteur du carré.
Donc, tu peux une première fois faire une boucle qui construit une chaîne de b étoiles, puis une seconde boucle qui affiche b fois la chaîne que tu as construite.

__________________
Règles du forum
Tutoriels, exercices, FAQ, sources, compilateurs, outils, livres Pascal
Mes tutoriels et sources Pascal
FAQ Assembleur

Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
Alcatîz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 21h08   #4
tabouet
Membre habitué
 
Homme Alexis Amand
pitête développeur....
Inscription : octobre 2007
Messages : 187
Détails du profil
Informations personnelles :
Nom : Homme Alexis Amand
Âge : 33
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : pitête développeur....

Informations forums :
Inscription : octobre 2007
Messages : 187
Points : 149
Points : 149
Envoyer un message via MSN à tabouet Envoyer un message via Yahoo à tabouet
Bonsoir,

J'ai pensé la même chose, mais je pensais pouvoir trouver une solution un peu plus simple.

A bientôt,
Alexis
__________________
J'aimerais mieux être le premier dans ce village que le second à Rome. (Caius Julius Caesar)

Mon blog historico-généalogique genealexis.fr
Création de site web, cours à domicile et tutoriels boitasite.com
tabouet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 14h26   #5
elseif
Invité de passage
 
Inscription : octobre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 2
Points : 0
Points : 0
Bonjour , merci beaucoup de vos reponses. J'avais finallement trouver le moyen de creer le programme mais j'ai utilisé des commandes que je ne connaissai pas ,je les vu sur un tutoriel puis je les est utilisé mais je ne le connais pas. La commande que je ne comprend pas est le suivant "Inc" . Par example comme dans le programme que j'ai fait "Inc(g)"

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
Program Devoir (input,output);
Var t,g,lq: integer;
 
begin
writeln( 'Entrez un nombre' );
readln (lq);{Enregistre la valeur que l'utilisateur a entrer dans la variable "lq"}
t:=1;{La valeur de t prend "1"}
While t<=lq do {tant que "t" est plus petit ou egal a "lq" faire:}
      Begin
      g:=1;{g prend la valeur 1}
      While g<=lq do {tant que "g" est plus petit ou egale a "lq" faire }
      Begin
      Write('x');{Ecrire "X"}
      Inc (g);
      End;
      Writeln ;
      Inc(t);
      End;
Readln;
end.
elseif est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 17h01   #6
droggo
Expert Confirmé
 
Inscription : août 2006
Messages : 3 418
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 3 418
Points : 3 773
Points : 3 773
Lie,

Un simple petit (tout petit) programme de test aurait répondu à ta question, il faut savoir se prendre en mains !

Inc pour incrémente.

Avec la forme que tu utilises, ça ajoute 1 à la variable passée en argument, une autre forme permet de forcer une autre valeur pour l'incrémentation : Inc(la_variable,increment).
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.
droggo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h40.


 
 
 
 
Partenaires

Hébergement Web