View
103
Download
0
Category
Preview:
Citation preview
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Algoritmos e linguagens de programação 1
(aula 05)
Prof. Alessandro Bernardoalebernardo@unb.brhttp://bsi.k6.com.br
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
Exemplos:
(1) Fazer um programa que leia um número do teclado e escreva se ele é positivo, negativo ou zero;
(2) Fazer um programa que leia dois números reais do teclado e os escreva na ordem crescente e na ordem decrescente;
(3) Fazer um programa que leia três números do teclado e escreva o maior deles.
Na aula passada foram visos alguns exemplos da estrutura de controle condicional do C++, a sintaxe e os operadores relacionais.
Entretanto, para resolver alguns problemas envolvendo essa estrutura, deve-se conhecê-la um pouco mais. Isso será feito a partir da apresentação de exemplos.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura condicional
Exemplo:
(1) Fazer um programa que leia um número do teclado e escreva se ele é positivo, negativo ou zero;
Nesse caso, deve-se verificar três possibilidades. Entretanto, a estrutura condicional que vimos pode tratar, em uma condição, apenas duas. Com isso, deve-se utilizar aninhamento de estruturas (uma estrutura dentro da outra), como visto no exemplo.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura condicional
(1) Fazer um programa que leia um número do teclado e escreva se ele é positivo, negativo ou zero;
using namespace std;#include <iostream>
int main() {
cout << “Insira um número:”; double num; cin >> num;
if (num > 0) cout << “número positivo”; else if (num < 0) cout << “número negativo”; else cout << “número igual a zero”;
system(“pause”); return(0);}
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura condicional
(1) Fazer um programa que leia um número do teclado e escreva se ele é positivo, negativo ou zero;
using namespace std;#include <iostream>
int main() {
cout << “Insira um número:”; double num; cin >> num;
if (num > 0) cout << “número positivo”; else if (num < 0) cout << “número negativo”; else cout << “número igual a zero”;
system(“pause”); return(0);}
Essa estrutura if esta dentro de outra.Assim, ela só executa quando a condição (num > 0) é falsa.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
(2) Fazer um programa que leia dois números reais do teclado e os escreva na ordem crescente e na ordem decrescente;’
Nesse caso, no momento em que sabe-se qual número é maior, deve-se escrever os dois em ordem crescente e decrescente. O melhor para esse caso é inserir duas linhas de execução dentro do if e duas dentro do else. Entretanto, o formato que vimos na aula anterior não permite isso. Assim, para incluir mais de uma linha dentro de cada bloco é necessário delimitá-las por chaves, como visto na solução do exemplo.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
(3) Fazer um programa que leia dois números reais do teclado e os escreva na ordem crescente e na ordem decrescente;’
cout << “Insira dois número:”; double a,b; cin >> a >> b;
if (a > b) { cout << “crescente:” << b << a << endl; cout << “decrescente:” << a << b << endl; } else { cout << “crescente:” << a << b << endl; cout << “decrescente:” << b << a << endl; }
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
(2) Fazer um programa que leia dois números reais do teclado e os escreva na ordem crescente e na ordem decrescente;’
cout << “Insira dois número:”; double a,b; cin >> a >> b;
if (a > b) { cout << “crescente:” << b << a << endl; cout << “decrescente:” << a << b << endl; } else { cout << “crescente:” << a << b << endl; cout << “decrescente:” << b << a << endl; }
Linhas executadas caso a condição seja verdadeira.
Linhas executadas caso a condição seja falsa.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
Sintaxe:
if ( condição ) { // linhas executadas quando a condição é verdadeira }else{ // linhas executadas quando a condição é falsa}
opcional
obrigatório
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
(2) Fazer um programa que leia três números do teclado e escreva o maior deles
Nesse caso, pode-se utilizar várias estruturas if aninhadas. Entretanto, se utilizarmos operadores lógicos poderemos fazer isso com menos comandos if. Em algoritmo, o código poderia ficar assim:
SE a for maior que b E a for maior que c ENTÃO escrever valor de aSENÃO SE b for maior que c ENTÃO escrever valor de b SENÃO escrever valor de c
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
(2) Fazer um programa que leia três números do teclado e escreva o maior deles
ou
cout << “Insira três números:”; double a,b, c; cin >> a >> b >> c;
if ( (a > b) && (a > c) ) { cout << “maior:” << a << endl; } else { if (b > c) cout << “maior:” << b << endl; else cout << “maior:” << c << endl; }
cout << “Insira três números:”; double a,b, c; cin >> a >> b >> c;
if ( (a > b) && (a > c) ) cout << “maior:” << a << endl; else if (b > c) cout << “maior:” << b << endl; else cout << “maior:” << c << endl;
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
(2) Fazer um programa que leia três números do teclado e escreva o maior deles.
cout << “Insira três números:”; double a,b, c; cin >> a >> b >> c;
if ( (a > b) && (a > c) ) { cout << “maior:” << a << endl; } else { if (b > c) cout << “maior:” << b << endl; else cout << “maior:” << c << endl; }
O operador lógico de conjunção em C++ é &&.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Operadores lógicos
Operador Significado
&& E
|| OU
! NÃO
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Operadores lógicos
p q p && q p || q ! p
F F F F V
F V F V V
V V V V F
V F F V F
(7 > 4) || (5 == 3) --- verdadeiro
(7 > 4) && ( 5 == 3 ) --- falso
(10 < 20) && (7 != 20) --- verdadeiro
( 10 < 10 ) || (5 != 5) --- falso
( 10 < 10 ) && (5 != 5) --- falso
(10 < 20) || (7 != 20) --- verdadeiro
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Operadores lógicos
p q p && q p || q ! p
F F F F V
F V F V V
V V V V F
V F F V F
!(7 > 4) || (5 == 3) --- falso
!( (7 > 4) && ( 5 == 3 ) ) --- verdadeiro
!( (10 < 20) && (7 != 20) ) --- falso
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
Exemplos:
(1)Fazer um programa que leia três números e os escreva em ordem crescente;
(2)Fazer um programa que leia os três coeficientes de uma equação de segundo grau e calcule as raízes dessa equação. Esse programa deverá emitir uma mensagem de erro caso possa ocorrer divisão por zero ou o cálculo da raiz quadrada de número negativo.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
(1)Fazer um programa que leia três números e os escreva em ordem crescente;
cout << “Insira três números:”; double a,b, c; cin >> a >> b >> c;
if ( (a > b) && (a > c) ) if (b > c) cout << c << b << a; else cout << b << c << a; else if (b > c) if (a > c) cout << c << a << b; else cout << a << c << b; else if (a > b) cout << b << a << c; else cout << a << b << c;
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
(1)Fazer um programa que leia três números e os escreva em ordem crescente;
cout << “Insira três números:”; double a,b, c; cin >> a >> b >> c;
if ( (a > b) && (a > c) ) if (b > c) cout << c << b << a; else cout << b << c << a; else if (b > c) if (a > c) cout << c << a << b; else cout << a << c << b; else if (a > b) cout << b << a << c; else cout << a << b << c;
Nessa solução existem estruturas if aninhadas.
Assim, caso a primeira condição seja verdadeira, esse será o código a ser executado.
Já se essa condição for falsa, o código executado será esse.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
(1)Fazer um programa que leia três números e os escreva em ordem crescente;
cout << “Insira três números:”; double a,b, c; cin >> a >> b >> c;
if ( (a > b) && (a > c) ) if (b > c) cout << c << b << a; else cout << b << c << a; else if (b > c) if (a > c) cout << c << a << b; else cout << a << c << b; else if (a > b) cout << b << a << c; else cout << a << b << c;
Esses dois blocos de execução também estão aninhados.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional(2) Fazer um programa que leia os três coeficientes de uma equação de segundo
grau e calcule as raízes dessa equação. Esse programa deverá emitir uma mensagem de erro caso possa ocorrer divisão por zero ou o cálculo da raiz quadrada de número negativo.
cout << “Insira os três coeficientes:”; double a,b, c; cin >> a >> b >> c;
double delta = b*b – 4*a*c;
if ( (delta >= 0) && (a != 0) ) { double x1, x2; x1 = ( -b + sqrt(delta) ) / (2*a); x2 = ( -b – sqrt(delta) ) / (2*a); cout << “raízes = ” << x1 << x2 << endl; } else { cout << “ERRO!!”; }
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Estrutura de controle condicional
Exercícios:
(1)Faça um programa para ler os comprimentos dos três lados de um triângulo e escrever se esse triângulo pode existir ou não.
(2)Fazer um programa que leia três números e escreva o menor deles;
(3)Fazer um programa que leia dois números (a e b) e escreva os resultados das expressões a seguir. Esse programa deverá emitir uma mensagem de erro caso ocorra divisão por zero ou raiz quadrada de número negativo.
b
bafe
ba
baf
2
22
1
Recommended