Вы находитесь на странице: 1из 14

Travaux Dirigés n°4 : chaînes de caractères

Exercice 1

Ecrire une fonction int nombre_caract(char *chaîne) qui retourne la


taille d’une chaîne de caractères.

Exercice 2

Ecrire la fonction void concatene_chaines(char *debut_chaine,


char *ajout) qui concatène les deux chaînes de caractères (la seconde à la suite de la
première).

Exercice 3

Ecrire une fonction char* min2maj(char *chaine) qui alloue une chaîne de
caractères de la même taille que celle en entrée, recopie la chaîne mais en changeant toutes les
lettres minuscules en majuscules.

Exercice 4

Ecrire une fonction int compte_mots(char *phrase) qui compte le nombre


de mots dans une phrase (on considérera que les mots ne sont séparés que par un seul espace,
et ne contient pas de ponctuation).

Exercice 5

Ecrire une fonction char** decompose_en_mots(char *phrase) qui


décompose une chaîne en un tableau de chaînes de caractères (dont on allouera et renverra un
double pointeur).
Travaux Dirigés n°5 : algorithmes de tri

Exercice 1
Ecrire la fonction de recherche dichotomique d’un élément dans un tableau. Discuter
de l’intérêt de la méthode en comparant avec une méthode de recherche exhaustive..

Exercice 2
Ecrire le programme de tri par sélection et permutation. Application par exemple au tri
par ordre alphabétique d’une liste de noms rangés dans un tableau de chaines (utiliser la
fonction int strcmp(char *, char *)).

Exercice 3
Ecrire le programme du tri par bulle.

Exercice 4
Ecrire le programme du tri par décalage et insertion ...
Travaux Dirigés n°6 : algorithmes de tri

Exercice 1
Ecrire la fonction de recherche dichotomique d’un élément dans un tableau. Discuter
de l’intérêt de la méthode en comparant avec une méthode de recherche exhaustive.

Exercice 2
Ecrire le programme de tri par sélection et permutation. Application par exemple au tri
par ordre alphabétique d’une liste de noms rangés dans un tableau de chaînes (utiliser la
fonction int strcmp(char *, char *)).

Exercice 3
Ecrire le programme du tri par bulle.

Exercice 4
Ecrire le programme du tri par décalage et insertion ...
Travaux Dirigés n°7 : structures

Exercice 1
Définir la structure permettant de stocker un point. Ecrire les fonctions permettant de saisir un
point et d’afficher un point. Définir un tableau permettant de stocker un ensemble de points
(version statique et version dynamique).

Exercice 2
Définir la structure permettant de représenter un nombre complexe. Définir les fonctions
complexes suivantes (passages par valeur) :
– double imag(Complex z),
– double real(Complex z),
– Complex mul(Complex z1, Complex z2),
– double abs(Complex z),
Réécrire ces fonctions en utilisant le passage par adresses.

Exercice 3
Ecrire un programme de saisie de données pour un répertoire (nom, prénom, téléphone). Ces
données doivent être placées dans un tableau de structures, chacune d’elles contenant un
enregistrement. Le programme devra contenir une fonction d’affichage de toutes les données.
Travaux Dirigés n°8 : listes chaînées

Exercice 1
Rappeler l’intérêt du passage par adresse des structures.

Exercice 2
Manipulation des listes chaînées : reprendre l’exercice 3 du TD 3 (gestion d’un répertoire).
– Redéfinir la structure représentant une adresse et permettant un chaînage avant des éléments
de la liste ;
– Définir la fonction de création et de saisie d’un nouvel élément ;
– Ecrire la fonction d’ajout d’un élément en tête de liste ;
– Ecrire la fonction d’ajout d’un élément en fin de liste ;
– Ecrire la fonction permettant l’affichage de la liste ;
– Ecrire la fonction permettant de retirer un élément de la liste selon le critère suivant :
nom=... ET prenom=... ;
– Ecrire la fonction permettant de saisir une liste
– Ecrire la fonction permettant de libérer la liste.
TP no 1 C

L’objectif du tp est la manipulation de chaîne de caractères, ainsi que les algorithmes de tri.

Important : Il est impératif de tester chaque fonction écrite dans la fonction main() pour s’assurer de
son bon fonctionnement. Il n’est pas raisonable d’écrire tout l’exercice et de se lancer dans l’execution à
la fin. On valide chaque brique séparement et on avance pas à pas.

1 Rappels
1.1 Saisie de chaînes de caractères
La fonction standard scanf(char *format, ...) permet de saisir des chaînes de caractères. Mais at-
tention, pour cette fonction le caractère blanc (espace) est également un caractère séparateur. scanf() ne
peut donc saisir une chaîne comportant plusieurs mots séparés en une seule fois. Une autre fonction de la
librairie stdio.h permet se saisir une chaîne composée de plusieur mots : gets(char *). Cette fonction
cependant est d’un emploi dangereux car aucun controle de longueur de la chaîne saisie ne peut être fait.
On lui préfèrera donc une troisième fonction de la même librairie, fgets(char*, int, FILE*), mais qui
sera expliquée plus tard avec les fonctions de manipulation de fichiers. Voici un exemple d’utilisation de
cette fonction :

#include <stdio.h>

void main(void)
{
char chaine[21];
printf("saisir une chaine d’au plus 20 caractères : ");
fgets(chaine,20,stdin);
printf("chaine saisie = %s\n",chaine);
}

Si la longueur de la chaîne tapée par l’utilisateur devait dépasser 20, seuls les 20 premiers caractères
seraient pris en compte. Aucune erreur de dépassement de tableau n’est donc possible.

