Buscar

aula05 Estrutura de Decisão

Prévia do material em texto

Introdução à Programação / Programação e Algoritmia 
Linguagem C
 Léxico
 main
 include
 printf
 scanf
 int
 signed
 unsigned
 short
 long
 double
 sizeof
 char
 getchar
 Operadores
 =
 +
 -
 *
 /
 %
 Funções
 math.h
 Sin
 Cos
 Tan
 Asin
 Exp
 Sqrt
 Log
 Log10
 pow
Sintaxe da Linguagem C
 Declaração de variáveis
 tipo nome [= valor];
 int idade ;
 Declaração de constantes
 const tipo nome = valor;
 const double PI = 3.14;
 Processamento
 Expressões computacionais
 variáveis , constantes , operadores, funções, parêntesis
 X = ( -b + sqrt( b*b – 4 * a * c ) ) / ( 2 * a );
 Leitura de dados
 scanf(“formato”,&variável);
 Escrita de informação
 printf(“formato”, variáveis,expressões);
Representação de Algoritmos
Exercício
 Construa um programa que calcule a área de uma figura, identificada com a cor 
verde na figura. A figura é constituída por um rectângulo que contém a maior 
elipse possível. que por sua vez contém o maior triângulo possível e o maior 
círculo inscrito no espaço deixado pelo triângulo na elipse. 
 Identificar o input
 Identificar o output
 Construir o algoritmo
Fluxogramas
 Inicio / fim do algoritmo
 Todos os fluxogramas têm um inicio e 
um fim
 Leitura de variáveis
 Introdução de dados
 Calculo de expressões
 Atribuição de valores a variáveis
 Escrita de informação
 Apresentação de informações ao 
utilizador
 Linhas de fluxo
 Definem a ordem de execução dos 
símbolos
Calculo da área do rectângulo
 Introdução de dados
 Processamento dos dados
 Escrita de informação
Fluxograma
 Introdução de dados
 Processamento
 Impressão de resultados
Fluxograma -> C
Teste do programa
 Qual a área desta figura
4
2
Teste do programa
 Qual a área desta figura
2
4
ERRO
Algoritmo Errado !!!!
Controlo de execução
Estruturas de decisão
Valores lógicos
 Valores
 Verdadeiro
 Falso
 Em C não existe nenhum tipo especifico de dados para 
armazenar os valores lógicos
 Em C
 Falso
 Representado pelo valor zero (0)
 Exemplo : 0
 Verdadeiro
 Tudo aquilo que seja diferente de zero
 Exemplo : 2 , -3 , ‘a’ , 0.001
Expressões lógicas
 Expressões cujo resultado seja verdadeiro ou falso
 A terra é quadrada
 O gelo apresenta-se no estado sólido
 O valor 20 é menor que o valor 14
 O valor de PI é superior a 3 e inferior a 4
 Um aluno passa á disciplina se a nota da pauta for superior a 9 ou 
tiver equivalência.
 Expressões lógicas
 Literais (verdadeiro ou falso)
 Operadores relacionais
 Operadores lógicos
Operadores relacionais
Uma expressão que contenha um operador relacional devolve 
sempre como resultado 1 se o resultado for VERDADEIRO e 0 se 
o resultado for FALSO
ERRO FREQUENTE:
o operador de comparação é == e o operador de atribuição é =
Decisão condicional
 As instruções de um programa são 
executadas conforme o resultado de 
uma expressão condicional
Decisão
condicional
Conector de fluxo
Linguagem C if-else
 Sintaxe
 if( condição)
 {
 Instruções se a condição for verdadeira
 }
 else
 {
 Instruções se a condição for falsa
 }
Blocos de instruções
 Conjunto de instruções que são 
executadas de forma sequencial.
 Os blocos são indentados
 O que é isso 
 Pretende representar de forma 
visualmente simples um bloco de 
instruções que são executadas de 
forma sequencial.
 Para quê
 Facilitar a leitura de um programa
 Porquê
 Ajuda a corrigir erros de sintaxe e 
de lógica
 Blocos com apenas uma instrução 
podem omitir as chavetas
As chavetas definem um 
bloco de instruções
{
instrução
instrução 
}
Calculo da Área
Operador ? :
 Sintaxe
 Condição ? Valor se verdade : valor se falso ;
if / else
 A componente else pode ser facultativa
 if( condição)
 {
 Intruções se a condição for verdadeira
 }
