Algorithme erreur à coriger
M1raz0
Messages postés
39
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour à tous,
Je suis encore dans mes études et j'ai deux exercices à faire qui sont deux algorithmes. J'ai commencé à faire le premier sur "Alg'Exec" mais lorsque je vérifie avec certaine donnée si il est correcte il me dit "Donnée non initialisé" à la ligne 58 ou 62..
Le but de cette algorithme est de calculer la prime d'un chauffeur selon le nombre d'accident, du nombre de kilomètres et de l'ancienneté.
Ça risque de vous paraitre tout bête mais je galère un peu sur les algorithme alors que j'ai des facilité su le SQL, bref je vais pas raconter ma vie..
Voilà je vous montre cette algorithme :
ALGO Prime
CONST
Seuil1Km=60000
Seuil2Km=100000
Prime1Km=0.004
Prime2Km=0.006
Anciennete1=2
Anciennete2=15
PrimeAn1=16
PrimeAn2=20
PrimeAn3=0
SeuilAccident1=3
SeuilAccident=1
VAR
NbAccident,Anciennete : entier
TotalPrime, PrimeAn, PrimeKm, NbKm : réel
DEBUT
Saisir "Combien d'année d'ancienneté ?", Anciennete
Saisir "Comien de kilomètres parcouru ?", NbKm
Saisir "Combien d'accident eu ?", NbAccident
Si Anciennete>Anciennete2
Alors
PrimeAn:=PrimeAn2
Sinon
Si Anciennete>Anciennete1
Alors
PrimeAn:=PrimeAn1
Sinon
Si Anciennete<=Anciennete1
Alors
PrimeAn:=PrimeAn3
FinSi
Finsi
FinSi
Si NbKm>Seuil2Km
Alors
PrimeKm:=Seuil2Km*Prime1Km+(Seuil2Km-NbKm)*Prime2Km
Sinon
Si NbKm>Seuil1Km
Alors
PrimeKm:=NbKm*Prime1Km
Sinon
Si NbKm<Seuil1Km
Alors
PrimeKm:=0
FinSi
FinSi
FinSi
Si NbAccident>SeuilAccident1
Alors
TotalPrime:=0
Sinon
Si NbAccident>=SeuilAccident
Alors
TotalPrime:=TotalPrime/NbAccident
Sinon
Si NbAccident<SeuilAccident1
Alors
TotalPrime:=TotalPrime
FinSi
FinSi
FinSi
Afficher " La prime est de : ", TotalPrime
Fin
Merci de votre avis !
Je suis encore dans mes études et j'ai deux exercices à faire qui sont deux algorithmes. J'ai commencé à faire le premier sur "Alg'Exec" mais lorsque je vérifie avec certaine donnée si il est correcte il me dit "Donnée non initialisé" à la ligne 58 ou 62..
Le but de cette algorithme est de calculer la prime d'un chauffeur selon le nombre d'accident, du nombre de kilomètres et de l'ancienneté.
Ça risque de vous paraitre tout bête mais je galère un peu sur les algorithme alors que j'ai des facilité su le SQL, bref je vais pas raconter ma vie..
Voilà je vous montre cette algorithme :
ALGO Prime
CONST
Seuil1Km=60000
Seuil2Km=100000
Prime1Km=0.004
Prime2Km=0.006
Anciennete1=2
Anciennete2=15
PrimeAn1=16
PrimeAn2=20
PrimeAn3=0
SeuilAccident1=3
SeuilAccident=1
VAR
NbAccident,Anciennete : entier
TotalPrime, PrimeAn, PrimeKm, NbKm : réel
DEBUT
Saisir "Combien d'année d'ancienneté ?", Anciennete
Saisir "Comien de kilomètres parcouru ?", NbKm
Saisir "Combien d'accident eu ?", NbAccident
Si Anciennete>Anciennete2
Alors
PrimeAn:=PrimeAn2
Sinon
Si Anciennete>Anciennete1
Alors
PrimeAn:=PrimeAn1
Sinon
Si Anciennete<=Anciennete1
Alors
PrimeAn:=PrimeAn3
FinSi
Finsi
FinSi
Si NbKm>Seuil2Km
Alors
PrimeKm:=Seuil2Km*Prime1Km+(Seuil2Km-NbKm)*Prime2Km
Sinon
Si NbKm>Seuil1Km
Alors
PrimeKm:=NbKm*Prime1Km
Sinon
Si NbKm<Seuil1Km
Alors
PrimeKm:=0
FinSi
FinSi
FinSi
Si NbAccident>SeuilAccident1
Alors
TotalPrime:=0
Sinon
Si NbAccident>=SeuilAccident
Alors
TotalPrime:=TotalPrime/NbAccident
Sinon
Si NbAccident<SeuilAccident1
Alors
TotalPrime:=TotalPrime
FinSi
FinSi
FinSi
Afficher " La prime est de : ", TotalPrime
Fin
Merci de votre avis !
A voir également:
- Algorithme erreur à coriger
- Iptv erreur de lecture - Forum TV & Vidéo
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
2 réponses
Avec ton message d'erreur "Donnée non initialisé" à la ligne 58 ou 62, c'est assez facile à corriger, il suffit de regarder le code sur ces deux lignes :
Il faut que tu donnes une valeur à TotalPrime, avant de l'utiliser dans un calcul.
58: TotalPrime:=TotalPrime/NbAccident 62: TotalPrime:=TotalPrime
Il faut que tu donnes une valeur à TotalPrime, avant de l'utiliser dans un calcul.
Quand tu me dis donner une fonction à totalPrime, cela veut dire qu'il fallait que je le mette dans CONST et plus précissement TotalPrime=0 ?
Merci de ta réponse rapide
Merci de ta réponse rapide
Non ce serait faux de la mettre dans CONST vu que tu veux modifier sa valeur.
Ici le problème c'est que TotalPrime n'a aucune valeur, donc soit ce n'est pas TotalPrime qu'il faut mettre dans ce calcul, soit il y a un moment où tu as oublié de lui donner cette valeur.
C'est comme si tu demandait à ton ordinateur de calculer x+y en lui donnant y=2, bien évidemment la seule chose qu'il peut répondre c'est "mais que vaut x ?" or ici il n'en sait rien...
Ici le problème c'est que TotalPrime n'a aucune valeur, donc soit ce n'est pas TotalPrime qu'il faut mettre dans ce calcul, soit il y a un moment où tu as oublié de lui donner cette valeur.
C'est comme si tu demandait à ton ordinateur de calculer x+y en lui donnant y=2, bien évidemment la seule chose qu'il peut répondre c'est "mais que vaut x ?" or ici il n'en sait rien...