4–1 Quelle est la plus petite et la plus grande valeur de chaque type entier sur votre ordinateur? Découvrez quel est l'intervalle de valeurs associé à chaque type réel.
4–2 Que se passe-t-il lorsque vous fournissez une valeur négative à "displayValueInBase" (CONVERT.C/CONVFNC.C) ou encore une base différente de 2?
4–3 Qu'est-ce qui est affiché par USEPOW.C si l'on utilise %f? et si l'on utilise %e?
4–4

Réécrivez la fonction "yearEndBalance" (IRFUNCS.C) afin d'utiliser la formule des intérêts composés:

new-balance = old-balance x (1.0 + taux-intérêt-mensuel)^nb-de-mois

Cette formule suppose que les intérêts sont composés mensuellement plutôt qu'annuellement.

4–5 Modifiez les fonctions "round" et "trunc" de ROUND.C afin qu'elles effectuent leur travail correctement avec des nombres négatifs ou positifs.
4–6 Le programme AVG.C produit des résultats erronés si le nombre de valeurs fournies est plus grand que INT_MAX ou si l'une des valeurs fournies est plus grande que INT_MAX ou encore si la somme des valeurs fournies est plus grande que LONG_MAX. Réécrivez le programme de manière à éviter ces problèmes.
4–7 Modifiez le programme CONVERT.C afin qu'il détecte les bases qui ne sont pas entre 2 et 10. Affichez un message d'erreur approprié.
4–8 Modifiez le programme USEPWR.C qui utilise la fonction "power" afin de pouvoir afficher les puissances de bases autres que 10. Ainsi, le programme devrait saisir une base pour ensuite afficher la puissance calculée dans cette base.
4–9 Éliminez toutes les conversions inutiles dans AVG.C.
4–10

Utilisez les fonctionnalités disponibles dans CONVERT.C et CONVFNC.C pour écrire un programme qui lit une paire de valeurs pour ensuite afficher toutes les valeurs entre-elles en base 2, 3, ..., 10.

4–11

Écrivez un programme qui lit une température exprimée en degrés Farenheit pour afficher sa conversion en degrés Celcius. La formule de conversion est:

Celcius = (5 / 9) (Farenheit - 32)

4–12 Écrivez un programme qui effectue la conversion inverse de 4-11.
4–13

Écrivez une fonction "isLeapYear" qui permet de déterminer si une année particulière est une année bissextile ou non. On supposera qu'une année est bissextile si elle est divisible par 4 sauf si elle est divisible par 100 mais pas par 400. Testez votre fonction dans un petit "main".

 

4–14

Écrivez une fonction "safeDivide" qui prend 2 entiers en paramètres pour retourner le résultat de leur division sous forme de double. La fonction retournera 0.0 si le diviseur vaut 0 (même si cela est erroné).

4–15

Écrivez un programme qui lit les coefficients a, b et c d'une équation quadratique: (ax^2 + bx + c) et qui affiche ses racines: les valeurs de x telles que ax^2 + bx + c = 0. Les racines sont fournies par:

[-b +/- racine(b^2 - 4ac)] / 2a

4–16

Écrivez un programme qui lit 2 points pour calculer et afficher le point milieu. Étant donnée deux points P1(x1,y1) et P2(x2,y2), le point milieu est Pm(xm, ym) où:

xm = (x1 + x2) / 2
ym = (y1 + y2) / 2

4–17 Écrivez un programme qui lit une valeur entière pour afficher toutes les puissances de 1 à "n" où "n" est la dernière puissance pouvant être calculée sans provoquer de débordements. Utilisez des variables de type entier.
4–18 Écrivez un programme qui affiche une table de racines carrées. Le programme doit lire un intervalle de valeurs déterminé par "m" et "n" et un incrément "i". Toutes ces valeurs sont entières. Le programme affiche ensuite la table des racines carrées de m, m+i, m +2i, ... jusqu'à "n".
4–19 Écrivez un programme qui affiche une table de logarithmes. Le programme lit un intervalle de valeurs et un incrément et affiche log(x) et log10(x) pour chaque "x" appartenant à l'intervalle.
4–20 Les fonctions "sin", "cos" et "tan" de la librairie "math.h" interprètent leur argument en radians. Écrivez un programme qui lit un angle exprimé en degrés pour ensuite afficher le sin, cos et tant de cet angle. Pour convertir des degrés en radians vous n'avez qu'à multiplier l'angle par PI/180.
4–21

Écrivez un programme qui lit la longueur des côtés d'un triangle pour ensuite déterminer s'il s'agit ou non d'un triangle rectangle. Supposez que chaque côté est représenté par une paire de coordonnées. Ainsi, un triangle dont les côtés sont A, B et C est un triangle rectangle si:

d(A,B)^2 = d(B,C)^2 + d(A,C)^2 où:

d(P1,P2) représente la distance entre deux points P1 et P2. A, B et C peuvent être fournis dans n'importe quel ordre. Pour vous faciliter la tâche, écrivez une fonciton qui accepte deux points (x1, y1) et (x2, y2) pour retourner la distance entre ces deux points. Utilisez la formule suivante pour calculer la distance:

racine[(x1 - x2)^2 + (y1 - y2)^2]

4–22

Écrivez un programme qui lit deux points situés sur une droite et deux points situés sur une autre droite. Le programme doit déterminer si les deux droites sont parallèles ou si elles se croisent et, dans ce dernier cas, mentionner si elles sont perpendiculaires.

Deux droites sont parallèles si leurs pentes sont égales. Deux droites sont perpendiculaires si le produit de leurs pentes vaut -1.

Pour vous faciliter la tâche, écrivez une fonction, "slope", qui prend deux points situés sur une droite en paramètre pour retourner la pente de cette droite. Étant donné deux points P1(x1,y1) et P2(x2,y2), la pente est définie par:

(y2 - y1) / (x2 - x1)

Attention aux droites parallèles à l'axe des "y".

Modifié le: mardi, 17 juin 2014, 10:24