Expressões Lógicas e Comandos de Decisão

Slides:



Advertisements
Apresentações semelhantes
Introdução à Programação: uma Abordagem Funcional
Advertisements

RH3 Estágio / Informática Prof. Eduardo
Estruturas de Repetição
Algoritmo I Aula 04 Expressões Lógicas.
INTRODUÇÃO À LÓGICA DIGITAL
Estrutura Condicional
Programação de Computadores I Prof. Eduardo 2011
LÓGICA MATEMÁTICA ARGUMENTOS E REGRAS DE INFERÊNCIA
LÓGICA MATEMÁTICA APRESENTAÇÃO DA DISCIPLINA
Lógica Booleana A álgebra booleana é baseada totalmente na lógica. Desta forma, os circuitos lógicos executam expressões booleanas. As expressões booleanas.
Perguntas para avaliação de conhecimentos
Expressões Lógicas e Comandos de Decisão
ÁLGEBRA BOOLEANA Prof. Wanderley.
Universidade Federal de São Carlos Introdução à Linguagem C Comandos.
Programação de Computadores - 2
Conteúdo: - Operadores.
FACENS – Engenharia da Computação Lógica Computacional I
Introdução a Programação
Introdução à Lógica de Programação (cont.)
Introdução a Programação
Programação para Engenharia I
Estruturas de Controle
Tópicos Preliminares Prof. Alexandre Parra
Linguagem C.
Prof. Msc. Raul Paradeda Aula 3 Fluxograma e Pseudocódigo
Operadores Aritméticos Valores lógicos Relacionais e lógicos MF.
Estrutura de decisão em JAVA
DESENVOLVIMENTO DE COMÉRCIO ELETRÔNICO
Linguagem de Expressão (EL)
Comandos de SQL Excel VBA II.
Estrutura Lógico Dedutiva
Introdução a Computação e Cálculo Numérico
Operações Lógicas sobre proposições
Capítulo 3 Estruturas de Controle
Linguagem de Programação I Parte III
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
Estrutura de Dados Unidade 10 Simulação do Algoritmo 10.1 REMOVER Caso B: Remover o elemento que está no primeiro nó da lista, sendo que a lista possui.
Programação Estruturada
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
Operadores Relacionais, Lógicos e comandos de condição
Explorando a criação de scripts em shell
Estrutura de Decisão e Repetição
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.
Profa. Mercedes Gonzales Márquez
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
Operadores Relacionais e Lógicos
Programação I CH: 60h Créditos: 3 Prof Me. Tiago Araujo.
Algoritmos Estruturados
Algoritmo.
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009.
PCI- Estrutura Condicional Profa. Mercedes Gonzales Márquez.
Algoritmos e Estrutura de Dados I
LÓGICA PROPOSICIONAL.
Técnicas de Programação I
Laboratório I Mateus Raeder. Mateus Raeder – abril de 2010 Expressões booleanas  Tipo boolean -Tipo de dado primitivo -Possui os valores: true e false.
Fundamentos de Programação
Curso Técnico em Informática Professor Igor Vale.
Desenvolvimento WEB Prof. Renato de Oliveira Bastos
Tipos de Dados, Variáveis, Expressões Lógicas e Aritméticas
Aula 4 Estrutura de Decisão.
ORGANIZAÇÃO DE COMPUTADORES Prof.: Jean Carlo Mendes
Colégio da Imaculada Colégio da Imaculada Curso Técnico em Informática
1 Programação – JAVA Unidade 3 – Loops e Lógica Prof. Aparecido V. de Freitas Curso de Ciência da Computação.
Programação Computacional Profa. Madeleine Medrano
Estruturas de Controle [1] JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações.
Prof.: Jean Carlo Mendes
Desvios Encadeados e Operadores Lógicos Cleone Silva
Cursando o 1º período do curso de Sistemas para Internet no Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro. Faz parte do quadro.
ESTRUTURAS REPETITIVAS
Expressões Lógicas e Comandos de Decisão
Transcrição da apresentação:

Expressões Lógicas e Comandos de Decisão Profa Sílvia Moraes Profa Katia Saikoski

