Je voudrais calculer les impôts de ma famille - UTC

Transcription

Je voudrais calculer les impôts de ma famille - UTC
Examen médian- LO01
Automne 2010
2 H - Sans documents (sauf diagrammes de C)
La clarté de vos réponses sera prise en compte. Ne pas écrire au crayon. N’oubliez pas de commenter vos programmes.
Vous aurez besoin de 4 copies : une par exercice
1. Suites géométriques: (4 points) (Copie 1)
Soit une suite géométrique (Un=r*Un-1) de premier terme U0, de raison r et comprenant nb éléments. Ecrire le programme qui demande à
l’utilisateur de saisir U0, r et nbSuites et qui affiche les suites selon le format :
Dans cet exemple d'affichage, l'utilisateur a saisi U0=3, r=4 et nbSuites=5.
Suite pour nb = 1 :
Suite pour nb = 2 :
Suite pour nb = 3 :
Suite pour nb = 4 :
Suite pour nb = 5 :
3
3 12
3 12 48
3 12 48 192
3 12 48 192 768
2. Crazy Little Star (6 points) (Copie 2)
Nombre de chocs max : 3
Position de départ : 7
Crazy Little Star est une petite étoile (*) qui se déplace dans un couloir
de 10 caractères et qui a la fâcheuse tendance à se cogner (BING)
contre les murs (#).
Crazy Little Star va toujours de l'avant et ne se déplace au hasard que
dans 3 directions possibles :
1. en bas vers la gauche;
2. en bas tout droit;
3. en bas vers la droite.
Si Crazy Little Star se cogne contre un mur, elle est obligée d'aller en
bas tout droit (direction 2).
A force de se cogner, Crazy Little Star explose (BOOM) et son
parcours s'arrête...
On suppose que l'on dispose de la fonction direction() qui renvoie un
entier au hasard parmi {1, 2, 3}.
Ecrire un programme en C qui demande :
 le nombre maximum de chocs que peut subir Crazy Little Star
avant d'exploser,
 une position de départ (entre 0 et 9),
et qui fait un affichage des déplacements au hasard de Crazy Little Star
jusqu'à son explosion.
Les murs seront symbolisés par le caractère # sauf lors d'un choc entre
Crazy Little Star et un mur. Dans ce cas, BING symbolisera un simple
choc et BOOM symbolisera l'explosion de Crazy Little Star.
Un exemple d'affichage attendu est proposé ci-contre.
0123456789
#
* #
#
* #
#
*#
#
* #
#
*#
#
*BING
#
*#
#
* #
#
* #
#
* #
#
*
#
#
*
#
#
* #
#
* #
#
*#
#
*BING
#
*#
#
* #
#
* #
#
* #
#
*
#
#
*
#
#
*
#
#
*
#
#
*
#
#
*
#
# *
#
# *
#
# *
#
# *
#
# *
#
#
*
#
# *
#
# *
#
#*
#
BING*
#
# *
#
# *
#
#*
#
BOOM*
#
3. Exercices : (4 points) (Copie 3)
3.1/ Qu’affiche les printf ?
#include <stdio.h>
void main()
{ int x , y , z;
int *pt1, *pt2 ;
x = 20 ; y = 10 ; z = 5 ;
y*=z-2 ;
x-- ;
printf("\n x=%d y=%d z=%d \n",x,y,z);
pt1 = &x ;
pt2 = &y ;
y++ ;
printf("\n x=%d y=%d z=%d *pt1=%d *pt2=%d\n",x,y,z,*pt1,*pt2);
z=z/2 ;
*pt1 = *pt2+z;
pt1=pt2;
pt2 = &z;
printf("\n x=%d y=%d z=%d *pt1=%d *pt2=%d\n",x,y,z,*pt1,*pt2);
}
3.2/ Soit la boucle for suivante :
int i ,n, f;
printf ("entrez 2 nombres positifs SVP");
scanf("%d %d",&n,&i);
for (f=1; n!= 0; n--)
f*=i;
3.2.1/ Ecrire le code équivalent en utilisant une boucle while.
3.2.2/ Décrire à l’aide d’une formule ce que calcule ce programme.
1.
4. Amortissement (6 points) (Copie 4)
L'amortissement comptable d'un investissement d'entreprise est l'étalement de son coût C (en euros) sur la durée
d'utilisation T (en année pleine). La valeur d'origine (VO) du bien est C. La valeur nette comptable VNC = VO – (Cumul
des amortissements depuis l'origine).
L'amortissement linéaire est une méthode à annuités constantes. Chaque année la valeur amortie VA vaut C/T. Exemple,
VO = 1000€, T=4 ans, d'où VA = 250€. La première année : VNC = VO – VA = 750€, la deuxième année VNC = VO – 2
VA = 500 €, etc.
L'amortissement SOFTY (pour Sum OF The Years) n'est pas linéaire. On calcule en premier la somme des années. Avec
T=4 on obtient : 1 + 2 + 3 + 4 = 10. Les amortissements vont être calculés en 10ème. L'amortissement se calcule ainsi :
1ère année, amortissement de 4/10ème de VO ; 2ème année, amortissements de 3/10ème ; etc. Au total : 4/10ème +
3/10ème + 2/10ème + 1/10ème = 10/10ème.
L'amortissement mixte consiste à appliquer SOFTY jusqu'à ce que la valeur VA d'une année que l'on prévoit d'utiliser
calculée avec SOFTY soit inférieure à la valeur VA calculée avec l'amortissement linéaire. Si c'est le cas on applique
alors l'amortissement linéaire sur la VNC restante et sur la période restante.
On affiche l'amortissement avec : l'année, la VNC, et la VA dans l'année. Exemples :
Linéaire :
SOFTY :
Mixte :
Année VNC
VA
année VNC
VA
année VNC
VA
1
2
3
4
250
250
250
250
1
2
3
4
400
300
200
100
1
2
3
4
400
300
150
150
1000
750
500
250
1000
600
300
100
1000
600
300
150
1/ Ecrire une fonction qui affiche l'amortissement linéaire pour un bien de valeur d'origine VO et pour une durée T.
2/ Ecrire une fonction qui affiche l'amortissement SOFTY pour un bien de valeur d'origine VO et pour une durée T.
3/ Ecrire une fonction qui affiche l'amortissement mixte pour un bien de valeur d'origine VO et pour une durée T.
4/ Ecrire le programme principal qui utilise ces fonctions. Il demandera à l'utilisateur la valeur VO, la durée T et la nature
de l'amortissement et il affichera l'amortissement correspondant.