MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais

Documentos relacionados
Programação Estruturada

MC-102 Aula 06 Comandos Repetitivos

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

13 Operadores relacionais

GFM015 Introdução à Computação Algoritmos e Programação / Controle de Fluxo / Estutura Condicional

Aula 05: Condicionais (if / else)

Programação para Games I

Estruturas condicionais

Linguagem C (estruturas condicionais)

MC-102 Aula 05 Comandos Condicionais

Aula 06: Condicionais (switch)

Linguagem C. Prof.ª Márcia Jani Cícero

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

MC-102 Aula 07 Comandos Repetitivos

2º Roteiro de Laboratório Estruturas condicionais

Controle de Fluxo - Condicionais. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC

Laboratório 3 Comandos de repetição while, do-while e for

PCI- Operadores, Expressões e Funções. Profa. Mercedes Gonzales Márquez

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

Operadores. A linguagem C é muito rica em operadores internos. Ela define quatro classes de operadores:

Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção. OPL e IC1 Prof: Anilton Joaquim da Silva

Entrada. Comando 1 Comando 2. Saída

Introdução à Programação. Ciclos 1ª parte

Introdução à Linguagem C

DURAÇÃO DA PROVA: 2 horas

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Para começar... Para começar... Para começar... Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Estruturas condicionais...

Comandos de decisão. Tiago Alves de Oliveira. Adaptado de slides das Profas. Patrícia Jaques, Mônica Py e Deise Sacol

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Linguagem C. Linguagem artificial e formal usada para comunicar instruções ao computador. Proposta por Dennis Ritchie entre 1969 e 1973.

MC-102 Aula 13. Instituto de Computação Unicamp. 29 de Setembro de 2016

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Estruturas de Repetição

Introdução à Ciência da Computação SCC0120 Prof. Zhao Liang. Aula de Laboratório 1: Operadores, comandos básicos e comando IF 27/03/2012

MC102 Algoritmos e Programação de Computadores

Capítulo 2: Condicionais. Pontifícia Universidade Católica Departamento de Informática

Introdução à Ciência da Computação

MAC 2166 Introdução à Computação para Engenharia Escola Politécnica Primeiro Semestre de 2003 Primeira Prova 2 de abril de 2003

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Estruturas de Controle - Seleção. Prof. César Melo

Capítulo 4: Condicionais

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Aula 2 Comandos de Decisão

3. Linguagem de Programação C

Computação eletrônica: Estruturas de repetição

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

Métodos Computacionais em Física

INF1005: Programação 1. Condicionais. 08/03/10 (c) Rogério Rodrigues 1

Linguagem C estruturas de repetição

Aula 01. Programação Condicional Programação repetitiva

Introdução Operadores Relacionais Lógicos Comando If Comando If...else Comando swich()...case...break Operador condicional ternário

Introdução à Programação I

Introducao a Programacao Estruturas de decisão

Curso de C. Estruturas Condicionais

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

Estruturas de Decisão e loops

MC-102 Aula 08 Comandos Repetitivos

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

MC-102 Aula 11 Strings

4.1- Aritméticos + soma - subtração * multiplicação / divisão % módulo (resto da divisão de inteiros ).

Treinamento Olimpíada Brasileira de Informática

controle de fluxo - condicionais

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL

Estruturas de seleção. Prof.: Jesus

Aula 4 Introdução ao C

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Linguagem C: Introdução

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO. Prof. Esp. Fabiano Taguchi

Programação Estruturada

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

SSC 0301 IC para Engenharia Ambiental

Introdução à Programação em C (I)

Estruturas de seleção. Prof.: Jesus

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

Modulo 3: Else, Case, For...

Estrutura do programa

Aula 03 -Introdução àlinguagc Programação: Estrutura-Repetição. OPL e IC1 Prof: Anilton Joaquim da Silva

COMANDOS DE CONTROLE DE FLUXO. Luís Charneca.

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Aula 6: Comandos Estruturados Estrutura Condicional

Vejamos agora mais alguns exemplos de problemas envolvendo seqüência de números.

Controle de Fluxo Utilizando C

Sintaxe Básica de Java Parte 2

Lógica de Programação I

Técnicas de Programação: Comandos de Controle de DEE UFPB

Módulo 3 Controle de Fluxo

Introdução à Programação

Introdução a Programação de Jogos

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Programação de Computadores IV. Estruturas de repetição Slides cedidos por Bruno Augusto Dorta Marques

CCO 016 / COM 110 Fundamentos de Programação

5 Comando de Seleção Simples e Composta

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

CCO 016 / COM 110 Fundamentos de Programação

Programação Estruturada

3. Linguagem de Programação C

Introdução à Linguagem C. Adaptado de Deise Saccol

Linguagem de Programação C. Comandos de Seleção e Desvio

Transcrição:

MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Instituto de Computação Unicamp 26 de Agosto de 2016

