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

Correction CC

Le document présente des exercices sur la structure des données, les pointeurs en C, et une comparaison entre Java et C. Il inclut des déclarations de types, des procédures pour gérer des étudiants, et des exemples de code pour permuter des variables et analyser des blocs de code. Les différences entre Java et C sont également abordées, notamment en termes de paradigme, portabilité et gestion de la mémoire.

Transféré par

armelchristfoko
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)
52 vues3 pages

Correction CC

Le document présente des exercices sur la structure des données, les pointeurs en C, et une comparaison entre Java et C. Il inclut des déclarations de types, des procédures pour gérer des étudiants, et des exemples de code pour permuter des variables et analyser des blocs de code. Les différences entre Java et C sont également abordées, notamment en termes de paradigme, portabilité et gestion de la mémoire.

Transféré par

armelchristfoko
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

Exercice 1 : Structure des données et tableau

1. Déclaration du type Etudiant


Type Etudiant
Matricule : Entier
Nom : Chaine
Prénom : Chaine
DateNaissance : Enregistrement
Jour : Entier
Mois : Entier
Année : Entier
FinEnregistrement
Sexe : Caractère // 'M' pour masculin, 'F' pour féminin
Parcours : Chaine
FinType

2. Procédure pour créer un vecteur de N étudiants


Procédure CreerEtudiants(V : Tableau de Etudiant, N : Entier)
Début
Pour i ← 1 à N Faire
Ecrire("Entrer le matricule : ")
Lire(V[i].Matricule)
Ecrire("Entrer le nom : ")
Lire(V[i].Nom)
Ecrire("Entrer le prénom : ")
Lire(V[i].Prénom)
Ecrire("Entrer la date de naissance (jour mois année) : ")
Lire(V[i].DateNaissance.Jour, V[i].DateNaissance.Mois,
V[i].DateNaissance.Année)
Ecrire("Entrer le sexe (M/F) : ")
Lire(V[i].Sexe)
Ecrire("Entrer le parcours : ")
Lire(V[i].Parcours)
FinPour
Fin

3. Procédure pour vérifier si un étudiant X existe dans le vecteur


Fonction ExisteEtudiant(V : Tableau de Etudiant, N : Entier, X : Etudiant) : Booléen
Début
Pour i ← 1 à N Faire
Si V[i].Matricule = X.Matricule Alors
Retourner Vrai
FinSi
FinPour
Retourner Faux
Fin

4. Procédure pour afficher les étudiants en fonction du parcours


Procédure AfficherParcours(V : Tableau de Etudiant, N : Entier, ParcoursCherche :
Chaine)
Début
Ecrire("Liste des étudiants du parcours ", ParcoursCherche, " : ")
Pour i ← 1 à N Faire
Si V[i].Parcours = ParcoursCherche Alors
Ecrire("Matricule : ", V[i].Matricule, ", Nom : ", V[i].Nom, ",
Prénom : ", V[i].Prénom)
FinSi
FinPour
Fin

Exercice 2 : Notion des Pointeurs en C


a. Fonction pour permuter deux variables avec des pointeurs
#include <stdio.h>

// Fonction qui échange les valeurs de deux entiers en utilisant les pointeurs
void permuter(int *a, int *b) {
int temp = *a; // Stockage temporaire de la valeur pointée par a
*a = *b; // Affectation de la valeur de b à a
*b = temp; // Affectation de la valeur temporaire à b
}

b. Programme principal qui demande deux valeurs et utilise la fonction permuter


#include <stdio.h>

void permuter(int *a, int *b); // Déclaration de la fonction

int main() {
int x, y;

// Demande des valeurs à l'utilisateur


printf("Entrez la première valeur : ");
scanf("%d", &x);

printf("Entrez la deuxième valeur : ");


scanf("%d", &y);

// Affichage avant permutation


printf("Avant permutation : x = %d, y = %d\n", x, y);

// Appel de la fonction permuter


permuter(&x, &y);

// Affichage après permutation


printf("Après permutation : x = %d, y = %d\n", x, y);

return 0;
}
Exercice 3 : Connaissance Générale
Comparaison entre Java et C en algorithmique

Aspect Java C
Paradigme Orienté Objet et Procédural Procédural
Niveau de Langage Haut niveau Bas niveau
Portabilité Très portable grâce à la JVM Dépendant du système d’exploitation
Gestion de la mémoire Automatique (Garbage Collector) Manuelle (malloc, free)
Exécution Interprété par la JVM Exécuté directement par l’OS

Analyse des blocs de code en algorithmique


Variable x : Entier
Début
x ← 5
Si x = 0 Alors
Ecrire("Zero")
Sinon
Ecrire("Non Zero")
FinSi
Fin

Sortie attendue : Non Zero

Code B (Accès aux éléments d’un tableau)

Variable Tab : Tableau[1..5] de Entier


Début
Tab ← [1, 2, 3, 4, 5]
Ecrire(Tab[3]) // Indice 3 correspond à la valeur 3
Fin

Sortie attendue : 3

Code C (Boucle while)

Variable i : Entier
Début
i ← 0
TantQue i < 3 Faire
Ecrire(i, " ")
i ← i + 1
FinTantQue
Fin

Sortie attendue : 0 1 2

Vous aimerez peut-être aussi