liens - isil usthb

Download Report

Transcript liens - isil usthb

USTHB
Faculté d’Electronique et d’Informatique
Département d’Informatique
Module ALGO (2ème année)
Section A (ISIL)
Année 2012/2013
Série d’Exercices N° 1
Eléments de Base du Langage C
Exercice 1 :
Soient trois nombres réels A, B, C, écrire un programme C qui les ordonne et les affiche selon
l’ordre croissant de leurs valeurs. En plus, le programme doit afficher la somme des trois
nombres, leur multiplication et leur moyenne sur des lignes séparées.
Exercice 2 :
Soit une suite de n nombres entiers. Ecrire un programme C qui compte le nombre de valeurs
qui sont divisibles par 3. L’arrêt se fera dès l’introduction d’un nombre négatif.
Exercice 3 :
Soient deux nombres entiers positifs a et b, écrire un programme qui calcule a*b par la
méthode Egyptienne suivante :
 Si a est divisible par 2, on divise a par 2 et on double b
 Si a n’est pas divisible par 2, on décrémente a et on rajoute b au résultat
 Si a=0 le traitement s’arrête.
Exercice 4 :
Etant donnée une date sous la forme (J, M, A), écrire un programme C qui détermine la date
du lendemain.
On suppose que le mois de février comporte 28 jours.
Exercice 5 :
a) Soient X et Y deux entiers positifs, écrire un programme C qui calcule X*Y sans utiliser
l’opérateur de multiplication.
b) Soient X et n deux entiers strictement positifs, écrire un programme C qui calcule Xn sans
utiliser l’opérateur de multiplication.
Exercice 6 :
Calculer sin(x) par le développement limité suivant :
USTHB
Faculté d’Electronique et d’Informatique
Département d’Informatique
Module ALGO (2ème année)
Section A (ISIL)
Année 2011/2012
Série d’Exercices N°3
Pointeurs && Fonctions
Exercice 1 :
1. Ecrire une fonction qui calcule la somme des éléments d’un vecteur de nombres réels de
taille n (n<=50).
2. Utiliser la même fonction pour :
 calculer la somme des k premiers éléments d’un tableau.
 calculer la somme des éléments d’un tableau à partir d’une position k donnée.
 calculer la somme des éléments d’une matrice M[10][20] ligne par ligne.
Exercice 2 :
1. Ecrire une fonction qui cherche un caractère c dans une chaîne ch de longueur <= 100, la
fonction doit retourner la position du caractère dans la chaîne.
2. Transformer la fonction précédente pour retourner l’adresse du caractère s’il existe.
Exercice 3 :
1. Soit T un vecteur d’entiers de taille n<=100, et soit une valeur val donnée. Ecrire une
fonction Existe qui vérifie si la valeur val existe dans le vecteur T.
2. Soient T1 et T2 deux vecteurs d’entiers de tailles respectives n1<=100 et n2<= 100. En
utilisant la fonction précédente, écrire une fonction Intersect qui calcule l’intersection
de T1 et T2 (i.e les valeurs communes à T1 et T2).
3. On considère un vecteur d’entiers T de taille n<=100 trié dans l’ordre croissant et une
valeur val donnée. Ecrire une fonction Insere qui insère la valeur val dans le vecteur T
en maintenant l’ordre croissant.
4. Soient deux vecteurs d’entiers T1 et T2 de tailles respectives n1<=100 et n2<= 100. En
utilisant les fonctions précédentes, écrire le programme qui calcule l’union exclusive
de T1 et T2 (on obtiendra un vecteur T3 contenant tous les éléments appartenant soit à
T1, soit à T2 mais pas aux deux à la fois). On voudrait que le vecteur T3 soit trié (dans
l’ordre croissant) par construction.
NB : On suppose qu’une valeur ne se répète pas dans le même vecteur.
Exercice 4 :
Ecrire une fonction qui construit une matrice A(nxn) n<=50, d’entiers de la manière suivante :
1. Chaque élément d’une ligne d’indice pair, sera égal à une valeur val1 donnée (sauf
pour les éléments des diagonales)
2. Chaque élément d’une ligne d’indice impair, sera égal à une valeur val2 donnée (sauf
pour les éléments des diagonales)
3. Les deux diagonales contiennent la valeur –1.
Exercice 5 :
1. Soient deux mots M1 et M2 de longueurs <=30, écrire une fonction qui détermine si M2
est un sous-mot de M1.
2. Soit une matrice A. Chaque ligne de la matrice contient un mot. Ecrire le programme qui
affiche tous les mots de A qui sont sous- mots du premier mot de A.
Td algo exercice de la matrice A
#include<stdio.h>
#include<stdlib.h>
Main()
{ int a[20][30];
Int n,m,I,j,k ,val ;
Printf(“donner les elements de la matrice ») ;
For(i=0 ;i<n ;i++)
{For(j=0 ;j<m ;j++)
Scanf(“%d”,&a[i][j]); }
/*insertion de la valeur*/
For(i=0 ;i<n ;i++)
While((j<m) && (a[i][j]) j++;
If (j>=m) printf(“insertion impossible”)
Else if (a[i][j]==val) printf(“val existe”);
Else
Y=val;
For(k=k; k<m;k++)
{x=a[i][k];
a[i][k]=y;
y=x;}
/*affichage*/