Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Devoir Maison Algorithme

Posté par
Cervantes
09-02-10 à 14:55

Bonjour, voici l'énoncé de mon devoir maison :
A la naissance d'Alban, sa grand-mère dépose sur un compte bancaire 100€ et décide
de verser à chacun de ses anniversaires 100€ auxquels elle ajoute le double de
l'âge d'Alban, en euros.
Ecrire un algorithme permettant de connaître la somme déposée sur le compte d'Alban
au bout de n années.
Déterminer cette somme pour n=10

Voilà ce que j'ai trouvé :
(En langage naturel). Pour les 100€ ajoutés à chacun de ses anniversaires, je pense avoir :
Variables :
N ; P
Début Algorithme :
Lire N
P prend la valeur 100        (Cette ligne est-elle nécessaire?)
P prend la valeur N*100
Afficher P
Fin Algorithme


Ce qui pose problème, c'est le double de l'âge d'Alban qu'elle ajoute :
j'ai essayé de trouver avec Pour... de ... à ou encore Tant que...,
mais à chaque fois, l'algorithme ajoute seulement 20 (il double la dernière valeur n=10).
Comment faire pour qu'il ajoute 2, puis 4, puis 6...etc?
Merci d'avance pour votre aide

Posté par
gwendolin
re : Devoir Maison Algorithme 09-02-10 à 15:02

bonjour

naissance--->100€
1an--->100 + (100+1*2)=202
2an--->202 + (100+2*2)=202+104=306

Posté par
Cervantes
re : Devoir Maison Algorithme 09-02-10 à 15:46

Mais comment traduire ces calculs en un seul algorithme?

Posté par
Coll Moderateur
re : Devoir Maison Algorithme 09-02-10 à 16:00

Bonjour,

Par exemple, codé dans le langage d'Algobox

1   VARIABLES
2     age EST_DU_TYPE NOMBRE
3     compte EST_DU_TYPE NOMBRE
4     n EST_DU_TYPE NOMBRE
5   DEBUT_ALGORITHME
6     compte PREND_LA_VALEUR 100
7     LIRE n
8     POUR age ALLANT_DE 1 A n
9       DEBUT_POUR
10      compte PREND_LA_VALEUR compte + 100 + 2*age
11      FIN_POUR
12    AFFICHER "âge = "
13    AFFICHER n
14    AFFICHER "compte = "
15    AFFICHER compte
16  FIN_ALGORITHME

Posté par
geo3
re : Devoir Maison Algorithme 09-02-10 à 16:06