1
1.2 Tri à bulle
1.2.1 Principe
Le principe consiste à parcourir les éléments de l’ensemble de i=0 à n-1 en permuttant les éléments
consécutifs non ordonnés. L’élément le plus grand se trouve alors en bonne position. On recommence la
procédure pour l’ensemble de i=0 à n-2 sauf si aucune permutation n’a été nécessaire à l’étape précédente.
Les éléments les plus grands se déplacent ainsi comme des bulles vers la droite du tableau.

1.2.2 Illustration
Le tableau suivant illustre le fonctionnement du tri à bulle sur un tableau d’entiers :

1.2.3 Algorithme
En pseudo-code, l’algorithme est le suivant :

2
2 Travail à faire
2.1 Manipulation de chaînes de caractères.
Réalisez et testez, à fur et mesure, chacune des fonctions ci-dessous.

– Ecrire une fonction


int compte_caract(char *chaine)
qui compte le nombre de caractères dans une chaîne de caractères.

– Ecrire une fonction


char * saisie_chaine()
qui saisie une chaîne de caractères. Puis alloue et renvoie un pointeur sur cette chaîne de caractères.

– Ecrire une procédure


void affiche_chaine(char *chaine)
qui affiche à l’écran, la chaîne de caractère passée en argument.

– Ecrire une fonction


int compte_espace(char *chaine)
qui compte le nombre d’espaces dans une chaîne de caractères.

– Ecrire une fonction


int compte_mot(char *chaine)
qui compte le nombre de mots dans une phrase simple (on supposera que les mots sont séparés par un
caractère espace unique).

– Ecrire une fonction


char *maj2min(char *mot)
qui convertit toutes les majuscules d’un mot en minuscules.

2.2 Tri de chaînes de caractères


Utilisez les fonctions et les procédures précédentes pour réaliser les fonctions suivantes.

– Ecrire une fonction


char **decompose_mot(char *chaine)
qui décompose une phrase en un tableau de chaînes de caractères ; chaque case du tableau comptera
un mot de la chaîne passée en argument d’entrée.

– Ecrire une fonction


int compare_ch(char *ch1, char*ch2)
qui compare deux chaînes de caractères ch1 et ch2 ; cette fonction renvoie 0 si les deux chaînes de carac-
tères sont égales. Si les deux chaînes de caractères ne sont pas égales, la fonction renvoie la différence
en code ascii des deux premiers caractères différents dans la chaîne.

– Créer une fonction


char **compare_ch(char **chaîne, int Nb_mots)
qui trie un tableau de chaînes de caractères par ordre alphabétique, à l’aide de l’algorithme de tri
à bulle. Il est important de créer des fonctions et procédures pour réaliser les sous tâches comme la
permutation,...

– Créer une fonction principale


void main()
utilisant toutes les procédures et fonctions précédentes.

3
TP no 2 C

Le but du tp est de vous aider, à vous familiariser avec les concepts d’allocations dynamiques et de
structures de données.

Important : Il est impératif de tester chaque fonction écrite dans la fonction main() pour s’assurer de
son bon fonctionnement. Il n’est pas raisonable d’écrire tout l’exercice et de se lancer dans l’execution à
la fin. On valide chaque brique séparement et on avance pas à pas.

3 Préparation du TP
Il important de procéder au travail de préparation sans lequel il serait illusoire de penser finir le TP.
Prenez le temps de comprendre les bases et de faire les exercices préparatoires, et rappelez vous que ce
qui importe c’est le chemin qui mène à la solution et non la solution elle même. Sans les connaissances de
base ce tp n’est en aucun envisageable. Préparez aussi l’ensemble des exercices avant de venir, la séance
de tp doit être un échange entre vous et l’encadrant et non une séance de découverte. La préparation du
TP et donc primordiale. La préparation aborde simplement les connaissances de bases nécéssaires.

3.1 Allocation dynamique et tableaux


Dans la fonction main(), chronologiquement :

– Déclarer une variable a et un pointeur p de type int.


– Initialiser p à partir de l’adresse de a. Initialiser a à la valeur 10 par l’intermédiaire de p. Afficher a
et le contenu de l’adresse pointée par p.
– Allouer de la mémoire de la taille d’un int et stocker l’adresse de retour dans p.
Question : est il nécéssaire d’appeler la fonction free avec cette allocation ?
– Remplir la case allouée avec la valeur 4, afficher le contenu de la case.
– Déclarer la variable b et la remplir en additionnant le contenu de a avec le contenu de la case allouée.
Afficher b.
– Cette fois p demande la mémoire en fonction d’une entrée utilisateur. Initialiser toutes les cases du
tableau ainsi alloué à la valeur 0.
Question : que convient il de faire avant d’allouer le tableau ? comment s’appele cette erreur ?

3.2 Variables qui contiennent l’adresse d’un pointeur


– Ecrire dans le main() les code suivant :

int a, *b,**c;

Quel est le type de chaque variable ?


– Initialiser b à partir de a.
– Initialiser c à partir de b.
– Initialiser a à partir de c à la valeur 10.
– Afficher deux fois le contenu de a à l’écran en passant par b et c.

3.3 Mise au point sur les structures de données


Soit la structure de données suivante :

4
typedef struct mas
{
int elem1;
float elem2;
}MAS;

– Déclarer au sein de la fonction main() deux variables a, b de type MAS. Initialisez les variables avec
des valeurs, et procédez au tranfert du contenu de la variable b dans a. Comment feriez vous ?
– Quel est le type de chacune des variables suivantes : a.elem1, a.eleme2. Ecrire en utilisant un scanf
la ligne qui permet de remplir ces champs.

4 Travail à faire
On commencera la séance par préalablement tester sur machine ce que vous avez préparé. Dans un second
temps on passera aux exercices qui suivent.

