Baixe o app para aproveitar ainda mais
Prévia do material em texto
ESTRUTURAS DE DECISÃO UNIDADE 2 PROFESSOR: SÉRVULO JUNIOR FALCULDADE PITÁGORAS ALGORITMOS E PROGRAMAÇÃO 2 ESTRUTURA DE DECISÃO 2.1 Estrutura condicional simples 2.2 Estrutura condicional composta 2.3 Estrutura condicional com múltiplas possibilidade de escolha ROTEIROROTEIRO PROFESSOR: SÉRVULO JUNIOR 02/22 E a estrutura que permite a tomada de decisão, em um algoritmo, mediante a análise lógica de uma condição; As estruturas de decisão são comuns em todas as linguagens de programação, variando basicamente a sintaxe de seus comandos e sem este recurso seria difícil executar um programa com saltos condicionais. Para representar a solução de um problema devemos escrever o conjunto de passos a serem seguidos, sendo que, a maioria dos problemas exigem uma dinâmica na sua solução, impondo assim que os algoritmos executem conjunto de instruções de acordo com as possíveis situações encontradas no problema original. E de acordo com a Programação Estruturada os mecanismos utilizados para esse controle são : Sequência, Seleção e Repetição. ROTEIRO2 ESTRUTURA DE DECISÃO PROFESSOR: SÉRVULO JUNIOR 03/22 São usadas quando é necessário fazer uma opção entre 2 ou mais caminhos sendo que o fluxo do algoritmo é desviado segundo uma condição lógico relacional. Esta estrutura subordina a execução de um comando, ou bloco de comandos, a veracidade ou não de uma condição lógico relacional. Os comandos utilizados para implementar a estrutura de seleção são : SE SE SENÂO CASO ROTEIROEstrutura condicional simples PROFESSOR: SÉRVULO JUNIOR 04/22 Comando SE O comando SE especifica se um comando, ou um conjunto de comando será ou não executado, de acordo com uma condição lógico relacional. Sintaxe: ROTEIRO2.1 Estrutura condicional simples PROFESSOR: SÉRVULO JUNIOR 05/22 Na linguagem C o SE se torna if Sintaxe: if (<condição>) comandos_if; else comandos_else; Onde: <condição>: é uma condição a ser testada pelo comando if; comandos_if: são as instruções que devem ser executadas caso <condição> seja verdadeira; comandos_else: são as instruções que devem ser executadas caso <condição> seja falsa. O uso de else é opcional ROTEIRO2.1 Estrutura condicional simples PROFESSOR: SÉRVULO JUNIOR 06/22 /* Programa para verificar se um número é par*/ #include <stdio.h> #include <stdlib.h> main(){ int x, y; printf("Digite o numero:\n"); scanf("%d", &x); if (x % 2 == 0) { printf("%d e' par \n", x); } else { printf("%d e' impar \n", x); } system("pause"); return 0; } ROTEIRO2.1 Estrutura condicional simples PROFESSOR: SÉRVULO JUNIOR 07/22 /* Programa que verifica se um dado ano é bissexto */ #include <stdio.h> #include <stdlib.h> main() { int Ano; printf("Digite o ano: "); scanf("%d", &Ano); if ((Ano % 4 != 0) || ((Ano % 100 == 0) && (Ano % 400 != 0))){ printf("%d nao e' bissexto \n", Ano); }else{ printf("%d e' bissexto \n", Ano); } system("pause"); return 0; } Os anos divisíveis por 4 são bissextos, porém cada 400 anos devem se eliminar 3 bissextos. Por isso, não são bissextos os que se dividem por 100, menos os que se dividem por 400, que sim são bissextos. Com outras palavras, são bissextos todos os anos divisíveis por 4, excluindo os que sejam divisíveis por 100, porém não os que sejam divisíveis por 400. ROTEIRO2.1 Estrutura condicional simples PROFESSOR: SÉRVULO JUNIOR 08/22 Comando SE SENÂO Como vimos anteriormente o comando SE ainda permite que seja associado a ele um segunda opção, o comando SENÃO. O comando senão pode ou não ser associado ao comando SE, uma vez associado, ele especifica que os comandos a ele subordinados só serão executado no caso da condição lógico relaciona for falsa, ou seja, só será executado caso os comandos associados ao comando SE não forem executados. ROTEIRO2.2 Estrutura condicional composta PROFESSOR: SÉRVULO JUNIOR 09/22 /* Programa para ordenar três números dados*/ #include <stdio.h> #include <stdlib.h> main() { float x, y, z, Aux; printf("Digite os tres numeros: \n"); scanf("%f %f %f", &x, &y, &z); printf("Numeros dados: %f , %f , %f \n", x, y, z); if ((x > y) || (x > z)) /* verifica se x não é o menor */ if (y < z) /* neste caso y é o menor */ { Aux = x; /* troca os conteúdos de x e de y */ x = y; y = Aux; } else /* neste caso z é o menor */ ROTEIRO2.2 Estrutura condicional composta PROFESSOR: SÉRVULO JUNIOR 10/22 { Aux = x; /* troca os conteúdos de x e de z */ x = z; z = Aux; } if (y > z) /* verifica se z e y ainda não estão ordenados */ { Aux = y; /* troca o conteúdo de y e de z */ y = z; z = Aux; } printf("Numeros ordenados: %f , %f , %f \n", x, y, z); system("pause"); return 0; } ROTEIRO2.2 Estrutura condicional composta PROFESSOR: SÉRVULO JUNIOR 11/22 Comando CASO É o comando que permite a opção entre várias alternativas de acordo com a verificação de uma condição lógico relacional. Sintaxe: CASO MES = 1 SALARIO = SALARIO * 1.53; MES = 2 SALARIO = SALARIO * 1.72; MES = 3 SALARIO = SALARIO * 1.83; FIM_CASO. ROTEIRO2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: SÉRVULO JUNIOR 12/22 Note que no comando CASO, a mesma variável será testada com várias condições, caso uma delas seja atendida, o comando, ou bloco de comandos associados a esta condição será executado, e logo após o algoritmo seguirá normalmente após a palavra FIM_CASO. No caso de nenhuma condição ser verdadeira, o algoritmo seguirá normalmente após a palavra FIM_CASO sem executar nenhum comando associado ao comando CASO. O comando Caso é equivalente a uma sequencia de comando SE SENÂO. ROTEIRO2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: SÉRVULO JUNIOR 13/22 Em algoritmo se usa CASO já em C isso se torna switch Sintaxe: ROTEIRO2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: SÉRVULO JUNIOR 14/22 O valor de cada expressão (V1, V2, V3 e V4) é testado até que seja encontrada uma coincidência. Desta forma, os comandos associados ao case serão executados até que o comando break ou o fim do switch seja alcançado. Exemplo /* Programa CALCULADORA */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <string.h> void somar(); void subtrair(); void multiplicar(); void dividir(); ROTEIRO2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: SÉRVULO JUNIOR 15/22 int main(void) { int menu; do{ //enquanto o usuário não encerrar o programa (opção 99) printf("\n\n ================== CALCULADORA ================== \n\n"); printf(" 1 - SOMAR\n"); printf(" 2 - SUBTRAIR\n"); printf(" 3 - MULTIPLICAR\n"); printf(" 4 - DIVIDIR\n"); printf(" 99 - SAIR\n\n"); printf(" Informe a sua opcao (pressione <ENTER>): "); scanf("%i", &menu); system("cls"); ROTEIRO2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: SÉRVULO JUNIOR 16/22 switch(menu) { case 1: //1 - SOMAR somar(); break; case 2: //2 - SUBTRAIR subtrair(); break; case 3: //3 - MULTIPLICAR multiplicar(); break; case 4: //4 - DIVIDIR dividir(); break; case 99: break; default: printf("OPCAO NAO VALIDA! \n"); break; } fflush(stdin); } while (menu != 99); //do (enquanto não encerrar o programa ROTEIRO2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: SÉRVULO JUNIOR 17/22printf("\n\n"); system("pause"); return 0; } /* Funcao para somar 2 numeros */ void somar() { float numero1, numero2, resultado; printf("\n\n ================== SOMAR DOIS NUMEROS ================== \n\n"); printf("Digite o primeiro numero: \n"); scanf("%f", &numero1); printf("Digite o segundo numero: \n"); scanf("%f", &numero2); resultado = numero1+numero2; printf("A soma de %4.2f com %4.2f e %4.2f\n", numero1, numero2, resultado); } ROTEIRO2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: SÉRVULO JUNIOR 18/22 /* Funcao para subtrair 2 numeros */ void subtrair() { float numero1, numero2, resultado; printf("\n\n ================== SUBTRAIR DOIS NUMEROS ================== \n\n"); printf("Digite o primeiro numero: \n"); scanf("%f", &numero1); printf("Digite o segundo numero: \n"); scanf("%f", &numero2); resultado = numero1-numero2; printf("A subtracao de %4.2f com %4.2f e %4.2f\n", numero1, numero2, resultado); } ROTEIRO2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: SÉRVULO JUNIOR 19/22 /* Funcao para multiplicar 2 numeros */ void multiplicar() { float numero1, numero2, resultado; printf("\n\n ================== MULTIPLICACAO DOIS NUMEROS ================== \n\n"); printf("Digite o primeiro numero: \n"); scanf("%f", &numero1); printf("Digite o segundo numero: \n"); scanf("%f", &numero2); resultado = numero1*numero2; printf("A multiplicar de %4.2f com %4.2f e %4.2f\n", numero1, numero2, resultado); } ROTEIRO2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: SÉRVULO JUNIOR 20/22 /* Funcao para divisao 2 numeros */ void dividir() { float numero1, numero2, resultado; printf("\n\n ================== DIVISAO DOIS NUMEROS ================== \n\n"); printf("Digite o primeiro numero: \n"); scanf("%f", &numero1); printf("Digite o segundo numero: \n"); scanf("%f", &numero2); resultado = numero1/numero2; printf("A divisao de %4.2f com %4.2f e %4.2f\n", numero1, numero2, resultado); } ROTEIRO2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: SÉRVULO JUNIOR 21/22 ARAÚJO, Everton C. Algoritmos: fundamento e prática. Capítulo 10 - Pseudocódigos – Estrutura Condicional. MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo. Algoritmos: lógica para desenvolvimento de programação de computadores. Capítulo 4 - Estruturas de Controle – A Tomada de Decisão. BORATTI, Isaias C; OLIVEIRA, Álvaro Borges. Introdução à programação – algoritmos. Capítulo: 3 - Estrutura de Seleção. Capítulo: 4 - Estrutura de Repetição. MEDINA, Marco; FERTIG, Cristina. Algoritmos e programação - teoria e prática. Capítulo: 3 - Comandos de Condição. Capítulo: 4 - Comandos de Repetição. ASCENCIO, Ana Fernanda Gomes; VENERUCHI, Edilene Aparecida. Fundamentos de programação de computadores. Capítulo: 4 - Estrutura de Repetição. ROTEIROBibliografia PROFESSOR: SÉRVULO JUNIOR 21/22
Compartilhar