DissertationsEnLigne.com - Dissertations gratuites, mémoires, discours et notes de recherche
Recherche

Dissert Economie

Commentaires Composés : Dissert Economie. Rechercher de 53 000+ Dissertation Gratuites et Mémoires
Page 1 sur 21

printf("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 =

...

Télécharger au format  txt (27.1 Kb)   pdf (200.2 Kb)   docx (20.7 Kb)  
Voir 20 pages de plus »
Uniquement disponible sur DissertationsEnLigne.com