Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 22 ESTRUTURAS DE DECISÃO UNIDADE 2 PROFESSOR: EDILSON LIMA ALGORITMOS E PROGRAMAÇÃO EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 22 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 ROTEIRO ROTEIRO PROFESSOR: EDILSON LIMA 02/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 22 É a estrutura que permite a tomada de decisão, em um algoritmo, mediante a análise lógica de uma condição; Estruturas de decisão são comuns em todas as linguagens de programação, variando basicamente a sintaxe de seus comandos. 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. ROTEIRO 2 ESTRUTURA DE DECISÃO PROFESSOR: EDILSON LIMA 03/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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 ROTEIRO Estrutura condicional simples PROFESSOR: EDILSON LIMA 04/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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: ROTEIRO 2.1 Estrutura condicional simples PROFESSOR: EDILSON LIMA 05/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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 ROTEIRO 2.1 Estrutura condicional simples PROFESSOR: EDILSON LIMA 06/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 22 /* Programa para verificar se um número é par*/ #include <stdio.h> #include <stdlib.h> main(){ int x; printf("Digite o numero:\n"); scanf("%i", &x); if (x % 2 == 0) { printf("%i e' par \n", x); } else { printf("%i e' impar \n", x); } system("pause"); return 0; } ROTEIRO 2.1 Estrutura condicional simples PROFESSOR: EDILSON LIMA 07/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 22 /* Programa que verifica se um dado ano é bissexto */ #include <stdio.h> #include <stdlib.h> main() { int Ano; printf("Digite o ano: "); scanf("%i", &Ano); if ((Ano % 4 != 0) || ((Ano % 100 == 0) && (Ano % 400 != 0))){ printf("%i nao e' bissexto \n", Ano); }else{ printf("%i e' bissexto \n", Ano); } system("pause"); return 0; } ROTEIRO 2.1 Estrutura condicional simples PROFESSOR: EDILSON LIMA 08/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 22 Comando SE SENÃO Como vimos anteriormente o comando se ainda permite que seja associado a ele um segunda opção, o comando se não. O comando se nã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 ao comando se for falsa, ou seja, só será executado caso os comandos associados ao comando senão forem executados. ROTEIRO 2.2 Estrutura condicional composta PROFESSOR: EDILSON LIMA 09/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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: %.2f , %.2f , %.2f \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 */ ROTEIRO 2.2 Estrutura condicional composta PROFESSOR: EDILSON LIMA 10/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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: %.2f , %.2f , %.2f \n", x, y, z); system("pause"); return 0; } ROTEIRO 2.2 Estrutura condicional composta PROFESSOR: EDILSON LIMA 11/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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. ROTEIRO 2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: EDILSON LIMA 12/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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. ROTEIRO 2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: EDILSON LIMA 13/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 22 Em algoritmo se usa CASO já em C isso se torna switch Sintaxe: ROTEIRO 2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: EDILSON LIMA 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. EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 22 Exemplo /* Programa CALCULADORA */ #include <stdio.h> #include <string.h> #include <stdlib.h> void somar(); void subtrair(); void multiplicar(); void dividir(); ROTEIRO 2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: EDILSON LIMA 15/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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"); ROTEIRO 2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: EDILSON LIMA 16/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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 ROTEIRO 2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: EDILSON LIMA 17/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 22 printf("\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); } ROTEIRO 2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: EDILSON LIMA 18/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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); } ROTEIRO 2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: EDILSON LIMA 19/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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); } ROTEIRO 2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: EDILSON LIMA 20/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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); } ROTEIRO 2.3 Estrutura condicional com múltiplas possibilidades de escolha PROFESSOR: EDILSON LIMA 21/22 EDILSON LIMA UM SERVIÇO WEB DE ACESSO A UM SISTEMA DE GERENCIAMENTO DE AUXÍLIO A PESQUISA - PATRONAGE * / 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. ROTEIRO Bibliografia PROFESSOR: EDILSON LIMA 21/22
Compartilhar