Ip 04
Ip 04
Linguagem C
Roteiro
● Função printf
● Função scanf
● Conversão de tipos
● Operador sizeof
● Operador de endereço
● Operadores aritméticos
● Condicionais
Códigos de Impressão - printf
Códigos de formatação Significado
para printf()
%c Caracter
%d Inteiro decimal com sinal
%i Inteiro decimal com sinal
%u Inteiro decimal sem sinal
%x Inteiro hexadecimal sem sinal (letras minúsculas)
int main(void) {
int i = 0;
■ if
■ if – else
■ switch – case
■ ?:
int main(void) { //Includes omitidos
int num1, num2;
scanf("%d%d", &num1, &num2); //Lê dois números inteiros
system("PAUSE");
return (EXIT_SUCCESS);
}
O que fizemos basicamente
Início
num1, num2
num1 == num2
Não
Sim num1 != num2
Os número são iguais
Os número são diferentes
Fim
Poderíamos ter feito
Início
num1, num2
num1 == num2
Sim Não
Fim
Condicionais
● Se e senão
if (numero1 == numero2) {
printf("Os dois números são iguais\n");
} else {
printf("Os dois números são diferentes\n");
}
● Se e senão se
if (numero1 > numero2) {
printf("O primeiro número é maior\n");
} else if (numero1 < numero2){
printf("O primeiro número é menor\n");
} else {
printf("Os números são iguais\n");
}
Diagrama de blocos
Início
num1, num2
Fim
Exercício
● Escreva um programa C que leia dois
números do teclado, realize e imprima na
tela a divisão do primeiro pelo segundo
– Obs1: Deve-se evitar divisões por zero
usando os recursos do comando if – else
– Obs2: Escreva também o diagrama de
blocos
Exercício
● Escreva um programa C que leia três
números do teclado, e imprima na tela o
maior entre eles
– Escreva também o diagrama de blocos
Condicionais
● Operador Condicional ?
<instruções>;
● “break” serve para terminar a
sequência de comandos em
[break;] execução
case <valor 2> : – por serem opcionais, se
< instruções>; forem suprimidos
permitem que o “case”
[break;]
a seguir seja
[default : executado, sem haver
qualquer quebra na
< instruções>;]
seqüência do
} processamento.
int a, b, operacao;
printf("Informe dois números inteiros positivos:");
scanf("%d%d", &a, &b);
printf("1.Adição\t 2.Subtração\t 3.Multiplicação\t 4.Divisão\t 5.Resto:");
scanf("%d", &operacao);
switch (operacao) {
case 1: printf("%d + %d = %d\n", a, b, a + b);
break; //Impede que os próximos casos sejam executados
case 2: printf("%d - %d = %d\n", a, b, a - b); break;
case 3: printf("%d * %d = %d\n", a, b, a * b); break;
case 4: printf("%d / %d = %d\n", a, b, a / b); break;
case 5: printf("%d %% %d = %d\n", a, b, a % b); break;
default: printf("Operação desconhecida\n"); //Outro caso (opcional)
}
Diagrama de Blocos
Início
a, b, op
op == 1 a+b break
Sim
Não
op == 2 a-b break
Sim
Não
op == 3 a*b break
Sim
Não
op == 4 a/b break
Sim
Não
op == 5 a%b break
Sim
Não
Operação desconhecida Fim