Baixe o app para aproveitar ainda mais
Prévia do material em texto
* ALGORITMOS Profº Antonio Carlos Marcelino de Paula * * Estruturas de Decisão * Permitir testes para decidir ações alternativas: if if - else switch * Comando if * 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”); system(“pause); } 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 ”); system(“pause”); } } * if aninhados * 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”); system(“pause”); } #include <stdio.h> main ( ) { char ch; printf (“ digite uma letra entre A e Z”); ch = getch ( ); if ((ch >= ‘A’) && (ch < = ‘Z’)) printf (“ você acertou”); system(“pause”); } * Comando if-else * 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-else * if (condição) instrução; else instrução; #include <stdio.h> main ( ) { char letra; printf (“Digite uma letra”); scanf (“%c”, &letra); if (letra == “p”) printf (“ você digitou p”); else printf (“ você não digitou p”); system(“pause”); } * Exemplo: Evitar-se divisões por Zero, usando recursos do comando if-else. * include <stdio.h> main() { int a,b; printf(“Digite 2 números: “); scanf(“%d”,&a); scanf(“%d”,&b); if (b!=0) printf(“%f”,a/b); else printf(“Nao posso dividir por zero\n”); system(“pause”); } * Comando if-else aninhados * if (condição1) instrução else if (condição2) instrução else 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 ³ 0 e < 10”); else if (número < 100) printf (“número ³ 10 e < 100); else printf (“número ³ 100”); system(“pause); } * Exemplo 1: Programa Adulto, Jovem ou Velho. * #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”); else printf(“Jovem”); system(“pause”); } * Exemplo 2: Maior entre três números * main() { 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); system(“pause”); } * Exemplo 2: Maior entre três números * 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); system(“pause”); } * Exemplo 3: Dados 2 números apresente-os ordenados. * 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); system(“pause”); } * Comando Switch * 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 Switch * 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 Switch * #include <stdio.h> main ( ) { char op; float num1, num2; printf (“ digite um numero”); scanf (“%f”, &num1); printf (“ digite um numero”); scanf (“%f”, &num2); printf (“ digite um operador”); scanf (“%c”, &op); switch (op) { case ‘+’: printf (“ = %f”, num1 + num2); break: case ‘-’: printf (“ = %f”, num1 - num2); break; default: printf (“ operador inválido”); } system(“pause”); } * Exercício 01 * 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 02 * 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.
Compartilhar