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.



Documentos relacionados
Estruturas de entrada e saída

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

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

IFTO LÓGICA DE PROGRAMAÇÃO AULA 02

Entrada. Comando 1 Comando 2. Saída

Comandos Sequenciais if else, e Switch

José Romildo Malaquias

ESTRUTURA CONDICIONAL

Programação: Estruturas de seleção

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:

Estrutura Condicional C++

7. Estrutura de Decisão

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

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

I Semana de Software Livre da USP Dojo C

9 Comandos condicionais

Programação Básica em C

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

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

Estruturas de Repetição

Variáveis e estruturas de controlo. Introdução à Programação André L. Santos

Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Prof. Alessandro Zimmer Introdução à Linguagem C

Linguagem algorítmica: Portugol

OPERADORES E ESTRUTURAS DE CONTROLE

20 Caracteres - Tipo char

Estruturas de Repetição

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

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

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

Capítulo 2: Introdução à Linguagem C

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

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

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

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

Aluísio Eustáquio da Silva

2 echo "PHP e outros.";

Analise o código abaixo:

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

5 Apresentando a linguagem C

UFSM Introdução ao Dev-C++ Profa. Patrícia Pitthan. Introdução ao Dev-C++

Programação Elementar de Computadores Jurandy Soares

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Linguagem C estruturas de repetição

Programação Básica em C++

Estruturas de Repetição. Programação em Java Estruturas de Repetição

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

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

Universidade Federal de Minas Gerais Instituto de Ciências Agrárias

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Fundamentos de Programação II. Introdução à linguagem de programação C++

Controle de Fluxo Comandos de decisão

INF 1005 Programação I

Convertendo Algoritmos para a Linguagem C

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

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

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Estruturas de Controle

Algoritmos de Busca em Tabelas

Lista de Exercícios 3 Estruturas de Controle Profa Susana M Iglesias

Elementos de programação em C

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

Controle de Fluxo Comandos de decisão

Linguagem C (estruturas condicionais)

INTRODUÇÃO À LINGUAGEM C++

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

Métodos Computacionais. Árvores

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

Organização de programas em Python. Vanessa Braganholo

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

Técnicas de Programação I

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

17 - Funções e Procedimentos em C Programação Modular

Instruções condicionais. Instruções de repetição. Programa simples. Se fizeres barulho então apanhas um estalo!!!! Se condição então acção.

Java Como Programar, 8/E

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

Curso C: Controle de Fluxo

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

Comandos de Controle do Programa

Programação científica C++

Sistemas de numeração

Solucionário de. Programação

CONVENÇÃO DE CÓDIGO JAVA

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Programas simples em C

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

Python: Comandos Básicos. Claudio Esperança

Algoritmos em Javascript

ALP Algoritmos e Programação

Algoritmos e Programação

Introdução aos cálculos de datas

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

02. [Manzano, 1996] Escreva um programa em C que apresente os quadrados dos números inteiros de 15 a 200.

Estrutura Condicional em Java

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

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

Algoritmos e Programação Estruturada

Transcrição:

