algoritmos profº antonio carlos marcelino de paula 1
TRANSCRIPT
ALGORITMOSProfº Antonio Carlos Marcelino de Paula
1
Estruturas de Decisão2
Permitir testes para decidir ações alternativas: if if - else switch
Comando if3
if (condição) instrução;
#include <stdio.h> main ( ) { char ch; printf (“ digite uma letra”); ch = getch( ); if (ch == ‘p’) printf (“você pressionou a tecla p”); getch();}
if (condição) { instrução1; intrução2;}
#include <stdio.h> main ( ) { char ch; printf (“ digite uma letra”); if (getch()) == ‘p’ ) { printf (“ você digitou p”); printf (“ pressione outra tecla ”); getch( ); }}
if aninhados 4
Se um comando if está dentro do outro if, dizemos que o if interno está aninhado.
#include <stdio.h> main ( ) { char ch; printf (“ digite uma letra entre A e Z”); ch = getch ( ); if (ch >= ‘A’) if (ch < = ‘Z’) printf (“ você acertou”); getch();}
#include <stdio.h> main ( ) { char ch; printf (“ digite uma letra entre A e Z”); ch = getch ( ); if ((ch >= ‘A’) && (ch < = ‘Z’))
printf (“ você acertou”); getch();}
Comando if-else5
O comando if só executa a instrução caso a condição de teste seja verdadeira, nada fazendo se a expressão for falsa.
O comando else executará uma instrução ou um conjunto de instruções se a expressão for falsa.
Comando if-else6
if (condição) instrução;else instrução;
#include <stdio.h>main ( ){ char ch; printf (“ digite uma letra”); if (getch ( ) == ‘p’) printf (“ você digitou p”); else printf (“ você não digitou p”);}
Exemplo: Evitar-se divisões por Zero, usando recursos do comando if-else.
7
include <stdio.h>main(){int a,b;printf(“Digite 2 números: “);scanf(“%d %d”,&a,&b);if (b)
printf(“%f”,a/b);else
printf(“Nao posso dividir por zero\n”);}
Comando if-else aninhados8
if (condição1) instruçãoelse if (condição2) instruçãoelse if (condição3)...
#include <stdio.h> main ( ){ int número; scanf (“ % d”, &número); if (número < 0) printf (“número menor que zero”); else if (número < 10) printf (“ número e < 10”); else if (número < 100)
printf (“número 10 e < 100); else
printf (“número 100”); }
Exemplo 1: Programa Adulto, Jovem ou Velho.
9
#include <stdio.h>main(){int i;printf(“Digite sua idade: “);scanf(“%d”,&i);if (i > 70)
printf(“Esta Velho!”);else
if (i > 21)printf(“Adulto”);
elseprintf(“Jovem”);
getch();}
Exemplo 2: Maior entre três números10main()
{int a,b,c;printf(“Digite o 1º Número: “);scanf(“%d”,&a);printf(“\nDigite o 2º Número: “);scanf(“%d”,&b);printf(“\nDigite o 3º Número: “);scanf(“%d”,&c);if (a > b)
if (a > c)printf(“\nO Maior é
%d”,a);else
printf(“\nO Maior é %d”,c);
else if (b > c)
printf(“\nO Maior é %d”,b);else
printf(“\nO Maior é %d”,c);
}
main(){int a,b,c,d;printf(“Digite o 1º Número: “);scanf(“%d”,&a);printf(“\nDigite o 2º Número: “);scanf(“%d”,&b);printf(“\nDigite o 3º Número: “);scanf(“%d”,&c);if (a > b)
d = a;else
d = b;if (c > d)
printf(“\nO Maior é %d”,c);else
printf(“\nO Maior é %d”,d);}
Exemplo 3: Dados 2 números apresente-os ordenados.
11
main(){int a,b,t;printf(“Digite o 1º Número: “);scanf(“%d”,&a);printf(“\nDigite o 2º Número: “);scanf(“%d”,&b);if (a < b) {
t = a;a = b;b = t;}
printf(“\nOrdenados: %d e %d “,b,a);}
Comando Switch12
Forma de se substituir o comando if – else ao se executar vários testes.
Diversas vezes precisamos determinar se um valor encontra-se numa lista de valores. Apesar de podermos usar uma seqüência de ifs, este recurso além de não ser elegante, por vezes confunde o entendimento do programa. Vejamos uma opção melhor: o comando switch.
Comando Switch13
switch <variável> {case <constante 1> :
<comandos>;[break;]
case <constante 2> :<comandos>;[break;]
case <constante 3> :<comandos>;[break;]
[default :<comandos>;]
}
OBS:•“ variável” deve ser uma variável do tipo inteiro ou caracter;•“break” serve para terminar a seqüência de comandos em execução, por serem opcionais, se forem suprimidos permitem que o “case” a seguir seja executado, sem haver qualquer quebra na seqüência do processamento.
Comando Switch14
#include <stdio.h>main ( ){
char op;float num 1, num 2;
printf (“ digite um n.o, um operador e um n.o”); scanf (“ %f %c %f”, &num1, &op, &num2); switch (op) {
case ‘+’: printf (“ = %f”, num 1 + num 2); break:case ‘-’: printf (“ = %f”, num 1 - num 2); break;default: printf (“ operador inválido”);
}}
Exercício 0115
Escreva um programa em C que leia três valores e verifique se: Eles podem formar um triângulo.
Dica: A soma de dois lados não pode ser inferior ao lado restante).
Formando um triângulo, classifique-o em: Escaleno; Isóceles; Equilátero.
Exercício 0216
Escreva um programa em C para o seguinte problema:
Numa loja de informática, as compras seguem os seguintes critérios: Preço à vista – Desconto de 5%; Parcelamento em 2X – Acréscimo de 10%; Parcelamento em 3X – Acréscimo de 20%;
Todas as porcentagens são calculadas sobre o preço do produto selecionado.
O programa deve solicitar ao usuário o valor da etiqueta e a forma de pagamento. Em seguida informar o valor a ser pago.