Bonjour
1an  => 100 + 100 +1*2 = 2*100 +1*2
2an  => 100 + 100 +1*2 + 100 +2*2 = 3*100 +1*2+2*2
3an  => 3*100 +1*2+2*2 + 100 +3*2 = 4*100 +1*2+2*2+3*2 = 4*100 + (1+2+3)*2
4an  => 5*100 +1*2+2*2+3*2+4*2 = 5*100 + (1+2+3+4+5)*2 = (4+1)*100 + somme des 5 premiers chiffres *2
5an  => (5+1)*100 + somme des (5+1) premiers chiffres *2
....
n an => (n+1)*100 + (1+2+3+4+...+n+1)*2 = (n+1)*100 +(somme d'une suite arithmétique=nbre de termes*(le 1er + le dernier)/2)*2 = (n+1)*100 +[(n+1)(1+n+1)/2]*2 =(n+1)*100 + (n+1)(n+2)

10an  => 1100 + 11*12 = 1432
A+

Posté par
Cervantes
re : Devoir Maison Algorithme 09-02-10 à 16:42

Merci beaucoup à tous! Je vais essayer de comprendre toutes vos solutions.

Posté par
Cervantes
re : Devoir Maison Algorithme 10-02-10 à 15:36

Re-bonjour,
je ne comprends pas pourquoi vous affichez plusieurs fois "compte" ni comment vous pouvez mettre "=" avec l'affichage d'une variable. D'autre part après plusieurs essais je trouve 1210 (avec n=10), alors que géo 3 trouve 1432. Etant débutant dans algobox, pouvez-vous m'éclaircir ?  

Posté par
Coll Moderateur
re : Devoir Maison Algorithme 10-02-10 à 15:43

Tu n'as pas bien lu

Les lignes 12 et 14 affichent des messages (pour que le résultat soit plus agréable à lire) ; il y a des guillemets

les lignes 13 et 15 affichent des variables : il n'y a pas de guillemets

Avec Algobox ce n'est pas sur le même bouton qu'il faut cliquer.

Posté par
Coll Moderateur
re : Devoir Maison Algorithme 10-02-10 à 15:45

Et, pour information, avec le programme que j'ai posté le 09/02 à 16 h 00, je trouve bien si je rentre n = 10 l'affichage suivant :

âge = 10
compte = 1432

Posté par
Cervantes
re : Devoir Maison Algorithme 11-02-10 à 10:55

Je suis vraiment désolé pour avoir mal compris les messages affichant les variables.
Malheureusement, je n'obtiens toujours pas 1432, en ayant copié votre algorithme : j'ai fait une capture d'écran pour vous montrer celui que j'ai tapé, et j'ai aussi copié collé les calculs du mode pas à pas : à la fin, il indique 1210.


#1 Nombres/chaines (ligne 6) -> âge:0 | compte:100 | n:0
#2 Nombres/chaines (ligne 7) -> âge:0 | compte:100 | n:10

Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 9)
#3 Nombres/chaines (ligne 9) -> âge:1 | compte:100 | n:10
#4 Nombres/chaines (ligne 10) -> âge:1 | compte:202 | n:10
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 11)

Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 9)
#5 Nombres/chaines (ligne 9) -> âge:2 | compte:202 | n:10
#6 Nombres/chaines (ligne 10) -> âge:2 | compte:306 | n:10
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 11)

Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 9)
#7 Nombres/chaines (ligne 9) -> âge:3 | compte:306 | n:10
#8 Nombres/chaines (ligne 10) -> âge:3 | compte:412 | n:10
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 11)

Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 9)
#9 Nombres/chaines (ligne 9) -> âge:4 | compte:412 | n:10
#10 Nombres/chaines (ligne 10) -> âge:4 | compte:520 | n:10
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 11)

Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 9)
#11 Nombres/chaines (ligne 9) -> âge:5 | compte:520 | n:10
#12 Nombres/chaines (ligne 10) -> âge:5 | compte:630 | n:10
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 11)

Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 9)
#13 Nombres/chaines (ligne 9) -> âge:6 | compte:630 | n:10
#14 Nombres/chaines (ligne 10) -> âge:6 | compte:742 | n:10
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 11)

Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 9)
#15 Nombres/chaines (ligne 9) -> âge:7 | compte:742 | n:10
#16 Nombres/chaines (ligne 10) -> âge:7 | compte:856 | n:10
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 11)

Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 9)
#17 Nombres/chaines (ligne 9) -> âge:8 | compte:856 | n:10
#18 Nombres/chaines (ligne 10) -> âge:8 | compte:972 | n:10
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 11)

Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 9)
#19 Nombres/chaines (ligne 9) -> âge:9 | compte:972 | n:10
#20 Nombres/chaines (ligne 10) -> âge:9 | compte:1090 | n:10
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 11)

Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 9)
#21 Nombres/chaines (ligne 9) -> âge:10 | compte:1090 | n:10
#22 Nombres/chaines (ligne 10) -> âge:10 | compte:1210 | n:10
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 11)


Enfin, la suite de l'exercice consiste à écrire un autre algorithme, déterminant le nombre d'années dont Alban aura besoin pour avoir 1999€. Je pense avoir trouvé : on reprend le premier algorithme, on supprime "LIRE N", puis on ajoute :
TANT QUE (compte<1999) FAIRE
DEBUT TANT QUE
   compte PREND_LA_VALEUR compte + 100 + 2*age
   âge PREND_LA_VALEUR âge + 1
FIN TANT QUE
AFFICHER âge

Je trouve ainsi 17.
Est-ce cela?

