Problèmes 1affichage 2tableaux PASCAL dev-pas

Fermé
grad - 9 déc. 2007 à 20:21
 tde - 13 déc. 2007 à 13:07
Bonjour,
j'ai 2 problèmes dans PASCAL sou le compilateur Bloodshed Dev-Pascal:

1-Quand je fait write n'importe quel nombre (variable réelle ou entière) je reçois à l'exécution un écriture scientifique
par enemple le 0 s'affiche: 0.00000000000000 E+000
Comment afficher une écriture normale et gérer le format du nombre et le nombre de chiffres apès la virgule?

2-Un tableau statique composé de 3 cellules s'appelle A ( Array[1..3] of integer )
un autre tableau B est constitué de 2 cellues ( 1 cellule est de type INTEGER et l'autre de type ARRAY[1..3] of integer qui sera le tableau A)
Comment déclarer le tableau B?
A voir également:

2 réponses

gzzfx3256 Messages postés 19 Date d'inscription mercredi 5 décembre 2007 Statut Membre Dernière intervention 26 juin 2009 5
10 déc. 2007 à 02:47
Salut.
1- Soit a une variable réelle ou entière de longueur n
tu écris write(a:x:y)
y désigne le nombre de chiffres apès la virgule
x désigne la position du nombre a dans l'écran. Le nombre a sera décalé de m position(s) si x-n=m (m entier privé de 0 qui est la différence entre x et la longueur n du chiffre)
Remarque: si x-n<=0 alors le chiffre sera écrit sans décalage.
exemple: si a=1458 alors writeln(a:4:0) écrira 1458 normalement car 4-4=0
writeln(a:5:0) écrira 1458 normalement mais décalé d'une place car 5-4=1 (4 désigne la longueur de a)
writeln(a:6:0) écrira 1458 normalement mais décalé de deux places car 6-4=2
Maintenant tu devras savoir que si ton chiffre comporte une virgule, celle-ci sera pris en compte dans le calcul de la longueur avec les chiffres qui sont avant et après la virgule.
exemple: si a=1458.9 alors writeln(a:6:1) écrira le chiffre identique sans décalage car 1+4+5+8+.+9=6 (la longueur)
writeln(a:6:0) écrira le chiffre décalé de deux places car 1+4+5+8=4 puisque 0 supprime la virgule et les chiffres après la virgule
J'espère que j'ai été clair. Tu peux faire quelques essais et si t'as pas compris un truc tu me le dis.

2-Je n'ai pas vraiment une solution. Je sais seulement que tu peux introduire une condition dans le programme qui fera qu'il ne prendra en compte la donnée de la 2ème cellule du tableau B que si elle est de même type que les élément du tableau A. En tout cas si tu me donnais l'énoncé tu problème je pourrais te donner une solution concrète.
1
type enreg=record
cellule_1: integer;
cellule2: Array[1..3] of integer;
end;

Puis, il n'y a plus qu'à déclarer l'Array de enreg...
0