Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estrutura de repetição while Aula 7 Bárbara Purkott Cezar 1Faculdade de Computação Universidade Federal de Mato Grosso do Sul Algoritmos e Programação Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 1 / 66 Conteúdo da aula 1 Motivação 2 Estrutura de repetição while 3 Exercícios Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 2 / 66 Motivação Com o que sabemos, como podemos imprimir os 10 primeiros números inteiros positivos? #include <stdio.h> int main(void) { printf("1\n"); printf("2\n"); printf("3\n"); printf("4\n"); printf("5\n"); printf("6\n"); printf("7\n"); printf("8\n"); printf("9\n"); printf("10\n"); return 0; } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 3 / 66 Motivação Com o que sabemos, como podemos imprimir os 10 primeiros números inteiros positivos? #include <stdio.h> int main(void) { printf("1\n"); printf("2\n"); printf("3\n"); printf("4\n"); printf("5\n"); printf("6\n"); printf("7\n"); printf("8\n"); printf("9\n"); printf("10\n"); return 0; } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 3 / 66 Motivação e se quiséssemos imprimir os 100 primeiros números inteiros positivos? Ou os 1000 primeiros? computadores são construídos para que possamos delegar a eles as tarefas mais repetitivas na linguagem C temos três estruturas de repetição diferentes ao nosso dispor estudaremos primeiro a estrutura de repetição while Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 4 / 66 Motivação e se quiséssemos imprimir os 100 primeiros números inteiros positivos? Ou os 1000 primeiros? computadores são construídos para que possamos delegar a eles as tarefas mais repetitivas na linguagem C temos três estruturas de repetição diferentes ao nosso dispor estudaremos primeiro a estrutura de repetição while Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 4 / 66 Motivação e se quiséssemos imprimir os 100 primeiros números inteiros positivos? Ou os 1000 primeiros? computadores são construídos para que possamos delegar a eles as tarefas mais repetitivas na linguagem C temos três estruturas de repetição diferentes ao nosso dispor estudaremos primeiro a estrutura de repetição while Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 4 / 66 Motivação e se quiséssemos imprimir os 100 primeiros números inteiros positivos? Ou os 1000 primeiros? computadores são construídos para que possamos delegar a eles as tarefas mais repetitivas na linguagem C temos três estruturas de repetição diferentes ao nosso dispor estudaremos primeiro a estrutura de repetição while Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 4 / 66 Estrutura de repetição while Formato geral: while (condição) { ... bloco de instruções ... } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 5 / 66 Estrutura de repetição while Exemplo: #include <stdio.h> /* Mostra os 100 primeiros números inteiros positivos */ int main(void) { int numero; numero = 1; while (numero <= 100) { printf("%d\n", numero); numero = numero + 1; } printf("\n"); return 0; } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 6 / 66 Estrutura de repetição while Simulação da execução passo a passo de uma simplificação do programa anterior: 01 #include <stdio.h> 02 03 int main(void) 04 { 05 int numero; 06 07 numero = 1; 08 while (numero <= 10) { 09 printf("%d ", numero); 10 numero = numero + 1; 11 } 12 printf("\n"); 13 return 0; 14 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 7 / 66 Estrutura de repetição while entrada/saida programa memoria 01 #include <stdio.h> Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 8 / 66 Estrutura de repetição while entrada/saida programa memoria 02 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 9 / 66 Estrutura de repetição while entrada/saida programa memoria 03 int main(void) Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 10 / 66 Estrutura de repetição while entrada/saida programa 04 memoria { Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 11 / 66 Estrutura de repetição while entrada/saida programa memoria 05 int numero; numero ? Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 12 / 66 Estrutura de repetição while entrada/saida programa memoria numero 06 ? Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 13 / 66 Estrutura de repetição while entrada/saida programa memoria numero 07 numero = 1; 1 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 14 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 08 while (numero <= 10) { Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 15 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 09 printf("%d ", numero); 1 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 16 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 10 numero = numero + 1; 2 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 17 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 2 11 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 18 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 2 08 while (numero <= 10) { Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 19 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 2 09 printf("%d ", numero); 2 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 20 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 10 numero = numero + 1; 3 2 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 21 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 11 3 2 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 22 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 08 while (numero <= 10) { 3 2 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 23 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 09 printf("%d ", numero); 2 3 3 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 24 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 10 numero = numero + 1; 2 4 3 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 25 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 11 2 4 3 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 26 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 08 while (numero <= 10) { 2 4 3 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmose Programação 27 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 09 printf("%d ", numero); 2 3 4 4 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 28 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 10 numero = numero + 1; 2 3 5 4 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 29 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 11 2 3 5 4 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 30 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 08 while (numero <= 10) { 2 3 5 4 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 31 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 09 printf("%d ", numero); 2 3 4 5 5 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 32 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 10 numero = numero + 1; 2 3 4 6 5 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 33 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 11 2 3 4 6 5 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 34 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 08 while (numero <= 10) { 2 3 4 6 5 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 35 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 09 printf("%d ", numero); 2 3 4 5 6 6 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 36 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 10 numero = numero + 1; 2 3 4 5 7 6 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 37 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 11 2 3 4 5 7 6 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 38 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 08 while (numero <= 10) { 2 3 4 5 7 6 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 39 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 09 printf("%d ", numero); 2 3 4 5 6 7 7 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 40 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 10 numero = numero + 1; 2 3 4 5 6 8 7 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 41 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 11 2 3 4 5 6 8 7 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 42 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 08 while (numero <= 10) { 2 3 4 5 6 8 7 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 43 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 09 printf("%d ", numero); 2 3 4 5 6 7 8 8 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 44 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 10 numero = numero + 1; 2 3 4 5 6 7 9 8 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 45 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 11 2 3 4 5 6 7 9 8 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 46 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 08 while (numero <= 10) { 2 3 4 5 6 7 9 8 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 47 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 09 printf("%d ", numero); 2 3 4 5 6 7 8 9 9 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 48 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 10 numero = numero + 1; 2 3 4 5 6 7 8 9 10 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 49 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 11 2 3 4 5 6 7 8 9 10 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 50 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 08 while (numero <= 10) { 2 3 4 5 6 7 8 9 10 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 51 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 09 printf("%d ", numero); 2 3 4 5 6 7 8 9 10 10 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 52 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 10 numero = numero + 1; 2 3 4 5 6 7 8 9 11 10 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 53 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 11 2 3 4 5 6 7 8 9 11 10 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 54 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 08 while (numero <= 10) { 2 3 4 5 6 7 8 9 11 10 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 55 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 2 3 4 5 6 7 8 9 11 10 12 printf("\n"); Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 56 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 2 3 4 5 6 7 8 9 11 10 return 0;13 Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 57 / 66 Estrutura de repetição while entrada/saida programa memoria numero 1 2 3 4 5 6 7 8 9 11 10 14 } Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 58 / 66 Exercícios 1. Faça a simulação passo a passo da execução do programa 6.1. Diminua a constante do programa de 100 para algum valor razoável. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 59 / 66 Exercícios 2. O programa 6.2 pretende resolver o seguinte problema computacional: dado um número inteiro positivo n, somar os n primeiros inteiros positivos. #include <stdio.h> int main(void) { int n, numero, soma; printf("Informe n: "); scanf("%d", &n); soma = 0; numero = 1; while (numero <= n) { soma = soma + numero; numero = numero + 1; } printf("Soma dos %d primeiros inteiros é %d\n", n, soma); return 0; } Verifique se tal solução está correta. Faça algumas simulações passo a passo da execução do programa. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 60 / 66 Exercícios 3. Dado um número inteiro positivo n, imprimir os n primeirosnaturais ímpares. Exemplo: Para n = 4 a saída deverá ser 1, 3, 5, 7. Faça ao menos uma simulação passo a passo da execução de sua solução. 4. O fatorial de um número inteiro n, denotado por n!, é dado pela seguinte fórmula: n! = n · (n− 1) · (n− 2) · · · 2 · 1 . Dessa forma, 5! = 5 · 4 · 3 · 2 · 1 = 120. Por definição, 0! = 1. Dado um número inteiro não-negativo n, calcular n!. Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 61 / 66 Exercícios 3. Dado um número inteiro positivo n, imprimir os n primeiros naturais ímpares. Exemplo: Para n = 4 a saída deverá ser 1, 3, 5, 7. Faça ao menos uma simulação passo a passo da execução de sua solução. 4. O fatorial de um número inteiro n, denotado por n!, é dado pela seguinte fórmula: n! = n · (n− 1) · (n− 2) · · · 2 · 1 . Dessa forma, 5! = 5 · 4 · 3 · 2 · 1 = 120. Por definição, 0! = 1. Dado um número inteiro não-negativo n, calcular n!. Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 61 / 66 Exercícios 5. Dado um número inteiro positivo n, imprimir as n primeiras potências de 2. Exemplo: Para n = 5 a saída deverá ser 1, 2, 4, 8, 16. Faça ao menos uma simulação passo a passo da execução de sua solução. 6. Dados um número inteiro x e um número inteiro não-negativo n, calcular xn. Exemplo: Para x = 2 e n = 4 a saída deverá ser 16(= 24). Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 62 / 66 Exercícios 5. Dado um número inteiro positivo n, imprimir as n primeiras potências de 2. Exemplo: Para n = 5 a saída deverá ser 1, 2, 4, 8, 16. Faça ao menos uma simulação passo a passo da execução de sua solução. 6. Dados um número inteiro x e um número inteiro não-negativo n, calcular xn. Exemplo: Para x = 2 e n = 4 a saída deverá ser 16(= 24). Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 62 / 66 Exercícios 7. Dado um número inteiro positivo n e uma sequência de n inteiros, somar esses n números. Exemplo: Para n = 5 e a sequência 5,−3, 6, 0, 12 a saída deve ser 20(= 5+ (−3) + 6+ 0+ 12). Faça ao menos uma simulação passo a passo da execução de sua solução. 8. Dado um número inteiro positivo n e uma sequência de n números inteiros, determinar a soma dos números inteiros positivos da sequência. Exemplo: Se n = 7 e a sequência é 6,−2, 7, 0,−5, 8, 4, a saída deve ser 25. Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 63 / 66 Exercícios 7. Dado um número inteiro positivo n e uma sequência de n inteiros, somar esses n números. Exemplo: Para n = 5 e a sequência 5,−3, 6, 0, 12 a saída deve ser 20(= 5+ (−3) + 6+ 0+ 12). Faça ao menos uma simulação passo a passo da execução de sua solução. 8. Dado um número inteiro positivo n e uma sequência de n números inteiros, determinar a soma dos números inteiros positivos da sequência. Exemplo: Se n = 7 e a sequência é 6,−2, 7, 0,−5, 8, 4, a saída deve ser 25. Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 63 / 66 Exercícios 9. Dado um número inteiro positivo n e uma sequência de n inteiros positivos, somar os números pares e os números ímpares. Exemplo: Se n = 7 e a sequência de números inteiros é 6, 1, 3, 14, 4, 22, 7 a saída deve ser 46(= 6+ 14+ 4+ 22) e 11(= 1+ 3+ 7). Faça ao menos uma simulação passo a passo da execução de sua solução. 10. Durante os 31 dias do mês de março foram tomadas as temperaturas médias diárias de Campo Grande, MS. Determinar o número de dias desse mês com temperaturas abaixo de zero. Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 64 / 66 Exercícios 9. Dado um número inteiro positivo n e uma sequência de n inteiros positivos, somar os números pares e os números ímpares. Exemplo: Se n = 7 e a sequência de números inteiros é 6, 1, 3, 14, 4, 22, 7 a saída deve ser 46(= 6+ 14+ 4+ 22) e 11(= 1+ 3+ 7). Faça ao menos uma simulação passo a passo da execução de sua solução. 10. Durante os 31 dias do mês de março foram tomadas as temperaturas médias diárias de Campo Grande, MS. Determinar o número de dias desse mês com temperaturas abaixo de zero. Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 64 / 66 Exercícios 11. Dado um número inteiro positivo n e uma sequência de n números inteiros, determinar quantos números da sequência são positivos e quantos são não-positivos. Um número é não-positivo se é negativo ou se é igual a 0 (zero). Exemplo: Se n = 6 e a sequência de números inteiros é 6,−1, 0, 16,−5, 0 a saída deve ser 2 e 4. Faça ao menos uma simulação passo a passo da execução de sua solução. 12. Dado um número inteiro positivo n e uma sequência de n números inteiros positivos, determinar quantos números da sequência são pares e quantos são ímpares. Exemplo: Se n = 6 e a sequência de números inteiros é 28, 5, 4, 9, 720, 566 a saída deve ser 4 e 2. Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 65 / 66 Exercícios 11. Dado um número inteiro positivo n e uma sequência de n números inteiros, determinar quantos números da sequência são positivos e quantos são não-positivos. Um número é não-positivo se é negativo ou se é igual a 0 (zero). Exemplo: Se n = 6 e a sequência de números inteiros é 6,−1, 0, 16,−5, 0 a saída deve ser 2 e 4. Faça ao menos uma simulação passo a passo da execução de sua solução. 12. Dado um número inteiro positivo n e uma sequência de n números inteiros positivos, determinar quantos números da sequência são pares e quantos são ímpares. Exemplo: Se n = 6 e a sequência de números inteiros é 28, 5, 4, 9, 720, 566 a saída deve ser 4 e 2. Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 65 / 66 Exercícios 13. Uma loja de discos anota diariamente durante o mês de abril a quantidade de discos vendidos. Determinar em que dia desse mês ocorreu a maior venda e qual foi a quantidade de discos vendida nesse dia. Faça ao menos uma simulação passo a passo da execução de sua solução. 14. Dados o número n, inteiro positivo, de estudantes de uma turma de Algoritmos e Programação e suas notas de primeira prova, determinar a maior e a menor nota obtidas por essa turma, onde a nota mínima é 0 e a nota máxima é 100. Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estrutura de repetição while Algoritmos e Programação 66 / 66 Exercícios 13. Uma loja de discos anota diariamente durante o mês de abril a quantidade de discos vendidos. Determinar em que dia desse mês ocorreu a maior venda e qual foi a quantidade de discos vendida nesse dia. Faça ao menos uma simulação passo a passo da execução de sua solução. 14. Dados o número n, inteiro positivo, de estudantes de uma turma de Algoritmos e Programação e suas notas de primeira prova, determinar a maior e a menor nota obtidas por essa turma, onde a nota mínima é 0 e a nota máxima é 100. Faça ao menos uma simulação passo a passo da execução de sua solução. Viduani Martinez (FACOM) Estruturade repetição while Algoritmos e Programação 66 / 66 Motivação Estrutura de repetição while Exercícios
Compartilhar