update
This commit is contained in:
40
DEV.1.1/CM3/Makefile
Normal file
40
DEV.1.1/CM3/Makefile
Normal 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 ###
|
BIN
DEV.1.1/CM3/ex1
BIN
DEV.1.1/CM3/ex1
Binary file not shown.
@@ -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
27
DEV.1.1/CM3/ex3.c
Normal 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
69
DEV.1.1/CM3/queue.c
Normal 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
22
DEV.1.1/CM3/queue.h
Normal 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 */
|
Reference in New Issue
Block a user