Tom's Guide > Forum > Programmation > exercice d'algorithme: aide

exercice d'algorithme: aide

Forum Programmation : exercice d'algorithme: aide

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

faire tout quoi ? T'a pas les cours avec cet exercice?

Répondre à okin@IDN

Le cours porte sur des exercices basiques et pas sur ce genre d'exercice.

Répondre à mikarsenal

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

Code :
  1. VF = 100 * ( 1 + 10*2/100) = 100 * 1,2 = 120



Or, en vrai, on aura

Code :
  1. 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

Code :
  1. réels : VF, C et I
  2. entiers : N



* Début
rien de spécial à faire, si ce n'est afficher les questions :

Code :
  1. Afficher "Veuillez rentrer les données suivantes :"



* Saisie des données

Code :
  1. Afficher "Votre capital :"
  2. Lire C
  3. Afficher "Le taux d'intérêt, en % :"
  4. Lire I
  5. Afficher "Le nombre d'années pendant lequel le capital sera placé :"
  6. Lire N



* Calcul :

Code :
  1. Calculer VF = C * ( (1 + I/100)^N)



* Afficher le résultat :

Code :
  1. 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 :

Code :
  1. Réel : I_tot
  2. Entier : N_restant



Remplace la partie "calcul" par :

Code :
  1. N_restant = N
  2. I_tot = 1
  3. Tant que (N_restant > 0) faire
  4.     I_tot = I_tot * (I/100)
  5.     N_restant = N_restant - 1
  6. Fin de faire
  7. 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

Code :
  1. pour N_annee = 1 à N faire
  2.     I_tot = I_tot * I/100
  3. 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 ?

Répondre à clarkGaybeul@IDN

Merci infiniment clarkgaybeul! C'est tout à fait clair. Pour la formule de départ je suppose que c'est le prof qui s'est trompé!

Une dernière chose: comment effectuer un racine carré?

Encore merci :)

Répondre à mikarsenal

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).

Répondre à clarkGaybeul@IDN

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.

Répondre à Suntux

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).

Répondre à CRicky

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 ;-)

Répondre à clarkGaybeul@IDN

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.

Répondre à rongeur-sauvage

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.

Code :
  1. float puissance(float nombre, int exposant)
  2. [
  3.   if (exposant == 0) return 1;
  4.   if (exposant == 1) return nombre;
  5.   float demi = puissance(nombre, floor(exposant/2));
  6.   if ((exposant % 2) == 1)
  7.       return demi*demi*nombre;
  8.   else
  9.       return demi*demi;
  10. ]



Code :
  1. let rec puissance nombre = function
  2.       0 -> 1.
  3.   | 1 -> nombre
  4.   | exposant ->
  5.       let demi = puissance nombre (exposant/2) in
  6.       demi *. demi *. (puissance nombre (exposant mod 2))
  7. 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.

Répondre à bluedylc

pour la racine en c++ il vous sufit d'apeler la bubliotec math.h
et la racinne devient sqrt


Message édité par el azhar le 05-11-2006 à 18:33:05
Répondre à el azhar

j'espère qu'il a trouvé avant...
ca fait 1 ans et 1 mois qu'il a posté ça...

------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

slt à tous.concernant l'exo de la racine carree,je pense qu'il est plus simple d'utiliser le standar .de plus si les solution qui sont proposées peuvent etre aussi en pascal,ce serait super

Répondre à cok16

:love: salut a tous mais specialement a toi clark j'ai beaucoup apprecie la facon dont tu as traite lalgo.bon je viens de commencer une formation en informatique et au tout debut j'ai adore l'algorithmie.Ainsi je serai tres heureuse d'etre membre de ce club merci d'avance

clarkGaybeul@IDN a écrit :

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

Code :
  1. VF = 100 * ( 1 + 10*2/100) = 100 * 1,2 = 120



Or, en vrai, on aura

Code :
  1. 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

Code :
  1. réels : VF, C et I
  2. entiers : N



* Début
rien de spécial à faire, si ce n'est afficher les questions :

Code :
  1. Afficher "Veuillez rentrer les données suivantes :"



* Saisie des données

Code :
  1. Afficher "Votre capital :"
  2. Lire C
  3. Afficher "Le taux d'intérêt, en % :"
  4. Lire I
  5. Afficher "Le nombre d'années pendant lequel le capital sera placé :"
  6. Lire N



* Calcul :

Code :
  1. Calculer VF = C * ( (1 + I/100)^N)



* Afficher le résultat :

Code :
  1. 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 :

Code :
  1. Réel : I_tot
  2. Entier : N_restant



Remplace la partie "calcul" par :

Code :
  1. N_restant = N
  2. I_tot = 1
  3. Tant que (N_restant > 0) faire
  4.     I_tot = I_tot * (I/100)
  5.     N_restant = N_restant - 1
  6. Fin de faire
  7. 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

Code :
  1. pour N_annee = 1 à N faire
  2.     I_tot = I_tot * I/100
  3. 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 ?


Répondre à sombel

Bonjour Sombel ! Bah bienvenue sur IDN, tu es bien sùr la bienvenue dans ce forum !

Répondre à mongos@IDN

okin@IDN a écrit :

faire tout quoi ? T'a pas les cours avec cet exercice?


salut à tous
si c'est possible de me passer des exercices d'algorithme sur mon email fiftybel@hotmail.com et merci à tous

Répondre à fazo-90

mikarsenal a écrit :

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


Répondre à adil_03

Téléchargez d’autres exercices sur >>>


http://www.world-prog.com

Répondre à Anonyme

écrire un algorithme qui calcul le plus grand commun diviseur (PGCD) de 02 nombres :??:

Répondre à Anonyme
Tom's Guide > Forum > Programmation > exercice d'algorithme: aide
Aller à :

Il y a 304 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Liens