Baixe o app para aproveitar ainda mais
Prévia do material em texto
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica COMPUTAÇÃO BÁSICA Estruturas de Repetição contada Prof. Bruno Macchiavello (bruno@cic.unb.br) Universidade de Brasília – UnB Instituto de Ciências Exatas – IE Departamento de Ciência da Computação – CIC Prof. Bruno Macchiavello 1 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Repetição Contada • A estrutura de repetição contada é significativamente diferente das duas estruturas de repetição condicionais vistas anteriormente. • Aquela em que sabemos, antes de ela ocorrer,• Aquela em que sabemos, antes de ela ocorrer, quantas vezes ela deverá ocorrer. Ou seja, consiste em realizar um número determinado de loops para um conjunto ações (ou comandos). • Lembrando que esse número pode ser informado pelo usuário, e atribuído em uma variavel. Prof. Bruno Macchiavello 2 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Prof. Bruno Macchiavello 3 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Essas instruções são realizadas pela estrutura Prof. Bruno Macchiavello 4 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Repetição Contada • Pseudocódigo � Se a variável de controle vai ser incrementada de 1 (um): Para <variavel> ← <valor inicial> até <condição> faça <conjunto de instruções> FimPara � Se a variável de controle vai ser incrementada por um passo de incremento diferente de 1 (um): FimPara Para <variavel> ← <valor inicial> até <condição> [passo <incremento>] faça <conjunto de instruções> FimPara Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Repetição Contada • Em Ansi C, fica: For (<variavel> = <valor inicial>; <condição>; <incremento>) { <conjunto de instruções> Prof. Bruno Macchiavello 6 } Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exemplo 1 Exemplo: Sendo dado um número, crie um algoritmo que escreva todos os números ímpares menores ou iguais a esse número e maiores do que um. Assuma que o número informado é positivo. Algoritmo NumerosImpares Variáveis Prof. Bruno Macchiavello 7 Variáveis numero, i : inteiro Início Escreva (“Informe um numero : ”) Leia (numero) Para i ← 1 até numero faça Se (resto(i,2) <> 0 ) então Escreva (i, “é impar”) FimSe FimPara Fim Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exemplo 1 • Teste de Mesa TESTE DE MESA para a digitação do número 5 número i (i > numero) (resto(i,2) <> 0) saída 5 1 Não Sim 1 Prof. Bruno Macchiavello 8 5 1 Não Sim 1 5 2 Não Não 5 3 Não Sim 3 5 4 Não Não 5 5 Não Sim 5 5 6 Sim Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exemplo 1 Programa em C do algoritmo anterior #include <stdio.h> int main () { int numero,i; printf(“Digite um número\n"); Prof. Bruno Macchiavello 9 printf(“Digite um número\n"); scanf("%d",&numero); for (i = 1; i <= numero; i++) { if ((i % 2) != 0) printf(“%d é ímpar\n",i); } return(0); } Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exemplo 2 • Exemplo 3: Vamos fazer um algoritmo para calcular a seguinte série: Prof. Bruno Macchiavello 10 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exemplo 2 Algoritmo Serie variaveis num,i: inteiro fracao,soma: real inicio Prof. Bruno Macchiavello 11 num ← -1 /* ”num” será o valor do numerador*/ soma←0 /*a soma total inicialmente é zero*/ para i ← 1 até 50 faça /*são 50 iterações*/ num ← num + 2 /*o numerador é impar*/ fracao← num/i /*cálculo da fração*/ soma ← soma + fracao Fimpara escreva(“O resultado é: “,soma) Fim Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exemplo 2 • Em C: #include <stdio.h> int main() { int num=-1,i; float fracao,soma=0; Prof. Bruno Macchiavello 12 float fracao,soma=0; for (i=1;i<=50;i++) /*são 50 iterações*/ { num+=2; fracao = (float)num/i ; /*cálculo da fração*/ soma = soma + fracao; } printf("O resultado é: %.2f",soma); return(1); } Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exemplo 2 • Em C, utilizando a estrutura contada estendida: #include <stdio.h> int main() { int i,num; float fracao,soma=0; Prof. Bruno Macchiavello 13 float fracao,soma=0; for (num=1,i=1;i<=50;i++,num+=2) /*são 50 iterações*/ { fracao = (float)num/i ; /*cálculo da fração*/ printf(" %d %d %f\n",num,i,fracao); soma = soma + fracao; } printf("O resultado é: %.2f",soma); return(1); } Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exercícios 1. Faça um algoritmo que apresente a soma acumulada de todos os valores entre 1 e 100. 2. Dado um conjunto de N números, calcular e mostrar a média aritimética dos mesmos. 3. Faça um algoritmo que exiba a tabuada dos números de 10 a 20. Por ex: 10x1, 10x2, 10x3.... 10x10 Prof. Bruno Macchiavello 14 Por ex: 10x1, 10x2, 10x3.... 10x10 11x1, 11x2, 11x3.... 11x10 4. Um banco concederá um crédito especial aos seus N clientes preferenciais a partir do saldo médio no último ano. Fazer um algoritmo que leia o número N, o nome do cliente, seu saldo médio em unidades e calcule o valor do crédito de acordo com o seguinte critério: se o saldo médio for menor que 200 unidades o percentual será de 20% do valor do saldo médio, se o saldo médio for de 200 a 400 unidades o percentual será de 30% do valor do saldo médio e se o saldo médio for maior que 400 unidades o percentual será de 40% do valor do saldo médio. Imprimir o nome do cliente, seu saldo médio e o valor do crédito. Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exercícios 5. Escrever um algoritmo que imprima todas as possibilidades de que, no lançamento de dois dados, a soma dos valores de cada dado seja igual a 7 (adaptado de Forbellone; Eberspächer, 2000). Prof. Bruno Macchiavello 15
Compartilhar