← Campus BFTous les aperçus
L1Informatique

TD Informatique

TD d'Informatique L1 : exercices corrigés sur les bases de la programmation et l'algorithmique, avec méthode pas à pas pour rédiger et structurer chaque solution.

Université - Informatique Tous les sujets d’Informatique 4 sujets et une fiche de langage C Auteur : Campus BF Sommaire Informatique : codage de l’information, MS-DOS et logique combinatoire Informatique 2 : changements de base et afficheur 7 segments Informatique 2 : afficheur hexadécimal à quarante voyants Algorithmique : algorithmes et langage C Fiche : éléments du langage C Informatique : codage de l’information, MS-DOS et logique combinatoire Module : Informatique · Semestre 1 Question de cours L’objet d’un système informatique est l’information. Quels sont les 2 constituants de ce système et ses 3 objectifs vis-à-vis de l’information ? 1) Conversions entières Remplir le tableau suivant : Décimal Binaire Hexadécimal BCD 35 1101001 3E 10000101 2) Conversion en virgule flottante IEEE 754 (simple précision) Effectuer les conversions suivantes, en exposant la méthode : $(5{,}75)_{10}=(0\mathrm{x}\,\text{????????})_{\mathrm{IEEE754}}$ $(0\mathrm{x}2\mathrm{E}710000)_{\mathrm{IEEE754}}=(?)_{10}$ 3) Calcul en binaire Effectuer les opérations suivantes en binaire, en exposant la méthode : 1111111 + 1111111 --------- 1111110 − 111111 --------- 1111 × 111 ------ 101100 ÷ 100 ------------ 4) Commandes MS-DOS a) Créer l’arborescence suivante à l’aide des commandes MS-DOS : C:\ smp svi smc S1 S2 S3 M1 M2 Arborescence à créer b) Expliquer ce que font les commandes suivantes : cd c:\smc dir S3\M* > file1.txt dir ..\smp > file2.txt copy file?.txt ..\ 5) Réalisation d’un comparateur 2 bits On compare deux nombres binaires de 2 bits, $A=A_1A_0$ et $B=B_1B_0$ ($A_1$ et $B_1$ étant les bits de poids fort). Les trois sorties sont définies par : $E=1$ si $A=B$, sinon $E=0$ ; $A=B$ si ($A_1=B_1$ et $A_0=B_0$) $S=1$ si $A>B$, sinon $S=0$ ; $A>B$ si $A_1>B_1$ ou ($A_1=B_1$ et $A_0>B_0$) $I=1$ si $A<B$, sinon $I=0$ ; $A<B$ si $A_1<B_1$ ou ($A_1=B_1$ et $A_0<B_0$) Remplir le tableau logique, puis dessiner le tableau de Karnaugh de la sortie $S$. En déduire la fonction simplifiée de $S$, la factoriser, puis dessiner son logigramme. $A_1$ $A_0$ $B_1$ $B_0$ $E$ $S$ $I$ 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 ↑ Retour au sommaire Informatique 2 : changements de base et afficheur 7 segments Module : Informatique 2 · Durée : 1 h 30 · Documents non autorisés Exercices : Conversion d’une base $X$ à une base $Y$ $(1101)_2 = (?)_{10}$ (1 point) $(1\mathrm{A}7)_{16} = (?)_{10}$ (1 point) $(123)_6 = (?)_{10}$ (1 point) $(1\mathrm{ABC})_{16} = (?)_{10}$ (1 point) $35 = (?)_3$ (1 point) $(345\mathrm{B})_{16} = (?)_2$ (1 point) Problème : Afficheur 7 segments (10 points) X e0 e1 e2 e3 a b c d e f g afficheur 7 segments 0 1 2 3 4 5 6 7 8 9 A b C d E F Composant $X$ relié à l’afficheur 7 segments (chiffres 0 à F) Trouver le schéma interne du composant $X$. Ses 4 entrées représentent en binaire un nombre entre 0 et 15 ; ses 7 sorties commandent les segments $a$ à $g$ de l’afficheur, qui doit montrer le chiffre hexadécimal correspondant. Convention : un 0 allume un segment, un 1 l’éteint. Remarque 1 : Donner toutes les étapes intermédiaires. Remarque 2 : Présentation notée sur 3 points. ↑ Retour au sommaire Informatique 2 : afficheur hexadécimal à quarante voyants Module : Informatique 2 · Durée : 1 h 30 · Documents non autorisés L’alimentation et les quarante voyants Un afficheur alphanumérique hexadécimal est réalisé par une matrice de $8\times 5$ diodes électroluminescentes (40 voyants) repérées de $\mathrm{D}_{11}$ à $\mathrm{D}_{85}$ ($i$ = ligne, $j$ = colonne). La figure du sujet montre, pour chaque chiffre hexadécimal de 0 à F, le motif de diodes allumées / éteintes (ex. : diode $\mathrm{D}_{12}$ allumée, $\mathrm{D}_{15}$ éteinte, $\mathrm{D}_{44}$ allumée…). Chaque caractère hexadécimal est codé par 5 informations d’entrée $(a,b,c,d,e)$ : Caractère $a$ $b$ $c$ $d$ $e$ 0 1 1 0 0 0 1 0 0 0 0 1 2 0 0 0 1 0 3 0 0 0 1 1 4 0 0 1 0 0 5 0 0 1 0 1 6 0 0 1 1 0 7 0 0 1 1 1 8 0 1 0 0 0 9 0 1 0 0 1 A 0 1 0 1 0 B 0 1 0 1 1 C 0 1 1 0 0 D 0 1 1 0 1 E 0 1 1 1 0 F 0 1 1 1 1 Travail demandé Compléter le pseudo-tableau de Karnaugh en y plaçant les caractères $0,1,2,\dots,\mathrm{F}$ (les caractères 4, 9 et F sont déjà placés). $abc$ $de$ 000 001 011 010 110 111 101 100 00 4 01 9 11 F 10 Déterminer l’expression de la fonction erreur $X$ ($X=1$ lorsque la combinaison d’entrée ne correspond pas à un des 16 chiffres affichables). Câbler $X$ avec uniquement : Boîtier 1 : 4 portes NAND 2 entrées Boîtier 2 : 4 portes AND 2 entrées Boîtier 3 : 4 portes OR 2 entrées ↑ Retour au sommaire Algorithmique : algorithmes et langage C Module : Algorithmique · Semestre 2 · Durée : 1 h 30 Question Si un utilisateur (un client) vous demande de lui faire un programme sur ordinateur pour résoudre un problème donné, quelles sont les 5 étapes par lesquelles vous allez passer pour faire ce qu’il a demandé ? Exercice 1 Écrire un algorithme qui demande à l’utilisateur un entier $n$ strictement positif et un réel $x$ quelconque, puis calcule et affiche $S_1$, $S_2$ et $S_3$ tels que : $$\begin{aligned}S_1&=1+2+3+\cdots+n,\\ S_2&=1+x+x^2+x^3+\cdots+x^n,\\ S_3&=1\cdot x+2\cdot x^2+3\cdot x^3+\cdots+n\cdot x^n.\end{aligned}$$ Exercice 2 Écrire un algorithme puis le programme correspondant en langage C , qui lit un entier naturel $n$ puis calcule et affiche le terme $S_n$ de la suite : $$\begin{cases}S_0=5,\\ S_n=10+3\cdot S_{n-1}&\text{pour } n>0.\end{cases}$$ Exercice 3 Écrire un programme en langage C qui lit un texte de taille maximale 300 caractères, puis affiche : $N$ = nombre de fois que la lettre 'a' (majuscule ou minuscule) apparaît $M$ = nombre de mots (nombre d’espaces ' ' plus 1, les mots étant séparés par un seul espace) $K$ = nombre de paragraphes (nombre de retours à la ligne : caractère '\n' , de code ASCII 10 ; la touche Entrée lue avec getch() renvoie le code 13) Exercice 4 Écrire l’algorithme qui lit un tableau $T$ de taille $n$ ($1 \le n \le 100$) à éléments entiers, puis calcule et affiche : la moyenne de tous les éléments le minimum et le maximum du tableau Exercice 5 (optionnel) Écrire en langage C l’algorithme de l’exercice 4, en rajoutant le classement du tableau dans l’ordre croissant . ↑ Retour au sommaire Fiche : éléments du langage C Aide-mémoire Les instructions if pour les comparaisons : if (Nombre >= 0) printf("C'est vrai\n"); else printf("C'est faux\n"); for pour une boucle à nombre fixe d’itérations : for (i = 0; i < 20; i++) { Tableau[i] = i; } while et do…while pour boucler tant que la condition est vraie. while évalue la condition avant chaque tour ; do…while l’évalue après (le corps est exécuté au moins une fois) : i = 0; while (i < 10) { Tableau[i] = i; i++; } i = 0; do { Tableau[i] = i; i++; } while (i < 10); switch pour départager selon la valeur d’une variable : switch (i) { case 1: printf("i vaut un\n"); break; case 2: printf("i vaut deux\n"); break; case 3: printf("i vaut trois\n"); break; default: printf("autre chose\n"); break; } Types de variables Type Exemple de déclaration int int i, j, k; short short EntierDe16Bits; long long EntierDe32Bits; char char c; (8 bits) float float VirguleFlottante; double double HautePrecision; unsigned char unsigned char Chaine[20]; unsigned char * unsigned char *Pointeur; int (tableau) int TableauDEntiers[10][4]; Les tailles indiquées (16 bits pour short , 32 bits pour long ) sont celles des compilateurs usuels ; la norme garantit seulement au moins 16 bits pour short et au moins 32 bits pour long . scanf et printf scanf("control", &arg1, &arg2, ...); printf("control", arg1, arg2, ...); Code Signification %c caractère %s chaîne de caractères %d entier décimal %f réel [-]mmm.nnnnnn %e / %E réel mantisse/exposant %g / %G forme la plus courte entre %e et %f %o entier octal %x / %X entier hexadécimal %u entier non signé %p pointeur / adresse Avec scanf , un double se lit avec %lf ; avec printf , %f convient aux float comme aux double . Exemple de programme simple #include <stdio.h> #include <stdlib.h> int main(void) { printf("Bonjour le monde\n"); system("pause"); return 0; } system("pause") est propre à Windows : elle garde la fenêtre ouverte à la fin du programme. Opérateurs Opérateur Description + - * / % Addition, soustraction, multiplication, division, reste (modulo) ++ -- Incrémentation, décrémentation >> << Décalage de bits & | ^ ~ ET, OU, OU exclusif, NON binaires == != Égalité, inégalité < <= > >= Comparaisons && || ! ET, OU, NON logiques = Affectation simple += -= *= /= Affectations composées ↑ Retour au sommaire Tous les sujets d’Informatique Auteur : Campus BF

🔒 L'énoncé complet et le corrigé de cet exercice sont réservés aux membres Premium ou disponibles via le forfait adapté.

S'abonner pour lire la suite Voir le document