• Aucun résultat trouvé

Informatique et Programmation Examen N°1 8 avril 2008 18h30-20h30

N/A
N/A
Protected

Academic year: 2022

Partager "Informatique et Programmation Examen N°1 8 avril 2008 18h30-20h30"

Copied!
4
0
0

Texte intégral

(1)

Informatique et Programmation Examen N°1

8 avril 2008 18h30-20h30

Nom : Prénom :

Nom de la machine : Répertoire de travail : Remarques :

Exercice 1 :

Donnez les résultats des codes suivants :

1) int a=1,b=2 ; printf("resultat1 : %d\n",a/b);

2) printf("resultat2 : %d\n",3*5+2);

3) int a=0,i; for(i=0; i<3; ++i) a=a+i; printf("resultat3 :

%d\n",a);

Exercice 2 :

Ecrire une fonction qui calcule la somme des N premiers nombres impairs. Testez-la au sein d'un petit programme.

Exercice 3 :

Ecrire un programme qui :

1) Demande un numéro de téléphone En posant une question à l’utilisateur.

2) Teste la saisie correcte du numéro

On supposera qu’une saisie correcte est une suite de chiffres suivi d'un retour à la ligne, sans autres caractères comme par exemple : 0326811665↵ mais aussi : 644674↵

3) Teste la validité du numéro

Le numéro doit être constitué de 10 chiffres et le premier chiffre doit être un 0.

4) Affiche le numéro correctement formaté.

C'est-à-dire par groupe de 2 chiffres séparés par 1 espace comme dans l’exemple suivant : 03 26 81 16 65

.

Conseils : récupérez les chiffres saisis sous forme de caractères et rangez les dans un tableau.

Remarque : En cas de mauvaise saisie ou d'invalidité du numéro, le programme devra l’indiquer à l’utilisateur et demander une nouvelle saisie.

(2)

Exercice 3 :

Le programme suivant est destiné à trier les éléments d'un tableau dans l'ordre croissant. Il ne fonctionne pas correctement. Corrigez-le.

/*************************************

Programme tri.c

*************************************/

#include <stdio.h>

#define DIM 7 int main() {

int tab[DIM]={1,5,2,7,8,7,4},i,j,min,tmp;

for(i=0; i<DIM; ++i)

printf("%d ",tab[i]); printf("\n");

for(i=0; i<DIM; ++i) { min=i;

for(j=i+1; j<DIM; ++j)

if(tab[j]<tab[min]) min=j;

tmp=tab[min];

tab[i]=tmp;

tab[min]=tab[i];

}

for(i=0; i<DIM; ++i)

printf("%d ",tab[i]); printf("\n");

}

(3)

Correction

Exercice 1 :

Voici les résultats : resultat1 : 0 resultat2 : 17 resultat3 : 3

Exercice 2 :

/*************************************

Programme impair.c

*************************************/

#include <stdio.h>

int impair(int n);

int main() { int N;

printf("Donnez la valeur de N : ");

scanf("%d",&N);

printf("La somme des %d premiers nombres impairs est %d\n",N,impair(N));

}

int impair(int n) { int i,res=0;

for(i=0; i<n; ++i) res+=2*i+1;

return res;

}

Exercice 3 :

/*************************************

Programme telephone.c

*************************************/

#include <stdio.h>

#define DIM 10 int main() {

char tab[DIM],i,j,ok;

char c;

printf("Veuillez saisir le numero de telephone : ");

do { ok=1;

i=0;

while ((c=getchar())!='\n') { if (i<DIM) tab[i]=c;

i=i+1;

}

if (i!=DIM) { ok=0;

printf("Saisie incorrecte. Le numero doit etre constitue de 10 chiffres. Recommencez.\n");

} else {

for (i=0; i<DIM; ++i)

if (tab[i]<'0' || tab[i]>'9') ok=0;

if (ok!=1)

(4)

printf("Saisie incorrecte. Le numero doit etre constitue uniquement de chiffres Recommencez.\n");

else if (tab[0]!='0') {

printf("Saisie incorrecte. Le premier chiffre doit etre un 0. Recommencez.\n");

ok=0;

} }

} while (ok!=1);

for (i=0; i<DIM; i=i+2)

printf("%c%c ",tab[i],tab[i+1]);

printf("\n");

}

Exercice 4 :

Voici le programme corrigé. Il fallait simplement inverser l'ordre des instructions : tab[i]=tmp;

tab[min]=tab[i];

/*************************************

Programme tri.c

*************************************/

#include <stdio.h>

#define DIM 7 int main() {

int tab[DIM]={1,5,2,7,8,7,4},i,j,min,tmp;

for(i=0; i<DIM; ++i)

printf("%d ",tab[i]); printf("\n");

for(i=0; i<DIM; ++i) { min=i;

for(j=i+1; j<DIM; ++j)

if(tab[j]<tab[min]) min=j;

tmp=tab[min];

tab[min]=tab[i];

tab[i]=tmp;

}

for(i=0; i<DIM; ++i)

printf("%d ",tab[i]); printf("\n");

}

Références

Documents relatifs

Reprendre le programme de l'exercice 1 et fixer N à 5 puis traiter le cas où le nombre de caractères est trop important pour la taille du tableau en avertissant l'utilisateur et

Reprendre le programme de l'exercice 2 et trier dans l’ordre croissant les valeurs contenues dans le tableau à l’aide d’une fonction tri(…) qu’on définira. On vérifiera

Ecrivez un programme qui accepte une chaîne de caractères minuscules (255 caractères maximum) en entrée et qui affiche la même chaîne avec tous ses caractères en majuscule..

Reprendre le programme de l'exercice 3 et modifier la fonction de telle manière qu'elle remplisse un tableau reçu en argument (ainsi que sa taille). Les chiffres seront saisis au

Ecrire un programme qui permet de saisir une ligne de caractères (suite de caractères terminé par le caractère '\n') et de la mémoriser dans un tableau (de caractères) comme une

La fonction devra renvoyer 1 dans le cas où les deux chaines (s1 et s2) sont identiques (même longueur et même contenu) et 0 sinon. Ecrire un petit programme permettant de tester

Modifier la fonction de l’exercice précédent pour obtenir une fonction recevant un pointeur s à la place du tableau tab (adresse de la case 0 d’un tableau) et retournant

Écrivez un programme qui demande deux nombres réels et qui calcule puis affiche le résultat de leur division entière ainsi que son reste.. Pour cela, on commence par constituer un