/* Wellington S. Castello * Gerador de entradas para o EP1 / MAC0122 / 2o/2007 */ #include #include int main(int argc, char *argv[]) { FILE *arq_saida; char oper; if(argc < 2) { printf("Uso: %s \n", argv[0]); exit(-1); } if(!(arq_saida = fopen(argv[1], "w"))) { fprintf(stderr, "Um erro ocorreu ao tentar abrir o arquivo\n"); exit(-1); } do { printf("Digite a opção desejada:\n"); printf("1) Soma de duas matrizes\n"); printf("2) Multiplicação de uma matriz por um escalar\n"); printf("3) Multiplicação de duas matrizes\n"); printf("4) Finalizar\n"); oper = getchar(); switch(oper) { case '1': { int m,n,i,j; double e; printf("Dimensões das matrizes (Ex: 2 3 para 2x3): "); scanf("%d%d",&m, &n); fprintf(arq_saida, "+\n%d %d\n",m,n); printf("Elementos da matriz A (Ex: a_11, a_12 ... a_%d%d): ",m,n); for(i = 0; i < m; i++) { for(j = 0; j < n; j++) { scanf("%lf", &e); fprintf(arq_saida, "%.2f ", e); } fprintf(arq_saida, "\n"); } fprintf(arq_saida, "%d %d\n", m,n); printf("Elementos da matriz B: "); for(i = 0; i < m; i++) { for(j = 0; j < n; j++) { scanf("%lf", &e); fprintf(arq_saida, "%.2f ", e); } fprintf(arq_saida, "\n"); } oper = getchar(); break; } case '2': { int m, n, i, j; double alpha; double e; printf("Dimensões da matriz (Ex: 2 3 para 2x3): "); scanf("%d%d",&m, &n); printf("Escalar (Ex: 0.5): "); scanf("%lf",&alpha); fprintf(arq_saida, ".\n%.2f\n%d %d\n",alpha,m,n); printf("Elementos da matriz A: (Ex: a_11, a_12 ... a_%d%d): ",m,n); for(i = 0; i < m; i++) { for(j = 0; j < n; j++) { scanf("%lf", &e); fprintf(arq_saida, "%.2f ", e); } fprintf(arq_saida, "\n"); } oper = getchar(); break; } case '3': { int m, k, n, i, j; double e; printf("Dimensões da matriz A (Ex: 2 3 para 2x3): "); scanf("%d%d",&m, &k); printf("Colunas da matriz B (Ex: 2 para %dx2): ", k); scanf("%d",&n); fprintf(arq_saida, "*\n%d %d\n", m, k); printf("Elementos da matriz A (Ex: a_11, a_12 ... a_%d%d): ",m,k); for(i = 0; i < m; i++) { for(j = 0; j < k; j++) { scanf("%lf", &e); fprintf(arq_saida, "%.2f ", e); } fprintf(arq_saida, "\n"); } printf("Elementos da matriz B (Ex: a_11, a_12 ... a_%d%d): ",k,n); fprintf(arq_saida, "%d %d\n", k, n); for(i = 0; i < k; i++) { for(j = 0; j < n; j++) { scanf("%lf", &e); fprintf(arq_saida, "%.2f ", e); } fprintf(arq_saida, "\n"); } oper = getchar(); break; } } } while(oper != '4'); fprintf(arq_saida, "f"); fclose(arq_saida); return 0; }