Expressões Lógicas São expressões que resultam em valores lógicos : verdadeiro ou falso. Em C, verdadeiro é 1 e falso é 0.

Expressões Lógicas Para compor as expressões lógicas utiliza-se os operadores: relacionais: comparam dois valores. >, <, >=, <=, !=, == lógicos: combinam expressões lógicas. &&, ||, ! (e) (ou) (não)

Expressões Lógicas Operadores relacionais Exemplos: > maior que 3>2 1>3 ‘a’>’d’ < menor que 3<3 5<10 >= maior ou igual 3>=3 3>=7 <= menor ou igual 4<=16 ‘A’<=‘A’ != diferente 4!=5 ‘a’ != ‘A’ == igual 5==5 ‘c’ == ‘C’ Obs: Strings não são comparados através de operadores relacionais.

Expressões Lógicas Um erro muito freqüente em C é confundir a atribuição, representada por = com a comparação, representada por ==. Exemplo: Supondo x=2 e y=3: x = y : o valor 3 é atribuído à variável x; x == y : 2 é comparado a 3 resultando 0(F). Portanto, x = y é diferente de x==y!!

Expressões Lógicas Operadores Lógicos ! NOT lógico (não) && AND lógico (e) || OR lógico (ou)

Expressões Lógicas Tabela Verdade A B A && B A || B !A 0 0 0 0 1 Considerando que A e B são duas expressões lógicas. Tabela Verdade A B A && B A || B !A 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0

Expressões Lógicas Operadores Lógicos !A : inverte o valor lógico de A A && B : para resultar 1 (V) exige que as expressões A e B sejam verdadeiras ao mesmo tempo. || : para resultar 0 (F) exige que as expressões A e B sejam falsas ao mesmo tempo.

Expressões Lógicas + - Prioridade dos Operadores ( ) funções ! *, / , % +, - <, <=, >, >= ==, != && || + -

Expressões Lógicas Exemplos: int num=2, val=3; char op = ‘C’; a) num<val +1 && num<=pow(val,2)-7 b) op < ‘E’ || op <=‘e’ && op!=‘c’ c) num>1 && num<sqrt(64) && !(num!=2) d) op == ‘C’ || op == ‘c’

Decisão Permite criar alternativas para o fluxo de execução de um programa C prevê 2 tipos de comandos de decisão: if switch

Comando if A forma do comando if é a seguinte: if (expressão_lógica) comando; ou if (expressão_lógica) { comandos; } Exp_lógica Comandos 1 …

Comando if #include <stdio.h> main () { int valor=10; printf(¨\nDigite um valor de 1 a 20¨); scanf(¨%d¨,&valor); if(valor==10) printf(¨\nAcertou!! ¨); if(valor!=10) printf(¨\nErrou!! ¨); }

Comando if #include <stdio.h> main () { int valor=10; printf(¨\nDigite um valor de 1 a 20¨); scanf(¨%d¨,&valor); if(valor==10) printf(¨\nAcertou!! ¨); if(valor!=10) { printf(¨\nVocê Errou!! ¨); if(valor==9 || valor ==11) printf(¨Chutou bem! Está quente!\n¨); if(valor <=5) printf(¨Chutou mal! Está frio!\n¨); }

Comando if-else Outra forma de usar o if é com o else. Esse tipo de construção permite a definição de ações alternativas. if (expressão) comando1; else comando2; Exp_lógica Comando1 1 Comando2 …

Comando if-else #include <stdio.h> main () { int valor=10; printf(¨\nDigite um valor de 1 a 20¨); scanf(¨%d¨,&valor); if(valor==10) printf(¨\nAcertou!! ¨); else printf(¨\nErrou!! ¨); }

