Dissert Economie
Commentaires Composés : Dissert Economie. Rechercher de 53 000+ Dissertation Gratuites et Mémoiresprintf("3 * %f = %f\n", f, g);
*
* return 0;
* }
* /* Time-stamp: <exo2.c 16 Oct 2000 19:51:40> */
*
* /* Affichage de la valeur absolue */
*
* #include <stdio.h>
*
* int main(void)
* {
* int n;
*
* /* Saisie */
* printf("Entrer un entier : ");
* scanf("%d", &n);
* /* Calcul et affichage */
* if (n < 0)
* n = -n;
* printf("Abs = %d\n", n);
*
* return 0;
* }
/* Time-stamp: <exo4.c 16 Oct 2000 19:51:12> */
/* Comptage d'entiers positifs et calcul de la somme et du maximum */
#include <stdio.h>
int main(void)
{
int n; /* Entier saisi */
int nbr = 0; /* Compteur */
int sum = 0; /* Somme */
int max; /* Maximum */
int scan; /* Nombre de valeurs saisies par scanf */
/* Saisie d'un premier entier pour initialiser le max */
printf("Entrer un entier : ");
scan = scanf("%d", &n);
max = n;
/* Saisie d'autres entiers */
while (scan > 0) {
/* Mise à jour */
nbr++;
sum += n;
if (n > max)
max = n;
/* Saisie d'un nouvel entier */
printf("Entrer un entier : ");
scan = scanf("%d", &n);
}
printf("Compteur = %d, somme = %d, maximum = %d\n", nbr, sum, max);
return 0;
}
/* Time-stamp: <exo7.c 16 Oct 2000 19:58:30> */
/* Affichage du code ASCII d'un caractère et de sa catégorie */
#include <stdio.h>
int main(void)
{
char c; /* Caractère saisi */
char tmp; /* Saisie du Retour Chariot */
do {
/* Saisie du caractère */
printf("Entrer un caractère : ");
scanf("%c", &c);
scanf("%c", &tmp); /* Suppression du Retour Chariot du buffer */
/* Affichage du code et de la catégorie */
if (c != '\e') {
printf("%c = %d", c, c);
if ('0' <= c && c <= '9')
printf(" : chiffre");
else if ('A' <= c && c <= 'Z')
printf(" : majuscule");
else if ('a' <= c && c <= 'z')
printf(" : minuscule");
printf("\n");
}
} while (c != '\e');
return 0;
}
Langage C - Travaux Dirigés n° 2
IUP Mathématiques-Informatique
Exercice n° 1 (Évaluation d'expression)
Que font les fonctions biz1 et biz2 suivantes ?
int biz1(int a)
{
return a*((a>0)-(a<0));
}
int biz2(int a, int b)
{
if (a+=b)
return a;
return b;
}
Exercice n° 2 (Fonction factorielle)
Écrire une fonction fact calculant n!. Cette fonction prendra en paramètre l'entier et retourna la valeur entière n!. On rappelle que n! = n(n-1)(n-2) ··· 2. Pour quelles valeurs de n la fonction fact donne-t-elle un résultat correcte ?
Exercice n° 3
Écrire une fonction maxfact qui pour un entier k donné en paramètre calcule le plus grand entier n tel que n! ≤ k. Peut on améliorer la complexité de cette fonction ?
Exercice n° 4 (Coefficients binômiaux)
Utiliser la fonction fact de l'exercice précédent pour écrire une fonction binome qui calcule les coefficients du binômes Cnp = n!/((n-p)!p!). Quelle est la complexité de cette fonction ? Quelle est la valeur maximale calculable ? Proposer d'autres méthodes (non récursives) plus économiques et permettant de calculer des valeurs de Cnp beaucoup plus grandes.
Exercice n° 5 (Écriture binaire)
Écrire une fonction binaire qui prend en paramètre un entier et qui affiche son écriture binaire (en base 2).
Exercice n° 6 (Triangle de Pascal)
On s'intéresse encore aux coefficients du binôme Cnp=n!/((n-p)!p!). Ceux-ci peuvent être définis par la relation de récurrence suivante : Cnp =
* 1 si n=p ou p=0
* 0 si p>n
* Cn-1p+Cn-1p-1 si 0<p<n
On veut afficher le triangle de Pascal complet jusqu'à l'ordre N. Résoudre ce problème en utilisant chacune des trois structures suivantes :
* un tableau à deux dimensions de taille N x N (T[n][p] contient Cnp).
* deux tableaux simples de taille N.
* un tableau simple de taille N.
/* Time-stamp: <binaire.c 29 Oct 2001 11:59:14> */
/* Affichage d'un entier en binaire */
#include <stdio.h>
// Version récursive
// L'écriture de n se décompose en
// - l'écriture de n/2 si n > 1
// - le chiffre des unités (0 ou 1)
void binairerec(int n)
{
if (n > 1)
binairerec(n/2);
printf("%d", n%2);
}
// Version itérative
// On utilise un tableau pour stocker les chiffres
void binaireite(int n)
{
int e; // Exposant
// On suppose que les entiers n'ont pas plus de 32 bits
int bits[32];
// Remplissage du tableau
for (e =
...