Você está na página 1de 5

Algorithmique et Langage C TP 2

Rappel : Compiler au fur et mesure Tester ses fonctions une par une : sassurer quune fonction est correcte avant de passer la suivante.

Exercice 1 On dsire crire un programme de rsolution dquations entires 1 inconnues. On cherchera uniquement des solutions enti res. On va commencer par sintresser au! quations une inconnue de la forme : a.X+b=0 "vec a# $ et % entier. 1. &crire une fonction affichant une quation dfinie par deu! entiers a et $ passs en param tre. '. &crire une fonction demandant la saisie de deu! entiers correspondant au! coefficients a et $ de lquation (les deu! entiers seront passs en param tre de la fonction par pointeur). *. &crire une fonction qui indique si un entier % pass en param tre est solution dune quation dfinie par a et $ (param tres galement). la fonction retourne 1 si % est solution et + sinon. ,. &crire une fonction qui rsout une quation dfinit par a et b passs en param tres# le rsultat sera indiqu dans un param tre pass par pointeur. "ttention - .ne quation enti re na pas forcment de solution# par e!emple : lquation *%/'0+# a pour solution relle -'1* mais pas de solution enti re. 2our rsoudre ce pro$l me la fonction retournera 1 si il 3 a une solution enti re et + sinon. 2rendre galement en considration le cas ou a0+. 4il n3 a pas de solution on indique + comme solution. 5. &crire un programme de dmonstration

Exercice 2 .ne famille qui souhaite partir en visite dans la valle de la 6oire sadresse un vo3agiste pour prparer son vo3age. 6e vo3agiste leur propose deu! formules : " la carte : la famille paie au dpart seulement le vo3age (,57 par adulte et '+7 par enfant) et lh$ergement (,57 par nuit pour une cham$re de *). &lle paie ensuite 87 par personne et par visite de ch9teau!. Tout Compris : cette formule est vala$le partir dun s:our de * :ours minimum. 6e tarif est de 5+7 par adulte et de *+7 pour un enfant par :our. Toutes les prestations sont comprises

;. &crire une fonction demandant de saisir les informations concernant le vo3age de la famille : nom$re dadultes# denfants# dure en nuits du vo3age et nom$re de visites prvues (passage par pointeur de tous les param tres). <. &crire une fonction retournant le co=t du vo3age pour une famille# dans le cas dune formule la carte# en fonction du nom$re dadultes# denfants# de la dure en :our du vo3age et du nom$re de visites prvues. 8. &crire une fonction retournant le cout du vo3age pour une famille dans le cas dune formule tout compris# en fonction du nom$re dadultes# denfants et de la dure en :our du vo3age. 4i la famille na pas le droit la formule la fonction retourne -1. >. &crire un programme de dmonstration demandant les informations sur le vo3age dune famille# indiquant quelle est la formule la plus avantageuse et le pri! de celle-ci.

?include @stdio.hA ?include @stdli$.hA void saisir(int Ba#int B$) C printf(DEn6Fequation est de la forme a%/$0+# &ntrer les valeurs de a et $D)G scanf(DHd HdD#I(Ba)#I(B$))G J void affiche(int a#int $) C printf(DEn&qu : Hd%/Hd0+D#a#$)G J int is%4olution(int !#int a#int $) C if( (aB!/$)00+) C return 1G J else C return +G J J int solution(int B!#int a#int $) C if(a00+) C B!0+G return +G J else C

if( ($Ha)00+) C B!0-$1aG return 1G J else C B!0+G return +G J J J int main(int argc# char BargvKL) C int a#$#!G saisir(Ia#I$)G affiche(a#$)G printf(DEn &ntrer une valeur de %:D)G scanf(DHdD#I!)G if(is%4olution(!#a#$)) C printf(DEn % est solutionD)G J else C printf(DEn % nFest pas solutionD)G J if(solution(I!#a#$)) C printf(DEn %0HdD#!)G J else C printf(DEn2as de solutions enti reD)G

J s3stem(D2".4&D)G return +G J

Você também pode gostar