Condição
Instruções
Fluxograma
VF
A instrução exit(0) termina o programa
Exercício
Construa uma aplicação que 
solicite ao utilizador dois 
números e imprima-os na 
consola por ordem 
crescente
 Identifique as entradas e as saídas 
 Encontre um algoritmo
 Desenhe o fluxograma
 Construa o programa
 Teste o programa
Introduza dois números:
X1 = 20
X2 = 14
Números ordenados:
14 20
Introduza dois números:
X1 = 2
X2 = 17
Números ordenados:
2 17
Exercício
Algoritmo para a troca do valor 
entre duas variáveis
If/else encadeados
Condição
Instruções
V
Instruções
F
CondiçãoCondição
InstruçõesInstruções
V
InstruçõesInstruções
F
CondiçãoCondição
InstruçõesInstruções
V
InstruçõesInstruções
F
Exercício
 Construir um programa que solicite o estado civil de 
uma pessoa (s, c, d, v) e o imprima por extenso 
(solteiro , casado, divorciado, viuvo)
 Input
 Output
 Algoritmo
 Programa
 Teste
Operadores lógicos
Multiplicação
Lógica
Soma
Lógica
Negação
Lógica
Expressões lógicas
2 < 3 && 3 < 5
2 < 3 && 4 < 2
2 < 3 || 3 < 4 && 4 >5
!( 2 != 3) && !( 4 >3)
Prioridade dos operadores 
lógicos
Escolha múltipla (switch)
 switch( variavel )
 {
 case v1 :
 Intruções 1;
 . . .
 default:
 Instruções d;
 }
variavel
Intruções 1 Intruções 2 Intruções d
v1 v2
Intruções 
v defeito
Estado civil
Escolha múltipla (switch)
variavel
Intruções 1 Intruções 2 Intruções d
v1 v2
Intruções 
v defeito
Instrução break
 A instrução break permite terminar a execução de um caso 
dentro de um switch.
Escolha múltipla (switch)
variavel
Intruções 1 Intruções 2 Intruções d
v1 v2
Intruções 
v defeito
break break break
Resumo
 No C não existem constantes simbólicas para representar valores 
lógicos
 O conteúdo de uma variável ou expressão pode ser utilizado como 
valor lógico
 As expressões lógicas são compostas por operadores relacionais 
e/ou lógicos
 > < >= <= == !=
 && || !
 A instrução if/else permite alterar o fluxo de execução de um 
programa de acordo com o valor de uma expressão condicional
 O else de uma instrução if/else é opcional
 Os blocos de instruções são apresentados dentro de chavetas e 
devem ser escritos de forma identada
 A instrução switch permite fazer a escolha entre valores de uma 
variável de uma forma compata
 A instrução break termina a instrução switch.
Exercícios
Exercícios
Construa uma aplicação que 
solicite ao utilizador três 
números e imprima-os na 
consola por ordem 
crescente
 Identifique as entradas e as saídas 
 Encontre um algoritmo
 Desenhe o fluxograma
 Construa o programa
 Teste o programa
Introduza dois números:
X1 = 20
X2 = 14
X3 = 10
Números ordenados:
10 14 20
Introduza dois números:
X1 = 2
X2 = 17
X3 = 10
Números ordenados:
2 10 17
Exercícios
 Pretende-se um programa que leia dois números e uma 
operação ( + , - , * ou /) e imprima o resultado da operação 
sobre os números.
Calculadora : n1 operador n2 = resultado
n1 = 10
n2 = 20
Operador: /
Resultado: 0.5
Exercício
 Pretende-se um programa que dado o número de anos de 
uma pessoa escreve a sua faixa etária.
 Criança - [0 12]
 Adolescente [13 17]
 Adulto - [18 64]
 idoso - [65 . . .[ 
Faixa etária de pessoas
Idade : -4
Erro na introdução da 
idade
Faixa etária de pessoas
Idade : 10
Criança
Faixa etária de pessoas
Idade : 50
Adulto
Faixa etária depessoas
Idade : 120
Idoso
Exercícios
Pretende-se calcular as raízes 
de um polinómio com grau 
inferior a 3
 Desenhe o fluxograma
 Construa o programa
a
acbb
x
2
42 

 
cbxax 2
Exercício
 Construa um programa que solicite ao utilizar uma quantia em 
dinheiro e de seguida imprima o mínimo de moedas que são 
necessárias para fazer essa quantia.

Continue navegando