Controle de Fluxo Comandos de decisão

Documentos relacionados
Controle de Fluxo Comandos de decisão

Programação: Estruturas de seleção

Controle de Fluxo Comandos de decisão multipla

Linguagem algorítmica: Portugol

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

Estruturas (registros)

Aula 3 Desvio Condicional

Estruturas II UFOP 1/1

ESTRUTURA CONDICIONAL

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

Controle de Fluxo Comandos de decisão multipla

Introdução à Lógica de Programação

Técnicas de Programação I

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

Python Condicionais e Loops. Introdução à Programação SI1

Estruturas de Controle A Tomada de Decisões

Lista de Exercícios de Estrutura Condicional

Aula 02: C# - Estruturas de Decisão

José Romildo Malaquias

7. Estrutura de Decisão

Estruturas de entrada e saída

Definição. de solução de um problema passo-a-passo. Representa a lógica l. passo.

Variáveis e Comandos de Atribuição

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

ALP Algoritmos e Programação

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

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

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior Felipe Schneider Costa

Algoritmos com VisuAlg

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO UFRPE

Programação Estruturada e Orientada a Objetos REVISÃO

Estrutura Condicional em Java

1ª Lista de exercícios

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

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

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

Prefeitura Municipal de Venda Nova do Imigrante

9 Comandos condicionais

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

INTRODUÇÃO À LINGUAGEM C++

Lista de Exercícios 03b Algoritmos Repetição

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Estruturas II UFOP 1/35

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

Processamento da Informação Teoria. Algoritmos e Tipos de dados

Introdução a programação Controle de Fluxo

Introdução a Algoritmos Parte 04

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Algoritmos e Programação. Prof. Tarcio Carvalho

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

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

Estruturas de Repetição

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

O comando if. O comando condicional permite incluir no programa trechos de código que dependem de uma ou mais condições para sua execução.

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

LINGUAGEM C. Estrutura básica de um programa

3ª Lista de exercícios

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

1 Lógica de Programação

TUTORIAL AMBIENTE WEB PORTUGOL

Questões dadas em Sala de Aula (para cada turma), nas aulas de Teoria:

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.

Lista de Exercícios Fluxograma, Estruturas de Sequência e Decisão Prof: Yuri Frota


Lista de Exercícios. Vetores

3. Estruturas de seleção

I Lista de Exercícios

LINGUAGEM C: DESCOMPLICADA. Prof. André R. Backes

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

Expressões Lógicas Comandos de Seleção

Estruturas de Repetição Parte II PARA-ATÉ

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Exercícios de estrutura de Repetição

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

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

SOFTWARE DE ACOMPANHAMENTO DE PROJETOS RURAIS

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

Conceitos Importantes:

9.1.2 Laços Controlados por Entrada: Contador

2ª Lista de exercícios

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA COMANDOS DE DESVIO

Algoritmos e Pseudocódigo

ALGORITMO I VARIÁVEIS INDEXADAS

Proteção das Máquinas

Aluísio Eustáquio da Silva

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:

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

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro

Compilado pela Prof a Sílvia Moraes Organizado por Stewart Unger

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof. Fábio Nelson.

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

Aula 06 - Funções. O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros

Transcrição:

BCC 201 - Introdução à Programação Controle de Fluxo Comandos de decisão Guillermo Cámara-Chávez UFOP 1/39

Expressões Relacionais I <express~ao> == <express~ao>: retorna verdadeiro quando as expressões forem iguais. Ex a == b <express~ao>!= <express~ao>: retorna verdadeiro quando as expressões forem diferentes. Ex a!= b 2/39

Expressões Relacionais II <express~ao> > <express~ao>: retorna verdadeiro quando a expressão da esquerda tiver valor maior que a expressão da direita. Ex a > b <express~ao> < <express~ao>: retorna verdadeiro quando a expressão da esquerda tiver valor menor que a expressão da direita. Ex a < b 3/39

Expressões Relacionais III <express~ao> >= <express~ao>: retorna verdadeiro quando a expressão da esquerda tiver valor maior ou igual que a expressão da direita. Ex a >= b <express~ao> <= <express~ao>: retorna verdadeiro quando a expressão da esquerda tiver valor menor ou igual que a expressão da direita. Ex a <= b 4/39

Expressões Lógicas I Expressões lógicas são aquelas que realizam uma operação lógica (ou, e, não, etc.) e retorna verdadeiro ou falso (como as expressões relacionais) 5/39

