a
This commit is contained in:
commit
d9949b5cb0
BIN
APL1.1/1.Saisie/executable/Saisie
Normal file
BIN
APL1.1/1.Saisie/executable/Saisie
Normal file
Binary file not shown.
BIN
APL1.1/1.Saisie/executable/SaisieDouble
Normal file
BIN
APL1.1/1.Saisie/executable/SaisieDouble
Normal file
Binary file not shown.
BIN
APL1.1/1.Saisie/executable/SaisieGroupée
Normal file
BIN
APL1.1/1.Saisie/executable/SaisieGroupée
Normal file
Binary file not shown.
BIN
APL1.1/1.Saisie/executable/SaisieHexa
Normal file
BIN
APL1.1/1.Saisie/executable/SaisieHexa
Normal file
Binary file not shown.
BIN
APL1.1/1.Saisie/executable/VerifSaisie
Normal file
BIN
APL1.1/1.Saisie/executable/VerifSaisie
Normal file
Binary file not shown.
12
APL1.1/1.Saisie/source/Saisie.c
Normal file
12
APL1.1/1.Saisie/source/Saisie.c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#include<stdlib.h>
|
||||||
|
#include<stdio.h>
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
|
||||||
|
int entier = 1234;
|
||||||
|
printf("Entrez un entier :");
|
||||||
|
scanf("%d",&entier);
|
||||||
|
printf("L'entier tapé est : %d\n", entier);
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
14
APL1.1/1.Saisie/source/SaisieDouble.c
Normal file
14
APL1.1/1.Saisie/source/SaisieDouble.c
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#include<stdlib.h>
|
||||||
|
#include<stdio.h>
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
|
||||||
|
int entier1 = 1234, entier2 = 1234;
|
||||||
|
printf("Entrez le premier entier :");
|
||||||
|
scanf("%d",&entier1);
|
||||||
|
printf("Entrez le deuxieme entier :");
|
||||||
|
scanf("%d",&entier2);
|
||||||
|
printf("Le premier entier tapé est : %d, le second est : %d\n", entier1,entier2);
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
18
APL1.1/1.Saisie/source/SaisieGroupée.c
Normal file
18
APL1.1/1.Saisie/source/SaisieGroupée.c
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
int Bday,Bmonth,Byear,Aday,Amonth,Ayear;//B pour birth et A pour actual
|
||||||
|
|
||||||
|
printf("Veuillez entrez la date sous la forme JJ/MM/AA\nLa date : ");
|
||||||
|
scanf("%d/%d/%d", &Aday,&Amonth,&Ayear);
|
||||||
|
|
||||||
|
|
||||||
|
printf("Veuillez entrez votre date de naissance sous la forme JJ/MM/AA\nLa date : ");
|
||||||
|
scanf("%d/%d/%d", &Bday,&Bmonth,&Byear);
|
||||||
|
|
||||||
|
printf("Vous avez precisement %d ans, %d mois et %d jour\n", Ayear-Byear, Amonth-Bmonth, Aday-Bday);//comme on sous entend que la saisie est correct, on part du principe qu'une saisie correct est une saisie ou le jours,mois et l'année de naissance sont superieur a ceux de naissance
|
||||||
|
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
12
APL1.1/1.Saisie/source/SaisieHexa.c
Normal file
12
APL1.1/1.Saisie/source/SaisieHexa.c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#include<stdlib.h>
|
||||||
|
#include<stdio.h>
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
|
||||||
|
int valeur = 1234;
|
||||||
|
printf("Entrez une valeur hexadécimal :");
|
||||||
|
scanf("%x",&valeur);
|
||||||
|
printf("Votre valeur convertie en decimale est : %d\n", valeur);
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
17
APL1.1/1.Saisie/source/VerifSaisie.c
Normal file
17
APL1.1/1.Saisie/source/VerifSaisie.c
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#include<stdlib.h>
|
||||||
|
#include<stdio.h>
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
|
||||||
|
int valeur = 1234,verification;
|
||||||
|
printf("Entrez une valeur hexadecimal :");
|
||||||
|
|
||||||
|
verification = scanf("%x",&valeur);
|
||||||
|
if(verification==0){
|
||||||
|
printf("Veuillez saisir un nombre hexadecimal correct\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
printf("La representation decimale de votre saisie est : %d\n", valeur);
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
BIN
APL1.1/10.Adresses/source/Alphabet
Normal file
BIN
APL1.1/10.Adresses/source/Alphabet
Normal file
Binary file not shown.
31
APL1.1/10.Adresses/source/Alphabet.c
Normal file
31
APL1.1/10.Adresses/source/Alphabet.c
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
|
char lettre = 'A';
|
||||||
|
|
||||||
|
while(lettre!='Z'){
|
||||||
|
|
||||||
|
printf("%c\n", lettre);
|
||||||
|
lettre++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
=======
|
||||||
|
char min, maj;
|
||||||
|
char *p = NULL;
|
||||||
|
|
||||||
|
for(min = 'a', maj = 'A'; maj <= 'Z'; min++, maj++) {
|
||||||
|
p = (p == &min) ? &maj : &min;
|
||||||
|
putchar(*p);
|
||||||
|
}
|
||||||
|
putchar('\n');
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
>>>>>>> 9eb043aed352919d658fb0f434a13ff0f2d0f6e5
|
||||||
|
}
|
||||||
|
|
BIN
APL1.1/10.Adresses/source/Cartographie
Normal file
BIN
APL1.1/10.Adresses/source/Cartographie
Normal file
Binary file not shown.
28
APL1.1/10.Adresses/source/Cartographie.c
Normal file
28
APL1.1/10.Adresses/source/Cartographie.c
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
|
||||||
|
float A;
|
||||||
|
double B;
|
||||||
|
long double C;
|
||||||
|
char D;
|
||||||
|
short int E;
|
||||||
|
int F;
|
||||||
|
long long unsigned int G;
|
||||||
|
|
||||||
|
printf("%p\n",&A);
|
||||||
|
printf("%p\n",&B);
|
||||||
|
printf("%p\n",&C);
|
||||||
|
printf("%p\n",&D);
|
||||||
|
printf("%p\n",&E);
|
||||||
|
printf("%p\n",&F);
|
||||||
|
printf("%p\n",&G);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
0
APL1.1/10.Adresses/source/Mort-vivant.c
Normal file
0
APL1.1/10.Adresses/source/Mort-vivant.c
Normal file
11
APL1.1/10.Adresses/source/reponseAlphabet.txt
Normal file
11
APL1.1/10.Adresses/source/reponseAlphabet.txt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
Prédiction:
|
||||||
|
|
||||||
|
On peut voir tout d'abord que les variables de ce programme sont min,maj et le pointeur p ayant le valeur NULL affecté.
|
||||||
|
|
||||||
|
Ensuite nous avons une boucle qui va affecté 'a' a min et 'A' a maj et tant que maj est inferieur ou egal a Z ('d'un point de vue alphabetique) alors on passe a la lettre suivante pour min et pour maj. Dans la boucle on regarde si la valeur du pointeur p est egal a l'adresse de la variable min. Si oui on lui affecte l'adresse de maj sinon on lui affecte l'adresse de min. Apres cela on affiche la valeur de la variable pointé par p. Une fois la boucle fini, on affiche un retour a la ligne puis le programme se termine sans erreurs.
|
||||||
|
|
||||||
|
Au premier tour de la boucle, la valeur de p n'etant pas l'adresse de min , on affectera alors l'adresse de min a p puis on affichera la valeur de min qui sera 'a'. Au tour suivant le pointeur p aura la valeur de l'adresse de min et on affectera donc l'adresse de maj a p puis on affiche la valeur de maj qui est 'B'. Le programme continuera a afficher l'alphabet en alternant minuscule et majuscule mais chaque lettre n'apparaitra qu'une fois, le programme s'arretera des lors que maj sera egal a Z. Ensuite le programme affichera un retour a la ligne puis se terminera.
|
||||||
|
|
||||||
|
La ligne produite sera la suivante :
|
||||||
|
aBcDeFgHiJkLmNoPqRsTuVwXyZ
|
||||||
|
|
4
APL1.1/10.Adresses/source/reponseCartographie
Normal file
4
APL1.1/10.Adresses/source/reponseCartographie
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Apres avoir fait le plan je constate que les variables vont se placer dans la memoire dans un ordre croissant, je me rend aussi compte que
|
||||||
|
l'ordre ne change pas peut importe combien de fois l'on relance. Je me rend aussi compte que une adresse de la memoire represente un octet
|
||||||
|
et grace a la documentation du tp "Type" nous pouvons voir le nombre de bit (et donc d'octet) que fait chaque type de variable ce qui nous
|
||||||
|
aide a comprendre que l'ordre dans la memoire est croissant
|
4
APL1.1/10.Adresses/source/reponseCartographie.txt
Normal file
4
APL1.1/10.Adresses/source/reponseCartographie.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Apres avoir fait le plan je constate que les variables vont se placer dans la memoire dans un ordre croissant, je me rend aussi compte que
|
||||||
|
l'ordre ne change pas peut importe combien de fois l'on relance. Je me rend aussi compte que une adresse de la memoire represente un octet
|
||||||
|
et grace a la documentation du tp "Type" nous pouvons voir le nombre de bit (et donc d'octet) que fait chaque type de variable ce qui nous
|
||||||
|
aide a comprendre que l'ordre dans la memoire est croissant
|
BIN
APL1.1/10.Adresses/source/tes
Normal file
BIN
APL1.1/10.Adresses/source/tes
Normal file
Binary file not shown.
18
APL1.1/10.Adresses/source/tes.c
Normal file
18
APL1.1/10.Adresses/source/tes.c
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
|
||||||
|
char phrase[10];
|
||||||
|
int compteur;
|
||||||
|
|
||||||
|
scanf(" %c",&phrase[compteur]);
|
||||||
|
|
||||||
|
for(compteur=0;compteur<10;compteur++){
|
||||||
|
printf("%c", phrase[compteur]);
|
||||||
|
}
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
BIN
APL1.1/11.Chaine_de_caracteres/Multiplication
Normal file
BIN
APL1.1/11.Chaine_de_caracteres/Multiplication
Normal file
Binary file not shown.
31
APL1.1/11.Chaine_de_caracteres/Multiplication.c
Normal file
31
APL1.1/11.Chaine_de_caracteres/Multiplication.c
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]){
|
||||||
|
|
||||||
|
if(argc != 3){
|
||||||
|
|
||||||
|
printf("IL ya %d parametre. Veuillez utilisez 2 parametre svp.\n",argc);
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
double arg1 = strtod(argv[1],NULL);
|
||||||
|
double arg2 = strtod(argv[2],NULL);
|
||||||
|
|
||||||
|
printf("%.2lf\n",arg1*arg2);
|
||||||
|
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
Multiplication. Écrivez un programme qui affiche
|
||||||
|
le produit de ses deux premiers arguments
|
||||||
|
(on suppose que ce sont des entiers).
|
||||||
|
|
||||||
|
Que donne le programme quand un des arguments n'est pas un entier ? UN 0 POUR DES CHAR, CE QUIL YA AVANT LA VIRGULE POUR DES REEL
|
||||||
|
|
||||||
|
Quand un des arguments est manquant ?
|
||||||
|
Pouvez-vous améliorer le programme pour qu'il gère ces situations ?
|
||||||
|
*/
|
BIN
APL1.1/11.Chaine_de_caracteres/initiales
Normal file
BIN
APL1.1/11.Chaine_de_caracteres/initiales
Normal file
Binary file not shown.
18
APL1.1/11.Chaine_de_caracteres/initiales.c
Normal file
18
APL1.1/11.Chaine_de_caracteres/initiales.c
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
|
||||||
|
int main(int argc, char const *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
int compteur=0;
|
||||||
|
|
||||||
|
for (compteur = 1; compteur <= argc; compteur++){
|
||||||
|
|
||||||
|
printf("%1.1s\n",argv[compteur]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
//Initiales. Écrivez un programme qui affiche la première lettre de chacun de ses arguments.
|
||||||
|
|
BIN
APL1.1/13.Debogueur/source/doubleur
Normal file
BIN
APL1.1/13.Debogueur/source/doubleur
Normal file
Binary file not shown.
16
APL1.1/13.Debogueur/source/doubleur.c
Normal file
16
APL1.1/13.Debogueur/source/doubleur.c
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int somme(int n, int m) {
|
||||||
|
return n+m;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
int valeur;
|
||||||
|
int* p = &valeur;
|
||||||
|
printf("Entrez un entier : ");
|
||||||
|
scanf("%d", p);
|
||||||
|
|
||||||
|
printf("Le double vaut %d\n", somme(*p, *p));
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
24
APL1.1/13.Debogueur/source/envers.c
Normal file
24
APL1.1/13.Debogueur/source/envers.c
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<string.h>
|
||||||
|
|
||||||
|
|
||||||
|
void envers(const char texte[]) {
|
||||||
|
unsigned position;
|
||||||
|
for(position =
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
BIN
APL1.1/14.Organisation_du_code/exo1.tar.gz
Normal file
BIN
APL1.1/14.Organisation_du_code/exo1.tar.gz
Normal file
Binary file not shown.
41
APL1.1/14.Organisation_du_code/exo1/Makefile
Normal file
41
APL1.1/14.Organisation_du_code/exo1/Makefile
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# TP 19 Exercice 1 : fichier Makefile
|
||||||
|
|
||||||
|
# CHAPITRE 1 : BUT FINAL
|
||||||
|
|
||||||
|
but : exo1
|
||||||
|
|
||||||
|
# CHAPITRE 2 : VARIABLES
|
||||||
|
|
||||||
|
OFILES = lire.o \
|
||||||
|
personne.o \
|
||||||
|
repertoire.o \
|
||||||
|
main.o
|
||||||
|
|
||||||
|
CC = gcc
|
||||||
|
|
||||||
|
CFLAGS = -Wall -ansi -pedantic -g
|
||||||
|
|
||||||
|
# CHAPITRE 3 : DEPENDANCES (REGLES IMPLICITES)
|
||||||
|
|
||||||
|
personne.o : personne.h lire.h
|
||||||
|
|
||||||
|
repertoire.o : repertoire.h personne.h
|
||||||
|
|
||||||
|
main.o : personne.h repertoire.h
|
||||||
|
|
||||||
|
#CHAPITRE 4 : DEPENDANCES AVEC COMMANDES
|
||||||
|
|
||||||
|
lire.o : lire.s lire.h
|
||||||
|
as -o lire.o lire.s
|
||||||
|
|
||||||
|
exo1 : $(OFILES)
|
||||||
|
$(CC) $(CFLAGS) -o exo1 $(OFILES)
|
||||||
|
|
||||||
|
#CHAPITRE 5 : NETTOYAGE DES FICHIERS GENERES
|
||||||
|
|
||||||
|
clean :
|
||||||
|
-rm -f $(OFILES) exo1
|
||||||
|
|
||||||
|
#CHAPITRE 6 : BUTS FACTICES
|
||||||
|
|
||||||
|
.PHONY : but clean
|
BIN
APL1.1/14.Organisation_du_code/exo1/exo1
Normal file
BIN
APL1.1/14.Organisation_du_code/exo1/exo1
Normal file
Binary file not shown.
8
APL1.1/14.Organisation_du_code/exo1/lire.h
Normal file
8
APL1.1/14.Organisation_du_code/exo1/lire.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/* TP 19 Exercice 1 : fichier lire.h */
|
||||||
|
|
||||||
|
#ifndef LIRE_H
|
||||||
|
#define LIRE_H
|
||||||
|
|
||||||
|
void lire(char*, int);
|
||||||
|
|
||||||
|
#endif /* LIRE_H */
|
30
APL1.1/14.Organisation_du_code/exo1/lire.s
Normal file
30
APL1.1/14.Organisation_du_code/exo1/lire.s
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
.section .text
|
||||||
|
.globl lire
|
||||||
|
.type lire, @function
|
||||||
|
lire:
|
||||||
|
.LFB0:
|
||||||
|
.cfi_startproc
|
||||||
|
pushq %rbp
|
||||||
|
.cfi_def_cfa_offset 16
|
||||||
|
.cfi_offset 6, -16
|
||||||
|
movq %rsp, %rbp
|
||||||
|
.cfi_def_cfa_register 6
|
||||||
|
|
||||||
|
xorq %rdx, %rdx
|
||||||
|
movl %esi, %edx # taille max
|
||||||
|
movq %rdi, %rsi # adresse chaine
|
||||||
|
movq $0, %rax # read
|
||||||
|
movq $0, %rdi # stdin
|
||||||
|
decq %rdx # place du \0
|
||||||
|
syscall # call read
|
||||||
|
cmpb $10, -1(%rsi, %rax, 1) # si \n
|
||||||
|
jne lire_1
|
||||||
|
decq %rax
|
||||||
|
lire_1: movb $0, (%rsi, %rax, 1) # place \0
|
||||||
|
|
||||||
|
popq %rbp
|
||||||
|
.cfi_def_cfa 7, 8
|
||||||
|
ret
|
||||||
|
.cfi_endproc
|
||||||
|
.LFE0:
|
||||||
|
.size lire, .-lire
|
42
APL1.1/14.Organisation_du_code/exo1/main.c
Normal file
42
APL1.1/14.Organisation_du_code/exo1/main.c
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
/* TP19 Exercice 1 : fichier main.c */
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "personne.h"
|
||||||
|
#include "repertoire.h"
|
||||||
|
|
||||||
|
typedef enum {AJOUTER, AFFICHER, SORTIR} options;
|
||||||
|
|
||||||
|
options saisir_option() {
|
||||||
|
short o;
|
||||||
|
printf("\nChoisissez une option :\n");
|
||||||
|
printf("1] Ajouter une personne.\n");
|
||||||
|
printf("2] Afficher le repertoire.\n");
|
||||||
|
printf("3] Sortir\n");
|
||||||
|
printf("? ");
|
||||||
|
scanf("%hd", &o);
|
||||||
|
switch(o) {
|
||||||
|
case 1 : return AJOUTER;
|
||||||
|
case 2 : return AFFICHER;
|
||||||
|
case 3 : return SORTIR;
|
||||||
|
default : return AFFICHER;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
options opt;
|
||||||
|
repertoire r = construire_repertoire();
|
||||||
|
while ((opt=saisir_option())!=SORTIR)
|
||||||
|
switch(opt) {
|
||||||
|
case AJOUTER :
|
||||||
|
ajouter_personne(r, saisir_personne());
|
||||||
|
break;
|
||||||
|
case AFFICHER :
|
||||||
|
afficher_repertoire(r);
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
; /* rien a faire */
|
||||||
|
}
|
||||||
|
detruire_repertoire(r);
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
33
APL1.1/14.Organisation_du_code/exo1/personne.c
Normal file
33
APL1.1/14.Organisation_du_code/exo1/personne.c
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/* TP 19 Exercice 1 : fichier personne.c */
|
||||||
|
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<string.h>
|
||||||
|
#include "personne.h"
|
||||||
|
#include "lire.h"
|
||||||
|
|
||||||
|
personne construire_personne(const char *nom, const char *tel) {
|
||||||
|
personne p = (personne) malloc(sizeof(struct s_personne));
|
||||||
|
strcpy(p->nom, nom);
|
||||||
|
strcpy(p->tel, tel);
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
personne saisir_personne() {
|
||||||
|
personne p = (personne) malloc(sizeof(struct s_personne));
|
||||||
|
printf("\nEntrez le nom de la personne : ");
|
||||||
|
fflush(stdout);
|
||||||
|
lire(p->nom, 30);
|
||||||
|
printf("Entrez son numero de telephone : ");
|
||||||
|
fflush(stdout);
|
||||||
|
lire(p->tel, 20);
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
void afficher_personne(personne p) {
|
||||||
|
printf("%-30s %-20s\n", p->nom, p->tel);
|
||||||
|
}
|
||||||
|
|
||||||
|
void detruire_personne(personne p) {
|
||||||
|
free(p);
|
||||||
|
}
|
16
APL1.1/14.Organisation_du_code/exo1/personne.h
Normal file
16
APL1.1/14.Organisation_du_code/exo1/personne.h
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/* TP 19 Exercice 1 : fichier personne.h */
|
||||||
|
|
||||||
|
#ifndef PERSONNE_H
|
||||||
|
#define PERSONNE_H
|
||||||
|
|
||||||
|
typedef struct s_personne {
|
||||||
|
char nom[30];
|
||||||
|
char tel[20];
|
||||||
|
} * personne;
|
||||||
|
|
||||||
|
personne construire_personne(const char*, const char*);
|
||||||
|
personne saisir_personne();
|
||||||
|
void afficher_personne(personne);
|
||||||
|
void detruire_personne(personne);
|
||||||
|
|
||||||
|
#endif /* PERSONNE_H */
|
38
APL1.1/14.Organisation_du_code/exo1/repertoire.c
Normal file
38
APL1.1/14.Organisation_du_code/exo1/repertoire.c
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/* TP 19 Exercice 1 : fichier repertoire.c */
|
||||||
|
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<stdio.h>
|
||||||
|
#include "repertoire.h"
|
||||||
|
#include "lire.h"
|
||||||
|
|
||||||
|
repertoire construire_repertoire() {
|
||||||
|
repertoire r = (repertoire) malloc(sizeof(struct s_repertoire));
|
||||||
|
r->taille = 0;
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
void afficher_repertoire(repertoire r) {
|
||||||
|
int i = 0;
|
||||||
|
printf("\n%-30s %-20s\n", "Nom", "Telephone");
|
||||||
|
for(; i<r->taille; i++)
|
||||||
|
afficher_personne((r->personnes)[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
int ajouter_personne(repertoire r, personne p) {
|
||||||
|
if (r->taille<CAPACITE) {
|
||||||
|
(r->personnes)[r->taille] = p;
|
||||||
|
(r->taille)++;
|
||||||
|
return 0;
|
||||||
|
} else
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void detruire_repertoire(repertoire r) {
|
||||||
|
int i = r->taille;
|
||||||
|
while(i-->0) {
|
||||||
|
free((r->personnes)[i]);
|
||||||
|
}
|
||||||
|
free(r);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
20
APL1.1/14.Organisation_du_code/exo1/repertoire.h
Normal file
20
APL1.1/14.Organisation_du_code/exo1/repertoire.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/* TP 19 Exercice 1 : fichier repertoire.h */
|
||||||
|
|
||||||
|
#ifndef REPERTOIRE_H
|
||||||
|
#define REPERTOIRE_H
|
||||||
|
|
||||||
|
#include "personne.h"
|
||||||
|
|
||||||
|
#define CAPACITE 100
|
||||||
|
|
||||||
|
typedef struct s_repertoire {
|
||||||
|
int taille;
|
||||||
|
personne personnes[CAPACITE];
|
||||||
|
} * repertoire;
|
||||||
|
|
||||||
|
repertoire construire_repertoire();
|
||||||
|
void afficher_repertoire(repertoire);
|
||||||
|
int ajouter_personne(repertoire, personne);
|
||||||
|
void detruire_repertoire(repertoire);
|
||||||
|
|
||||||
|
#endif /* REPERTOIRE_H */
|
BIN
APL1.1/2.Conditions/executable/Couverture
Normal file
BIN
APL1.1/2.Conditions/executable/Couverture
Normal file
Binary file not shown.
BIN
APL1.1/2.Conditions/executable/Maximum
Normal file
BIN
APL1.1/2.Conditions/executable/Maximum
Normal file
Binary file not shown.
BIN
APL1.1/2.Conditions/executable/Mention
Normal file
BIN
APL1.1/2.Conditions/executable/Mention
Normal file
Binary file not shown.
BIN
APL1.1/2.Conditions/executable/Ordre
Normal file
BIN
APL1.1/2.Conditions/executable/Ordre
Normal file
Binary file not shown.
BIN
APL1.1/2.Conditions/executable/Produit
Normal file
BIN
APL1.1/2.Conditions/executable/Produit
Normal file
Binary file not shown.
BIN
APL1.1/2.Conditions/executable/Triple
Normal file
BIN
APL1.1/2.Conditions/executable/Triple
Normal file
Binary file not shown.
26
APL1.1/2.Conditions/source/Couverture.c
Normal file
26
APL1.1/2.Conditions/source/Couverture.c
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
|
||||||
|
float reponse;
|
||||||
|
|
||||||
|
printf("Couverture\n----------\nLe programme vous donnera le montant de votre franchise, veuillez entrez le montant des réparations : ");
|
||||||
|
scanf("%f",&reponse);
|
||||||
|
|
||||||
|
if(reponse<=200){
|
||||||
|
printf("L'entiereté des reparations seront a votre charge\n");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(reponse>=8000 ){
|
||||||
|
printf("Le montant de votre franchise s'éléve a 800€, la part prise en charge par l'assurance est de %f\n",reponse-800);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(reponse/10<=200 ){
|
||||||
|
printf("Le montant de votre franchise s'eleve a 200€ , la part prise en charge par l'assurance est de %f\n",reponse-200);
|
||||||
|
}
|
||||||
|
else printf("Le montant de votre franchise s'eleve a %f, la part prise en charge par l'assurance est de %f\n",reponse/10,reponse-reponse/10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
29
APL1.1/2.Conditions/source/Maximum.c
Normal file
29
APL1.1/2.Conditions/source/Maximum.c
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
|
||||||
|
int entier1,entier2,entier3;
|
||||||
|
|
||||||
|
printf("Maximum\n---------\nEntrez 3 entiers et le programme vous affichera le plus grand d'entre eux.\nVos 3 entiers : ");
|
||||||
|
scanf("%d %d %d", &entier1, &entier2, &entier3);
|
||||||
|
|
||||||
|
if (entier1 > entier2 && entier1 > entier3){
|
||||||
|
printf("Le plus grand de vos entiers est %d \n",entier1);
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
|
||||||
|
if (entier2 > entier1 && entier2 > entier3){
|
||||||
|
printf("Le plus grand de vos entiers est %d \n",entier2);
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
printf("Le plus grand de vos entiers est %d \n",entier3);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
35
APL1.1/2.Conditions/source/Mention.c
Normal file
35
APL1.1/2.Conditions/source/Mention.c
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
|
||||||
|
float reponse;
|
||||||
|
|
||||||
|
printf("Mention\n---------\nVeuillez entrez votre note, votre mention vous sera presenté.\nVotre note : ");
|
||||||
|
scanf("%f", &reponse);
|
||||||
|
|
||||||
|
|
||||||
|
if(reponse>20 || reponse<0){
|
||||||
|
printf("Veuillez entrez une note comprise entre 0 et 20\n");
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(reponse<12){
|
||||||
|
printf("Vous n'avez pas obtenue de mention, mais vous avez votre bac\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(reponse >= 12 && reponse < 14){
|
||||||
|
printf("Vous avez obtenu votre bac avec mention assez bien\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(reponse >=14 && reponse < 16){
|
||||||
|
printf("Vous avez obtenu votre bac avec mention bien\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
printf("Vous avez obtenu votre bac avec mention trés bien\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
41
APL1.1/2.Conditions/source/Ordre.c
Normal file
41
APL1.1/2.Conditions/source/Ordre.c
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#include<stdlib.h>
|
||||||
|
#include<stdio.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
|
||||||
|
int entier1, entier2, entier3;
|
||||||
|
|
||||||
|
printf("Ordre\n-------\nEntrez 3 entiers, le programme vous les affichera dans un ordre croissant\nVos 3 entiers : ");
|
||||||
|
scanf("%d %d %d",&entier1,&entier2,&entier3);
|
||||||
|
|
||||||
|
if (entier1>entier2){//comparaison toujours executer, 1/3
|
||||||
|
|
||||||
|
if(entier2>entier3 ){//comparaison executer dans le cas ou la precedente est verifier, 2/3
|
||||||
|
printf("Vos entier trier : %d>%d>%d\n",entier1,entier2,entier3);
|
||||||
|
}
|
||||||
|
|
||||||
|
else{
|
||||||
|
if(entier1>entier3){//comparaison executer si la precedente est fausse,3/3 au maximum dans l'execution
|
||||||
|
printf("Vos entier trier : %d>%d>%d\n",entier1,entier3,entier2);
|
||||||
|
}
|
||||||
|
|
||||||
|
else printf("Vos entier trier : %d>%d>%d\n",entier3,entier1,entier2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
if(entier1>entier3){ //comparaison executer si la precedente est fausse, 2/3
|
||||||
|
printf("Vos entier trier : %d>%d>%d\n",entier2,entier1,entier3);
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
if(entier2>entier3){//comparaison executer si la precedente est fausse,3/3 au maximum dans l'execution
|
||||||
|
printf("Vos entier trier : %d>%d>%d\n",entier2,entier3,entier1);
|
||||||
|
}
|
||||||
|
|
||||||
|
else printf("Vos entier trier : %d>%d>%d\n",entier3,entier2,entier1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
23
APL1.1/2.Conditions/source/Produit.c
Normal file
23
APL1.1/2.Conditions/source/Produit.c
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
int entier1,entier2;
|
||||||
|
|
||||||
|
printf("Produit\n-------\nEntrez deux entier et le signe de leur multiplication vous sera retournez.\nVos 2 entiers: ");
|
||||||
|
scanf("%d %d",&entier1,&entier2);
|
||||||
|
|
||||||
|
if(entier1<0 && entier2>0 || entier2<0 && entier1>0) { //si seulement un des deux entier est negatif alors le resultat est negatif
|
||||||
|
printf("Le resultat de %dx%d est negatif.\n",entier1,entier2);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(entier1==0 || entier2 ==0 ){ //si au moins un des 2 entiers est nul alors le resultat est nul
|
||||||
|
printf("Le résultat de %dx%d est nul.\n", entier1,entier2);
|
||||||
|
}
|
||||||
|
else //si aucune des condition precedente est remplie alors le resultat sera positif
|
||||||
|
printf("Le résultat de %dx%d est positif.\n", entier1,entier2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
28
APL1.1/2.Conditions/source/Triple.c
Normal file
28
APL1.1/2.Conditions/source/Triple.c
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#include<stdlib.h>
|
||||||
|
#include<stdio.h>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
|
||||||
|
int reponse,resultat;
|
||||||
|
|
||||||
|
printf("Triple\n-------\nLa valeur retourner sera celle du multiple de 3 le plus proche de votre valeur.\nVotre valeur : ");
|
||||||
|
scanf("%d", &reponse);
|
||||||
|
|
||||||
|
|
||||||
|
if(reponse%3 == 0){
|
||||||
|
resultat = reponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
if(reponse%3 == 1){
|
||||||
|
resultat = reponse-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
resultat = reponse+1;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Le multiple de 3 le plus proche de %d est %d\n",reponse,resultat);
|
||||||
|
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
BIN
APL1.1/3.Boucles-suite/progression
Normal file
BIN
APL1.1/3.Boucles-suite/progression
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user