This commit is contained in:
Emmanuel Srivastava
2025-01-27 20:32:32 +01:00
parent d582a5055b
commit 4071ce2277
24 changed files with 568 additions and 4 deletions

40
DEV.1.1/CM3/Makefile Normal file
View File

@@ -0,0 +1,40 @@
### VARIABLES ###
CC = gcc
CFLAGS = -Wall \
-ansi \
-pedantic
EXE = exe
OFILES = ex3.o \
queue.o \
### BUT PAR DEFAUT ###
but : ${EXE}
### REGLES ESSENTIELLES ###
${EXE} : ${OFILES}
$(CC) $(CFLAGS) -o ${EXE} ${OFILES}
ex3.o : queue.h
queue.o : queue.h
### REGLES OPTIONNELLES ###
run : but
./${EXE}
clean :
-rm -f ${OFILES} ${EXE}
mrproper : clean but
### BUTS FACTICES ###
.PHONY : but clean mrproper
### FIN ###

Binary file not shown.

View File

@@ -22,12 +22,10 @@ int main(int argc, char *argv[]) {
return EXIT_FAILURE;
}
size_t read;
/* réecriture du texte dans le fichier temporaire en remplaçant les points d'interrogation grecs par des points-virgules*/
while(1){
read = fread(buffer, sizeof(*buffer),file)
if("0xCD" || "0xBE")
if () {
if(fread(file) == "0xCD" || "0xBE"){
perror("Erreur d'écriture dans le fichier temporaire");
fclose(file);
fclose(tempFile);

27
DEV.1.1/CM3/ex3.c Normal file
View File

@@ -0,0 +1,27 @@
#include <stdio.h>
#include <stdlib.h>
#include "queue.h"
int main(int argc, char *argv[]){
int i, ignores, somme;
for(i=0;i<=argc;i++){
if(argv[i]<10){
}else if(argv[i]>="a" || argv[i]<="z"){
while(argv[i]!=" "){
ignores = ignores + argv[i];
}
ignores = ignores + " ";
}else if(argv[i]<0 || argv[i]>0){
while(argv[i]!=" "){
somme = somme + argv[i];
}
}
}
printf("somme : %d\n", somme);
printf("ignorés : %s\n", ignores)
}

69
DEV.1.1/CM3/queue.c Normal file
View File

@@ -0,0 +1,69 @@
#include <stdlib.h>
#include "queue.h"
struct s_link {
unsigned value;
struct s_link *next;
};
typedef struct s_link link;
struct s_queue {
link *first; /* sortie */
link *last; /* entrée */
};
/* crée une file vide */
queue create_queue(void) {
return (queue) calloc(1, sizeof(struct s_queue));
}
/* ajoute un élément à la file. Renvoie 0 en cas d'échec */
int enqueue(queue the_queue, unsigned the_value) {
link *new = (link*) malloc(sizeof(link));
if (new == NULL) {
return 0;
}
new->value = the_value;
new->next = NULL;
if (the_queue->last == NULL) {
the_queue->first = new;
} else {
the_queue->last->next = new;
}
the_queue->last = new;
return 1;
}
/* renvoie 1 si la file est vide */
int empty(queue the_queue) {
return the_queue->first == NULL;
}
/* retire un élément de la file. Renvoie l'élément retiré, ou -1 en cas d'échec */
long dequeue(queue the_queue) {
if(the_queue->first == NULL) {
return -1;
}
link l = *(the_queue->first);
free(the_queue->first);
the_queue->first = l.next;
if (the_queue->first == NULL) {
the_queue->last = NULL;
}
return l.value;
}
/* détruit une file en libérant les ressources associées */
void destroy_queue(queue the_queue) {
link *current, *saved;
current = the_queue->first;
while(current != NULL) {
saved = current->next;
free(current);
current = saved;
}
free(the_queue);
}

22
DEV.1.1/CM3/queue.h Normal file
View File

@@ -0,0 +1,22 @@
#ifndef QUEUE_H
#define QUEUE_H
/* le type queue représente une file */
typedef struct s_queue *queue;
/* crée une file vide. Renvoie NULL en cas d'échec */
queue create_queue(void);
/* ajoute un élément à la file. Renvoie 0 en cas d'échec */
int enqueue(queue, unsigned);
/* renvoie 1 si la file est vide */
int empty(queue);
/* retire un élément de la file. Renvoie l'élément retiré, ou -1 en cas d'échec */
long dequeue(queue);
/* détruit une file en libérant les ressources associées */
void destroy_queue(queue);
#endif /* QUEUE_H */