Expressões Lógicas II <express~ao> && <express~ao>: retorna verdadeiro quando ambas as expressões são verdadeiras. Sua tabela de verdade é Ex: a = = 0 && b = = 0 Op 1 Op 2 Ret V V V V F F F V F F F F 6/39

Expressões Lógicas III <express~ao> <express~ao>: retorna verdadeiro quando pelo menos uma das expressões é verdadeiras. Sua tabela de verdade é Ex: a == 0 b == 0 Op 1 Op 2 Ret V V V V F V F V V F F F 7/39

Expressões Lógicas IV!<express~ao>: retorna verdadeiro quando a expressão é falsa. Sua tabela de verdade é Ex:!(a = = 0) Op 1 V F Ret F V 8/39

Expressões Lógicas V Estes operadores OU e E devem ser sempre usados entre duas expressões relacionais, como por exemplo: ((2 > 1) (3 < 7)) ((3 < 2)&&(2 == 2)) ((5! = 0) (1 < 2)) 9/39

Expressões Lógicas VI ((2 > 1) (3 < 7)) : resultado VERDADEIRO ((3 < 2)&&(2 == 2)) : resultado FALSO ((5! = 0) (1 < 2)) : resultado VERDADEIRO 10/39

Comandos de condicionais I Permite decidir se um determinado bloco de comandos deve ou não ser executado, a partir do resultado de uma expressão lógica. 11/39

Comandos de decisão I O comando if (se) serve para alterar o fluxo de execução de um programa baseado no valor, verdadeiro ou falso, de uma expressão lógica. Fluxograma sim condição Comando 1 Comando 2 12/39

Comandos de decisão II Portugol s e ( c o n d i c a o ) entao l i s t a de comandos f i m s e C/C++ i f ( e x p r l o g ) comando1 ; // e x e c u t a d o s e e x p r l o g f o r v e r d a d e i r a comando2 ; // e x e c u t a d o sempre i n d e p e n d e n t e da c o n d i c a o Ex. Inserir um número e mostrar uma mensagem se ela é positiva. (solução sgte slide) 13/39

Comandos de decisão III I n i c i o i n t e i r o : num ; e s c r e v a ( " Inserir numero" ) ; l e i a (num ) ; s e num > 0 e s c r e v a ( "Numero positivo " ) ; f i m s e ; Fim 14/39

Comandos de decisão IV #i n c l u d e <s t d i o. h> i n t main ( ) { i n t num ; p r i n t f ( " Inserir numero" ) ; s c a n f ( " %d", &num ) ; i f (num > 0) p r i n t f ( "Numero positivo \n" ) ; r e t u r n 0 ; } 15/39

Comandos de decisão V Ex. Escreva um programa que lê o valor de venda de um vendedor e calcula seu prêmio (10 % do valor de venda). Se o valor do prêmio for maior do que 2000, o programa imprime uma mensagem de congratulação. 16/39

Comandos de decisão VI I n i c i o r e a l : venda, premio ; e s c r e v a ( " Inserir valor de venda: " ) ; l e i a ( venda ) ; premio < venda 0. 1 ; s e premio > 2000 e s c r e v a ( " Congratulacoes pelo premio de ", premio ) ; f i m s e ; Fim 17/39

Comandos de decisão VII #i n c l u d e <s t d i o. h> i n t main ( ) { d o u b l e venda, premio ; p r i n t f ( " Inserir valor de venda: " ) ; s c a n f ( " %lf", &venda ) ; premio = venda 0. 1 ; i f ( premio > 2000) p r i n t f ( " Congratulacoes pelo premio de %lf", premio ) ; r e t u r n 0 ; } 18/39

Comandos de decisão VIII Formato 2: Fluxograma sim condição Comando 1 não Comando 2 Comando 3 19/39

Comandos de decisão IX Portugol s e ( c o n d i c a o ) entao l i s t a de comandos senao l i s t a de comandos f i m s e C/C++ i f ( e x p r l o g ) comando1 ; // e x e c u t a d o s e e x p r l o g f o r v e r d a d e i r a e l s e comando2 ; // e x e c u t a d o s e e x p r l o g f o r f a l s a comando3 ; // e x e c u t a d o sempre i n d e p e n d e n t e da c o n d i c a o Ex. Dado um número imprimir se ele é par ou ímpar. (solução sgte slide) 20/39