4.1 Exercice
Les trois premières questions sont assez classiques (c’est du cours), celles qui suivent sont une application
du concept d’un pointeur qui contient l’adresse d’un autre pointeur. Ces fonctions sont très courtes car
elles vont chacune appeler les trois premières fonctions écrites.
– Ecrire une fonction int* allouertab(int) ; qui reçoit un nombre d’éléments et alloue un tableau qui a
le nombre de cases désiré.
– Ecrire la fonction void remplirtab(int*, int) ; qui reçoit un tableau et son nombre de cases et procède
à la saisie par l’utilisateur du contenu de ses cases.
– Ecrire la fonction void affichertab(int*, int) ; qui reçoit un tableau et son nombre de cases et procède
à l’affichage de son contenu.
– Ecrire une fonction int** allouersupertab(int) ; qui crée un tableau où chaque case de ce tableau
(dont le nombre de cases et donné en argument) est une adresse sur un int. Concretement chaque case
du tableau contiendra un int*.
– Ecrire la fonction void remplirsupertab(int**,int) ; qui reçoit le tableau d’adresses sur int et son
nombre de cases, et procède au remplissage du tableau d’adresses. Le remplissage doit s’effectuer en
stockant dans chaque case du tableau d’adresses, l’adresse d’un tableau d’entiers qui proviendra de
l’appel de la fonction allouertab précédemment écrite.
– Ecrire la fonction void remplirsupertabtab(int**,int) ; qui reçoit le tableau d’adresses et son
nombre d’éléments et procède au remplissage des tableaux d’entiers (dont l’adresse de début est stockée
dans les cases du tableau) par l’utilisateur. On utilisera pour cela la fonction remplirtab précédemment
écrite.
– Ecrire la fonction void affichesupertabtab(int**,int) ; qui reçoit le tableau d’adresses et son nombre
d’éléments et procède à l’affichage des tableaux d’entiers pointés par les cases du tableau. On utilisera
pour cela la fonction affichertab.

4.2 Exercice
Soit la structure de données suivante :
typedef struct lss
{
int nb,*tab;
}LSS;

– Ecrire la fonction LSS* creerstructure(int) ; La fonction commence par allouer de la mémoire pour
un LSS. La fonction reçoit un entier qui servira aussi à initaliser le champ nb. On utilise alors le champ
nb duement rempli pour allouer un tableau d’entiers qui aura nb cases. On stockera l’adresse de ce

5
tableau dans le champ tab. Le tableau alloué devra être initalisé à zéro. On retournera l’adresse de la
structure LSS que l’on aura alloué au sein de la fonction.
– Ecrire la fonction void affichestructure(LSS*) ; qui reçoit l’adresse d’une variable de type LSS et
procède à l’affichage de tous ses champs de données, le contenu du tableau alloué y compris, bien sur
s’il existe (il se peut qu’il n’a pas été alloué).
– Ecrire la fonction void transfertcontenu(LSS*src, LSS*dest) ; qui transfert le contenu d’une va-
riable de type LSS* dans une autre variable de type LSS*. Les deux variables étant passées par adresse.
On se rappellera que le transfert devra transferer le contenu intégral du tableau de la source vers celui
de la destination. En effet si le tableau de la destination ne convient pas avec la taille de la source (ou
bien trop petit ou trop grand), on désallouera le tableau de la destination pour le réallouer pour qu’il
soit de la même taille que celui de la source, et on mettera à jour le champ nb de la destination
Question : Que peut on dire de l’affectation dans le cas de cet exercice comparé à celui demandé dans
la préparation du tp ? qu’est ce qui change ?
– Ecrire une fonction void remplirtablss(LSS* var,int ind, int val) ; qui reçoit l’adresse d’une
variable de type LSS ainsi que deux variables de type int. Le but de la fonction est de ranger le
contenu de la variable val à la case dont l’indice est contenu dans la variable ind. Tout cela au sein du
tableau alloué par la variable var de type LSS passée par adresse.
– Dans la fonction main(), créer dynamiquement un tableau de type LSS à partir d’une valeur entrée par
l’utilisateur. Ecrire une fonction void saisirtout(LSS*) ; qui sert à remplir le tableau et une fonction
void affichetout(LSS*) ; laquelle comme son nom l’indique affiche le contenu de chaque case du
tableau.

6
TP no 3 C

5 Préparation du TP
Il est impératif d’avoir terminé le TP précédent car les listes chaînées ne sont qu’une variation autour du
thème de la structure. Ce TP est très long et demande une bonne préparation.

5.1 Variation autour du thème de la structure


On considère les deux structures suivante :
typedef struct mastruc typedef struct liste
{ {
int nb; int nb;
int *t; struct liste *suivant;
} MASTRUC; } LISTE;

– La structure de droite est celle vue dans le TP précédent. Celle de gauche diffère sur un point très
léger, lequel ?
– Dans la fonction main() déclarez deux variables de type LISTE, a et b. Remplir les champs de chaque
variable et initialiser les pointeurs à NULL. Pour chaque variable, afficher le contenu du champ nb.
– Initialiser le champ suivant de a avec l’adresse de b. Maintenant en utilisant juste la variable a afficher
à l’écran le contenu des champs nb pour a et b.
– On déclare maintenant deux pointeurs de type LISTE, *p et *q, reprendre les questions précédentes
(sans utiliser ni a ni b) en utilisant cette fois seulement les deux pointeurs.

6 Travail à faire
On commencera la séance par préalablement tester sur machine ce que vous avez préparé. Dans un second
temps on passera aux exercices qui suivent.

Pour chaque question de chaque exercice il conviendra de tester chaque fonction séparement, on procède
pas à pas en testant chaque fonction dans le main() avant de passer à la question suivante.
Il y aura un fichier par exercice.

6.1 Exercice
Soit la structure suivante :

typedef struct liste


