03- condicional - C

24
Centro de Ciências Exatas e Tecnológicas CET150 - Processamento de Dados I Prof. Marcos Bião Aula – 03 Condicionais

description

Aula de IF Else em C

Transcript of 03- condicional - C

Page 1: 03- condicional - C

Centro de Ciências Exatas e TecnológicasCET150 - Processamento de Dados I

Prof. Marcos Bião

Aula – 03 Condicionais

Page 2: 03- condicional - C

ESTRUTURAS DE CONTROLE

Até agora os conceitos básicos utilizados para a criação de um algoritmo foram:

•Bloco lógico •Entrada e saída de dados •Variáveis e constantes•Expressões lógicas, relacionais e aritméticas

Já vimos os comandos que traduzem esses conceitos de forma a representar o conjunto de ações.

Page 3: 03- condicional - C

ESTRUTURAS DE CONTROLE

• Para que o conjunto de ações se torne viável, o algoritmo deve seguir um FLUXO DE EXECUÇÃO, uma forma lógica na qual essas ações são executadas.

• Por meio das estruturas básicas de controle do fluxo de execução – SEQÜENCIAÇÃO, SELEÇÃO, REPETIÇÃO – e da combinação delas, pode-se criar algoritmos para solucionar qualquer problemas.

Page 4: 03- condicional - C

ESTRUTURAS SEQUENCIAL

• Corresponde ao fato de que o conjunto de ações primitivas será executado em uma seqüência linear de cima para baixo e da esquerda para a direita, isto é, na mesma ordem em que foram escritas.

Page 5: 03- condicional - C

EXERCICIO

• Escreva um algoritmo que, dado o lado de um quadrado, calcule o perímetro, a área e a diagonal do mesmo.

Page 6: 03- condicional - C

ESTRUTURA DE SELEÇÃO

•Uma estrutura de seleção permite a escolha de um grupo de ações (bloco) a ser executado quando determinadas condições, representadas por expressões lógicas, são ou não atendidas.

•A estrutura de seleção pode ser simples ou composta.

Page 7: 03- condicional - C

SELEÇÃO SIMPLES

Quando é necessário testar uma condição antes de executar uma ação ou um bloco de comandos, usa-se uma SELEÇÃO SIMPLES, que segue a seguinte sintaxe:if <condição>{

Comando1 Comando2 Comando3 ComandoN

}

// <condição> é sempre uma expressão lógica que, quando verificada, pode gerar um resultado falso ou verdadeiro.

Page 8: 03- condicional - C

SELEÇÃO SIMPLES

•O comando ou bloco de comandos (bloco verdade) que está dentro do if só será executado SE a condição for verificada verdadeira. Caso a condição seja falsa nenhum comando do bloco será executado.

Page 9: 03- condicional - C

Operadores relacionais

Page 10: 03- condicional - C

EXEMPLO

•Escrever um algoritmo que calcule a media de um aluno e avalie se ele foi aprovado ou não

Page 11: 03- condicional - C

EXEMPLO

#include <stdio.h>main(){int n1,n2,n3;float media;printf(“Digite as 3 notas”);scanf(“%d%d%d”, &n1&n2&n3);media = (n1+n2+n3)/3;if(media>=7){ printf(“Aprovado”);}}

Page 12: 03- condicional - C

SELEÇÃO COMPOSTA

Quando houver situações em que duas alternativas dependem de uma mesma condição, uma de a condição ser verdadeira e a outra de a condição ser falsa, usa-se a estrutura de seleção composta.

Page 13: 03- condicional - C

SELEÇÃO COMPOSTA

if <condição>{ Comando1; Comando2; ComandoN;

}else{ ComandoX1;

ComandoX2; ComandoXN;}

Page 14: 03- condicional - C

Exemplo#include <stdio.h>int main(){int a=1,b=2;if (a>b){ a = 5;}else{ a=10;}printf (“O valor de A é: %d”,a);}

Page 15: 03- condicional - C

Operadores lógicos

Page 16: 03- condicional - C

EXEMPLO1. Escrever um algoritmo que leia um valor

numérico inteiro e apresente-o caso seja divisível por 2 e 5. Não sendo divisível por 2 e 5, o programa deve apresentar a mensagem “não é divisível por 2 e 5”.

Passos:a. Entrada: número inteiro (N)b. Saída: “é divisível por 2 e 5” ou “não é divisível