Comandos de decisão X I n i c i o i n t e i r o : num ; e s c r e v a ( " Inserir numero" ) ; l e i a (num ) ; s e (num mod 2 = 0) entao // d i v i s i v e l por d o i s? e s c r e v a ( "Numero par" ) ; senao e s c r e v a ( "Numero impar" ) ; f i m s e Fim 21/39

Comandos de decisão XI #i n c l u d e <s t d i o. h> i n t main ( ) { i n t num ; p r i n t f ( " Inserir numero" ) ; s c a n f ( " %d", &num ) ; i f (num % 2 = = 0) // d i v i s i v e l por d o i s? p r i n t f ( "Numero par \n" ) ; e l s e p r i n t f ( "Numero impar \n" ) ; r e t u r n 0 ; } 22/39

Comandos de decisão XII Faça um algoritmo que leia os valores A, B, C e imprima na tela se a soma de A + B é menor que C ou maior igual. 23/39

Comandos de decisão XIII I n i c i o i n t e i r o : A, B, C ; e s c r e v a ( " Inserir 3 numeros " ) ; l e i a (A, B, C ) ; s e (A+B >= C) entao e s c r e v a ( "A soma de A+B eh maior igual que C" ) ; senao e s c r e v a ( "A soma de A+B eh menor que C" ) ; f i m s e Fim 24/39

Comandos de decisão XIV #i n c l u d e <s t d i o. h> i n t main ( ) { i n t A, B, C ; p r i n t f ( " Inserir 3 numeros " ) ; s c a n f ( " %d %d %d", &A, &B, &C ) ; i f (A+B >= C) p r i n t f ( "A soma de A+B eh maior igual que C" ) ; e l s e p r i n t f ( "A soma de A+B eh menor que C" ) ; r e t u r n 0 ; } 25/39

