Lógica de Programação, Notas de aula de Lógica Matemática. Universidade Federal do Rio Grande do Norte (UFRN)
m_douglas1607
m_douglas16078 de novembro de 2017

Lógica de Programação, Notas de aula de Lógica Matemática. Universidade Federal do Rio Grande do Norte (UFRN)

PDF (100 KB)
18 páginas
1Números de download
59Número de visitas
Descrição
Material sobre Lógica de Programação
20 pontos
Pontos de download necessários para baixar
este documento
Baixar o documento
Pré-visualização3 páginas / 18

Esta é apenas uma pré-visualização

3 mostrados em 18 páginas

Baixar o documento

Esta é apenas uma pré-visualização

3 mostrados em 18 páginas

Baixar o documento

Esta é apenas uma pré-visualização

3 mostrados em 18 páginas

Baixar o documento

Esta é apenas uma pré-visualização

3 mostrados em 18 páginas

Baixar o documento

Material Didático do Instituto Metrópole Digital - IMD

Versão 2.0 - Todos os Direitos reservados

Lógica de Programação Aula 10 - Estruturas de repetição – repetição com variável de controle

Apresentação

Apresentação

Nas aulas anteriores, conhecemos as estruturas de decisão simples, compostas, aninhadas e as decisões de múltipla escolha. Vimos que tais decisões são utilizadas quando há a necessidade de se estabelecer desvios na execução dos comandos e quando o algoritmo tem que decidir que caminho seguir. Vimos também que essa decisão é tomada de acordo com uma condição específica.

A partir de agora, conheceremos outro grupo de estrutura de controle: as estruturas de repetição. Perceberemos que em alguns momentos haverá a necessidade de repetir um determinado trecho do algoritmo por um número específico de vezes. O objetivo das estruturas de repetição é executar uma instrução (ou conjunto de instruções) repetidas vezes, enquanto (ou até que) uma dada condição seja satisfeita. Nesta aula, identificaremos as características de uma estrutura de repetição e a sua classificação em: estrutura de repetição com teste condicional no início, estrutura com teste condicional no final e estrutura com variável de controle. Além disso, estudaremos mais detalhadamente a estrutura de repetição com variável de controle, desejando que você, ao longo da aula, torne-se capaz de construir algoritmos utilizando-a.

 Vídeo 01 - Apresentação

Objetivos

Ao final da aula, você deverá ser capaz de:

Definir o objetivo de estruturas de repetição, reconhecendo os tipos existentes.

Identificar a estrutura de repetição com variável de controle, com o comando PARA, reconhecendo sua sintaxe.

Construir algoritmos completos utilizando essa estrutura.

Estruturas de Repetição

Já vimos que alguns algoritmos precisam executar instruções com base em uma condição preestabelecida. Nas estruturas de decisão que vimos nas aulas anteriores, se uma condição é verdadeira, um comando ou grupo de comandos é executado. Após isso, a estrutura é finalizada. Ou há ainda o caminho alternativo, caso a condição não seja atendida.

Nas estruturas de repetição, condições também são testadas. Mas o que, de fato, caracteriza essa estrutura é que um conjunto de ações é executado de forma repetida enquanto a condição permanece válida ou não.

Por exemplo, se alguém lhe solicita que faça um algoritmo que escreva cinco vezes a frase: "Bem-vindo ao Metrópole Digital", de que forma você faria?

Levando em consideração o que aprendemos até o momento, o algoritmo correto seria:

ALGORITMO "Repete frase"

INICIO

escreval("Bem-vindo ao Metrópole Digital.")

escreval("Bem-vindo ao Metrópole Digital.")

escreval("Bem-vindo ao Metrópole Digital.")

escreval("Bem-vindo ao Metrópole Digital.")

FIMALGORITMO

Parece simples, não? Mas e se mudássemos o número de repetições? Se, ao invés de cinco vezes, tivéssemos que escrever essa mesma frase cem vezes? Ou mil vezes? Seria um tanto exaustivo para você ficar digitando tantas vezes o mesmo comando. Para o computador, também, não seria interessante. Já falamos brevemente na aula anterior sobre o aumento da demanda por processamento e memória, quando um mesmo comando é repetido muitas vezes.

A solução para esse impasse é a utilização das estruturas de repetição.

Veja o mesmo algoritmo de outra forma:

algoritmo "Repete frase"

var

contador : inteiro

inicio

para contador de 1 ate 5 passo 1 faca

