L2 chimie
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Cartes Pokémon EV6.5 : où trouver le Bundle Lot 6 Boosters Fable ...
Voir le deal

correction du CC du 21/04/2008

2 participants

Aller en bas

correction du CC du 21/04/2008 Empty correction du CC du 21/04/2008

Message  Rémi Jeu 31 Mar - 16:24

pour ceux qui veulent je peut leur envoyer une copie en pdf

CC de PC4i (correction)

I. Codage des nombres en binaire

I.1. Représentation des entiers

Question 1 :

A et B sont codés sur 1 octet (8 bits ) .
A = 124 ---[en binaires] ---> A = 01111100
B = 201 ---[en binaires] ---> B = 11001001

A + B = 01111100 + 11001001 = 111100101 (9 bits => over flow)

Donc le programme renvoie la valeur 69.

Question 2 :

A = 44 ---[en binaires] ---> A = 00101100
B = 201 ---[en binaires] ---> B = 11001001

A + B = 00101100 + 11001001 = 11110101 (8 bits => pas d'over flow)

Donc le programme renvoie la valeur 245.



I.2. Représentation des réels

Question :

float A= 44.25

Un float est codé sur 32 bits

signe * mantisse * exp (exposant)

signe [1 bit] mantisse [23 bits] exposant [8 bits]

donc A [binaire] =


II. Analyse de code

II.1. Qu'affiche le programme suivant ?

int ma_fonction( int x ) {
int y ;
x = 0;
y = -1;
return x+y;
}
main() {
int x = 22,y= 23, z;
z=ma_fonction(x);
printf( "x=%d y=%d z=%d \n", x, y, z ) ;
}

Le programme affiche : x=22 y=23 z=-1
Cela est dû au fait que x et y ne sont pas modifiés par la fonction "ma_fonction"
Car x est initialisé à 0 et y à -1 dans "ma_fonction" mais sont inchangés dans la
Fonction "main», et z est égale à 0 + (-1) = -1.

II.2.Recopier le programme en corrigeant les fautes


Ledit programme :


#include [stdio.h]
#include [math.h]

main(){
int i, n, fn, valeur-exacte;
int NMAX;
double pi=3.14159;

printf(" Calcul de la serie de Riemann "\n);

printf("Combien d iterations "\n);
scanf("%d",NMAX);

valeur-exacte = pi*pi / 6. ;

for (n=1; n++; n < NMAX);{
fn = 1 / (n^2);
somme=somme+fn
printf("Apres %d iterations, somme = %d, valeur exacte = %d \n, n, somme, valeur-exacte");
}

printf("\n Apres %d iterations, la valeur calculee est %e \n", NMAX, somme);
}


Le programme corrigé :


#include <stdio.h>
#include <math.h>

main(){
int i, n;
int NMAX;
double pi=3.14159, fn, somme, valeur_exacte;

printf(" Calcul de la serie de Riemann \n");

printf("Combien d iterations \n");
scanf("%d",&NMAX);

valeur_exacte = (pi*pi) / 6.0 ;

for (n=1; n < NMAX; n++) (rien) {
fn = 1 / (n*n); /* ou pow(n,2) */
somme=somme+fn ;
printf("Apres %d iterations, somme = %lf, valeur exacte = %lf \n", n, somme, valeur_exacte );
}

printf("\n Apres %d iterations, la valeur calculee est %e \n", NMAX, somme);
}


III. Ecriture de code

III.1. programme qui calcule la somme et le produit des 10 premiers entiers et affiche le résultat.


#include <stdio.h>

Main() {
Int i , som=0 , prod=0 ;
For(i = 1 ; i < 11 ; i++) {
Som += i ;
Prod *= i ;
}
Printf(" somme des 10 premiers entiers = %d \n",som ) ;
Printf(" produit des 10 premiers entiers = %d \n",prod ) ;
}

III.2.Modifier le programme de la question II.2 de la manière suivante :
-l’utilisateur n’entre plus la valeur de NMAX.
-le calcul de la somme s’arrête lorsque la valeur de fin devient inférieure à 10-5.
-le programme affiche à la fin de l’exécution le nombre d’itérations de la boucle.

#include <stdio.h>
#include <math.h>

main(){
int i, n;
double pi=3.14159, fn, somme, valeur-exacte;

printf(" Calcul de la serie de Riemann \n");

valeur_exacte = (pi*pi) / 6.0 ;

fn = 1 ;
n = 0 ;

while(fn > pow(10,-5) ) {
fn = 1 / (n*n);
somme=somme+fn ;
n++ ;
}

printf("\n Apres %d iterations, la valeur calculee est %e \n la valeur exacte est %lf \n", NMAX, somme, valeur_exacte);

}

voili voilou ^_^
Rémi
Rémi

Messages : 3
Date d'inscription : 31/03/2011
Age : 35

Revenir en haut Aller en bas

correction du CC du 21/04/2008 Empty Re: correction du CC du 21/04/2008

Message  Eglantine Dim 10 Avr - 16:34

merkiiiiiiiiiiiiiiiii

Eglantine

Messages : 27
Date d'inscription : 09/01/2011
Age : 32

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum