Post on 22-Apr-2015
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Algoritmos e linguagens de programação 1
(aula 06)
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
Estruturas de controle utilizadas para criar repetições controladas de blocos de instruções.
O C++ dispõe de duas dessas instruções:
Loop FOR:
número de repetições determinadas onde o incremento é feito automaticamente.
Loop WHILE:
número de repetições pode ser determinado ou não e onde um contador (variável que pode ser incrementada ou decrementada) pode ser utilizado.
Estruturas de repetição
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
Exemplo:
Língua portuguesa:
Peça números a uma pessoa e só pare quando ela falar zero.
Em algoritmo:
LER númeroENQUANTO número for diferente de zero FAÇAINÍCIO LER númeroFIM
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
Exemplo:
Língua portuguesa:
Peça números a uma pessoa e só pare quando ela falar zero.
Em C++
double num; cin >> num;
while (num != 0){ cin >> num;}
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
Exemplo:
Língua portuguesa:
Peça um número a uma pessoa e só pare quando a soma dosnúmeros falados for maior que 20.
Em algoritmo:
ENQUANTO soma for menor que 20 FAÇAINÍCIO LER número soma = soma + númeroFIM
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
Exemplo:
Língua portuguesa:
Peça um número a uma pessoa e só pare quando a soma dosnúmeros falados for maior que 20.
Em C++
double soma = 0, num;while (soma <= 20){ cin >> num; soma += num;
}
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
while (condição){
// seqüência de instruções;
}
SINTAXE
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
while (condição){
// seqüência de instruções;
}
Condição: valor lógico que define se o laço WHILE continuara executando ou não.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
while (condição){
// seqüência de instruções;
}
Condição: valor lógico que define se o laço WHILE continuara executando ou não.
seqüência de instruções: linhas de comandos executadas enquanto condição for verdadeira.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
Condição: valor lógico que define se o laço WHILE continuara executando ou não.
seqüência de instruções: linhas de comandos executadas enquanto condição for verdadeira.
VEJAMOS DOIS EXEMPLOS!!
while (condição){
// seqüência de instruções;
}
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int a = 0;while (a < 4){ a+=2; cout << “rodou o loop” << endl;}
a = XXX
condição = XXX
Execução:
O que esse laço faz?
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int a = 0;while (a < 4){ a += 2; cout << “rodou o loop” << endl;}
a = 0
condição = XXX
Execução:
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int a = 0;while (a < 4){ a += 2; cout << “rodou o loop” << endl;}
a = 0
condição = verdadeiro
Execução:
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int a = 0;while (a < 4){ a += 2; cout << “rodou o loop” << endl;}
a = 0 + 2 = 2
condição = verdadeiro
Execução:
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int a = 0;while (a < 4){ a += 2; cout << “rodou o loop” << endl;}
a = 2
condição = verdadeiro
Execução:
rodou o loop
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int a = 0;while (a < 4){ a += 2; cout << “rodou o loop” << endl;}
a = 2
condição = verdadeiro
Execução:
rodou o loop
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int a = 0;while (a < 4){ a += 2; cout << “rodou o loop” << endl;}
a = 2 + 2 = 4
condição = verdadeiro
Execução:
rodou o loop
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int a = 0;while (a < 4){ a += 2; cout << “rodou o loop” << endl;}
a = 4
condição = verdadeiro
Execução:
rodou o looprodou o loop
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int a = 0;while (a < 4){ a += 2; cout << “rodou o loop” << endl;}
a = 4
condição = falso
Execução:
rodou o looprodou o loop
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int a = 0;while (a < 4){ a += 2; cout << “rodou o loop” << endl;}
a = 4
condição = XXX
Execução:
rodou o looprodou o loop
Final do laço!
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int a = 0;while (a < 4){ a += 2; cout << “rodou o loop” << endl;}
a = 4
condição = XXX
Execução:
rodou o looprodou o loop
Final do laço!
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
Outro exemplo:
Calcule a soma dos números inseridos pelo usuário até que ele insira um número negativo.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int soma = 0, num;cin >> num;while (num >= 0){ soma+=num; cin >> num;}cout << soma;
num =
condição =
Calcule a soma dos números inseridos pelo usuário até que ele insira um número negativo.
soma =
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int num = 10;while (num != 0){ cin >> num; cout << “o loop executou mais uma vez”;}
Outros exemplos:
O que o algoritmo abaixo está fazendo?
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int num = 0;while (num <= 20){ num++; cout << “o loop executou mais uma vez”;}
Outros exemplos:
E este algoritmo?
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int num = 0;while (num > 20){ num++; cout << “o loop executou mais uma vez”;}
Outros exemplos:
E este algoritmo?
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int num = 0;while (num > -100){ num++; cout << “o loop executou mais uma vez”;}
Outros exemplos:
E este algoritmo?
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
int num = 0;while (num != 10){ num+=4; cout << “o loop executou mais uma vez”;}
Outros exemplos:
E este algoritmo?
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
Exemplo:
1. Construa um programa em C++ que escreva a raiz quadrada dos números inseridos até que seja inserido um número negativo.
2. Faça um programa que escreva todos os números inteiros de 1 até 20.
3. Faça um programa que leia um número do teclado e posteriormente escreva todos os números inteiros de 1 até esse valor inserido.
4. Faça um programa que peça números inteiros ao usuário até que esse digite 0. Depois calcule a quantidade de ímpares e pares e negativos e positivos foram inseridos antes do 0. O programa deve calcular e escrever também o somatórios de todos os números inseridos.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Exemplos
1. Construa um programa em C++ que escreva a raiz quadrada dos números inseridos até que seja inserido um número negativo.
using namespace std;#include <iostream>
int main(){ double num; cout << ‘Insira um número:’; cin >> num;
while (num < 0) { cout << “Raiz:” << sqrt(num) << endl; cout << ‘Insira outro número:’; cin >> num; } return(0);},
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
2. Faça um programa que escreva todos os números inteiros de 1 até 20.
using namespace std;#include <iostream>
int main(){ cout << “Números:” << endl; int cont = 1;
while (cont <= 20) { cout << num << endl; } system(“pause”); return(0);},
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
3. Faça um programa que leia um número do teclado e posteriormente escreva todos os números inteiros de 1 até esse valor inserido.
using namespace std;#include <iostream>
int main(){ cout << “Insira um número: ”; int num; cin >> num;
int cont = 1, soma = 0; while (cont <= num) { soma += num; num++; } cout << “somatório: “ << soma << endl; system(“pause”); return(0);}
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Instrução WHILE
4. Faça um programa que peça números inteiros ao usuário até que esse digite 0. Depois calcule a quantidade de ímpares e pares e negativos e positivos foram inseridos antes do 0. O programa deve calcular e escrever também o somatórios de todos os números inseridos.
using namespace std;#include <iostream>
int main(){ int num; int impar = 0, par = 0, pos = 0, neg = 0; cout << ‘Insira um número inteiro:’; cin >> num; while (num != 0) { if (num % 2 == 0) par++; else impar++;
if (num > 0) pos++; else neg++;
cout << ‘Insira um número inteiro:’; cin >> num; }
cout << “Pares:” << par << endl; cout << “Impares:” << impar << endl; cout << “Positivos:” << pos << endl; cout << “Negativos:” << neg << endl;
return(0);},
Continuação...
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores
Exercícios
1. Faça um programa utilizando o laço WHILE que escreva na monitor a palavra “repete” dez vezes.
2. Escreva um programa que calcule o quadrado dos números inseridos pelo usuário. O programa deve parar a execução quando o usuário inserir um número negativo.
3. Faça um programa que leia números do teclado até que seja inserido -1. O programa deve calcular e escrever o somatório, a média aritmética e a soma dos quadrados desses números inseridos antes de -1.