0% ont trouvé ce document utile (0 vote)
21 vues3 pages

TP2 Algorithmique

Le document présente une série d'exercices de programmation en C pour des étudiants de l'Université Ibn Zohr. Les exercices portent sur l'utilisation des pointeurs, la recherche de valeurs dans des tableaux, la manipulation de structures de données, et la gestion de temps. Les étudiants doivent soumettre leurs fichiers sources avant le 02/02/2024.

Transféré par

moha.elayady
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
21 vues3 pages

TP2 Algorithmique

Le document présente une série d'exercices de programmation en C pour des étudiants de l'Université Ibn Zohr. Les exercices portent sur l'utilisation des pointeurs, la recherche de valeurs dans des tableaux, la manipulation de structures de données, et la gestion de temps. Les étudiants doivent soumettre leurs fichiers sources avant le 02/02/2024.

Transféré par

moha.elayady
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

UNIVERSITE IBN ZOHR Année Universitaire 2023/2024

ENSIASD -TAROUDANT

TP/TD : Série N°2

Merci de m’envoyer les fichiers sources (.c) dans fichier compressé (.zip) à [Link]@[Link]
avant le 02/02/2024.

Les pointeurs :

Exercice 1 :

main()
{
int A = 1;
int B = 2;
int C = 3;
int *P1, *P2;
P1 = &A;
P2 = &C;
*P1 = (*P2)++;
P1 = P2;
P2 = &B;
*P1 -= *P2;
++*P2;
*P1 *= *P2;
A = ++*P2 * *P1;
P1 = &A;
*P2 = *P1 /= *P2;
return (0);
}

Copiez le tableau suivant et complétez-le pour chaque instruction du programme ci-dessus.


A B C P1 P2
Init 1 2 3 NULL NULL
P1=&A 1 2 3 &A NULL
…..

Exercice 2 :

Soit P un pointeur qui 'pointe' sur un tableau T :


int T[] = {50, 12, 37, 40, 52, -1, 18, 87, 88};

1
UNIVERSITE IBN ZOHR Année Universitaire 2023/2024
ENSIASD -TAROUDANT
int *P;
P = T;

Quelles valeurs ou adresses fournissent ces expressions :

a) *P+2
b) *(P+2)
c) &A[4]-3
d) A+3
e) &A[7]-P
f) P+(*P-10)
g) *(P+*(P+4)-A[0])

Exercice 3 :

Écrire une fonction qui permet de rechercher dans un tableau d’entiers tab une valeur A.
void chercherVal (int tab[], int n, int A, int *pos, int *nb_occ);

Dans pos, la fonction sauvegarde l’indice de la dernière apparition et -1 si la valeur n’a pas été
trouvée. Dans nb_occ, elle sauvegarde le nombre d’occurence de A dans tab.

Exercice 4 :

Ecrire un programme qui range les éléments d'un tableau A du type int dans l'ordre inverse. Le
programme utilisera des pointeurs P1 et P2 et une variable numérique TEMP pour la permutation
des éléments.

N.B : Utiliser les pointeurs pour remplir, afficher et inverser le tableau.

Exercice 5 :

1) Définir un type TEMPS qui contient les champs : heure, minute, seconde.
2) Ecrire une procédure Somme qui réalise la somme T de deux durées T1 et T2 passés par
adresse de type temps (on suppose que la somme des heures est toujours inférieure à
24).
3) Ecrire une fonction TRANSFORM qui transforme un temps T de type TEMPS en un entier
S qui exprime ce temps en secondes.
Exemple : pour T = 3 heures 15 minutes 57 secondes, S = 11757 secondes.

4) Ecrire une procédure DECOMPOS qui décompose un temps S exprimé en secondes en


un temps T de type TEMPS.
Exemple : pour S = 4968 secondes, T = 1 heures 22 minutes 48 secondes.

2
UNIVERSITE IBN ZOHR Année Universitaire 2023/2024
ENSIASD -TAROUDANT
5) Ecrire un programme qui lit deux temps T1 et T2, ensuite calcule et affiche la somme de
T1 avec T2 En utilisant les fonctions TRANSFORM et DECOMPOS. Comparer le résultat
avec la fonction Somme.

Exercice 6 :

Un établissement scolaire décide d’automatiser son archive. Pour cela il estime d’enregistrer les
fiches de ses élèves sur l’ordinateur en s’adaptant uns structure hétérogène. Cette dernière
doit comporter les informations suivantes :

- Un CNE (entier)
- Un Nom (chaine de 25 caractères) et un prénom (25 caractères)
- Une adresse (Rue, Ville, Code Postal)
- Date de naissance ([Link])

1) Ecrire une fonction Remplir permettant de remplir les informations d’un élève.
2) Ecrire une fonction Afficher permettant d’afficher les informations d’un élève.
3) Ecrire une fonction ComparerDates permettant de comparer deux dates et renvoi
comme valeur 0,1 ou 2.
4) Ecrire une fonction filter permettant d’afficher les informations d’un élève en se basant
sur les critères suivants (Année, Ville, Nom, prénom). Penser à utiliser une structure.
5) Ecrire un programme permettant :
• Remplir un tableau T de N élèves (N≤50)
• Afficher à partir de T les élèves nés avant une année de naissance donnée.
• Afficher à partir de T les élèves qui ont ‘Ahmed’ comme prénom.
6) Modifier la fonction Afficher pour qu’elle affiche des informations spécifiques (CNE,
Nom, Adresse, Ville, ….)
• Afficher les villes des élèves nés en 2010.

Vous aimerez peut-être aussi