7. Estrutura de Decisão



Documentos relacionados
Programação: Estruturas de seleção

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Estrutura switch if-else switch switch switch if-else-if switch switch case default break switch switch break Observações: case

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Revisão Aula Anterior Estruturas de Decisão (If e Switch)

9 Comandos condicionais

INTRODUÇÃO À LINGUAGEM C++

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Convertendo Algoritmos para a Linguagem C

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

A linguagem C oferece quatro estruturas de decisão: if, if-else, switch e o operador condicional.

Definição de Programas de Computadores e Linguagem de Programação de Comutadores

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Introdução a linguagem C Estruturas de decisão

Estrutura Condicional C++

Técnicas de Programação I

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição

Conceitos básicos da linguagem C

Algoritmos e Programação

Estrutura Condicional em Java

Aula 3 Desvio Condicional

EXERCÍCIOS. 2. Faça um algoritmo que receba dois números e ao final mostre a soma, subtração, multiplicação e a divisão dos números lidos.

Comando de Seleção: Switch

Trabalho de laboratório Avaliação semestral Exame final MÉDIA PONDERADA CONCEITO

Variáveis e Comandos de Atribuição

Introdução à Lógica de Programação (cont.)

Estruturas de repetição (Ciclos)

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

ALP Algoritmos e Programação

Prof. Vania Gimenez.Notas de aula Lógica de programação- Este material não substitui os livros indicados no site no link bibliografia.

compreender a importância de cada estrutura de controle disponível na Linguagem C;

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

5 Apresentando a linguagem C

Engenharia Elétrica - Computação

insfcanceof new public switch transient while byte continue extends for int null

Comandos Sequenciais if else, e Switch

Apresentar os conceitos básicos e as estruturas de linguagem relacionadas à tomada de decisão ofertadas pela linguagem C, tais como:

Estruturas de entrada e saída

Elementos de programação em C

Linguagem C Funções definidas pelo usuário. Lógica de Programação

Universidade Federal de Rondônia Técnicas de Desenvolvimento de Programas Lista 4

Variáveis, Expressões, Atribuição, Matrizes, Comandos de Desvio

ALGORITMOS E FLUXOGRAMAS

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

Resumo da Matéria de Linguagem de Programação. Linguagem C

Programação WEB I Estruturas de controle e repetição

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

INF 1007 Programação II

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

LINGUAGEM C. Estrutura básica de um programa

Comandos de repetição while

Java Como Programar, 8/E

Programando em C++ Histórico da Linguagem C

ATENÇÃO!!! Rui Morgado - TLP 2

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

José Romildo Malaquias

Estruturas de Repetição

Testando e Comparando Valores

Algoritmos e programação

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

9.1.2 Laços Controlados por Entrada: Contador

Introdução a Algoritmos Parte 04

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

Exercícios práticos - Folha 3

Bacharelado em Ciência e Tecnologia BC-0505 Processamento da Informação Lista de Exercícios EXTRA Nº 02 Algoritmos Estruturas de Seleção

Lista de Exercícios 3 Estrutura Condicional

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

20 Caracteres - Tipo char

JavaScript (ou JScript)

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

Programação científica C++

cast poderia ser usado também para transformar um real (float) em inteiro. A sintaxe C (float)i pode ser substituída em C++ por float(i).

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

Módulo 4. Instruções for, while e do/while. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Estruturas de Repetição

Técnicas de Programação I

Introdução a Computação

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

BC0501 Linguagens de Programação

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Estruturas de Dados. Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO

Algoritmo Iterativo. Dilema do Martelo x Edifício. O Martelo. O Edifício 01/06/2014. Dilema das ações x declarações

ESTRUTURA CONDICIONAL

TUTORIAL AMBIENTE WEB PORTUGOL

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA DISCUSSÃO DOS EXERCÍCIOS E CONSTRUÇÃO DE PROGRAMAS SEQUENCIAIS. Prof. Dr. Daniel Caetano

Curso C: Controle de Fluxo

