Uso de parâmetros na linha de comando Parâmetros da função main: Funções úteis stdlib.h Converte cadeia de caracteres em um numero inteiro int atoi(const char* pt); ex: int num = atoi(argv[1]); double atof(const char* pt); ex: float val = atof(argv[2]); // programa uso_argc.c #include <stdio.h> #include <stdlib.h> main(int argc, char **argv) { /* definicoes locais */ int i,n; /* comandos */ printf("\n numero de elementos: %d \n", argc); printf(" nome do programa : %s \n", argv[0]); for (i=1; i<argc; i++) printf("\n valor definido pelo usuario nro %d: %s \n", i, argv[i]); getchar(); getchar(); // n = atoi(argv[4]); // printf("n = %d", n); // getchar(); }/*main */ 1 - Reescreva o programa abaixo que calcula o mmc e o mdc, entrando com os valores pela linha de comando. #include <stdio.h> void mdc_mmc(int, int, int*, int*); main() { int n1, n2; int mdc, mmc; printf("entre com n1 e n2 \n"); scanf("%d%d", &n1, &n2); mdc_mmc(n1, n2, &mdc, &mmc); printf(" n1 = %4d, n2 = %4d, mdc = %4d, mmc = %4d \n", n1, n2, mdc, mmc); system(“pause”); } Solução #include <stdlib.h> void mdc_mmc(int, int, int*, int*); main(int argc, char **argv) { int n1, n2; int mdc, mmc; if (argc != 3) { printf("\n entre com n1 e n2 na linha de comando \n"); getchar(); exit(1); } n1 = atoi(argv[1]); n2 = atoi(argv[2]); //continua continuação mdc_mmc(n1, n2, &mdc, &mmc); printf(" n1 = %4d, n2 = %4d, mdc = %4d, mmc = %4d \n", n1, n2, mdc, mmc); system(“pause”); } 2 - Reescreva o programa abaixo que converte graus Fahrenheit para graus Celsius, passando o grau Fahrenheit como parâmetro por linha de comando. int main() { float Fahr, Celsius; printf(“\n entre com a temperatura em graus Fahrenheit : “); scanf(“%f”,&Fahr); Celsius = 5.0/9 *(Fahr - 32); printf("\n Temperatura em Fahrenheit = %6.1f \n" " Temperatura em Celsius = %6.1f \n", Fahr, Celsius); system(“pause”); return 0; } /* main */ solução int main(int argc, char *argv[]) { float Fahr, Celsius; if (argc != 2) { printf("\n \n parametro em Fahreneit> \n"); getchar(); exit(1); }; Fahr = atof(argv[1]); Celsius = 5.0/9 *(Fahr - 32); printf("\n Temperatura em Fahrenheit = %6.1f \n" " Temperatura em Celsius = %6.1f \n", Fahr, Celsius); system(“pause”); } /* main */ Exercicios 3 – Faça um programa que avalie uma expressao aritmetica do tipo op1 op op2, passada por linha de comando. As variaveis op1 e op2 são numeros reais. Imprima a expressao e o resultado.