O comando if if - else O comando condicional permite incluir no programa trechos de código que dependem de uma ou mais condições para sua execução. O comando condicional tem duas formas básicas: if(condição) comando if(condição) comando1 else comando2 (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 1 / 26

if - else O comando if if(condição) comando if(condição) comando1 else comando2 A condição é uma expressão qualquer cujo valor é calculado ao se executar o comando condicional. um valor diferente de zero para a condição indica verdadeiro um valor igual a zero indica falso. (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 2 / 26

Exemplos de uso do if if - else if(a > 10) b=0; if(c 10) d = 3; if(e 32 >= 789)a = b + 32 k; if(n%2) printf( O numero %d e impar! \n,n); (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 3 / 26

if - else Exemplos de uso do if - else if(a == 10) b = 0; else b = 25; if(c 10) d = 3; else c = 34/d; if(e 32 <= 789) a = b + 32 k; else a = 0; if(n%2) printf( O numero %d e impar! \n,n); else printf( O numero %d e par! \n,n); (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 4 / 26

Operadores Relacionais Operadores Relacionais <... menor que <=... menor ou igual a ==... igual a! =... diferente de >=... maior ou igual a >... maior que Todos os operadores relacionais tem a mesma precedência, que é menor que a precedência dos operadores aritméticos. (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 5 / 26

Mais exemplos Operadores Relacionais if(a! = b) a = a b; else b = b 3; if(a! = b) a = b; else b = 3; if(1 <= a <= 3) printf( \n o valor de a é um numero primo ); else b = 3; (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 6 / 26

Operadores Relacionais if-else e blocos de comandos Bloco de comandos Às vezes é necessário executar mais de uma operação quando uma condição é satisfeita. Nesse caso, o bloco dos comandos que devem ser executados deve ser limitado por { e }. Exemplo: if(a < b) { t = a; a = b; b = t; } else i + +; (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 7 / 26

Operadores Relacionais Erro comum Cuidado com o sinal de igual == int saldo = 2000; if(saldo==0) printf( Voce esta quebrado!\n ); else printf( Seu saldo e : %d,saldo); (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 8 / 26

Operadores Relacionais Erro comum Cuidado com o sinal de igual == int saldo = 2000; if(saldo=0) printf( Voce esta quebrado!\n ); else printf( Seu saldo e : %d,saldo); O compilador não considera isso um erro! Cuidado! (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 9 / 26

Aninhando Sentenças if s aninhados O exemplo a seguir responde se um dado número é positivo ou negativo e se é par ou ímpar. (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 10 / 26

if s aninhados Aninhando Sentenças int main(void) { int num; // Obtem um numero do usuario printf( \n Entre com um numero inteiro: ); scanf( %d,&num); // Imprime mensagem dizendo se o numero e positivo ou negativo e par ou impar if(num >= 0) { if(num%2==0) print( O numero e par e positivo.\n ); else print( O numero e impar e positivo.\n ); } else { if(num%2==0) print( O numero e par e negativo.\n ); else print( O numero e impar e negativo.\n ); } return 0; Sheila } de Almeida (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 11 / 26

Regra da Associação if s aninhados Regra da associação: um if está associado com a última ocorrência do if sem else. (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 12 / 26

Exemplo incorreto if s aninhados int main(void) { int car; } // Obtem o numero de carros num estacionamento printf( \n Entre com um numero de carros: ); scanf( %d,&car); /* Imprime uma mensagem dizendo se há mais de 10 carros ou se não há carros no estacionamento */ if(car!= 0) if(car > 10) print( Ha mais de 10 carros no estacionamento.\n ); else print( Não ha carros no estacionamento.\n ); return 0; (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 13 / 26

O que está acontecendo? if s aninhados int main(void) { int car; } // Obtem o numero de carros num estacionamento printf( \n Entre com um numero de carros: ); scanf( %d,&car); /* Imprime uma mensagem dizendo se há mais de 10 carros ou se não há carros no estacionamento */ if(car!= 0) if(car > 10) print( Ha mais de 10 carros no estacionamento.\n ); else print( Não ha carros no estacionamento.\n ); return 0; (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 14 / 26

if s aninhados Corrigindo o problema: use { e }. int main(void) { int car; } printf( \n Entre com um numero de carros: ); scanf( %d,&car); /* Imprime uma mensagem dizendo se há mais de 10 carros ou se não há carros no estacionamento */ if(car!= 0) { if(car > 10) print( Ha mais de 10 carros no estacionamento.\n ); } else print( Não ha carros no estacionamento.\n ); return 0; (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 15 / 26

Operadores Lógicos if-else aninhados ou operadores lógicos Todos os programas até agora consideraram o comando if com condições simples: b!=0 contador < 5 Quando mais de uma condição precisa ser testada, precisamos usar sentenças if-else aninhadas. (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 16 / 26

Operadores Lógicos if-else aninhados ou operadores lógicos if(num>=0) if(num%2==0) printf( Numero par positivo. \n ); Nós podemos usar operadores lógicos!!! Veja: if((num>=0)&&(num%2==0)) printf( Numero par positivo. \n ); (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 17 / 26

Operadores Lógicos Operadores Lógicos && E (todas as condições precisam ser verdadeiras) OU (basta que uma das condições seja verdadeira)! NÃO/NEGAÇÃO (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 18 / 26

Operadores Lógicos Operadores Lógicos: operação de negação Cada expressão resulta num valor lógico: 0 falso 1 verdadeiro A operação de negação pode ser usada da seguinte forma:!expressão E executa o seguinte papel:!0 é 1!1 é 0 (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 19 / 26

Operadores Lógicos Operadores Lógicos: operação de negação Exemplo: if(num>0 &&!(num%2)) printf( Numero par e positivo. \n ); (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 20 / 26

Operadores Lógicos Operadores Lógicos: operação de negação Outro exemplo: suponha que quero fazer um cálculo que só é válido para números pares positivos. Eu posso avisar ao usuário se ele não digitar um número que satisfaça as condições: printf( digite um numero par positivo: ); scanf( %d,&num); if(!(num>0 && num%2==0)) printf( O numero digitado nao satisfaz as condicoes. \n ); (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 21 / 26

Operadores Lógicos Operadores Lógicos: precedências O operador de negação tem precedência mais alta que os outros operadores lógicos. Os operadores lógicos && e tem precedência menor que os operadores relacionais. Os operadores lógicos && e tem precedência maior que a operação de atribuição. O operador && tem precedência maior que o operador. precedência menor = é executado depois! (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 22 / 26

Operadores Lógicos Operadores Lógicos: precedências Como a precedência dos operadores lógicos é menor que a dos operadores relacionais, não é necessário usar parênteses em expressões como: x>=3 && x<=50 x==1 x==2 x==3 (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 23 / 26

Exemplo Operadores Lógicos O programa a seguir verifica se os valores de lado1, lado2 e lado3 podem ser lados de um triângulo reto. Usaremos o fato de que os lados tem que ser valores positivos e que o quadrado de um dos lados é igual à soma dos quadrados dos outros dois lados. (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 24 / 26

Exemplo Operadores Lógicos int maind(void) { int lado1, lado2, lado3, q1, q2, q3; } printf( Entre com o tamanho dos lados do triangulo: ); scanf( %d %d %d,&lado1, &lado2, &lado3); q1=lado1*lado1; q2=lado2*lado2; q3=lado3*lado3; if(lado1>0 && lado2>0 && lado3>0) { if(s1==s2+s3 s2==s1+s3 s3==s1+s2) printf( \n Trinagulo reto! \n ); else printf( \n Nao e um triangulo reto!\n ); } else printf( \n Não pode ser um triangulo: tem lados negativos!\n ); return 0; (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 25 / 26

Leis de DeMorgan Operadores Lógicos Duas leis de DeMorgan podem ser bastante úteis:!(x && y) é o mesmo que!x!y!(x y) é o mesmo que!x &&!y (sheila@ic.unicamp.br) (IC-UNICAMP) Comando Condicional agosto - 2007 26 / 26