Je vous remercie de l'aide apportée, je dois commencer à vous ennuyer...

Devoir Maison Algorithme

Posté par
Coll Moderateur
re : Devoir Maison Algorithme 11-02-10 à 13:13

Bonjour,

Je suis vraiment désolé ; j'ai dû rêver... j'ai répondu de mémoire et j'avais lu le message de geo3

La réponse pour n = 10 est bien compte = 1210

Voici ma copie d'écran :

Devoir Maison Algorithme

Je reprends le calcul de geo3 le 09/02 à 16 h 06
La ligne "3 ans" est juste
mais l'erreur s'introduit à la ligne "4 ans"
voici la suite corrigée de son message :

Citation :
3ans => 3*100 +1*2+2*2 + 100 +3*2 = 4*100 +1*2+2*2+3*2 = 4*100 + (1+2+3)*2
4ans => 5*100 +1*2+2*2+3*2+4*2 = 5*100 + (1+2+3+4)*2 = (4+1)*100 + somme des 4 premiers nombres entiers *2
5ans => (5+1)*100 + somme des 5 premiers nombres entiers *2
....
n ans => (n+1)*100 + (1+2+3+4+...+n)*2 = (n+1)*100 +(somme d'une suite arithmétique = nbre de termes*(le 1er + le dernier)/2)*2 = (n+1)*100 +[n(n+1)/2]*2 =(n+1)*100 + n(n+1)

10ans => 1100 + 10*11 = 1 210


Je regarde la suite de ton message. Mais je voulais tout de suite te rassurer sur ton premier résultat.

Et non, tu ne nous ennuies pas du tout. Comme tu le vois, tu as eu raison d'insister !

Posté par
Coll Moderateur
re : Devoir Maison Algorithme 11-02-10 à 13:26

Je te donne une solution pour me faire pardonner de t'avoir fait perdre du temps...

1   VARIABLES
2     age EST_DU_TYPE NOMBRE
3     compte EST_DU_TYPE NOMBRE
4   DEBUT_ALGORITHME
5     age PREND_LA_VALEUR 0
6     compte PREND_LA_VALEUR 100
7     TANT_QUE (compte<1999) FAIRE
8       DEBUT_TANT_QUE
9       age PREND_LA_VALEUR age+1
10      compte PREND_LA_VALEUR compte+100+2*age
11      FIN_TANT_QUE
12    AFFICHER "âge = "
13    AFFICHER age
14     AFFICHER "compte = "
15    AFFICHER compte
16  FIN_ALGORITHME

Et voici la copie d'écran :

Devoir Maison Algorithme

Donc tu as une bonne solution !

Posté par
Cervantes
re : Devoir Maison Algorithme 11-02-10 à 13:26

Ah, tout va bien alors! Merci à vous!

Posté par
Cervantes
re : Devoir Maison Algorithme 11-02-10 à 13:37

D'accord! (Je n'avais même pas vu que vous aviez posté une solution)

Encore un grand merci pour votre précieuse aide!

Posté par
Coll Moderateur
re : Devoir Maison Algorithme 11-02-10 à 13:38

Je t'en prie.
A une prochaine fois !

Posté par
geo3
re : Devoir Maison Algorithme 14-02-10 à 21:27

Bonsoir
> Cool
je viens seulement de voir la suite de la discussion
merci pour avoir  vu mon erreur ( pour 4ans qu'est ce que le 5 est arrivé  là de nul part , par hasard ) et de la corriger
pour finir on a bien
n ans : (n+1)*100 + n*(n+1)
A+

Posté par
Coll Moderateur
re : Devoir Maison Algorithme 15-02-10 à 09:59

Bonjour geo3

Pas de problème
L'erreur peut arriver à n'importe qui ; ce n'est pas toujours facile au clavier de taper ces expressions. Grâce au forum elle a été corrigée. Rien de grave !

Posté par
geo3
re : Devoir Maison Algorithme 15-02-10 à 10:17

Bonjour
J'ai lu
Je ferais plus attention la prochaine fois
Encore merci
A+



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !