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.