transforming models with atl - rosefib.webnode.com.br c... · estrutura condicional exercício...

23
Linguagem C/C++ Estrutura Condicional Prof: Rosemary Melo

Upload: hoangkhue

Post on 02-Jan-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Linguagem C/C++

Estrutura Condicional

Prof: Rosemary Melo

Page 2: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura Condicional

if... (simples)

Sintaxe (como o comando deve ser escrito):

if (condição)

comando;

ou, no caso de mais de um comando:

if (condição) {

comando 1;

:

comando n;

}

Observação: em condição pode-se ter um operador relacional ou lógico (ou uma combinação deles):

Page 3: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Operadores relacionais e lógicos

Exemplo:

Seja a seqüência:

Solicite e leia dois números reais (variáveis n1 e n2);

Se n1 for maior que n2 então escreva n1;

Escreva “FIM”.

Nesta seqüência de instruções, o objetivo é escrever ovalor de n1, desde que ele seja maior que n2.

Operadores relacionais Operadores lógicos > “MAIOR QUE”

< “MENOR QUE”

>= “MAIOR OU IGUAL”

<= “MENOR OU IGUAL”

!= “DIFERENTE”

== “igual a”

&& “e”

~ “NÃO”

|| “OU”

Page 4: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura condicional (if…)

Resp. Exemplo:#include <iostream>

using namespace std;

int n1, n2;

main () {

cout << “Informar dois numeros:\n";

cin >> n1 >>n2;

if (n1 > n2) {

cout << “n1 = " << n1 <<"\n";

}

system("PAUSE");

}

Page 5: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura condicional (if…)

Exercício:

1) Modificar o programa anterior para que ele leia dois números e escreva a soma se a > b.

2) Faça um programa que leia 3 números e escreva a quantidade de números maiores que 10.

3) Faça um programa que leia 3 números e escreva a quantidade de números maiores que 10 ou menores que 5.

Page 6: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura condicional (if…)

Respostas:1)

#include <iostream>

using namespace std;

int n1, n2;

main () {

cout << “Informar dois numeros:\n";

cin >> n1 >>n2;

if (n1 > n2)

cout << “n1 + n2 = " << n1 + n2 <<"\n";

system("PAUSE");

}

Page 7: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura condicional (if…)

2)

#include <iostream>

using namespace std;

int a, b, c, k;

main () {

cout << “Informe tres numeros:\n";

cin >> a >>b >>c;

k=0;

if (a>10) k=k+1;

if (b>10) k++;

if (c>10) k=k+1;

cout << "Num de elementos >10: " << k <<"\n";

system("PAUSE");

}

Faça o teste de mesapara os seguintesvalores:a = 1, b = 15 e c = 10

a = 11, b = 15 e c = 20

a = 1, b = 5 e c = 8

Page 8: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura condicional (if…)

3)

Algoritmo

Solicite 3 números

Leia 3 números reais;

Atribuir, ao número k, inicialmente, o valor 0 (zero);

Se a > 10 ou a < 5 então faça k = k + 1;

Se b > 10 ou b < 5 então faça k = k + 1;

Se c > 10 ou c < 5 então faça k = k + 1;

Escrever k

Fim algoritmo

Page 9: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura condicional (if…)

3)

#include <iostream>

using namespace std;

float a,b,c;

int k;

main() {

cout << "Escrever tres numeros: \n";

cin >> a >> b >> c;

if ((a>10) || (a<5)) k++;

if ((b>10) || (b<5)) k++;

if ((c>10) || (c<5)) k++;

cout << "Numero de elementos >10 ou <5 = " << k<< "\n";

system("Pause");

}

Page 10: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura condicional (if…)

Teste o exemplo anterior para um conjunto de valores para a, b e c abaixo:

N (a, b e c) N>10 N<5 (N>10)ou(N<5) k+1

A 11 V F V 0+1=1

B 6 F F F 1

C 4 F V V 1+1=2

N (a, b e c) N>10 N<5 (N>10)ou(N<5) k+1

A 10 F F F 0

B 5 F F F 0

C 3 F V V 0+1=1

N (a, b e c) N>10 N<5 (N>10)ou(N<5) k+1

A 15 V F V 0+1=1

B 3 F V V 1+1=2

C 1 F V V 2+1=3

Page 11: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Expressões Lógica

Operadores lógico

Tipos: ~ – negação

&& – conjunção

|| – disjunção

Tabela Verdade

Conjunto de todas as possibilidades combinatórias entre os valores de diversas variáveis lógicas, as quais se encontram em apenas duas situações (V ou F), e um conjunto de operadores lógicos.

Operação de Negação

A não A

F V

V F

Page 12: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Expressões Lógicas

Tabela Verdade

Operação de conjunção (&&)

A B A e B

F F F

F V F

V F F

V V V

