void executa_d(produto tabela[], material vetor[], int orca[]){ char subcomando; int i; getchar(); /* le o espaco */ subcomando = getchar(); /* le o sub-comando */ switch (subcomando) { case 'i': for(i = 0; i < 5; i++) le_nome(tabela[i].nome, SIZE_NOME); for(i = 0; i < 4; i++) printf("%s ", tabela[i].nome); printf("%s\n", tabela[4].nome); break; case 'j': le_nome(vetor[0].nome, SIZE_NOME); le_nome(vetor[1].nome, SIZE_NOME); le_nome(vetor[2].nome, SIZE_NOME); printf("%s ", vetor[0].nome); printf("%s ", vetor[1].nome); printf("%s\n", vetor[2].nome); break; case 'y': for(i = 0; i < 3; i++) scanf("%lf", &vetor[i].custo); getchar(); /* le o \n no final do input do utilizador */ break; case 'v': for(i = 0; i < 5; i++) scanf("%d", &tabela[i].vendas); getchar(); /* le o \n no final do input do utilizador */ break; case 'z': for(i = 0; i < 5; i++) scanf("%d", &tabela[i].pvenda); getchar(); /* le o \n no final do input do utilizador */ break; case 'p': for(i = 0; i < 5; i++) scanf("%d", &tabela[i].perdas); getchar(); /* le o \n no final do input do utilizador */ break; case 'm': for(i = 0; i < 5; i++) scanf("%d", &tabela[i].k_mo); getchar(); /* le o \n no final do input do utilizador */ break; case 'n': for(i = 0; i < 5; i++) scanf("%d", &tabela[i].k_en); getchar(); /* le o \n no final do input do utilizador */ break; case 'q': for(i = 0; i < 5; i++) scanf("%d", &tabela[i].k_eq); getchar(); /* le o \n no final do input do utilizador */ break; case 'o': for(i = 0; i < 5; i++) scanf("%d", &orca[i]); getchar(); /* le o \n no final do input do utilizador */ break; case 'c': for(i = 0; i < 5; i++){ scanf("%d", &tabela[i].m1); scanf("%d", &tabela[i].m2); scanf("%d", &tabela[i].m3); } getchar(); /* le o \n no final do input do utilizador */ break; default: printf("ERRO: Comando l [%c] desconhecido\n",subcomando); } }
int main() { char acao; num_matriz k, k1, k2, k3; int m, n, i, j; float x; matriz a[num_nomes]; while (true) { scanf("%c", &acao); printf("ação: %c", acao); switch (acao) { case 'r': le_nome(&k); prox_linha(); printf(" %c\n", min_nome+k); le_matriz(&a[k]); break; case 'z': le_nome(&k); scanf("%d %d", &m, &n); prox_linha(); printf(" %c %d %d\n", min_nome+k, m, n); inicializa(&a[k], m, n); break; case 'v': le_nome(&k); scanf("%d %d", &i, &j); prox_linha(); printf(" %c %d %d\n", min_nome+k, i, j); printf(" %c[%d,%d] = %8.2f\n", min_nome+k, i, j, valor(&(a[k]), i, j)); break; case 'a': le_nome(&k); scanf("%d %d %f", &i, &j, &x); prox_linha(); printf(" %c %2d %2d %8.2f\n", min_nome+k, i, j, x); atribui(&a[k], i, j, x); break; case 's': le_nome(&k1); le_nome(&k2); le_nome(&k3); prox_linha(); printf(" %c %c %c\n", min_nome+k1, min_nome+k2, min_nome+k3); soma(&a[k1], &a[k2], &a[k3]); break; case 'm': le_nome(&k1); le_nome(&k2); le_nome(&k3); prox_linha(); printf(" %c %c %c\n", min_nome+k1, min_nome+k2, min_nome+k3); multiplica(&a[k1], &a[k2], &a[k3]); break; case 't': le_nome(&k1); le_nome(&k2); prox_linha(); printf(" %c %c\n", min_nome+k1, min_nome+k2); transpoe(&a[k1], &a[k2]); break; case 'w': le_nome(&k); prox_linha(); printf(" %c\n", min_nome+k); imprime_matriz(&a[k]); break; case 'x': printf("\n"); bapply(bprint); printf("fim da execução.\n"); exit(0); break; case '#': { int c; do { c = getchar(); putchar(c); } while ((c != '\n') && (c != EOF)); } break; case 'l': le_nome(&k); prox_linha(); printf(" %c\n", min_nome+k); libera(&a[k]); break; default: { erro("ação inválida"); } } /* switch */ } /* while */ bapply(bprint); return 0; } /* main */