• Aucun résultat trouvé

T.P. 1. (Factoriel d’un entier)

N/A
N/A
Protected

Academic year: 2022

Partager "T.P. 1. (Factoriel d’un entier)"

Copied!
2
0
0

Texte intégral

(1)

Universit´ e Paris-Nord D.E.U.G. MIAS 1

Institut Galil´ ee Ann´ ee 2002-2003

TP 3: Les boucles en langage C.

T.P. 1. (Factoriel d’un entier)

Ecrire un programme C qui calcule´ n! (factoriel) une fois avec un whilepuis une seconde fois avec un for.

#include<stdio.h>

int main() { int N, i;

int fact=1;

printf("Introduire un nombre 0 <= N <=12\n");

/* printf("Pour N plus grand, N! depasse 2^{31} */

/* printf(" donc les resultats sont faux pour N>12 */

scanf("%d",&N);

/* On n’entre pas dans la boucle si N=0 ou 1 */

for(i=2; i<=N; i=i+1) { fact= fact*i;

}

printf("\n La factoriel de %d est: %d \n",N,fact);

return(1);

}

T.P. 2 (Conversions)

1. Ecrire un programme en C qui permet de convertir en base 2 un entier positif en base 10 en utilisant la m´ethode de conversion usuelle (divisions successives par 2)

2. Ecrire un programme en C qui permet de convertir un entier positif en toute base demand´ee inf´erieure `a 10.

/* Pour la question 1. il suffit de remplacer "base" par 2. */

/* Pour simplifier, on supposera que la base est <= 10 . */

#include<stdio.h>

int main() {

int N, M, reste, code,m, base ; code=0;

m=1;

printf("Introduire le nombre \n");

scanf("%d",&N);

M=N;

/* M est une copie de N */

1

(2)

printf("Introduire la base <= 10\n");

scanf("%d",&base);

do {

reste = N%base;

N = N / base;

code = (reste*m) + code;

m= m*10;

}

while(N != 0);

printf("\n Le nombre %d a pour code %d en base %d\n",M,code,base);

return(1);

}

T.P 3. (La suite de Fibonaci)

Ecrire un programme´ C qui calcule lenieme` ´el´ement de la suite de Fibonaci d´efinie par:

Fn+2=Fn+1+Fn, avecF0= 0 et F1= 1, onest un nombre saisi par l’utulisateur.

#include<stdio.h>

int main() { int N, i, fib;

int a,b;

a=0; b=1;

printf("Introduire un nombre 0 <= N <= 46\n");

/* printf("On obtient par exaemple (en 32 bits) */

/* printf(" Fibonacci[46] = 1836311903 */

/* printf(" Fibonacci[47] = -1323752223 */

scanf("%d",&N);

if(N==0) fib=0;

if(N==1) fib=1;

/* On n’entre pas dans la boucle si N=0 ou 1 */

for(i=1; i<=N; i=i+1) { fib= a+b;

b=a;

a=fib;

}

printf("\n");

printf("Resultat:\t Fibonacci[%d] = %d \n",N,fib);

return(1);

}

2

Références

Documents relatifs

Année universitaire 2011-2012 Licence 3 de mathématiques. Algorithmique algébrique 1 -

[r]

Démontrer, en utilisant la définition de la suite donnée au départ, que

[r]

[r]

A est un réel strictement positif.. a) Montrer que la suite d est une suite géométrique.. Préciser

Sur le graphique donné en Annexe , construire en laissant visibles les traits de construction, les quatre premiers termes de la suite (u n ) sur l’axe des

Ecrire une séquence d'instructions qui, étant donné un entier naturel non nul, fournit le tuple de ses chiffres dans son écriture en base 10.. On rajoute alors à gauche au tuple