Compare commits

..

2 Commits

Author SHA1 Message Date
Simoes Lukas
af0a212997 SCR et DEV 2024-10-09 09:59:41 +02:00
Simoes Lukas
7d319d2d6a Fin TP 14 2024-10-06 17:22:04 +02:00
8 changed files with 397 additions and 30 deletions

View File

@ -112,7 +112,6 @@ int main(void) {
int i;
int j;
int k;
int nb_lignes;
/* t1 */
for (i = 0; i != 2; i++) {
for (j = 0; j != 5; j++) {
@ -139,19 +138,38 @@ int main(void) {
}
}
/* Affichage des tableaux */
nb_lignes = 2
for (i = 0; i != 3; i++) {
for (j = 0; j != 5; j++) {
for (k = 0; k != 2; k++) {
/* TO DO */
for (j = 0; j != 5; j++) {
for (i = 0; i != 17; i++) {
if (i < 5) {
if (j >= 2) {
printf(" ");
}
else {
printf("%.2d ", t1[j][i]);
}
}
/* BAKA */
else if (i == 5 | i == 11) {
printf(" ");
}
else if (i > 5 && i < 11) {
if (j >= 3) {
printf(" ");
}
else {
printf("%.2d ", t2[j][i-6]);
}
}
else {
printf("%.2d ", t3[j][i-12]);
}
}
}
printf("\n");
}
return EXIT_SUCCESS;
}
3.
# include <stdio.h>

View File

@ -1,37 +1,70 @@
# include <stdio.h>
# include <stdlib.h>
# define HAUTEUR 30
int main(void) {
int t[HAUTEUR][HAUTEUR];
/* Création du triangle de Pascal */
/* Déclaration des tableaux */
int t1[2][5];
int t2[3][5];
int t3[5][5];
int compteur;
/* Remplissage des tableaux */
int i;
int j;
int k;
int n;
for (k = 0; k != HAUTEUR; k++) {
for (n = 0; n != HAUTEUR; n++) {
if (k == n && k >= 0) {
t[k][n] = 1;
}
else if (k > n && n >= 1) {
t[k][n] = t[k-1][n] + t[k-1][n-1];
}
else if (k>=0 && n == 0) {
t[k][n] = 1;
/* t1 */
for (i = 0; i != 2; i++) {
for (j = 0; j != 5; j++) {
t1[i][j] = j + 1;
}
}
/* t2 */
compteur = 1;
for (i = 0; i != 3; i++) {
for (j = 0; j != 5; j++) {
t2[i][j] = compteur;
compteur++;
}
}
/* t3 */
for (i = 0; i != 5; i++) {
for (j = 0; j != 5; j++) {
if (j >= i) {
t3[i][j] = 0;
}
else {
t[k][n] = 0;
t3[i][j] = 1 + j;
}
}
}
/* Affichage */
for (k = 0; k != HAUTEUR; k++) {
for (n = 0; n != HAUTEUR; n++) {
if (t[k][n] != 0) {
printf("%d ", t[k][n]);
/* Affichage des tableaux */
for (j = 0; j != 5; j++) {
for (i = 0; i != 17; i++) {
if (i < 5) {
if (j >= 2) {
printf(" ");
}
else {
printf("%.2d ", t1[j][i]);
}
}
/* BAKA */
else if (i == 5 | i == 11) {
printf(" ");
}
else if (i > 5 && i < 11) {
if (j >= 3) {
printf(" ");
}
else {
printf("%.2d ", t2[j][i-6]);
}
}
else {
printf("%.2d ", t3[j][i-12]);
}
}
printf("\n");
}
printf("\n");
}
return EXIT_SUCCESS;
}

View File

@ -0,0 +1,57 @@
-------- TP14 : Adresses ---------
1.
# include <stdio.h>
# include <stdlib.h>
int main(void){
float a;
double b;
long double c;
char d;
short int e;
int f;
unsigned long int g;
a = 12.5;
b = 2.0;
c = 48.8;
d = 'a';
e = 4;
f = 18;
g = 89;
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;
}
On remarque que les valeurs données à chaque adresse diffèrent à chaque exécution du programme,
mais que la "distance" qui sépare les adresses est toujours la même, distance qui dépend de la taille
de la donnée à stocker en mémoire.
2.
Le programme affichera l'adresses des lettres minuscules de a à z présentes dans la variable p.
Après exécution : aBcDeFgHiJkLmNoPqRsTuVwXyZ
3.
RIEN COMPRIS ??????
4.
Programme annexe :
long int n = 4614256656552045848L;
double* p = (double*) &n;
printf("π = %f\n", *p);
return EXIT_SUCCESS;
Il retourne la valeur 4618760256959462783.
En la mettant dans le programme de base, on se retrouve avec 6.283186, soit 2π.

9
DEV1.1/TP14/tests.c Normal file
View File

@ -0,0 +1,9 @@
# include <stdio.h>
# include <stdlib.h>
int main(void){
long int n = 4618760256959462783L;
double* p = (double*) &n;
printf("π = %f\n", *p);
return EXIT_SUCCESS;
}

View File

@ -0,0 +1,32 @@
------- TP15 : Chaînes de caractères -------
1.
2.
3.
# include <stdio.h>
# include <stdlib.h>
int main(int argc, char** argv){
int compteur;
compteur = 0;
for (; argc != 0; argc--) {
printf("%c ", argv[compteur][0]);
compteur++;
}
printf("\n");
}
4.
TO DO
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# define TAILLE 26
int main(int argc, char** argv){
printf("%d", (int) argv[0] * (int) argv[1]);
}

8
DEV1.1/TP15/tests.c Normal file
View File

@ -0,0 +1,8 @@
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# define TAILLE 26
int main(int argc, char** argv){
printf("%d", (int) argv[0] * (int) argv[1]);
}

View File

@ -0,0 +1,188 @@
------ TP16 : Fonctions -----
1.
# include <stdio.h>
# include <stdlib.h>
void triangle(int hauteur) {
int i;
int j;
for (i = 0; i != hauteur; i++) {
for (j = 0; j != i+1; j++) {
putchar('*');
}
putchar('\n');
}
}
void carre(int hauteur) {
int i;
int j;
for (i = 0; i != hauteur; i++) {
putchar('*');
}
putchar('\n');
for (j = 0; j != hauteur-2; j++) {
for (i = 0; i != hauteur; i++) {
if (i == 0 || i == hauteur-1) {
putchar('*');
}
else {
putchar(' ');
}
}
putchar('\n');
}
for (i = 0; i != hauteur; i++) {
putchar('*');
}
}
void menu(void) {
char selection;
int hauteur;
printf("\n__________\n t) Triangle\n c) Carré\n q) Quitter\nVotre choix ? ");
scanf("%c", &selection);
getchar();
if (selection == 'q') {
return;
}
printf("\nHauteur ?");
scanf("%d", &hauteur);
getchar();
if (selection == 't') {
triangle(hauteur);
menu();
return;
}
if (selection == 'c') {
carre(hauteur);
menu();
}
else {
menu();
return;
}
}
int main(void) {
menu();
return EXIT_SUCCESS;
}
2.
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
# define TAILLE_TABLEAU 10
void remplissage(int* tab, int tab_len) {
int i;
for (i = 0; i != tab_len; i++) {
tab[i] = (rand() % 100) - 50;
}
}
void affichage(int* tab, int tab_len) {
int i;
for (i = 0; i != tab_len; i++) {
printf("+-----");
}
printf("+\n");
for (i = 0; i != tab_len; i++) {
if (tab[i] < 10 && tab[i] >= 0) {
printf("| %d ", tab[i]);
}
else if (tab[i] < -9) {
printf("| %d ", tab[i]);
}
else {
printf("| %d ", tab[i]);
}
}
printf("|\n");
for (i = 0; i != tab_len; i++) {
printf("+-----");
}
printf("+\n");
}
void remplissage_inverse(int* tab, int* tab_inverse, int tab_len) {
int i;
for (i = 0; i != tab_len; i++) {
tab_inverse[i] = tab[tab_len-i-1];
}
}
int main(void){
int tab[TAILLE_TABLEAU];
int tab_inverse[TAILLE_TABLEAU];
srand(time(NULL));
remplissage(tab, TAILLE_TABLEAU);
affichage(tab, TAILLE_TABLEAU);
remplissage_inverse(tab, tab_inverse, TAILLE_TABLEAU);
affichage(tab_inverse, TAILLE_TABLEAU);
return EXIT_SUCCESS;
}
3. La fonction ne fait pas son travail car elle ne modifie la variable a que dans le bloc
de la fonction. Il faut donc la renvoyer et assigner à la variable x la valeur renvoyée
par la fonction zero() :
# include <stdio.h>
# include <stdlib.h>
double zero(double a) {
a = 0.0;
return a;
}
int main(void) {
double x=37.5;
printf("avant : %f\n", x);
x = zero(x);
printf("après : %f\n", x);
return EXIT_SUCCESS;
}
4.
PAS FINI
# include <stdio.h>
# include <stdlib.h>
void inverse_variables(int a, int b) {
int temp;
temp = a;
a = &b;
b = &temp;
}
int main(void) {
int x, y;
x = 12;
y = 5;
printf("avant : x = %d y = %d\n", x, y);
inverse_variables(x, y);
printf("avant : x = %d y = %d\n", x, y);
return EXIT_SUCCESS;
}

22
DEV1.1/TP16/tests.c Normal file
View File

@ -0,0 +1,22 @@
# include <stdio.h>
# include <stdlib.h>
void inverse_variables(int a, int b) {
int temp;
temp = a;
a = &b;
b = &temp;
}
int main(void) {
int x, y;
x = 12;
y = 5;
printf("avant : x = %d y = %d\n", x, y);
inverse_variables(x, y);
printf("avant : x = %d y = %d\n", x, y);
return EXIT_SUCCESS;
}