Algoritmos e Programação. Prof. Tarcio Carvalho

Resolução de problemas e desenvolvimento de algoritmos

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Potenciação no Conjunto dos Números Inteiros - Z

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Transcrição:

7. Estrutura de Decisão Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma ou mais condições. Uma condição é uma expressão lógica. A classificação das estruturas de decisão é feita de acordo com o número de condições que devem ser testadas para que se decida qual o caminho a ser seguido. Têm-se 2 tipos de estrutura de decisão: Se; Escolha. Em linguagem C, o equivalente ao Se é a função if() e o equivalente ao Escolha é a função switch(). 7.1. if() Nesta estrutura uma única condição (expressão lógica) é avaliada. Se o resultado desta avaliação for verdadeiro (.V.), então um determinado conjunto de instruções (comandos compostos) é executado. Caso contrário, ou seja, quando o resultado da avaliação for falso (.F.), nada é executado e o fluxo de execução segue para o primeiro comando após o fim da estrutura. Pseudocódigo Se (condição) Então Comando 1; if (condição) Comando 1; 36

Exemplo 1: Algoritmo Algoritmo Exemplo1; Var a: inteiro; Inicio Escreva ( Entre com o valor de A: ); Leia (a); Se (a<0) então Escreva ( O valor de A é menor que zero ); Fim main() int a; printf("entre com o valor de A: "); scanf("%d",&a); if (a<0) printf("o valor de A eh menor que zero. \n"); 7.2. if() else Nesta estrutura uma única condição (expressão lógica) é avaliada. Se o resultado desta avaliação for verdadeiro (.V.), então um determinado conjunto de instruções (comandos compostos) é executado. Caso contrário, ou seja, quando o resultado da avaliação for falso (.F.), um comando diferente é executado. Após a execução de uma das partes (verdadeira ou falsa) o fluxo de execução segue para o primeiro comando após o fim da estrutura. 37

Pseudocódigo Se (condição) Então Comando 1; Senão Comando 2; if (condição) Comando 1; else Comando 2; 38

Exemplo 2: Algoritmo Algoritmo Exemplo2; Var salario: real; Inicio Escreva ( Entre com o salario: ); Leia (salario); Se (salário>50000) então Escreva ( Você ganha bem ); senão Escreva ( Você precisa ganhar mais ); Fim main() float salario; printf("entre com seu salario: "); scanf("%f",&salario); if(salario>50000) printf("voce ganha bem.\n"); else printf("voce precisa ganhar mais.\n"); 39

7.3. Encadeamento de if() Trata-se de um recurso que permite ao usuário utilizar uma estrutura if dentro de outra obtendo, assim, diversas respostas possíveis. Exemplo 3: Pseudocódigo Algoritmo Encadeamento; Var num: inteiro; Inicio Escreva ( Entre com um número: ); Leia (num); Se (num = 0) Então Escreva ( Número zero. ); Senão Se ( num < 0) Então Escreva ( Número negativo. ); Senão Escreva ( Número positivo. ); Fim 40

main() int num; printf("entre com um numero: "); scanf("%d",&num); if(num == 0) printf("numero zero.\n"); else if(num<0) printf("numero negativo.\n"); else printf("numero positivo.\n"); 7.4. switch() A utilização do switch oferece inúmeras vantagens em relação a utilização da estrutura ninho de if s. Um exemplo prático é a facilidade de escrita de uma estrutura composta por múltiplas escolhas, que requer diversas alternativas, a partir de um certo programa de computador. Porém, a estrutura switch só pode ser utilizada quando estamos testando uma situação de igualdade para uma mesma variável. 41

Pseudocódigo Escolha (variável) Caso <valor_1> Comando 1; Caso <valor_2> Comando 2;... Caso <valor_n> Comando n; Senão Comando n + 1; Fim_escolha switch (variável) case valor_1 : Comando 1; case valor_2 : Comando 2;... case valor_n : Comando n; default: Comando n + 1; Exemplo 4: 42