por 2 e 5”c. CONDIÇÃO PARA SER DIVISÍVEL POR 2 E 5: O

resto da divisão de N por 2 e o resto da divisão de N por 5 devem ser iguais a zero

Page 17: 03- condicional - C

EXEMPLOa. CONDIÇÃO LÓGICA: (RESTO2) e (RESTO5) = 0b. Calcular o resto da divisão de N por 2 (usar

variável RESTO2)c. Calcular o resto da divisão de N por 5 (usar

variável RESTO5)d. Verificar se as duas variáveis possuem valor

zero, se sim, apresentar “a variável N é divisível por 2 e 5”, se não apresentar a mensagem “Não é divisível por 2 e 5”

Page 18: 03- condicional - C

SELEÇÃO ENCADEADA• SELEÇÃO ENCADEADA HETEROGENEA

• Quando não é possível identificar um padrão lógico de construção em uma estrutura de seleção encadeada, dizemos que ela é uma estrutura de seleção encadeada heterogênea.

Page 19: 03- condicional - C

if<condição 1>{if<condição 2>{

Comando1Comando2ComandoN

}else

if<condição 3> {ComandoX1ComandoX2ComandoXN

elseif<condição 4> { if<condição 5> { ComandoVerdade } else ComandoFalsidade};

};} 19

Bloco de Comandos 1

Bloco de Comandos 2

Page 20: 03- condicional - C

• Podemos resumir todas as variações possíveis da seleção encadeada do modelo anterior em uma tabela de decisão:

20

Condição 1

Condição 2

Condição 3

Condição 4

Condição 5

Ação executada

V V - - - BLOCO 1

F - V - - BLOCO 2

F - F V V ComandoVerdade

F - F F - ComandoFalsidade

Page 21: 03- condicional - C

SELEÇÃO ENCADEADA• SELEÇÃO ENCADEADA HOMOGENEA

iníciológico: B1,B2,B3;se B1 então

Comando1;senão se B2 então

se B3 então Comando2;

senão Comando3; Comando4;

fim_se;fim_se;

fim_se;Comando5;

fim.

1. Se B1 = verdadeiro, B2 = verdadeiro e B3=falso, quais os comandos que serão executados?

2. Se B1=falso, B2= verdadeiro e B3=falso, quais os comandos que serão executados?

3. Se B1=falso, B2= verdadeiro e B3=verdadeiro, quais os comandos que serão executados?

Page 22: 03- condicional - C

EXEMPLO1. Dados três valores A, B e C, verificar se eles podem ser os

comprimentos dos lados de um triângulo, se forem, verificar se compõem um triângulo eqüilátero, isósceles ou escaleno. Informar se não compuserem nenhum triângulo.

Dados de entrada: três lados de um suposto triângulo (A, B, C)

Dados de saída: “não formam um triângulo”, “triângulo eqüilátero”, “triângulo isósceles”, “triângulo escaleno”.

Condição para ser um triângulo: cada lado é menor que a soma dos outros dois.

Condição para ser um triângulo eqüilátero: três lados iguais

Condição para ser um triângulo isósceles: dois lados iguais

Condição para ser um triângulo escaleno: todos os lados diferentes

Page 23: 03- condicional - C

Expressões lógicas:• É triângulo: (A < B+C) e (B <A+C) e (C<A+B)• É eqüilátero: (A=B) e (B=C)• É isósceles: (A=B) ou (A=C) ou (B=C)• É escaleno: (A <>B) e (B<>C) e (A<>C)

23

TABELA DE DECISÃO

É triângulo?

É eqüilátero?

É isósceles?

É escaleno?

Ações

V V F F “Equilátero”

V F V - “Isóscele”

V F F V “Escaleno”

F - - - “Não é triângulo”

Page 24: 03- condicional - C

24

#include <stdio.h>#include <stdlib.h>

int main(){int a,b,c;printf("Digite os valores do lado do triangulo");scanf("%d%d%d",&a,&b,&c);if ((a<b+c) && (b<a+c) && (c<a+b)) if ((a==b)&&(b==c)) printf("Triangulo equilatero"); else if ((a==b) || (b==c) ||(a==c)) printf("Triangulo isoceles"); else printf("Triangulo escaleno"); else printf("Não forma triangulo"); system("PAUSE"); return 0;}