Comando if-else Blocos: if (expressão){ comandos; } else { …

Comando if-else #include <stdio.h> main () { int valor=10; printf(¨\nDigite um valor de 1 a 20¨); scanf(¨%d¨,&valor); if(valor==10) printf(¨\nAcertou!! ¨); else { printf(¨\nVocê Errou!! ¨); if(valor==9 || valor ==11) printf(¨Chutou bem! Está quente!\n¨); if(valor <=5) printf(¨Chutou mal! Está frio!\n¨); }

Exemplo: Faça um programa que leia a idade de um nadador e classifica-o em uma das seguintes categorias: 5 a 7 anos: Infantil A 8 a 10 anos : Infantil B 11 a 13 anos : Juvenil A 14 a 17 anos: Juvenil B maiores de 17 anos: Adulto

1a Solução Funciona para qualquer entrada de dados ? #include <stdio.h> main () { int idade; printf(¨\nDigite a idade do nadador¨); scanf(¨%d¨,&idade); if(idade>=5 && idade<=7) printf(¨\nInfantil A¨); if(idade>=8 && idade<=10) printf(¨\nInfantil B¨); if(idade>=11 && idade<=13) printf(¨\nJuvenil A¨); if(idade>=14 && idade<=17) printf(¨\nJuvenil B¨); if(idade>=17 printf(¨\nAdulto¨); } Funciona para qualquer entrada de dados ?

2a Solução #include <stdio.h> main () { int idade; printf(¨\nDigite a idade do nadador¨); scanf(¨%d¨,&idade); if(idade <0 || idade>120) printf((¨\nIdade Inválida¨); if(idade>=0 && idade <5) printf(¨\nSem categoria¨); if(idade>=5 && idade<=7) printf(¨\nInfantil A¨); if(idade>=8 && idade<=10) printf(¨\nInfantil B¨); if(idade>=11 && idade<=13) printf(¨\nJuvenil A¨); if(idade>=14 && idade<=17) printf(¨\nJuvenil B¨); if(idade>=17 && idade<=120) printf(¨\nAdulto¨); }

3a Solução (está certa ?) #include <stdio.h> main () { int idade; printf(¨\nDigite a idade do nadador¨); scanf(¨%d¨,&idade); if(idade <0 || idade>120) printf((¨\nIdade Inválida¨); if(idade>=0 && idade <5) printf(¨\nSem categoria¨); if(idade>=5 && idade<=7) printf(¨\nInfantil A¨); if(idade>=8 && idade<=10) printf(¨\nInfantil B¨); if(idade>=11 && idade<=13) printf(¨\nJuvenil A¨); if(idade>=14 && idade<=17) printf(¨\nJuvenil B¨); else printf(¨\nAdulto¨); }

Comandos if-else encadeados if (expressão) comando1; else if (expressão) comando2; else if(expressão) comando3; else if(expressão) comando4; else ...

4a Solução #include <stdio.h> main () { int idade; printf(¨\nDigite a idade do nadador¨); scanf(¨%d¨,&idade); if(idade <0 || idade>120) printf((¨\nIdade Inválida¨); else if(idade <5) printf(¨\nSem categoria¨); else if (idade<=7) printf(¨\nInfantil A¨); else if(idade<=10) printf(¨\nInfantil B¨); else if(idade<=13) printf(¨\nJuvenil A¨); else if(idade<=17) printf(¨\nJuvenil B¨); else printf(¨\nAdulto¨); }

Ambigüidade if(x<2) else printf(“x é maior que 1”); Problema: x=2; printf(“\n x está entre [-3;1]”); else printf(“x é maior que 1”); Problema: O else se refere ao 1o if ou ao 2o ?

Ambigüidade C resolve o problema da ambigüidade associando o else sempre ao último if. Portanto, para que a construção funcione como desejado, pode-se resolver o problema usando bloco. x=2; if(x<2) { if(x>=-3) printf(“\n x está entre [-3;1]”); } else printf(“x é maior que 1”);

Exercícios: 1) Faça um programa que encontra o maior de 3 valores. 2) Altere o programa anterior para que ele encontre o menor de 4 valores. 3) Faça um programa que leia 3 valores float (n1,n2 e n3) e um valor inteiro (opcao). Se opcao for: 1 : escreve os valores em ordem crescente; 2: escreve os valores em ordem decrescente: 3 : escreve o maior dentre os demais. Prever situações de erro.