escreval("Bem-vindo ao Metrópole Digital.")

fimpara

fimalgoritmo

No algoritmo anterior, criamos uma variável de controle (contador) que é quem determina quantas vezes o comando escreval será executado. A repetição só para quando a condição não for mais atendida, ou seja, quando o contador for maior que 5.

Repetição (ou loop) é um conjunto de ações que são executadas repetidamente.

O objetivo das estruturas de repetição é executar uma série de instruções em loop, enquanto (ou até que) uma dada condição analisada seja verdadeira.

 Vídeo 02 - Estruturas de Repetição

Tipos de Estruturas de Repetição

As estruturas de repetição podem funcionar de diferentes formas, de acordo com a necessidade do algoritmo que você vai criar. Assim como nas estruturas de decisão, há uma classificação para as estruturas de repetição. São elas:

a. Repetição com teste da condição no início (comandos ENQUANTO...FACA) – repete as instruções enquanto a condição for verdadeira.

b. Repetição com variável de controle (comando PARA) – repete as instruções sob controle de um contador que percorre valores, de acordo com limites iniciais e finais preestabelecidos.

c. Repetição com teste da condição no final (comandos REPITA...ATE) – repete as instruções até que a condição seja verdadeira.

Ao longo das nossas aulas, contemplaremos em detalhes cada um dos tipos de estruturas de repetição mencionados anteriormente. Nesta aula, especificamente, nos ateremos à estrutura de repetição com variável de controle.

 Vídeo 03 - Tipos de Estrutura de Repetição

Atividade 01

1. Qual o objetivo das estruturas de repetição?

2. Anteriormente foi proposto que você escrevesse um algoritmo que mostrasse a tabuada de um número digitado. Escreva-o, novamente, na forma sequencial. Em seguida, responda:

a. De que forma você acredita que poderíamos melhorar esse algoritmo?

b. Isso afetaria o desempenho do computador, ao executar o algoritmo? Justifique sua resposta.

3. Quais os tipos existentes de estruturas de repetição?

Estrutura de Repetição com Variável de Controle

Na repetição com variável de controle, a quantidade de execuções do comando que será repetida é conhecida previamente. Uma variável é criada para funcionar como contador para essas repetições e cessar a repetição no momento em que a contagem chegar ao final. Há, também, um valor de incremento, que define com qual intervalo entre as unidades a repetição executará.

 Vídeo 04 - Estrutura de Repetição com Variável de Controle

No exemplo do início da aula (quando escrevemos uma frase cinco vezes), utilizamos esse tipo de estrutura de repetição.

Vamos conhecer a sintaxe dessa estrutura:

Pseucódigo

para <variável inteira> de <valor inicial> ate <valor final> passo <valor de incremento> faca

<instruções>

fimpara

OU

para <variável inteira> de <valor inicial> ate <valor final>faca

<instruções>

fimpara

Fluxograma

Veja a seguir algumas considerações sobre a sintaxe da estrutura.

a. A variável de controle deve ser uma variável numérica do tipo inteiro, pois servirá de contador e terá seu valor incrementado a cada passo.

b. O valor inicial corresponde ao valor de inicialização da variável antes da primeira repetição.

c. O valor final corresponde ao valor máximo que a variável pode alcançar.

d. O valor inicial, o valor final e o valor de incremento podem ser variáveis ou constantes.

e. Se o valor de incremento não for definido, assume-se que seu valor é 1.

f. O valor de incremento não pode ser nulo.

g. Pode ser atribuído um valor negativo ao valor de incremento, caso se deseje que o laço seja percorrido em ordem inversa. Nesse caso, o valor inicial e o valor final devem ser invertidos, também, para evitar erros na execução. Ou seja, se o valor de incremento for negativo, o valor inicial deve ser maior que o valor final.

A estrutura funciona conforme os itens a seguir.

I. É declarada uma variável de controle numérica do tipo inteiro (que será o contador), antes da execução da estrutura de repetição.

II. São definidos um valor inicial e um valor final para essa variável (que vai definir a quantidade de repetições).

III. É atribuído o valor inicial à variável.

IV. O valor que está armazenado na variável é comparado com o valor final.

V. Se o valor da variável for menor ou igual ao valor final, as instruções contidas no bloco da estrutura são executadas.

VI. O valor da variável é incrementado de acordo com o que foi definido no comando passo.

VII. Isso se repete até que o valor armazenado na variável seja maior que o valor final. Quando isso ocorre, a estrutura termina e o