Operação de disjunção (||)

A B A ou B

F F F

F V V

V F V

V V V

Operação de Negação

A não A

F V

V F

Page 13: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Expressões Lógicas

Prioridade Operadores

1 não

2 e

3 ou

Prioridades

entre operadores lógicos

entre todos os operadores

Prioridade Operadores

1 Parênteses mais internos

2 Operadores aritméticos

3 Operadores relacionais

4 Operadores lógicos

Page 14: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura condicional (if…)

Exercício proposto:

1) Escrever um programa que leia dois números reais e faça a divisãodo primeiro pelo segundo (no caso: a dividido por b), se a for maiorque b. Aqui, b deve ser diferente de zero.

Seqüência de instruções:

Algoritmo

Solicite dois números

Leia dois números

Se a > b e b ≠ 0 então escreva a/b;

Fim

Page 15: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura condicional (if…)

Exercício proposto:1)

#include <iostream>

using namespace std;

float a,b;

main () {

cout << "Informe dois numeros:\n";

cin >> a >> b;

if ((a>b) && (b!=0)) cout << "a/b = "<<a/b <<”\n”;

cout <<“FIM \n”;

system("PAUSE");

}

Page 16: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura Condicional (if…else)

if...else

Sintaxe: if (condição)

comando 1;

else

comando 2;

ou, no caso de mais de um comando por alternativa

if (condição) {

comando 1;

comando 2;}

else {

comando 1;

comando n; }

Page 17: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura Condicional (if…else)

Exemplos:

Considerando-se a seqüência de instruções:

Solicite dois números

Leia dois números

Se a > b, escreva a

Senão, escreva b.

Nesta seqüência, o número impresso será o maior entre os dois escritos.

Page 18: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura Condicional (if…else)

Exemplos:#include <iostream>

using namespace std;

float a,b;

main ()

{

cout << “Informe dois numeros:\n";

cin >>a >>b;

if (a>b)

cout << "Maior = " <<a <<"\n";

else

cout << "Maior = " <<b <<"\n";

cout << "FIM \n”;

system("PAUSE");

}

Page 19: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura Condicional (if…else)

Proposta: alterar o programa anterior para comparar 3 números.

1ª forma: com cout e cin

#include <iostream>

using namespace std;

float n1,n2,n3;

main () {

cout <<“Informe tres numeros:\n";

cin >>n1 >>n2 >>n3;

if (n1>n2) {

if (n1>n3) cout <<"Maior = " <<n1 <<"\n";

else cout <<"Maior = " <<n3 <<"\n"; }

else {

if (n2>n3) cout <<"Maior = " <<n2 <<"\n";

else cout <<"Maior = " <<n3 <<"\n"; }

system("PAUSE"); }

Page 20: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura Condicional (if…else)

Proposta: alterar o programa anterior para comparar 3 números.

2ª forma:

#include <iostream>

using namespace std;

float n1,n2,n3,maior;

main () {

cout << “Informe tres numeros:\n";

cin >>n1 >>n2 >>n3;

maior=n1;

if (n2>maior) maior=n2;

if (n3>maior) maior=n3;

cout <<"Maior = " <<maior <<"\n";

system("PAUSE");

}

Page 21: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura Condicional

Exercício Proposto:

1) Faça um programa que leia 2 números e escreva a diferença se o primeiro for maior que o segundo. Caso contrário escreva a soma.

2) Faça um programa que leia dois números reais e faça a divisão deles, de acordo com as condições:

Se o 1º for maior ou igual ao 2º, divide-se o 1º pelo 2º. O 2º número deve ser diferente de zero (fazer a/b se a≥b e b ≠ 0);

Se o 2º for maior que o 1º, divide-se o 2º pelo 1º. O 1º número deve ser diferente de zero (fazer b/a se b>a e a ≠ 0).

Page 22: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura Condicional

3) Considere a seguinte função de duas sentenças:

- fazer um programa para calcular o valor da função para um certo valor de x (que deve ser digitado na execução do programa).

- Testar o programa para os valores -1; 0; 1; 2 e 5. (isto equivale a executar o programa 5 vezes).

1xsex2

1xse3x

)x(f

Page 23: Transforming models with ATL - rosefib.webnode.com.br C... · Estrutura Condicional Exercício Proposto: 1) Faça um programa que leia 2 números e escreva a diferença se o primeiro

Estrutura Condicional

4) Dado três valores A, B, C, verificar se eles podem ser os comprimentos dos lados de um triângulo, se forem, verificar se compõem um triângulo equilátero (todos os lados iguais), isósceles (pelo menos dois lados iguais) ou escaleno (todos os lados diferentes). Caso contrário, informar que estes três valores não compõe nenhum triângulo. A regra para três valores formar um triângulo é que cada lado informado deve ser menor que a soma dos outros dois lados.