/*
* a4_p1: Faz pequenas operacoes aritmeticas
*
* Input: Uma operacao e dois operandos
* Output: Resultado da operacao
*/
#include<stdio.h>
main()
{
char operacao;
double op1, op2;
printf("Qual a operacao (+ -
* /)? ");
scanf("%c", &operacao);
printf("Quais os dois operandos?
");
scanf("%lf%lf", &op1, &op2);
switch (operacao)
{
case '+': /* adicao */
printf("%lf + %lf = %lf\n", op1, op2, op1+op2);
break;
case '-': /* subtraccao */
printf("%lf - %lf = %lf\n", op1, op2, op1-op2);
break;
case '*': /* multiplicacao */
printf("%lf * %lf = %lf\n", op1, op2, op1*op2);
break;
case '/': /* divisao */
printf("%lf / %lf = %lf\n", op1, op2, op1/op2);
break;
}
}
/*
* a4_p3: Da um parecer qualitativo
* a uma classificacao numerica
* Input: Nota em valores (numero inteiro de 0 a 20)
* Output: Parecer qualitativo
* (Mau, Medíocre, Suficiente, Bom, Muito Bom)
*/
#include <stdio.h>
main()
{
int nota;
printf("Introduz a classificacao: ");
scanf("%d", ¬a);
switch(nota)
{
case 0:
case 1:
case 2:
case 3:
case 4:
printf("Mau\n");
break;
case 5:
case 6:
case 7:
case 8:
case 9:
printf("Mediocre\n");
break;
case 10:
case 11:
case 12:
case 13:
printf("Suficiente\n");
break;
case 14:
case 15:
case 16:
case 17:
printf("Bom\n");
break;
case 18:
case 19:
case 20:
printf("Muito Bom\n");
break;
}
}
Obs: Claro que este programa poderia ter sido feito com instruções
if-else. Mas foi feito com a instrução switch-case
para perceberes melhor o seu modo de funcionamento. O que aconteceria
se não tivesses usado os breaks e introduzisses uma classificação,
p/ exemplo, de apenas 3 valores? Pensa no assunto.
Obs: Repara no modo como foi formatado o output. Na instrução printf, em vez do habitual %d aparece %05d. Desta forma os números que mandamos escrever no ecrã surgem alinhados à direita num campo de 5 dígitos preenchido com zeros à esquerda. Se puséssemos apenas %5d acontecia o mesmo mas sem o preenchimento com zeros à esquerda.
Experimenta redireccionar o output para um ficheiro de texto para que possas ver bem as diferenças na forma de apresentar os primeiros números. Para isso, ao executares o programa, deverás fazer o que se chama redireccionamento de saída. Se o programa executável se chamar "a4_p5" e quiseres criar um ficheiro chamado "numeros.txt" faz assim:
a4_p5 > numeros.txt
Agora vê o conteúdo de numeros.txt
/*
* a4_p6: Tabuada
*
* Input: Numero inteiro (o multiplicando)
* Output: Tabuada desse numero
*/
#include <stdio.h>
main()
{
int a; /* multiplicando */
int b; /* multiplicador */
printf("Introduza um numero: ");
scanf("%d", &a);
for (b=1; b<=10; b++)
printf("%d x %d = %d\n", a, b, a*b);
}
Obs: Como poderias formatar a apresentação dos números
no ecrã de modo a surgirem todos alinhadinhos à direita?
(Lê as observações do programa 5)
Obs: Podes melhorar este programa para, no caso de o utilizador
introduzir um valor não binário, apresentar uma mensagem
a indicar "Numero inválido".