faculdade de ciÊncias sociais e tecnolÓgicas tecnologia em redes de computadores algoritmos e...

34
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo [email protected] http://bsi.k6.com.br FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores

Upload: internet

Post on 22-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Algoritmos e linguagens de programação 1

(aula 06)

Prof. Alessandro [email protected]://bsi.k6.com.br

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Page 2: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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

Page 3: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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

Page 4: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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;}

Page 5: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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

Page 6: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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;

}

Page 7: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICASTecnologia em Redes de Computadores

Instrução WHILE

while (condição){

// seqüência de instruções;

}

SINTAXE

Page 8: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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.

Page 9: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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.

Page 10: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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;

}

Page 11: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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?

Page 12: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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:

Page 13: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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:

Page 14: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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:

Page 15: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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

Page 16: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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

Page 17: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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

Page 18: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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

Page 19: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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

Page 20: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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!

Page 21: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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!

Page 22: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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.

Page 23: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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 =

Page 24: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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?

Page 25: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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?

Page 26: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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?

Page 27: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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?

Page 28: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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?

Page 29: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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.

Page 30: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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);},

Page 31: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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);},

Page 32: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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);}

Page 33: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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...

Page 34: FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo

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.