Pseudocódigo Algoritmo Exemplo4; Var opcao: literal[1]; Inicio Escreva ( Entre com uma letra: ); Leia (opcao); Escolha (opcao) caso A : Escreva ( Letra A ); caso B : Escreva ( Letra B ); caso C : Escreva ( Letra C ); caso D : Escreva ( Letra D ); senão: Escreva ( Não é A, B, C nem D. ); Fim_Escolha Fim #include <conio.h> main() char opcao; puts("entre com uma letra: "); opcao = getch(); switch (opcao) case 'A': printf("letra A.\n"); case 'B': printf("letra B.\n"); case 'C': printf("letra C.\n"); case 'D': printf("letra D.\n"); default: printf("nao eh A, B, C nem D.\n"); Nesta estrutura é opcional a utilização da cláusula default para representar uma alternativa que significa Em nenhum dos casos anteriores. Também é importante saber que a execução do comando switch segue os seguintes passos: 1. A expressão é avaliada. 2. Se o resultado da expressão for igual a uma constante, então a execução começará a partir do comando associado a essa constante e prossegue com a execução de todos os comandos até o fim do switch, ou até que se encontre uma instrução de parada denominada break. 3. Se o resultado da expressão não for igual a nenhuma das constantes e já estiver sido incluída no comando switch a opção default, o comando associado ao default será executado. Caso contrário, isto é, se a opção default não estiver presente, o processamento continuará a partir do comando seguinte ao switch. 43

#include <conio.h> main() char opcao; puts("entre com uma letra: "); opcao = _getch(); switch (opcao) case 'A': printf("letra A.\n"); break; case 'B': printf("letra B.\n"); break; case 'C': printf("letra C.\n"); break; case 'D': printf("letra D.\n"); break; default: printf("nao eh A, B, C nem D.\n"); Os operadores lógicos apresentados no item 6.6.6, 6.6.7 e 6.6.8 são normalmente utilizados em conjuntos com a estrutura de decisão if(). A seguir são apresentados exemplos de programas que fazem uso destes operadores. Exemplo 5: 44

Algoritmo Algoritmo Exemplo5; Var n1,n2: inteiro; Inicio Escreva ( Digite dois números: ); Leia (n1,n2); Se ((n1=0)e(n2=0)) então Escreva ( Você forneceu apenas o número zeros ); senão Escreva ( Soma=, n1+n2); Fim main() int n1, n2; printf("digite dois numeros: "); scanf("%d %d",&n1,&n2); if((n1==0)&&(n2==0)) printf("voce forneceu apenas o numero zero.\n"); else printf("soma = %d \n", n1+n2); Exemplo 6: 45