{
int nb;
struct liste *suivant;
}LISTE;
– Ecrire la fonction LISTE *creer_maillon() qui alloue de la mémoire pour un élément de type
LISTE et retourne son adresse. On initialisera impérativement suivant à NULL. Question : Pourquoi
retourne-t-on l’adresse de l’élément alloué ? aurais-t-on pu déclarer tout simplement une variable dans
la fonction et retourner son adresse ? pourquoi ?. Pourquoi initialiser le champ suivant à NULL ?

7
– Ecrire la fonction void affiche_maillon(LISTE*) qui affiche le contenu d’un élément de type LISTE
passé par adresse et ne retourne rien. Question : Pourquoi ne retourne-t-on rien ?
– Ecrire la fonction LISTE * chainage_avant(LISTE*,LISTE*) qui reçoit la tête de la liste chaînée
et l’adresse du maillon à insérer et procède à son insertion à la première position. On retourne l’adresse
du premier maillon de la liste chaînée. Question : pourquoi retourne-t-on l’adresse de la liste chaînée ?
– Ecrire la fonction LISTE * chainage_arriere(LISTE*,LISTE*) qui reçoit la tête de la liste chaînée
et l’adresse du maillon à insérer et procède à son insertion à la dernière position. On retourne l’adresse
du premier maillon de la liste chaînée.
– Ecrire la fonction void affiche_liste(LISTE*) qui reçoit la tête de la liste chaînée et affiche le contenu
du champ nb de tous les maillons.
– Ecrire la fonction void supprime_liste(LISTE*) qui reçoit la tête de la liste chaînée et procède à
la libération mémoire de tous ses maillons.
– Ecrire la fonction LISTE *chaine_listes(LISTE*, LISTE*) qui reçoit deux listes chaînées et les
chaîne pour n’en former plus qu’une, on retournera la tête de la nouvelle chaîne.
– Dans le main() créer deux listes chaînées, les remplir à partir d’entrées utilisateurs (on utilisera un
type de chaînage par liste). Les listes chaînées devront avoir au minimum 10 éléments. Les afficher puis
chaîner les deux listes, pour n’avoir plus qu’une seule. Afficher le contenu de la nouvelle liste puis on
supprimera tous les maillons alloués.

6.2 Exercice
Soit la structure suivante :

typedef struct liste


{
int nb;
char nom[30], tel[10];
struct liste *suivant,*precedent;
}LISTE;

La seule différence avec l’exercice précédent tient au fait que cette liste est doublement chaînée, c’est à
dire que chaque maillon possède l’adresse de l’élément qui le suit mais aussi de celui qui le précède.

– Reprendre les six premières questions de l’exercice précédent avec la nouvelle structure.
– Ecrire la fonction LISTE *trouver_element(LISTE*, int) qui reçoit la liste chaînée et un entier.
La fonction doit parcourir la liste à la recherche d’un élément dont le champ nb serait égal à l’entier
passé en argument. On retournera l’adresse de ce maillon, si jamais l’élément n’existe pas on retournera
NULL.
– Ecrire la fonction LISTE *supprime_maillon(LISTE*, LISTE*) qui reçoit la tête de la liste
chaînée et l’adresse du chaînon à supprimer et retourne la tête de la liste. Question : quel est l’intérêt
de retourner la tête de la liste dans ce cas ci ?
– Ecrire la fonction LISTE *trouve_et_supprime(LISTE*, int) qui reçoit la liste chaînée et un
entier et procède à l’élimination de tous les maillons dont la valeur est multiple de l’entier passé en
argument. Rappel : n’oubliez pas les vertues de l’opérateur % sur les entiers.
– Ecrire la fonction LISTE *trier_liste(LISTE*) qui reçoit une liste chaînée et procède à son tri par
la méthode du tri à bulle. On retournera la tête de la liste chaînée ainsi triée. Attention : on n’utilisera
pas une nouvelle liste chaînée.
– Ecrire la fonction LISTE *insérer_element(LISTE*,LISTE*) qui reçoit une liste chaînée et
l’adresse d’un maillon et procède à son insertion au sein de la liste à la place qui conviendra pour
qu’elle reste triée. On retournera la tête de la liste chaînée.
– Dans le main() écrire l’application qui permet de gérer un repertoire téléphonique en utilisant l’en-
semble des fonctions écrites. Note : on utilisera la fonction switch pour les menus.

8
TP no 4 C, Révision Générale

7 Problème
On considère la structure doublement chaînée suivante :

typedef struct unmot


