exercice d'algorithme: aide
Tags :
-
futur
- Programmation
Dernière réponse : dans Programmation
mikarsenal
3 Octobre 2005 16:49:47
Salut tout le monde!
Je vous avoue que je suis littéralement largué en algorithme et j'ai une série d'exercice du style:
Calculer la valeur future d'un capital C placé pendant N années au taux d'intérêt annuel de I%, en utilisant:
la formule d'intérêt simple: VF = C * (1+I*N/100)
Les valeurs de C, N, I seront entrées au clavier.
Si quelqu'un aurait l'aimabilité de me montrer comment faire ce serait super. (déclarer les variables, début, écrire, lire, écrire, fin)
Merci d'avance
Je vous avoue que je suis littéralement largué en algorithme et j'ai une série d'exercice du style:
Calculer la valeur future d'un capital C placé pendant N années au taux d'intérêt annuel de I%, en utilisant:
la formule d'intérêt simple: VF = C * (1+I*N/100)
Les valeurs de C, N, I seront entrées au clavier.
Si quelqu'un aurait l'aimabilité de me montrer comment faire ce serait super. (déclarer les variables, début, écrire, lire, écrire, fin)
Merci d'avance
Autres pages sur : exercice algorithme aide
okin@IDN
3 Octobre 2005 17:02:17
mikarsenal
3 Octobre 2005 17:12:58
Contenus similaires
- Problèmes exercice d'algorithme - Solutions
- Problèmes exercice d'algorithme - Solutions
- Exercice trés simple Algorithme : Besion d'aide svp - Forum
- Aide exercice MERISE - Forum
- besoin d'aide a un exercice de pascal - Forum
- j'ai un gros probleme pour résoudre cet exercice de math aidez moi svp - Forum
clarkGaybeul@IDN
3 Octobre 2005 17:38:10
Salut,
tout d'abord, ta formule ne me semble pas très juste...
Si je place un capital de 100 à un taux de 10% pendant 2 ans, ta formule me donne
Or, en vrai, on aura
(^2 = au carré).
Donc ta formule devrait être :
VF = C * ( 1 + I/100) ^ N
---
Pour l'implémentation, tout dépend du langage, mais faisons ça de manière simplement "logique".
* Variables
* Début
rien de spécial à faire, si ce n'est afficher les questions :
* Saisie des données
* Calcul :
* Afficher le résultat :
---
Si jamais c'est le calcul lui-même qu'on te demande de coder, tu peux faire ainsi :
Rajoute dans la déclaration des variables :
Remplace la partie "calcul" par :
Voilà, le truc ci-dessus permet de calculer une puissance :
on multiplie 1 par I/100 (l'intérêt) autant de fois que nécessaires (N fois).
Tu peux remplacer le "Tant que ... Fin de faire" par une boucle du genre
(auquel cas il aut bien déclarer N_annee comme un entier)
A noter qu'il faut bien initialiser les valeurs :
N_restant = N (si tu fais la boucle "tant que")
I_tot = 1 : pour que I_tot ait bien la bonne valeur à la fin, c'est tout à fait nécessaire.
Tu peux donc placer ces initialisations dans la partie "début".
Voilà, est-ce que c'est assez clair ?
tout d'abord, ta formule ne me semble pas très juste...
Si je place un capital de 100 à un taux de 10% pendant 2 ans, ta formule me donne
VF = 100 * ( 1 + 10*2/100) = 100 * 1,2 = 120
Or, en vrai, on aura
VF = 100 * ( 1 + 10/100) ^ 2 = 100 * 1,1 ^ 2 = 100 * 1,21 = 121
(^2 = au carré).
Donc ta formule devrait être :
VF = C * ( 1 + I/100) ^ N
---
Pour l'implémentation, tout dépend du langage, mais faisons ça de manière simplement "logique".
* Variables
réels : VF, C et I
entiers : N
* Début
rien de spécial à faire, si ce n'est afficher les questions :
Afficher "Veuillez rentrer les données suivantes :"
* Saisie des données
Afficher "Votre capital :"
Lire C
Afficher "Le taux d'intérêt, en % :"
Lire I
Afficher "Le nombre d'années pendant lequel le capital sera placé :"
Lire N
* Calcul :
Calculer VF = C * ( (1 + I/100)^N)
* Afficher le résultat :
Afficher "Votre capital après un placement à ",I,"% pendant ",N," années sera de ",VF
---
Si jamais c'est le calcul lui-même qu'on te demande de coder, tu peux faire ainsi :
Rajoute dans la déclaration des variables :
Réel : I_tot
Entier : N_restant
Remplace la partie "calcul" par :
N_restant = N
I_tot = 1
Tant que (N_restant > 0) faire
I_tot = I_tot * (I/100)
N_restant = N_restant - 1
Fin de faire
VF = C * I_tot
Voilà, le truc ci-dessus permet de calculer une puissance :
on multiplie 1 par I/100 (l'intérêt) autant de fois que nécessaires (N fois).
Tu peux remplacer le "Tant que ... Fin de faire" par une boucle du genre
pour N_annee = 1 à N faire
I_tot = I_tot * I/100
fin de faire
(auquel cas il aut bien déclarer N_annee comme un entier)
A noter qu'il faut bien initialiser les valeurs :
N_restant = N (si tu fais la boucle "tant que")
I_tot = 1 : pour que I_tot ait bien la bonne valeur à la fin, c'est tout à fait nécessaire.
Tu peux donc placer ces initialisations dans la partie "début".
Voilà, est-ce que c'est assez clair ?
mikarsenal
3 Octobre 2005 17:51:02
clarkGaybeul@IDN
14 Octobre 2005 12:43:55
Reponse un peu tardive, desole... j'espere que tu auras resolu ton probleme si c'etait presse.
Extraire une racine carree est un calcul complexe, si tu dois le programmer. Mais la plupart des langages proposent cette fonction en standard, ou presque : il suffit par exemple en C++ d'inclure une bibliotheque (maths.lib ? Je ne sais plus...).
La fonction, dans la plupart des cas, se nomme "sqrt" (pour l'anglais "square root" : racine carree).
Extraire une racine carree est un calcul complexe, si tu dois le programmer. Mais la plupart des langages proposent cette fonction en standard, ou presque : il suffit par exemple en C++ d'inclure une bibliotheque (maths.lib ? Je ne sais plus...).
La fonction, dans la plupart des cas, se nomme "sqrt" (pour l'anglais "square root" : racine carree).
Suntux
14 Octobre 2005 23:15:13
sans vouloir vexer ... la racine carré c'est un nombre à la puissance 1/2 ...... sinon la fonction racine en prog en général c'est sqrt, pour les programmeurs vb, je vous invite à regarder le msdn....
Entre parenthèse se faire faire un exercice d'algo n'amene à rien, car l'algo c'est la base de la programmation... a toi de voir ce que tu veux faire.
Entre parenthèse se faire faire un exercice d'algo n'amene à rien, car l'algo c'est la base de la programmation... a toi de voir ce que tu veux faire.
Oui, mais la racine n'est généralement pas calculé comme une puissance.
Je pense que calculer la racine carrée est plus simple que de calcul un exposant réel (à vérifier, je suis pas sûr non plus).
EDIT: pour l'algo je suis d'accord (ça sert à rien de continuer la programmation tant que tu ne maitrise pas les choses de base).
Je pense que calculer la racine carrée est plus simple que de calcul un exposant réel (à vérifier, je suis pas sûr non plus).
EDIT: pour l'algo je suis d'accord (ça sert à rien de continuer la programmation tant que tu ne maitrise pas les choses de base).
clarkGaybeul@IDN
26 Octobre 2005 20:32:51
Je pense egalement qu'il est plus rapide d'extraire une racine que de calculer une puissance (rappel : a^b = exp(b*ln(a)), apres, reste a programmer exp et ln...)
Pour ce qui est de l'algo, c'etait juste un exemple pour montrer ce que (peut-etre) le prof attendait.
En general, quand on commence l'algorithmique, on fait des exercices comme ca a la pelle. Et c'est probablement preferable d'avoir un bon depart que de ramer...
mes 2 centimes ;-)
Pour ce qui est de l'algo, c'etait juste un exemple pour montrer ce que (peut-etre) le prof attendait.
En general, quand on commence l'algorithmique, on fait des exercices comme ca a la pelle. Et c'est probablement preferable d'avoir un bon depart que de ramer...
mes 2 centimes ;-)
rongeur-sauvage
26 Octobre 2005 21:47:45
hum j'ai un doute en vous lisant.
qu'entedez vous par exposant reel ?
moi il me semble que calculer 2^9 est rapide
----
$var= 2;
$exp= 9;
$result=1;
for($i=0;$i<$exp;$i++) {
******$result=$result*$var;
}
alors que pour la racine carree, on tombe pas forcement sur un nombre fini. l'algorithme d'héron me semble pas particulierement court.
qu'entedez vous par exposant reel ?
moi il me semble que calculer 2^9 est rapide
----
$var= 2;
$exp= 9;
$result=1;
for($i=0;$i<$exp;$i++) {
******$result=$result*$var;
}
alors que pour la racine carree, on tombe pas forcement sur un nombre fini. l'algorithme d'héron me semble pas particulierement court.
bluedylc
27 Octobre 2005 20:26:13
Un exposant reel, c'est quand l'exosant est un nombre reel. En informatique c'est pas vraiment un reel mais un 'flottant'. En gros c'est un nombre a virgule (avec une certaine imprecision).
Ton code marche uniquement pour les exposants entiers, de plus il est plus lent que le algorithme Divide & Conquer ad hoc. Je vous le fais en C pour que tout le monde comprenne, et en ocaml pour montrer comme c'est beau.
Sinon, pour revenir a la discussion de base, effectivement AMHA sqrt est plus rapide que faire puissance 1/2, a moins que ce soit implemente de maniere a reconnaire sqrt.
Ton code marche uniquement pour les exposants entiers, de plus il est plus lent que le algorithme Divide & Conquer ad hoc. Je vous le fais en C pour que tout le monde comprenne, et en ocaml pour montrer comme c'est beau.
float puissance(float nombre, int exposant)
[
if (exposant == 0) return 1;
if (exposant == 1) return nombre;
float demi = puissance(nombre, floor(exposant/2));
if ((exposant % 2) == 1)
return demi*demi*nombre;
else
return demi*demi;
]
let rec puissance nombre = function
0 -> 1.
| 1 -> nombre
| exposant ->
let demi = puissance nombre (exposant/2) in
demi *. demi *. (puissance nombre (exposant mod 2))
in
Sinon, pour revenir a la discussion de base, effectivement AMHA sqrt est plus rapide que faire puissance 1/2, a moins que ce soit implemente de maniere a reconnaire sqrt.
el azhar
5 Novembre 2006 18:26:43
Vinz42
6 Novembre 2006 10:39:09
cok16
22 Juillet 2007 13:30:09
sombel
20 Novembre 2007 19:19:26

clarkGaybeul@IDN a dit :
Salut,tout d'abord, ta formule ne me semble pas très juste...
Si je place un capital de 100 à un taux de 10% pendant 2 ans, ta formule me donne
VF = 100 * ( 1 + 10*2/100) = 100 * 1,2 = 120
Or, en vrai, on aura
VF = 100 * ( 1 + 10/100) ^ 2 = 100 * 1,1 ^ 2 = 100 * 1,21 = 121
(^2 = au carré).
Donc ta formule devrait être :
VF = C * ( 1 + I/100) ^ N
---
Pour l'implémentation, tout dépend du langage, mais faisons ça de manière simplement "logique".
* Variables
réels : VF, C et I
entiers : N
* Début
rien de spécial à faire, si ce n'est afficher les questions :
Afficher "Veuillez rentrer les données suivantes :"
* Saisie des données
Afficher "Votre capital :"
Lire C
Afficher "Le taux d'intérêt, en % :"
Lire I
Afficher "Le nombre d'années pendant lequel le capital sera placé :"
Lire N
* Calcul :
Calculer VF = C * ( (1 + I/100)^N)
* Afficher le résultat :
Afficher "Votre capital après un placement à ",I,"% pendant ",N," années sera de ",VF
---
Si jamais c'est le calcul lui-même qu'on te demande de coder, tu peux faire ainsi :
Rajoute dans la déclaration des variables :
Réel : I_tot
Entier : N_restant
Remplace la partie "calcul" par :
N_restant = N
I_tot = 1
Tant que (N_restant > 0) faire
I_tot = I_tot * (I/100)
N_restant = N_restant - 1
Fin de faire
VF = C * I_tot
Voilà, le truc ci-dessus permet de calculer une puissance :
on multiplie 1 par I/100 (l'intérêt) autant de fois que nécessaires (N fois).
Tu peux remplacer le "Tant que ... Fin de faire" par une boucle du genre
pour N_annee = 1 à N faire
I_tot = I_tot * I/100
fin de faire
(auquel cas il aut bien déclarer N_annee comme un entier)
A noter qu'il faut bien initialiser les valeurs :
N_restant = N (si tu fais la boucle "tant que")
I_tot = 1 : pour que I_tot ait bien la bonne valeur à la fin, c'est tout à fait nécessaire.
Tu peux donc placer ces initialisations dans la partie "début".
Voilà, est-ce que c'est assez clair ?
mongos@IDN
20 Novembre 2007 21:49:55
fazo-90
12 Octobre 2008 14:39:58
adil_03
16 Décembre 2008 02:17:21
mikarsenal a dit :
Salut tout le monde!Je vous avoue que je suis littéralement largué en algorithme et j'ai une série d'exercice du style:
Calculer la valeur future d'un capital C placé pendant N années au taux d'intérêt annuel de I%, en utilisant:
la formule d'intérêt simple: VF = C * (1+I*N/100)
Les valeurs de C, N, I seront entrées au clavier.
Si quelqu'un aurait l'aimabilité de me montrer comment faire ce serait super. (déclarer les variables, début, écrire, lire, écrire, fin)
Merci d'avance
mami_84
19 Mars 2011 12:16:05