escreval("Digite as notas do aluno ",contador,":")

escreval("Primeira nota:")

leia(nota1)

escreval("Segunda nota:")

leia(nota2)

media <- (nota1+nota2)/2

escreval("O aluno ",contador," teve média igual a: ",media)

Esses comandos são executados em loop

algoritmo segue após o comando fimpara.

Vamos ver o exemplo da média, utilizando a estrutura de repetição com variável de controle:

ALGORITMO PARA CALCULAR A MÉDIA ARITMÉTICA ENTRE DUAS NOTAS PARA 50 ALUNOS DE UMA SALA

algoritmo "Calcula Média com Repetição"

var

nota1, nota2, media : real//declaração das variáveis do algoritmo

contador : inteiro//declaração da variável de controle

inicio

para contador de 1 ate 50 passo 1 faca

fimpara

fimalgoritmo

Como na estrutura sequencial, declaramos as variáveis para as notas e a média. Em seguida, declaramos uma variável inteira, que será o contador. Definimos, depois, os valores inicial e final (de 1 a 50, que é a quantidade de alunos) e o valor de incremento (1, pois o laço percorrerá um a um os alunos). Perceba que a utilização do passo nesse caso não era necessária pois assume-se 1 como valor de incremento quando não se utiliza esse comando.

Enquanto o valor da variável for menor ou igual a 50, o laço se repete: são solicitadas as notas e a média é calculada e exibida para cada aluno.

Quando é exibida a média do último aluno, a estrutura termina.

Agora vamos praticar!

Atividade 02

1. Execute o algoritmo da média no VisuAlg.

2. Escreva um algoritmo que calcule a soma dos primeiros 30 números pares. Lembre-se de que, nesse momento, você deve alterar o valor de incremento.

Exercício Resolvido 01

Uma escola está realizando matrículas para um curso aberto à comunidade, com limite de 20 vagas. Assumindo que os alunos são cadastrados por computador, escreva um algoritmo que:

I. leia a idade e o sexo do aluno;

II. informe que a turma está lotada, quando o número de inscritos atingir a quantidade de vagas;

III. mostre a idade média dos candidatos;

IV. mostre os candidatos (homens e mulheres) maiores de idade.

Solução

algoritmo "inscrição"

var

contador, idade:inteiro

sexo:caracter

idade_media:real

qtd_mulheres,

qtd_maiores:inteiro

soma_idades:inteiro

Declaração das variáveis

inicio

qtd_mulheres <- 0

qtd_maiores <- 0

soma_idades <- 0

Atribuição de valores

para contador de 1 ate 20 passo 1 faca //início da estrutura de repetição

escreval("Digite a sua idade: ")

leia(idade)

escreval("Digite o sexo (M ou F): ")

leia(sexo)

Algoritmo solicita e lê os dados (em loop)

se sexo = "F" entao

qtd_mulheres <- qtd_mulheres + 1

fimse

Testa, para cada um dos alunos, se o sexo é feminino e, se for, incrementa (em um) a variável qtd_mulheres (que corresponde à quantidade de mulheres).

se idade >=18 entao

qtd_maiores <- qtd_maiores +1

fimse

Testa, para cada um dos alunos, se é maior de idade e, se for, incrementa (em um) a variável qtd_maiores (que corresponde à quantidade de maiores).

soma_idades <- soma_idades + idade //incrementa a idade (a cada valor digitado)

fimpara //fim da estrutura de repetição

idade_media <- soma_idades/20 //cálculo da média de idade

escreval("A turma está lotada.")

escreval("A média de idade dos inscritos é de: ",idade_media)

escreval("A quantidade de mulheres inscritas é: ",qtd_mulheres)

escreval("A quantidade de alunos maiores de idade é: ", qtd_maiores)

Exibição dos resultados

fimalgoritmo

Agora, você pode ver que, para atender às solicitações do enunciado da questão, foi necessário utilizar a estrutura de decisão dentro da repetição.

Para saber a quantidade de mulheres dentre os inscritos, tivemos que testar, um a um, os valores digitados para a variável sexo. Feito isso, incrementamos o valor, no caso da condição (sexo feminino) ser verdadeira.

se sexo = "F" entao

qtd_mulheres <- qtd_mulheres + 1

fimse

Para encontrar a quantidade de alunos maiores de idade, tivemos que seguir um procedimento igual ao anterior, com outra estrutura de decisão.

se idade >= 18 entao

