This commit is contained in:
unknown 2022-01-14 06:54:18 +01:00
commit d9949b5cb0
288 changed files with 6425 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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;
}

View 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;
}

View 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;
}

View 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;
}

View 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;
}

Binary file not shown.

View 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
}

Binary file not shown.

View 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;
}

View File

View 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

View 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

View 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

Binary file not shown.

View 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;
}

Binary file not shown.

View 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 ?
*/

Binary file not shown.

View 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.

Binary file not shown.

View 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;
}

View 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;
}

Binary file not shown.

View 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

Binary file not shown.

View 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 */

View 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

View 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;
}

View 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);
}

View 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 */

View 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);
}

View 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 */

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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;
}

View 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;
}

View 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;
}

View 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;
}

View 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;
}

View 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;
}

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More