algoritmos profº antonio carlos marcelino de paula 1

16
ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

Upload: martim-mendonca-martini

Post on 07-Apr-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

ALGORITMOSProfº Antonio Carlos Marcelino de Paula

1

Page 2: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

Estruturas de Decisão2

Permitir testes para decidir ações alternativas: if if - else switch

Page 3: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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( ); }}

Page 4: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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();}

Page 5: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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.

Page 6: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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”);}

Page 7: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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”);}

Page 8: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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”); }

Page 9: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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();}

Page 10: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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);}

Page 11: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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);}

Page 12: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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.

Page 13: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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.

Page 14: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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”);

}}

Page 15: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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.

Page 16: ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1

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.