FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores 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 Estruturas de repetição 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. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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úmero ENQUANTO número for diferente de zero FAÇA INÍCIO LER número FIM FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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ÓGICAS Tecnologia 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 dos números falados for maior que 20. Em algoritmo: ENQUANTO soma for menor que 20 FAÇA INÍCIO LER número soma = soma + número FIM FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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 dos nú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ÓGICAS Tecnologia em Redes de Computadores Instrução WHILE SINTAXE while (condição) { // seqüência de instruções; } FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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ÓGICAS Tecnologia 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ÓGICAS Tecnologia 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. VEJAMOS DOIS EXEMPLOS!! FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int a = 0; while (a < 4) { a+=2; cout << “rodou o loop” << endl; } O que esse laço faz? Execução: a = XXX condição = XXX FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int a = 0; while (a < 4) { a += 2; cout << “rodou o loop” << endl; } Execução: a= 0 condição = XXX FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int a = 0; while (a < 4) { a += 2; cout << “rodou o loop” << endl; } Execução: a= 0 condição = verdadeiro FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int a = 0; while (a < 4) { a += 2; cout << “rodou o loop” << endl; } Execução: a= 0 +2=2 condição = verdadeiro FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int a = 0; while (a < 4) { a += 2; cout << “rodou o loop” << endl; } Execução: a= 2 condição = verdadeiro rodou o loop FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int a = 0; while (a < 4) { a += 2; cout << “rodou o loop” << endl; } Execução: a= 2 condição = verdadeiro rodou o loop FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int a = 0; while (a < 4) { a += 2; cout << “rodou o loop” << endl; } Execução: a= 2+2=4 condição = verdadeiro rodou o loop FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int a = 0; while (a < 4) { a += 2; cout << “rodou o loop” << endl; } Execução: a= 4 condição = verdadeiro rodou o loop rodou o loop FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int a = 0; while (a < 4) { a += 2; cout << “rodou o loop” << endl; } Execução: a= 4 condição = falso rodou o loop rodou o loop FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int a = 0; while (a < 4) { a += 2; cout << “rodou o loop” << endl; } Final do laço! Execução: a= 4 condição = XXX rodou o loop rodou o loop FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int a = 0; while (a < 4) { a += 2; cout << “rodou o loop” << endl; } Final do laço! Execução: a= 4 condição = XXX rodou o loop rodou o loop FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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ÓGICAS Tecnologia em Redes de Computadores Instrução WHILE int soma = 0, num; cin >> num; while (num >= 0) { soma+=num; cin >> num; } cout << soma; num = soma = condição = 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ÓGICAS Tecnologia em Redes de Computadores Instrução WHILE Outros exemplos: O que o algoritmo abaixo está fazendo? int num = 10; while (num != 0) { cin >> num; cout << “o loop executou mais uma vez”; } FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE Outros exemplos: E este algoritmo? int num = 0; while (num <= 20) { num++; cout << “o loop executou mais uma vez”; } FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE Outros exemplos: E este algoritmo? int num = 0; while (num > 20) { num++; cout << “o loop executou mais uma vez”; } FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE Outros exemplos: E este algoritmo? int num = 0; while (num > -100) { num++; cout << “o loop executou mais uma vez”; } FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Instrução WHILE Outros exemplos: E este algoritmo? int num = 0; while (num != 10) { num+=4; cout << “o loop executou mais uma vez”; } FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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ÓGICAS Tecnologia 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ÓGICAS Tecnologia 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ÓGICAS Tecnologia 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ÓGICAS Tecnologia 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++; Continuação... 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); }, FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia 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.