Roteiro 1 Expressões relacionais 2 Expressões lógicas 3 4 Exercícios (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 2 / 41

Expressão Já vimos que constantes e variáveis são expressões. Exemplo a = 10; a = b; Vimos também que operações aritméticas também são expressões. Exemplo a = 2 + 2; a = 10 / 3; a = a + 1; (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 3 / 41

Expressões relacionais Expressões relacionais são aquelas que realizam uma comparação entre duas expressões e retornam 1 Zero (0), se o resultado é falso 2 Um (1), ou qualquer outro número diferente de zero, se o resultado é verdadeiro. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 4 / 41

Operadores Relacionais Os operadores relacionais da linguagem C são: == : igualdade.! = : diferente. > : maior que. < : menor que. >= : maior ou igual que. <= : menor ou igual que. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 5 / 41

Expressões relacionais expressão == expressão : Retorna verdadeiro quando as expressões forem iguais. 9 == 9 //Resultado é 1, True 9 == 10 //Resultado é 0, False expressão!= expressão : Retorna verdadeiro quando as expressões forem diferentes. 9!= 9 //Resultado é 0, False 9!= 10 //Resultado é 1, True (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 6 / 41

Expressões relacionais expressão > expressão : Retorna verdadeiro quando a expressão da esquerda tiver valor maior que a expressão da direita. 9 > 5 //Resultado é 1, True expressão < expressão : Retorna verdadeiro quando a expressão da esquerda tiver valor menor que a expressão da direita. 9 < 5 //Resultado é 0, False (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 7 / 41

Expressões relacionais expressão >= expressão : Retorna verdadeiro quando a expressão da esquerda tiver valor maior ou igual que a expressão da direita. 9 >= 5 //Resultado é 1, True expressão <= expressão : Retorna verdadeiro quando a expressão da esquerda tiver valor menor ou igual que a expressão da direita. 9 <= 5 //Resultado é 0, False (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 8 / 41

O que será impresso pelo programa? #include <stdio.h> int main(){ int a, b; printf("%d\n", 9 > 3); printf("%d\n", (3*4)/2!= (2*3) ); a = 1; b = -1; printf("%d\n", a!=b); (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 9 / 41

Expressões lógicas Expressões lógicas são aquelas que realizam uma operação lógica (ou, e, não, etc...) e retornam verdadeiro ou falso (como as expressões relacionais). (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 10 / 41

Operadores Lógicos Na linguagem C temos os seguintes operadores lógicos: &&: operador E. : operador OU.!: operador NÃO. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 11 / 41

Expressões lógicas expressão && expressão : Retorna verdadeiro quando ambas as expressões são verdadeiras. Sua tabela verdade é: Op 1 Op 2 Ret V V V V F F F V F F F F Qual o resultado da expressão lógica abaixo? a = 0; b = 0; (a == 0 && b == 0) (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 12 / 41

Expressões lógicas expressão expressão : Retorna verdadeiro quando pelo menos uma das expressões é verdadeira. Sua tabela verdade é: Op 1 Op 2 Ret V V V V F V F V V F F F Qual o resultado da expressão lógica abaixo? a = 0; b = 1; (a == 0 b == 0) (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 13 / 41

Expressões lógicas! expressão : Retorna verdadeiro quando a expressão é falsa e vice-versa. Sua tabela verdade é: Op 1 V F Ret F V Qual o resultado da expressão lógica abaixo? a = 0; b = 1;!(a!= b) (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 14 / 41

O que será impresso pelo programa? #include <stdio.h> int main(){ printf("%d\n", (8>9) && (10!=2)); printf("%d\n", (14 > 100) (2>1)); printf("%d\n", (!(14>100) &&!(1>2) ) ); (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 15 / 41

Um comando condicional é aquele que permite decidir se um determinado bloco de comandos deve ou não ser executado, a partir do resultado de uma expressão relacional ou lógica. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 16 / 41

Bloco de comandos Exemplo É um conjunto de instruções agrupadas. Limitada pelos caracteres { e. int main() { Início do bloco de comandos int a; a=1; Fim do bloco de comandos (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 17 / 41

O principal comando condicional da linguagem C é o if, cuja sintaxe é: if(express~ao relacional ou um único comando; ou também lógica) if (express~ao relacional ou lógica) { comando 1; comando 2;... comando n; Os comandos são executados somente se a expressão relacional/lógica for verdadeira. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 18 / 41

O programa abaixo determina se um valor é ímpar. #include <stdio.h> int main () { int a; scanf("%d", &a); if ((a % 2)!= 0) { printf ("O valor é ímpar.\n"); (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 19 / 41

Lembrando como C representa os valores Falso e Verdadeiro, o programa pode ser alterado para: #include <stdio.h> int main () { int a; scanf("%d", &a); if (a % 2) { printf ("O valor é ímpar.\n"); (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 20 / 41

Uma variação do comando if é o if/else, cuja sintaxe é: if (express~ao relacional ou lógica){ comandos executados se a express~ao é verdadeira; else { comandos executados se a express~ao é falsa; (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 21 / 41

Exemplo: Determinando o menor de dois números: int main(void){ int a,b; scanf("%d", &a); scanf("%d", &b); if(a < b){ printf("o menor número é: %d\n", a); else{ printf("o menor número é:%d\n",b); (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 22 / 41

Note que o if é um comando, e como tal pode aparecer dentro do bloco de comandos de outro if. Exemplo: Usando apenas operadores relacionais, vamos escrever um programa que lê um número e verifica em qual dos seguintes casos o número se enquadra: Par e menor que 100. Par e maior ou igual a 100. Ímpar e menor que 100. Ímpar e maior ou igual a 100. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 23 / 41

#include <stdio.h> int main(){ int a; printf("digite um número inteiro:"); scanf("%d", &a); if( a % 2 == 0){ if( a < 100) printf("o número é par e menor que 100\n"); else printf("o número é par e maior ou igual a 100\n"); else{ if ( a < 100) printf("o número é ímpar e menor que 100\n"); else printf("o número é ímpar e maior que 100\n"); Se você pudesse usar operadores lógicos, como você poderia refazer este programa? (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 24 / 41

#include <stdio.h> int main(){ int a; printf("digite um número inteiro:"); scanf("%d", &a); if( ( a % 2 == 0) && (a<100) ) printf("o número é par e menor que 100\n"); if( ( a % 2 == 0) && (a>=100) ) printf("o número é par e maior ou igual a 100\n"); if( ( a % 2!= 0) && (a<100) ) printf("o número é ímpar e menor que 100\n"); if( ( a % 2!= 0) && (a>=100) ) printf("o número é ímpar e maior que 100\n"); (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 25 / 41

if (cond1) { if (cond2) comando1; else comando2; Quando o comando2 é executado? (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 26 / 41

if (cond1) { if (cond2) comando1; else comando2; Quando o comando2 é executado? Resposta: quando cond1 for falsa. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 27 / 41

if (cond1){ if (cond2) comando1; else comando2; else{ if(cond3) comando3; else comando4; Quando o comando4 é executado? (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 28 / 41

if (cond1){ if (cond2) comando1; else comando2; else{ if(cond3) comando3; else comando4; Quando o comando4 é executado? Resposta: quando a cond1 for falsa e cond3 for falsa. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 29 / 41

Use chaves e indentação para deixar claro a qual comando condicional um outro comando pertence!! if (cond1) if (cond2) comando1; else comando2; Quando o comando2 é executado? (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 30 / 41

Use chaves e indentação para deixar claro a qual comando condicional um outro comando pertence!! if (cond1) if (cond2) comando1; else comando2; Quando o comando2 é executado? Resposta: O comando if-else é um único comando, portanto ele está dentro do primeiro if. Logo comando2 é executado quando cond1 for verdadeira e cond2 falsa. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 31 / 41

Usando chaves e indentação para deixar mais claro: if (cond1){ if (cond2) comando1; else comando2; (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 32 / 41

int main(){ int a = 5; if(a > 3){ if(a < 7) printf("a"); else{ if(a>-10) printf("b"); else printf("c"); O que será impresso? (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 33 / 41

int main(){ int a; a = -12; if(a > 3){ if(a < 7) printf("a"); else{ if(a>-10) printf("b"); else printf("c"); O que será impresso? (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 34 / 41

int main(){ int a; a = 9; if(a > 3){ if(a < 7) printf("a"); else{ if(a>-10) printf("b"); else printf("c"); O que será impresso? (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 35 / 41

Em C o comando de atribuição é = enquanto que o teste de igualdade é ==. Não os confunda, pois isto pode gerar erros! #include <stdio.h> int main(){ int a = 2; if(a = 3){ printf("fazer algo se a for 3\n"); else{ printf("fazer algo se a n~ao for 3\n"); O programa acima imprime fazer algo se a for 3, pois na expressão relacional dentro do comando if, temos uma atribuição, que sempre é verdadeiro. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 36 / 41

(Instituto de Computac a o Unicamp) MC-102 Aula 04 26 de Agosto de 2016 37 / 41

Exercícios A solução abaixo está correta para classificar um número como par e menor que 100, ou par e maior ou igual a 100, etc, como no exemplo visto anteriormente? #include <stdio.h> int main(){ int a; printf("digite um número inteiro:"); scanf("%d", &a); if( ( a % 2 == 0) && (a<100) ) printf("o número é par e menor que 100\n"); else if( a>=100 ) printf("o número é par e maior ou igual a 100\n"); if( ( a % 2!= 0) && (a<100) ) printf("o número é ímpar e menor que 100\n"); else if (a>=100) printf("o número é ímpar e maior que 100\n"); (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 38 / 41

Exercícios Escreva um programa que lê um número inteiro do teclado e imprime SIM se o número for par e maior do que 10, ou for ímpar e menor do que 50. Caso contrário o programa deve imprimir NAO. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 39 / 41

Exercícios Escreva um programa lê três números e imprime o maior deles. (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 40 / 41

Exercícios Escreva um programa lê três números e os imprime em ordem (ordem crescente). (Instituto de Computação Unicamp) MC-102 Aula 04 26 de Agosto de 2016 41 / 41