Comandos de decisão XV Formato 3: i f ( e x p r l o g ) { comando1 ; // e x e c u t a d o s e e x p r l o g f o r v e r d a d e i r a comando2 ; comando3 ; } e l s e { comando4 ; // e x e c u t a d o s e e x p r l o g f o r f a l s a comando5 ; } comando6 ; // e x e c u t a d o sempre i n d e p e n d e n t e da c o n d i c a o comando7 ; Ex. Dado um número, mostrar uma mensagem que ele é par e calcular o quadrado de dito número. Se ele é ímpar mostrar a mensagem que é ímpar e calcular o cubo de dito número. (solução sgte slide) 26/39

Comandos de decisão XVI I n i c i o i n t e i r o : num ; e s c r e v a ( " Inserir numero" ) ; l e i a (num ) ; s e (num mod 2 = 0) entao // d i v i s i v e l por d o i s? e s c r e v a ( "Numero par" ) ; e s c r e v a (num num ) ; senao e s c r e v a ( "Numero impar" ) ; e s c r e v a (num num num ) ; f i m s e Fim 27/39

Comandos de decisão XVII #i n c l u d e <s t d i o. h> i n t main ( ) { i n t num ; p r i n t f ( " Inserir numero" ) ; s c a n f ( " %d", &num ) ; i f (num % 2 = = 0) // d i v i s i v e l por d o i s? { p r i n t f ( "Numero par \n" ) ; p r i n t f ( " %d", num num ) ; } e l s e { p r i n t f ( "Numero impar \n" ) ; p r i n t f ( " %d", num num num ) ; } r e t u r n 0 ; } 28/39

Comandos de decisão XVIII Faça um algoritmo que leia o nome, o sexo e o estado civil de uma pessoa. Caso sexo seja (F)emenino e estado civil seja (C)asada, solicitar o tempo de casada (anos). As entradas para sexo sera: (F)emenino ou (M)asculino; e para estado civil: (C)asado ou (S)olteiro 29/39

Comandos de decisão XIX I n i c i o c a r a c t e r : nome, sexo, e s t a d o C i v i l ; i n t e i r o : anos ; e s c r e v a ( " Inserir nome: " ) ; l e i a ( nome ) ; e s c r e v a ( " Inserir sexo (M) asculino /(F) emenino : " ) ; l e i a ( s e x o ) ; e s c r e v a ( " Inserir estado civil (C)asado /(S) olteiro : " ) ; l e i a ( e s t a d o C i v i l ) ; s e ( s e x o = "F" e e s t a d o C i v i l = "C" ) e s c r e v a ( "Tempo de casada : " ) ; l e i a ( anos ) ; f i m s e ; Fim 30/39

Comandos de decisão XX #i n c l u d e <s t d i o. h> i n t main ( ) { c h a r nome [ 5 0 ], sexo, e s t a d o C i v i l ; i n t anos ; p r i n t f ( " Inserir nome: " ) ; f g e t s ( nome, 50, s t d i n ) ; p r i n t f ( " Inserir sexo (M) asculino /(F) emenino : " ) ; s c a n f ( " %c %*c", &s e x o ) ; // % c e l i m i n a o c a r a c t e r que r e p r e s e n t a e n t e r p r i n t f ( " Inserir estado civil (C)asado /(S) olteiro : " ) ; s c a n f ( " %c", &e s t a d o C i v i l ) ; i f ( s e x o = = F && e s t a d o C i v i l = = C ) { p r i n t f ( "Tempo de casada : " ) ; s c a n f ( " %d", &anos ) ; } r e t u r n 0 ; } 31/39

Aninhamento de Ifs I Fluxograma sim sim condição 1 condição 2 Comando 1 não não Comando 2 Comando 3 Comando 4 32/39

Aninhamento de Ifs II Pseudocódigo s e ( c o n d i c a o 1) entao s e ( c o n d i c a o 2) entao l i s t a de comandos senao l i s t a de comandos f i m s e senao l i s t a de comandos f i m s e 33/39

Aninhamento de Ifs III i f ( e x p r l o g ) i f ( e x p r l o g 2 ) comando1 ; // e x e c u t a d o s e e x p r l o g e // e x p r l o g 2 forem v e r d a d e i r a s e l s e comando2 ; // e x p r l o g v e r d a d e i r a e e x p r l o g 2 f a l s a e l s e comando3 ; // e x e c u t a d o s e e x p r l o g eh f a l s a Ex. Mostrar se um número par é divisível por 3 (solução sgte slide). 34/39

Aninhamento de Ifs IV i n t main ( ) { i n t num ; p r i n t f ( " Inserir numero: " ) ; s c a n f ( " %d", &num ) ; i f (num % 2 = = 0) // d i v i s i v e l por d o i s? i f (num % 3 = = 0) p r i n t f ( "Par divisivel por 3 \n" ) ; r e t u r n 0 ; } Ex. Dado um número par determinar se ele é ou não divisível por 3. Se o número for ímpar mostrar se ele é divisível ou não por 5 (solução sgte slide) 35/39

Aninhamento de Ifs V i n t main ( ) { i n t num ; p r i n t f ( " Inserir numero: " ) ; s c a n f ( " %d", &num ) ; i f (num % 2 = = 0) // d i v i s i v e l por d o i s => PAR { i f (num % 3 = = 0) p r i n t f ( "Par divisivel por 3 \n" ) ; e l s e p r i n t f ( "Par nao divisivel por 3 \n" ) ; } e l s e // Se f o r IMPAR { i f (num % 5 = = 0) p r i n t f ( "Impar divisivel por 5 \n" ) ; e l s e p r i n t f ( "Impar nao divisivel por 5 \n" ) ; } r e t u r n 0 ; } 36/39

Aninhamento de Ifs VI Ler quatro notas escolares de um aluno e imprimir uma mensagem dizendo que o aluno foi aprovado se o valor da média escolar for maior ou igual a 7,0. Se a media for entre 5,0 e 6,9 à mensagem deve aparecer como Esta em Recuperação e se a média for inferior a 5.0 o aluno esta reprovado. 37/39

Aninhamento de Ifs VII #i n c l u d e <s t d i o. h> i n t main ( ) { d o u b l e nota1, nota2, nota3, nota4 ; d o u b l e media ; p r i n t f ( " Inserir 4 notas" ) ; s c a n f ( " %lf %lf %lf %lf", &nota1, &nota2, &nota3, &nota4 ) ; media = ( nota1+nota2+nota3+nota4 ) / 4 ; i f ( media >= 7) p r i n t f ( "Aluno aprovado \n" ) ; e l s e i f ( media >= 5) p r i n t f ( "Esta em Recuperacao \n" ) ; e l s e p r i n t f ( "Aluno reprovado \n" ) ; r e t u r n 0 ; } 38/39

FIM 39/39