{
char *mot;
struct unmot *suiv,*prec;
} UNMOT;
– Le but de la liste chaînée à écrire est de contenir des mots (chaînes de caractères), chaque maille de la
liste devra contenir un mot que l’utilisateur aura entré. Ecrire les fonctions qui gèrent une liste chaînée
de type UNMOT, on aura besoin de chaînage arrière, d’affichage de la liste, de suppression de la
liste, affichage et allocation d’une maille ... et de tout ce que vous jugerez utile par la suite. Toutes ces
fonctions doivent maintenant être écrites de manière rapide et ne doivent plus présenter une difficulté
particulière.
– Ecrire la fonction void decoupephrase(char*) qui reçoit une phrase dans une chaîne de caractères et
qui procède au découpage de la phrase en mots qu’il faudra afficher un à un à l’écran. On supposera
que les mots sont séparés par un seul espace. On utilisera fgets pour saisir la chaîne de caractères.
– Modifier la fonction précédente mais cette fois au lieu d’afficher les mots, on les stockera dans une
liste chaînée de type UNMOT. Cette liste chaînée contiendra à la fin du découpage de la phrase, une
maille par mot. La fonction aura pour prototype UNMOT* decoupephraseenliste(char*) ; elle recevra
la chaîne de caractère et retournera la tête de la liste chaînée ainsi remplie.
– Allouer dans le main un tableau que portera le nom de Texte qui aura DIM cases (DIM défini en
#define), le tableau contiendra des adresses sur le type UNMOT* (type UNMOT **).
– Ecrire la fonction void remplirligne(UNMOT **, UNMOT*, int) ; qui reçoit une liste chaînée contenant
des mots et le tableau Texte (déclaré dans le main) et procède au stockage de la tête de la liste chaînée
dans le tableau Texte à la case donnée en argument int.
– Ecrire la fonction int remplirtexte(UNMOT**), qui reçoit le tableau texte et procède à son remplissage
à partir des entrées utilisateurs. Le procédé de remplissage est le suivant : L’utilisateur tape une phrase
qui est stockée dans une chaine de caractères, on suppose que la chaine de caractères n’excède pas 80
caractères. On découpe la phrase en mots et on stocke les mots dans une liste chaînée. On stocke la tête
liste chaînée contenant les mots dans le tableau Texte à la case qui correspond au numéro de la ligne
en cours. Le numero de ligne est initialisé à zéro et s’incrémente selon le nombre de phrases entrées.
On retournera le nombre de lignes saisies.
– Ecrire la fonction void Affichetexte(UNMOT**,int) qui reçoit le tableau Texte et le nombre de ligne
et affiche tous les mots stockés.
– Ecrire une fonction qui transforme tous les mots de Texte de minuscules à majuscules. void Mina-
maj(UNMOT**,int) on reçoit le tableau et le nombre de lignes.
– Ecrire la fonction void supprimeligne(UNMOT**,int,int), qui reçoit le tableau et le nombre de lignes
et le numéro de la ligne à supprimer et qui procède à l’élimination de la ligne. On procèdera à une
destruction de la liste chaînée puis à un décalage pour combler la disparition de la ligne. Ecrire la
fonction void supprimetout(UNMOT**,int) qui supprime toutes lignes.
– Ecrire la fonction void remplacemot(UNMOT**,char*,char*,int) qui reçoit le tableau Texte et son
nombre de lignes et deux mots stockés dans deux chaînes de caractères et procède au remplacement
du premier mot par le deuxième dans tout le texte saisi.

Вам также может понравиться

  • Révision Corrigée
    Révision Corrigée
    Документ14 страниц
    Révision Corrigée
    karim
    Оценок пока нет
  • ASD2
    ASD2
    Документ40 страниц
    ASD2
    el_mamoun1
    100% (1)
  • Série de TD #1: Exercice 1
    Série de TD #1: Exercice 1
    Документ8 страниц
    Série de TD #1: Exercice 1
    Abderrahmane AE
    Оценок пока нет
  • TP2 TR744
    TP2 TR744
    Документ3 страницы
    TP2 TR744
    Saadallah Sebbagh
    Оценок пока нет
  • TP3-Programmation Procédurale
    TP3-Programmation Procédurale
    Документ3 страницы
    TP3-Programmation Procédurale
    Salma Dk
    Оценок пока нет
  • TD Programmation C
    TD Programmation C
    Документ2 страницы
    TD Programmation C
    Mostapha Aghzar
    Оценок пока нет
  • CNC Informatique 2015
    CNC Informatique 2015
    Документ5 страниц
    CNC Informatique 2015
    Farouq El-Abbass
    Оценок пока нет
  • TP 1
    TP 1
    Документ4 страницы
    TP 1
    Lamethyste
    Оценок пока нет
  • Série N 3
    Série N 3
    Документ3 страницы
    Série N 3
    Zaghbani Habib
    100% (1)
  • Cours Structures de Donnees
    Cours Structures de Donnees
    Документ107 страниц
    Cours Structures de Donnees
    Saad Chakkor
    100% (2)
  • TP5 Java TDI
    TP5 Java TDI
    Документ4 страницы
    TP5 Java TDI
    Fatima Ezzahra
    Оценок пока нет
  • TD - TP - 4 - Types Structurés
    TD - TP - 4 - Types Structurés
    Документ5 страниц
    TD - TP - 4 - Types Structurés
    Boutayna J03
    Оценок пока нет
  • Rattrapage 1
    Rattrapage 1
    Документ8 страниц
    Rattrapage 1
    calabi mozart
    Оценок пока нет
  • tp6 PDF
    tp6 PDF
    Документ4 страницы
    tp6 PDF
    Amen
    Оценок пока нет
  • Introduction À l'IA Et Au Deep Learning: TP N°1: P P
    Introduction À l'IA Et Au Deep Learning: TP N°1: P P
    Документ38 страниц
    Introduction À l'IA Et Au Deep Learning: TP N°1: P P
    Amani Gharbi
    Оценок пока нет
  • TP Info Python 2012-2013 tp4
    TP Info Python 2012-2013 tp4
    Документ8 страниц
    TP Info Python 2012-2013 tp4
    zemer
    Оценок пока нет
  • TP6 Python
    TP6 Python
    Документ6 страниц
    TP6 Python
    Isabelle de Agostini
    Оценок пока нет
  • CNC 2015
    CNC 2015
    Документ7 страниц
    CNC 2015
    526wz7qdz5
    Оценок пока нет
  • Tpinfopython
    Tpinfopython
    Документ6 страниц
    Tpinfopython
    oueslati.hella
    Оценок пока нет
  • TP4 Introduction A Numpy Et Matplotlib
    TP4 Introduction A Numpy Et Matplotlib
    Документ11 страниц
    TP4 Introduction A Numpy Et Matplotlib
    achref douss
    Оценок пока нет
  • Bpi TD 04 Boucles For Et While
    Bpi TD 04 Boucles For Et While
    Документ3 страницы
    Bpi TD 04 Boucles For Et While
    mhmdahmdnbyl18
    Оценок пока нет
  • td2 C++
    td2 C++
    Документ3 страницы
    td2 C++
    aya
    Оценок пока нет
  • TP4 Nouvelle Version
    TP4 Nouvelle Version
    Документ5 страниц
    TP4 Nouvelle Version
    slim yaich
    Оценок пока нет
  • FST TD Inf1301
    FST TD Inf1301
    Документ9 страниц
    FST TD Inf1301
    Idrissa Kouyaté
    Оценок пока нет
  • Fonction Python
    Fonction Python
    Документ7 страниц
    Fonction Python
    Khouloud Bjaoui Bouzidi
    Оценок пока нет
  • Travaux Pratiques N 3 Les Fonctions Py
    Travaux Pratiques N 3 Les Fonctions Py
    Документ3 страницы
    Travaux Pratiques N 3 Les Fonctions Py
    Monçef A'r
    Оценок пока нет
  • Chap1 Initiation Python - Partie3 PDF
    Chap1 Initiation Python - Partie3 PDF
    Документ4 страницы
    Chap1 Initiation Python - Partie3 PDF
    EL MAMOUN ABDELLAH
    Оценок пока нет
  • Lic2 S3 TD PDF
    Lic2 S3 TD PDF
    Документ15 страниц
    Lic2 S3 TD PDF
    Saleh Bgf
    100% (1)
  • TD& TP Sur Les Listes Chainées Avec Solution
    TD& TP Sur Les Listes Chainées Avec Solution
    Документ6 страниц
    TD& TP Sur Les Listes Chainées Avec Solution
    Sari Abdou
    50% (2)
  • TD2 Pointeurs
    TD2 Pointeurs
    Документ2 страницы
    TD2 Pointeurs
    mazouzizied08
    Оценок пока нет
  • Examen 2011
    Examen 2011
    Документ2 страницы
    Examen 2011
    ihsen gasmi
    Оценок пока нет
  • DL 1
    DL 1
    Документ2 страницы
    DL 1
    Chérif Kagni
    Оценок пока нет
  • TD Java
    TD Java
    Документ15 страниц
    TD Java
    Scherlerf Boroussė
    Оценок пока нет
  • Fonctions 1
    Fonctions 1
    Документ2 страницы
    Fonctions 1
    Nina Ruffieux
    Оценок пока нет
  • Cours 1 Info
    Cours 1 Info
    Документ7 страниц
    Cours 1 Info
    Hamici
    Оценок пока нет
  • TP4
    TP4
    Документ12 страниц
    TP4
    infocompute
    100% (1)
  • Introduction Python TP1 Elargi
    Introduction Python TP1 Elargi
    Документ15 страниц
    Introduction Python TP1 Elargi
    briandiffo0123
    Оценок пока нет
  • Exercices de Programmation en Langage C
    Exercices de Programmation en Langage C
    Документ2 страницы
    Exercices de Programmation en Langage C
    Abdelhak Fadili
    Оценок пока нет
  • TP 5
    TP 5
    Документ1 страница
    TP 5
    Mohamed Useddik
    Оценок пока нет
  • Passage de Paramètres Par Référence: #Include Using Namespace Void
    Passage de Paramètres Par Référence: #Include Using Namespace Void
    Документ2 страницы
    Passage de Paramètres Par Référence: #Include Using Namespace Void
    Monia Ben Mlouka
    Оценок пока нет
  • Guide Proteusv7
    Guide Proteusv7
    Документ3 страницы
    Guide Proteusv7
    Watsop
    Оценок пока нет
  • TP STD
    TP STD
    Документ7 страниц
    TP STD
    azert
    Оценок пока нет
  • TP1 PDF
    TP1 PDF
    Документ5 страниц
    TP1 PDF
    NasrineBoukaroura
    Оценок пока нет
  • TD 1
    TD 1
    Документ3 страницы
    TD 1
    ihsen gasmi
    Оценок пока нет
  • Composition de Programmes
    Composition de Programmes
    Документ15 страниц
    Composition de Programmes
    michel ulrich
    Оценок пока нет
  • TD 3 - Programmation en Langage C
    TD 3 - Programmation en Langage C
    Документ2 страницы
    TD 3 - Programmation en Langage C
    Oumixa Ben
    Оценок пока нет
  • CNC 2015
    CNC 2015
    Документ7 страниц
    CNC 2015
    reda ouadi
    Оценок пока нет
  • TP 02 For
    TP 02 For
    Документ3 страницы
    TP 02 For
    Mohamed Marouf
    Оценок пока нет
  • Exercices Fonctions
    Exercices Fonctions
    Документ2 страницы
    Exercices Fonctions
    dawoud.kenzari
    Оценок пока нет
  • Initiation Au Langage R Partie2
    Initiation Au Langage R Partie2
    Документ53 страницы
    Initiation Au Langage R Partie2
    omayma
    Оценок пока нет
  • TP FreeFem
    TP FreeFem
    Документ12 страниц
    TP FreeFem
    AS as
    Оценок пока нет
  • 3 Efm Algorithme PDF
    3 Efm Algorithme PDF
    Документ3 страницы
    3 Efm Algorithme PDF
    Salwa Ben
    50% (2)
  • TP Les Listes
    TP Les Listes
    Документ4 страницы
    TP Les Listes
    Guillaume MESSAL
    Оценок пока нет
  • TP1: Initiation À MATLAB: I. Présentation de MATLAB
    TP1: Initiation À MATLAB: I. Présentation de MATLAB
    Документ9 страниц
    TP1: Initiation À MATLAB: I. Présentation de MATLAB
    Amine Ben Ata
    Оценок пока нет
  • TP3 Poo
    TP3 Poo
    Документ5 страниц
    TP3 Poo
    Sa3id Boubaker
    Оценок пока нет
  • Java Sujet
    Java Sujet
    Документ6 страниц
    Java Sujet
    YOUPI
    Оценок пока нет
  • TP1 Fonction
    TP1 Fonction
    Документ3 страницы
    TP1 Fonction
    hassanoubohssaine
    Оценок пока нет
  • TD 1
    TD 1
    Документ5 страниц
    TD 1
    Jingjing Sha
    Оценок пока нет
  • Bien débuter avec Numbers: Formation professionnelle
    Bien débuter avec Numbers: Formation professionnelle
    От Everand
    Bien débuter avec Numbers: Formation professionnelle
    Оценок пока нет
  • Les macros avec OpenOffice CALC: La programmation BASIC pour tous
    Les macros avec OpenOffice CALC: La programmation BASIC pour tous
    От Everand
    Les macros avec OpenOffice CALC: La programmation BASIC pour tous
    Оценок пока нет
  • Cours HTML
    Cours HTML
    Документ167 страниц
    Cours HTML
    Adil Khalki
    Оценок пока нет
  • Feuille de Soins AtlantaSanad 2021
    Feuille de Soins AtlantaSanad 2021
    Документ2 страницы
    Feuille de Soins AtlantaSanad 2021
    Adil Khalki
    100% (1)
  • Support C JacquelinCharbonnel
    Support C JacquelinCharbonnel
    Документ60 страниц
    Support C JacquelinCharbonnel
    Adil Khalki
    Оценок пока нет
  • Procédure - Désinfection Maison Conseils Aux Familles Machraa PDF
    Procédure - Désinfection Maison Conseils Aux Familles Machraa PDF
    Документ2 страницы
    Procédure - Désinfection Maison Conseils Aux Familles Machraa PDF
    Adil Khalki
    Оценок пока нет
  • Cours M104 Web Statique
    Cours M104 Web Statique
    Документ30 страниц
    Cours M104 Web Statique
    Adil Khalki
    Оценок пока нет
  • Formation Node Expressjs 617c0eb091742
    Formation Node Expressjs 617c0eb091742
    Документ41 страница
    Formation Node Expressjs 617c0eb091742
    Adil Khalki
    Оценок пока нет
  • Formulaire AE-200219-976521 197092
    Formulaire AE-200219-976521 197092
    Документ3 страницы
    Formulaire AE-200219-976521 197092
    Adil Khalki
    Оценок пока нет
  • Extrait PV Systéme Archivage
    Extrait PV Systéme Archivage
    Документ1 страница
    Extrait PV Systéme Archivage
    Adil Khalki
    Оценок пока нет
  • Algorithmique Et C
    Algorithmique Et C
    Документ73 страницы
    Algorithmique Et C
    Ayoub Chahir
    Оценок пока нет
  • TB Arnaud Labarbe 04-10
    TB Arnaud Labarbe 04-10
    Документ46 страниц
    TB Arnaud Labarbe 04-10
    Adil Khalki
    Оценок пока нет
  • Correction 2016 V1 Coursyapp
    Correction 2016 V1 Coursyapp
    Документ13 страниц
    Correction 2016 V1 Coursyapp
    Adil Khalki
    Оценок пока нет
  • Exercices en C Chaine Et Tri Backup
    Exercices en C Chaine Et Tri Backup
    Документ14 страниц
    Exercices en C Chaine Et Tri Backup
    Adil Khalki
    Оценок пока нет
  • Architecture Des Ordinateurs
    Architecture Des Ordinateurs
    Документ56 страниц
    Architecture Des Ordinateurs
    Adil Khalki
    Оценок пока нет
  • Cours SQL SH PDF
    Cours SQL SH PDF
    Документ89 страниц
    Cours SQL SH PDF
    zermed
    Оценок пока нет
  • Cours Visual Basic PDF
    Cours Visual Basic PDF
    Документ600 страниц
    Cours Visual Basic PDF
    Salah Gharbi
    Оценок пока нет
  • Energie Internet
    Energie Internet
    Документ108 страниц
    Energie Internet
    Adil Khalki
    Оценок пока нет
  • Classe IP Paul Canourgues
    Classe IP Paul Canourgues
    Документ9 страниц
    Classe IP Paul Canourgues
    Joy Muhayirwa Jkm
    Оценок пока нет
  • Reseau
    Reseau
    Документ47 страниц
    Reseau
    ELKADDOURI
    Оценок пока нет
  • Programmation Oriente Objets
    Programmation Oriente Objets
    Документ23 страницы
    Programmation Oriente Objets
    damare
    100% (3)
  • Les Achats Et Appro
    Les Achats Et Appro
    Документ6 страниц
    Les Achats Et Appro
    Adil Khalki
    Оценок пока нет
  • Programmation Oriente Objet
    Programmation Oriente Objet
    Документ115 страниц
    Programmation Oriente Objet
    Adil Khalki
    100% (1)
  • Exercice S
    Exercice S
    Документ83 страницы
    Exercice S
    Adil Khalki
    Оценок пока нет
  • Veille Technologique
    Veille Technologique
    Документ40 страниц
    Veille Technologique
    zakariachalikh
    Оценок пока нет
  • Vbnet
    Vbnet
    Документ289 страниц
    Vbnet
    Safae Amine
    Оценок пока нет
  • Algorithm Es Vo Races Complete N Latex
    Algorithm Es Vo Races Complete N Latex
    Документ14 страниц
    Algorithm Es Vo Races Complete N Latex
    Adil Khalki
    Оценок пока нет
  • Vo Races
    Vo Races
    Документ14 страниц
    Vo Races
    Adil Khalki
    Оценок пока нет
  • Exo VB .Net Serie 3 AD
    Exo VB .Net Serie 3 AD
    Документ5 страниц
    Exo VB .Net Serie 3 AD
    Adil Khalki
    Оценок пока нет
  • Traitement 2010
    Traitement 2010
    Документ8 страниц
    Traitement 2010
    Adil Khalki
    Оценок пока нет
  • 03 Structures
    03 Structures
    Документ52 страницы
    03 Structures
    Adil Khalki
    Оценок пока нет
  • Chap-3-Tri Et Recherche
    Chap-3-Tri Et Recherche
    Документ14 страниц
    Chap-3-Tri Et Recherche
    francjunior012
    Оценок пока нет
  • Chapitre 03
    Chapitre 03
    Документ20 страниц
    Chapitre 03
    ma llek
    Оценок пока нет
  • NSI - Première Lycée Édouard Branly Complexité: Complexité D'un Algorithme
    NSI - Première Lycée Édouard Branly Complexité: Complexité D'un Algorithme
    Документ3 страницы
    NSI - Première Lycée Édouard Branly Complexité: Complexité D'un Algorithme
    yuki
    Оценок пока нет
  • Create A Checksum en Java
    Create A Checksum en Java
    Документ4 страницы
    Create A Checksum en Java
    khalidihajar
    Оценок пока нет
  • Recherche Operationnelle 2
    Recherche Operationnelle 2
    Документ15 страниц
    Recherche Operationnelle 2
    Zineb
    Оценок пока нет
  • TD Ro 3 2022 2023
    TD Ro 3 2022 2023
    Документ2 страницы
    TD Ro 3 2022 2023
    elammaryibtissam777
    Оценок пока нет
  • Corrigé Fiche Recursivité
    Corrigé Fiche Recursivité
    Документ5 страниц
    Corrigé Fiche Recursivité
    bassirou kane
    Оценок пока нет
  • 1 Abr
    1 Abr
    Документ29 страниц
    1 Abr
    Hass Nnann
    Оценок пока нет
  • Ordonnancement D'atelier
    Ordonnancement D'atelier
    Документ8 страниц
    Ordonnancement D'atelier
    Hamza Saffaj
    Оценок пока нет
  • M Ethode de Richardson
    M Ethode de Richardson
    Документ10 страниц
    M Ethode de Richardson
    Henoc GAKPETO
    Оценок пока нет
  • TP-explication Bernoulli
    TP-explication Bernoulli
    Документ4 страницы
    TP-explication Bernoulli
    chaimae guerma
    Оценок пока нет
  • Corrigé s2 PDF
    Corrigé s2 PDF
    Документ5 страниц
    Corrigé s2 PDF
    Islam Benaniba
    Оценок пока нет
  • Com Num PDF
    Com Num PDF
    Документ3 страницы
    Com Num PDF
    Naoumi Akila
    Оценок пока нет
  • Thèse Complète Elong
    Thèse Complète Elong
    Документ120 страниц
    Thèse Complète Elong
    Nihad Ha
    Оценок пока нет
  • 2-DPR Cours Oct2019
    2-DPR Cours Oct2019
    Документ2 страницы
    2-DPR Cours Oct2019
    djossinkou cabrel
    Оценок пока нет
  • Algo Python Comp
    Algo Python Comp
    Документ31 страница
    Algo Python Comp
    safae hmaidi
    Оценок пока нет
  • TD6 Corrig
    TD6 Corrig
    Документ7 страниц
    TD6 Corrig
    hafedh
    Оценок пока нет
  • TD Corrige
    TD Corrige
    Документ6 страниц
    TD Corrige
    Sobour AKANDE
    Оценок пока нет
  • Modèles D'algorithmes D'optimisation Et D'approximation
    Modèles D'algorithmes D'optimisation Et D'approximation
    Документ3 страницы
    Modèles D'algorithmes D'optimisation Et D'approximation
    belhajala25
    0% (1)
  • DC3 3si Algo 2009 2010
    DC3 3si Algo 2009 2010
    Документ2 страницы
    DC3 3si Algo 2009 2010
    Nizar Sdiri
    100% (1)
  • Examen Module ASD Avec Corrigé Type Univ Setif Promo 2007-2008
    Examen Module ASD Avec Corrigé Type Univ Setif Promo 2007-2008
    Документ6 страниц
    Examen Module ASD Avec Corrigé Type Univ Setif Promo 2007-2008
    Hanine Rouibah
    Оценок пока нет
  • Cours Liste PDF
    Cours Liste PDF
    Документ17 страниц
    Cours Liste PDF
    pc Express30
    Оценок пока нет
  • Protocole Diffussion 2009-2 PDF
    Protocole Diffussion 2009-2 PDF
    Документ32 страницы
    Protocole Diffussion 2009-2 PDF
    phuoc
    Оценок пока нет
  • B Arbre
    B Arbre
    Документ12 страниц
    B Arbre
    Massiré Sacko
    Оценок пока нет
  • Présentation Compléments Algo
    Présentation Compléments Algo
    Документ308 страниц
    Présentation Compléments Algo
    kambouian
    Оценок пока нет
  • PLNE
    PLNE
    Документ109 страниц
    PLNE
    ZINEB BELBACHIR
    Оценок пока нет
  • Resolution Problemes 12
    Resolution Problemes 12
    Документ25 страниц
    Resolution Problemes 12
    takwa grouchi
    Оценок пока нет
  • Partiel02 03
    Partiel02 03
    Документ1 страница
    Partiel02 03
    Badreddine Essaidi
    Оценок пока нет
  • Regles D'Associations
    Regles D'Associations
    Документ28 страниц
    Regles D'Associations
    As Mae
    0% (1)
  • RCP101 Cours2 Chemins Optimaux
    RCP101 Cours2 Chemins Optimaux
    Документ28 страниц
    RCP101 Cours2 Chemins Optimaux
    Vatan Bölünmez
    Оценок пока нет