Buscar

2 ESTRUTURA DE DECISÃO

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

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais