On m'affiche erreur au niveau d'1e instructio
Fermé
laylana
-
12 sept. 2012 à 15:55
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 12 sept. 2012 à 18:25
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 12 sept. 2012 à 18:25
A voir également:
- On m'affiche erreur au niveau d'1e instructio
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Erreur 1004 vba ✓ - Forum VB / VBA
- Erreur 1000 france tv - Forum MacOS
- Youtube une erreur s'est produite ✓ - Forum YouTube
- Free erreur 38 ✓ - Forum Mobile
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 004
Modifié par KX le 12/09/2012 à 16:32
Modifié par KX le 12/09/2012 à 16:32
Le problème c'est que tu déclares function max, avant d'avoir terminé procedure remplir.
En indentant correctement, tu verrais tout de suite que procedure remplir a deux Begin, mais un seul End. Le compilateur ne comprend donc pas pourquoi tu déclares ta function max à l'intérieur de la procedure remplir.
Et avant que tu poses la question, tu as une autre erreur une fois celle-ci corrigée. En effet tu as deux blocs principaux begin end. Le premier qui commence par lire (n); et le deuxième qui commence par R:= V_max - V_min;
Or il ne t'en faut qu'un seul par programme...
La confiance n'exclut pas le contrôle
En indentant correctement, tu verrais tout de suite que procedure remplir a deux Begin, mais un seul End. Le compilateur ne comprend donc pas pourquoi tu déclares ta function max à l'intérieur de la procedure remplir.
Et avant que tu poses la question, tu as une autre erreur une fois celle-ci corrigée. En effet tu as deux blocs principaux begin end. Le premier qui commence par lire (n); et le deuxième qui commence par R:= V_max - V_min;
Or il ne t'en faut qu'un seul par programme...
La confiance n'exclut pas le contrôle
12 sept. 2012 à 16:54
12 sept. 2012 à 16:56
12 sept. 2012 à 17:07
En effet ces variables sont à nouveau déclaré par les fonctions et procédures, ou utilisés comme paramètre.
Il y a donc coexistence de plusieurs variables de même nom ! Sais-tu laquelle des deux est utilisée au final ? Par exemple, dans le programme principal quand tu fais max(T,i,j); sais-tu que valent i et j ?
12 sept. 2012 à 18:13
12 sept. 2012 à 18:25
Si tu as besoin de variables dans le programme principale, déclares les juste avant le begin end.
VAR i,j,n,v_max,v_min:integer; t:Tab; BEGIN lire(n); remplir(t,n); v_max := max(t,i,j); v_min := min(t,i,j); writeln('La valeur maximal dans cet intervalle = ',v_max); writeln('La valeur minimal dans cet intervalle = ',v_min); readln; END.Mais il ne faut pas oublier d'initialiser toutes les variables avant de les utiliser sinon elles n'ont aucun sens, par exemple ici tu utilises i et j mais qui n'ont pas de valeur !