This commit is contained in:
HORVILLE 2021-11-30 13:54:37 +01:00
parent cc9a68d4a1
commit 98e66379f9
9 changed files with 295 additions and 0 deletions

73
APL1.2/TP02/alterations.c Normal file
View File

@ -0,0 +1,73 @@
#include<stdio.h>
#include<stdlib.h>
#include<graph.h>
struct rectangle {
int x;
int y;
int xx;
int yy;
};
typedef struct rectangle rect;
void drawRect(rect Rekt) {
DessinerRectangle(Rekt.x, Rekt.y, Rekt.xx-Rekt.x, Rekt.yy-Rekt.y);
}
rect moveRect(rect Rekt, int x, int y) {
Rekt.x += x;
Rekt.y += y
Rekt.xx += x;
Rekt.yy += y;
return Rekt;
}
rect rotRectLeft(rect Rekt) {
}
rect rotRectRight(rect Rekt) {
}
int main(int argc, char * argv[]) {
InitialiserGraphique();
CreerFenetre(100,100,1200,700);
rect Rekt = {100,100,200,200};
int state = 0;
couleur white = CouleurParNom("white");
drawRect(Rekt);
while (1) {
if (ToucheEnAttente()) {
int key = Touche();
if (key == XK_Escape) return EXIT_SUCCESS;
}
if (SourisCliquee()) {
if (state == 0) {
Rekt.x = _X;
Rekt.y = _Y;
state = 1;
} else {
if (_X < Rekt.x ) {
Rekt.xx = Rekt.x;
Rekt.x = _X;
} else Rekt.xx = _X;
if (_Y < Rekt.y ) {
Rekt.yy = Rekt.y;
Rekt.y = _Y;
} else Rekt.yy = _Y;
state = 0;
drawRect(Rekt);
}
}
}
FermerGraphique();
return EXIT_SUCCESS;
}

35
APL1.2/TP02/complexes.c Normal file
View File

@ -0,0 +1,35 @@
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
struct nb_complex {
float real;
float imaginary;
};
typedef struct nb_complex complex;
float module(complex z) {
return sqrt(pow(z.real, 2) + pow(z.imaginary, 2));
}
complex conjugate(complex z) {
z.imaginary = -z.imaginary;
return z;
}
complex inverse(complex z) {
float a = z.real;
float b = z.imaginary;
z.real = a/(pow(a, 2) + pow(b, 2));
z.imaginary = -b/(pow(a, 2) + pow(b, 2));
return z;
}
int main(int argc, char * argv[]) {
complex a = {1.0f, 1.0f};
printf("%f\n", module(inverse(a)));
return EXIT_SUCCESS;
}

12
APL1.2/TP02/date.c Normal file
View File

@ -0,0 +1,12 @@
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(int argc, char * argv[]) {
time_t temps = time(NULL);
struct tm * timeInfos = localtime(&temps);
printf("Nous sommes le %4d-%2d-%2d\n", timeInfos->tm_year+1900, timeInfos->tm_mon, timeInfos->tm_mday);
return EXIT_SUCCESS;
}

14
APL1.2/TP02/groupe.c Normal file
View File

@ -0,0 +1,14 @@
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<grp.h>
#include<string.h>
int main(int argc, char * argv[]) {
struct group * students21 = getgrnam("students21");
char ** names = students21->gr_mem;
printf("%c", names[1]);
return EXIT_SUCCESS;
}

57
APL1.2/TP02/rectangles.c Normal file
View File

@ -0,0 +1,57 @@
#include<stdio.h>
#include<stdlib.h>
#include<graph.h>
struct rectangle {
int x;
int y;
int xx;
int yy;
};
typedef struct rectangle rect;
void drawRect(rect Rekt) {
DessinerRectangle(Rekt.x, Rekt.y, Rekt.xx-Rekt.x, Rekt.yy-Rekt.y);
}
int main(int argc, char * argv[]) {
InitialiserGraphique();
CreerFenetre(100,100,1200,700);
rect Rekt = {100,100,200,200};
int state = 0;
couleur white = CouleurParNom("white");
drawRect(Rekt);
while (1) {
if (ToucheEnAttente()) {
int key = Touche();
if (key == XK_Escape) return EXIT_SUCCESS;
}
if (SourisCliquee()) {
if (state == 0) {
Rekt.x = _X;
Rekt.y = _Y;
state = 1;
} else {
if (_X < Rekt.x ) {
Rekt.xx = Rekt.x;
Rekt.x = _X;
} else Rekt.xx = _X;
if (_Y < Rekt.y ) {
Rekt.yy = Rekt.y;
Rekt.y = _Y;
} else Rekt.yy = _Y;
state = 0;
drawRect(Rekt);
}
}
}
FermerGraphique();
return EXIT_SUCCESS;
}

15
APL1.2/TP02/tailles.c Normal file
View File

@ -0,0 +1,15 @@
#include<stdio.h>
#include<stdlib.h>
struct enregistrement {
int champ1;
char champ2;
char champ3;
};
int main(int argc, char * argv[]) {
struct enregistrement toto = {};
printf("%d\n", sizeof(toto));
return EXIT_SUCCESS;
}

54
APL1.2/TP03/challenger.c Normal file
View File

@ -0,0 +1,54 @@
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char * argv[]) {
FILE* flux;
flux = fopen("top10", "r");
int NewRank = atoi(argv[1]);
int added = 0;
char* ChallengerNames[11] = {};
int ChallengerRanks[11] = {};
int count = 0;
if (flux) {
do {
int rank;
char * name = calloc(4, sizeof(char));
fread(&rank, 4, 1, flux);
fread(name, 1, 3, flux);
if (rank < NewRank && !added) {
ChallengerNames[count] = calloc(4, sizeof(char));
strcpy(ChallengerNames[count], argv[2]);
ChallengerRanks[count] = NewRank;
added = 1;
count++;
}
ChallengerNames[count] = calloc(4, sizeof(char));
strcpy(ChallengerNames[count], name);
ChallengerRanks[count] = rank;
count++;
} while (!feof(flux));
fclose(flux);
flux = fopen("top10", "w");
if (flux) {
//printf("%d\n", count);
/*for (int i = 0; i < count-2; i++) {
printf("%s\n", ChallengerNames[i]);
fwrite(&ChallengerRanks[i], 4, 1, flux);
fwrite(&ChallengerNames[i], 1, 3, flux);
}*/
fclose(flux);
}
}
return EXIT_SUCCESS;
}

35
APL1.2/TP03/records.c Normal file
View File

@ -0,0 +1,35 @@
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char * argv[]) {
FILE* flux;
flux = fopen("top10", "r");
char name1[4] = "aaa";
char name2[4] = "bbb";
char name3[4] = "ccc";
if (flux) {
do {
int score;
char* name = calloc(3, sizeof(char));
fread(&score, 4, 1, flux);
fread(name, 1, 3, flux);
if (feof(flux)) break;
strcpy(name3, name2);
strcpy(name2, name1);
strcpy(name1, name);
} while (!feof(flux));
printf("1ere place : %s\n", name1);
printf("2eme place : %s\n", name2);
printf("3eme place : %s\n", name3);
fclose(flux);
}
return EXIT_SUCCESS;
}

BIN
APL1.2/TP03/top10 Normal file

Binary file not shown.