qtd_maiores <- qtd_maiores + 1

fimse

Para encontrar a média de idade entre os alunos inscritos, tivemos que descobrir primeiro a soma de todas as idades digitadas. Essa soma deve ser realizada ainda dentro da estrutura de repetição, porque o cálculo é efetuado conforme as idades vão sendo digitadas.

soma_idades <- soma_idades + idade

O cálculo da média é realizado já fora da estrutura de repetição, pois temos conhecimento da quantidade exata de repetições (quantidade de alunos que serão inscritos).

idade_media <- soma_idades/20

A exibição dos resultados é feita também fora da repetição, pois os resultados encontrados na execução do algoritmo são exibidos apenas uma vez.

Para o fim da nossa aula, é bom que você mesmo faça esse algoritmo no VisuAlg. Lembre-se de que os passos que efetuamos no exercício resolvido servem para você se guiar. Tente implementar o algoritmo sem copiar e colar! Isso facilita a fixação.

A complexidade do estudo dos algoritmos está aumentando. É importante, portanto, que você exercite bastante os conhecimentos que está adquirindo nas aulas. Lembre-se de que não há como melhorar a sua habilidade de raciocínio lógico sem exercitá-la.

Bons estudos!

Resumo

Nesta aula, conhecemos as estruturas de repetição. Vimos que tais estruturas executam comandos ou grupos de comandos em loop (repetidamente), enquanto (ou até que) uma condição específica seja atendida. Aprendemos também as classificações das estruturas de repetição, que são: estruturas com teste condicional no início, estruturas com teste condicional no final e estruturas com variável de controle. Estudamos, com detalhes, as estruturas com variável de controle, conhecendo sua sintaxe e semântica, através de exemplos e exercícios. Esperamos que, com isso, seja possível identificar as características dessa estrutura e construir algoritmos utilizando-a!

Autoavaliação

1. Qual o objetivo das estruturas de repetição?

2. Como podemos classificar essas estruturas?

3. Qual a sintaxe da estrutura de repetição com variável de controle? Explique cada um de seus comandos.

4. Escreva um algoritmo que leia as duas notas de cinco alunos de uma turma, calcule e mostre:

a. a média aritmética de cada aluno;

b. a mensagem de aluno reprovado, caso a média seja menor que 4.0;

c. a mensagem de aluno em recuperação, caso a média esteja entre 4.0 e 7.0;

d. a mensagem de aluno aprovado, caso a média seja maior ou igual a 7.0;

e. o total de alunos aprovados;

f. o total de alunos reprovados;

g. o total de alunos em recuperação;

h. a média da turma.

5. Escreva um algoritmo que leia dois números e calcule a média aritmética de todos os que estiverem entre os números lidos, incluindo estes.

6. Escreva um algoritmo que leia dois números e multiplique o valor da soma de todos os pares que estiverem entre os números lidos por 3, incluindo os números lidos.

7. Escreva um algoritmo que mostre os 10 primeiros números da sequência de Fibonacci. Sabe-se que essa sequência é iniciada com 1 e 1. Os números seguintes são resultados da soma dos dois anteriores: 1, 1, 2, 3, 5, 8... e assim por diante.

Referências

ASCENCIO, Ana F. Gomes; CAMPOS, Edilene A. V. de. Fundamentos de programação de computadores: algoritmos, Pascal e C/C++. São Paulo: Prentice Hall, 2002. 355p.

BERRIEL FILHO, Olmes. Estruturas de decisão do tipo escolha. In: _______. Curso de linguagens e técnicas de programação I. São Paulo: Faculdades Integradas

Tibiriçá, 2004. Disponível em: http://www.berriel.com.br/ltpi/aula06/aula06.htm. Acesso em: 22 mai. 2015.

COSTA, Yandre M. e G. da. Algoritmos e estrutura de dados: estruturas de seleção. Paraná: Universidade Estadual de Maringá, 2006. Disponível em: http://www.din.uem.br/~yandre/FC/EST_SEL.pdf. Acesso em: 22 mai. 2015.

SOUZA, Cláudio M de. VISUALG: editor e interpretador de algoritmos. Disponível em: http://apoioinformatica.inf.br/produtos/visualg/item/31- objetivos. Acesso em: 22 mai. 2015.

comentários (0)

Até o momento nenhum comentário

Seja o primeiro a comentar!

Esta é apenas uma pré-visualização

3 mostrados em 18 páginas

Baixar o documento