Algoritmo Algoritmo Exemplo6; Var n1,n2: inteiro; Inicio Escreva ( Digite dois números: ); Leia (n1,n2); Se ((n1<0ou(n2<0)) então Escreva ( Pelo menos um dos números é negativo ); senão Escreva ( Você informou apenas números positivos ); Fim main() int n1, n2; printf("digite dois numeros: "); scanf("%d %d",&n1,&n2); if((n1<0) (n2<0)) printf("pelo menos um dos numeros eh negativo.\n"); else printf("voce informou apenas numeros positivos.\n"); Exemplo 7: 46

Algoritmo Algoritmo Exemplo7; Var n: inteiro; Inicio Escreva ( Digite um número: ); Leia (n); Se (nao(n<>0)) então Escreva (n, é igual de zero ); senão Escreva (n, é diferente a zero ); Fim main() int n; printf("digite um numero: "); scanf("%d",&n); if(!(n!=0)) printf("%d eh igual a zero.\n", n); else printf("%d eh diferente de zero.\n",n); Exercícios 1. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C que peça para o usuário informar dois números inteiros. Ao final do processamento, imprimir qual é o maior e o menor desses números. 2. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C que peça para o usuário informar três números inteiros. Ordenar estes números de forma crescente e apresentar o resultado na tela. 3. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C que peça para o usuário informar uma letra qualquer. No final do processamento, o programa deverá informar se a letra é vogal ou consoante. 4. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C para ler um número real, se este número for negativo, transforme-o em positivo e exiba o resultado ao operador. 5. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C para ler um número real equivalente ao comprimento de uma peça. Verificar se o valor lido encontra-se dentro da faixa de tolerância especificada, informando o resultado ao operador (limite especificado: 20 ± 0,000002 cm). 6. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C que efetue o cálculo do reajuste de salário de um funcionário. Considere que o funcionário deverá receber um reajuste de 15% caso seu salário seja menor que 500, se o salário for maior ou igual a 500 e menor ou igual a 1000, seu reajuste será de 10%, caso seja ainda maior que 1000, o reajuste deverá ser de 5%. 7. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C que leia dois números fornecidos pelo usuário e uma operação matemática (soma, subtração, multiplicação e divisão). Efetuar a operação matemática escolhida utilizando os números fornecidos e exibir o resultado. 47

8. Observe o fluxograma abaixo e escreve o programa em equivalente. 9. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C que leia três números e se o último desses números for menor ou igual a 5 então ele faz a quarta variável receber a subtração das duas primeiras multiplicada pela terceira, se não, receber a soma das duas primeiras multiplicada pela terceira. Apresentar na tela os três números e o resultado. 10. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C que leia três valores para os lados de um triângulo e verifique se eles formam um triângulo. Se formarem, dizer que tipo de triângulo ele é: isósceles, escaleno ou equilátero. 11. Uma agência bancária possui dois tipos de investimentos, conforme o quadro a seguir. Faça um algoritmo ( e Pseudocódigo) e o programa em linguagem C que receba o tipo e o valor do investimento, calcule e mostre o valor corrigido de acordo com o tipo de investimento de todos os clientes do banco. Tipo Descrição Rendimento mensal 1 Poupança 3% 2 Fundos de renda fixa 4% 12. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C que receba um número inteiro e mostre em qual faixa de números inteiros ele aparece: a. Abaixo de 15; b. Entre 15 e 35; c. Acima de 35. 13. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C que dada a idade de um nadador classifica-o em uma das seguintes categorias: Categoria Idade Infantil A 5-7 anos Infantil B 8-10 anos Juvenil A 11-13 anos Juvenil B 14-17 anos Adulto Maiores de 18 anos 48

14. Criar um algoritmo ( e Pseudocódigo) e o programa em linguagem C que receba o código correspondente ao cargo de um funcionário e mostre o cargo: Código Cargo 1 Escriturário 2 Secretária 3 Caixa 4 Gerente 5 Diretor 15. Faça um algoritmo ( e Pseudocódigo) e o programa em linguagem C para calcular a conta final de um hóspede de um hotel fictício, contendo: o nome do hóspede, o tipo do apartamento, o número de diárias utilizadas, o valor unitário da diária, o valor total das diárias, o valor do consumo interno, o subtotal, o valor da taxa de serviço e o total geral. Considere que: a. Serão lidos o nome do hóspede, o tipo do apartamento utilizado (A, B, C ou D), o número de diárias utilizadas pelo hóspede e o valor do consumo interno do hóspede; b. O valor da diária é determinado pela seguinte tabela: TIPO DO APTO. VALOR DA DIÁRIA (R$) A 150,00 B 100,00 C 75,00 D 50,00 c. O valor total das diárias é calculado pela multiplicação do número de diárias utilizadas pelo valor da diária; d. O subtotal é calculado pela soma do valor total das diárias e o valor do consumo interno; e. O valor da taxa de serviço equivale a 10% do subtotal; f. A total geral resulta da soma do subtotal com a taxa de serviço. 16. Analise os trechos de fluxogramas abaixo e informe o valor que será exibido na tela para o usuário. Considere os seguintes valores: A = 2, B = 3, C = 5, D = 9. Saída = Saída = 49

Saída = Saída = Saída = Saída = 50