Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
PGCD + ECRITURE FICHIER + ALIGNEMENT
Information sur la source
Description
Un de plus... un p'tit prog de pgcd avec les divsions Euclidiennes. C'qui est un peu tricky c'est l'affichage en trois colonnes : comment faire pour les avoir bien alignées ? ben j'vous laisse découvrir :) En même temps il enregistre dans PGCD.txt, dans le même rep que le prog, toutes les colonnes, avec les bordures, tout aligné... pret pour etre imprimé pour vos exos de 3eme quoi :) pour info, c'est un prog fait avec visual C++
Source
- // PGCD.cpp : Defines the entry point for the console application.
-
- #include "StdAfx.h"
- #include <stdio.h>
-
- int GetPow(int x) {
- if (x>=1000000000) return 10;
- else if (x>=100000000 ) return 9;
- else if (x>=10000000 ) return 8;
- else if (x>=1000000 ) return 7;
- else if (x>=100000 ) return 6;
- else if (x>=10000 ) return 5;
- else if (x>=1000 ) return 4;
- else if (x>=100 ) return 3;
- else if (x>=10 ) return 2;
- else if (x>=0 ) return 1;
- }
-
- void WriteSpace(FILE* fp, int maxPow, int x) {
- switch (maxPow-GetPow(x)) {
- case 9: {
- fwrite(" ", 1, 9, fp);
- printf(" ");
- break;
- }
- case 8: {
- fwrite(" ", 1, 8, fp);
- printf(" ");
- break;
- }
- case 7: {
- fwrite(" ", 1, 7, fp);
- printf(" ");
- break;
- }
- case 6: {
- fwrite(" ", 1, 6, fp);
- printf(" ");
- break;
- }
- case 5: {
- fwrite(" ", 1, 5, fp);
- printf(" ");
- break;
- }
- case 4: {
- fwrite(" ", 1, 4, fp);
- printf(" ");
- break;
- }
- case 3: {
- fwrite(" ", 1, 3, fp);
- printf(" ");
- break;
- }
- case 2: {
- fwrite(" ", 1, 2, fp);
- printf(" ");
- break;
- }
- case 1: {
- fwrite(" ", 1, 1, fp);
- printf(" ");
- break;
- }
-
- }
-
- }
-
-
- void WriteFile(FILE* fp, int maxPow, int PGCD, int tag) {
- switch (tag) {
- case 1: {
- //write "*---*---*---*" in the file
- fwrite("*", 1, 1, fp);
- for (int i=1; i<maxPow+3; i++) fwrite("-", 1, 1, fp);
- fwrite("*", 1, 1, fp);
- for (i=1; i<maxPow+3; i++) fwrite("-", 1, 1, fp);
- fwrite("*", 1, 1, fp);
- for (i=1; i<maxPow+3; i++) fwrite("-", 1, 1, fp);
- fwrite("*\n", 1, 2, fp);
- break;
- }
- case 2: {
- //write "| PGCD: xx |" in the file
- fprintf(fp, "| PGCD: %d", PGCD);
- for (int i=1; i<maxPow*3-GetPow(PGCD)+2; i++) fwrite(" ", 1, 1, fp);
- fwrite("|\n", 1, 2, fp);
- break;
- }
- case 3: {
- //write "*-----------*" in the file
- fwrite("*", 1, 1, fp);
- for (int i=1; i<maxPow*3+3*3; i++) fwrite("-", 1, 1, fp);
- fwrite("*\n", 1, 2, fp);
- break;
- }
- }
- }
-
-
- int main(int argc, char* argv[])
- {
- int a, b, r, Ans;
- printf("===== PGCD =====");
- do {
- r = 1; //mustn't be initialized on 0 (see the while...)
- printf("\n\n\n");
- printf("Enter Number 1: ");
- scanf("%d", &a);
- printf("Enter Number 2: ");
- scanf("%d", &b);
- printf("\n");
- if (b>a) {
- int c = a;
- a = b;
- b = c;
- }
- int maxPow = GetPow(a);
- FILE* fp = fopen("PGCD.txt", "w");
- WriteFile(fp, maxPow, 0, 1);
- while (r!=0) {
- r = a%b;
-
- fwrite("| ", 1, 2, fp);
- WriteSpace(fp, maxPow, a);
- fprintf(fp, "%d | ", a);
- printf( "%d | ", a);
- WriteSpace(fp, maxPow, b);
- fprintf(fp, "%d | ", b);
- printf( "%d | ", b);
- WriteSpace(fp, maxPow, r);
- fprintf(fp, "%d |\n", r);
- printf( "%d\n", r);
-
- a = b;
- b = r;
- }
- WriteFile(fp, maxPow, 0, 1);
- WriteFile(fp, maxPow, a, 2);
- WriteFile(fp, maxPow, 0, 3);
- fclose(fp);
- printf("\nPGCD: %d\n\n1: Quit\n2: Restart\nYour Choice: ", a);
- scanf("%d", &Ans);
- } while (Ans!=1);
- return 0;
- }
// PGCD.cpp : Defines the entry point for the console application.
#include "StdAfx.h"
#include <stdio.h>
int GetPow(int x) {
if (x>=1000000000) return 10;
else if (x>=100000000 ) return 9;
else if (x>=10000000 ) return 8;
else if (x>=1000000 ) return 7;
else if (x>=100000 ) return 6;
else if (x>=10000 ) return 5;
else if (x>=1000 ) return 4;
else if (x>=100 ) return 3;
else if (x>=10 ) return 2;
else if (x>=0 ) return 1;
}
void WriteSpace(FILE* fp, int maxPow, int x) {
switch (maxPow-GetPow(x)) {
case 9: {
fwrite(" ", 1, 9, fp);
printf(" ");
break;
}
case 8: {
fwrite(" ", 1, 8, fp);
printf(" ");
break;
}
case 7: {
fwrite(" ", 1, 7, fp);
printf(" ");
break;
}
case 6: {
fwrite(" ", 1, 6, fp);
printf(" ");
break;
}
case 5: {
fwrite(" ", 1, 5, fp);
printf(" ");
break;
}
case 4: {
fwrite(" ", 1, 4, fp);
printf(" ");
break;
}
case 3: {
fwrite(" ", 1, 3, fp);
printf(" ");
break;
}
case 2: {
fwrite(" ", 1, 2, fp);
printf(" ");
break;
}
case 1: {
fwrite(" ", 1, 1, fp);
printf(" ");
break;
}
}
}
void WriteFile(FILE* fp, int maxPow, int PGCD, int tag) {
switch (tag) {
case 1: {
//write "*---*---*---*" in the file
fwrite("*", 1, 1, fp);
for (int i=1; i<maxPow+3; i++) fwrite("-", 1, 1, fp);
fwrite("*", 1, 1, fp);
for (i=1; i<maxPow+3; i++) fwrite("-", 1, 1, fp);
fwrite("*", 1, 1, fp);
for (i=1; i<maxPow+3; i++) fwrite("-", 1, 1, fp);
fwrite("*\n", 1, 2, fp);
break;
}
case 2: {
//write "| PGCD: xx |" in the file
fprintf(fp, "| PGCD: %d", PGCD);
for (int i=1; i<maxPow*3-GetPow(PGCD)+2; i++) fwrite(" ", 1, 1, fp);
fwrite("|\n", 1, 2, fp);
break;
}
case 3: {
//write "*-----------*" in the file
fwrite("*", 1, 1, fp);
for (int i=1; i<maxPow*3+3*3; i++) fwrite("-", 1, 1, fp);
fwrite("*\n", 1, 2, fp);
break;
}
}
}
int main(int argc, char* argv[])
{
int a, b, r, Ans;
printf("===== PGCD =====");
do {
r = 1; //mustn't be initialized on 0 (see the while...)
printf("\n\n\n");
printf("Enter Number 1: ");
scanf("%d", &a);
printf("Enter Number 2: ");
scanf("%d", &b);
printf("\n");
if (b>a) {
int c = a;
a = b;
b = c;
}
int maxPow = GetPow(a);
FILE* fp = fopen("PGCD.txt", "w");
WriteFile(fp, maxPow, 0, 1);
while (r!=0) {
r = a%b;
fwrite("| ", 1, 2, fp);
WriteSpace(fp, maxPow, a);
fprintf(fp, "%d | ", a);
printf( "%d | ", a);
WriteSpace(fp, maxPow, b);
fprintf(fp, "%d | ", b);
printf( "%d | ", b);
WriteSpace(fp, maxPow, r);
fprintf(fp, "%d |\n", r);
printf( "%d\n", r);
a = b;
b = r;
}
WriteFile(fp, maxPow, 0, 1);
WriteFile(fp, maxPow, a, 2);
WriteFile(fp, maxPow, 0, 3);
fclose(fp);
printf("\nPGCD: %d\n\n1: Quit\n2: Restart\nYour Choice: ", a);
scanf("%d", &Ans);
} while (Ans!=1);
return 0;
}
Conclusion
Sources de la même categorie
Commentaires
|
|