Logo Passei Direto
Material
Study with thousands of resources!

Text Material Preview

LÓGICA DE PROGRAMAÇÃO 
E ALGORITMOS I 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prezado aluno! 
 
Durante a nossa rotina diária, acabamos executando certas atividades 
praticamente todos os dias, mesmo que seja de formas diferentes. Quer um 
exemplo? Todos os dias, ao acordar, você irá tomar café, tomar banho, escovar os 
dentes, entre outras atividades. Essa afirmativa está correta ou errada? 
Independentemente de sua resposta, sabemos que, para desempenharmos 
algumas funções, acabamos executando repetições até que essa função seja 
finalizada. 
Em muitas situações, não basta que tenhamos somente uma estrutura de 
seleção em um programa de computador ou a forma sequencial de 
implementação. Em resolução de problemas reais, é comum a necessidade de uso 
de estrutura de repetição, que seleciona, de certa forma, um trecho de código e 
faz com que ele seja executado um determinado número de vezes ou quando 
alguma operação acontecer. 
Nesta aula, você verá que, com os laços ou estruturas de repetição, ocorre 
o mesmo: certos trechos de código irão repetir sua execução determinado número 
de vezes ou até uma condição assumir o valor lógico falso, que é quando utilizamos 
a estrutura while-end, ou quando definimos a quantidade de vezes que irá repetir, 
situação que exige o uso da estrutura for-end. 
Bons Estudos! 
AULA 3 – 
ESTRUTURA DE 
REPETIÇÃO 
 
 
 
 
 
 
 
Nesta aula, você vai conferir os contextos conceituais da psicologia entenderá 
como ela alcançou o seu estatuto de cientificidade. Além disso, terá a oportunidade 
de conhecer as três grandes doutrinas da psicologia, behaviorismo, psicanálise e 
Gestalt, e as áreas de atuação do psicólogo. 
 Compreender o conceito de psicologia 
 Identificar as diferentes áreas de atuação da psicologia 
 Conhecer as áreas de atuação do psicólogo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Lógica matemática é básica para qualquer estudo em computação e informática 
Nesta Unidade de Aprendizagem, você estudará a construção de um 
algoritmo usando praticamente todos os conceitos de programação, com destaque 
para os tipos de estrutura de repetição existentes. Após esses estudos, você será 
capaz de: 
 Analisar os algoritmos com estruturas de repetição “enquanto” e 
“repita” em pseudocódigo e linguagem Java (while e for). 
 Identificar problemas que necessitem de estruturas de repetição. 
 Desenvolver algoritmos em pseudocódigo e linguagem MATLAB que 
necessitem estruturas de repetição na resolução de problemas. 
 
 
3 ESTRUTURAS DE REPETIÇÃO: CONCEITOS 
Durante o desenvolvimento de um software, deparamo-nos com um único 
objetivo, que é o de solucionar algum problema, o que significa que o software deve 
contribuir para automatizar alguma atividade, seja ela empresarial ou mesmo a 
realização de um simples cálculo de multiplicação. Acabamos lidando com a análise 
de diversas condições que são preestabelecidas para que, conforme sua adequação, 
as regras do programa as caracterizem como verdadeiras ou falsas ou conforme 
atendam, ou não, a possível solução do problema. Quando temos que fazer esse tipo 
de ação, utilizamos as chamadas estruturas condicionais ou de controle – na verdade, 
elas também recebem outras nomenclaturas (CHAPRA, 2013). 
Existem situações, não basta que tenhamos somente uma estrutura de seleção 
em um programa de computador, tão pouco somente a forma sequencial de 
implementação. Em resolução de problemas reais, é comum a necessidade do uso 
de estrutura de repetição, que seleciona, de certa forma, um trecho de código e faz 
com que ele seja executo um determinado número de vezes ou quando alguma 
operação acontecer. 
Entretanto, além desse tipo de situação, podemos lidar também com a de que 
um determinado trecho de código seja repetido até a condição ser atendida ou até 
mesmo quando ela mudar seu valor lógico, que antes era verdadeiro, para falso. 
Imagine um sistema acadêmico em que se deve inserir as notas de todos os alunos 
de uma sala de aula. Então, quando o sistema volta à mesma tela e você clica em “ok” 
ou em “concluir”, um trecho de código está sendo executado novamente, e isso é 
possível graças aos chamados laços de repetição, que contêm, em seu interior, os 
trechos que devem ser repetidos (CHAPRA, 2013). 
Isso mesmo, a estrutura de repetição é, na verdade, um laço, que, muitas 
vezes, é chamado de looping. Dentro desse laço, inserimos o trecho de código que 
deve ser repetido e, como mencionamos anteriormente, a execução desse laço só 
deve ser finalizada após a condição ser atendida. Vamos supor que você está fazendo 
uma receita na qual só deve parar de mexer a massa após ela ficar uniforme. Nesse 
exemplo, a “massa ficar uniforme” é a condição para que você pare, ou não, de mexê-
la. Observe que você não sabe quantas vezes essa ação será repetida, de modo que 
não tem como definir um limite de vezes em que a massa será mexida, só sabe que, 
 
 
quando ela ficar uniforme, estará pronta e você não vai mais precisar mexê-la. Em 
algoritmo, poderíamos representar essa situação da seguinte forma: 
A estrutura while 
Existem algumas situações em programação que precisamos repetir o mesmo 
trecho de código com valores diferentes para as nossas variáveis. Um programa que 
calcula a média de uma turma de 40 alunos vai repetir a mesma operação 40 vezes: 
leitura da matrícula do aluno, leituras das notas, cálculo da média e, por fim, mostrar 
para o usuário o resultado desse processamento de dados. Da mesma forma que as 
estruturas de seleção fazem um controle do fluxo de execução, as estruturas de 
repetição vão mudar o fluxo, repetindo um trecho de código um determinado número 
de vezes ou quando alguma operação for executada (CHAPRA, 2013). 
Podemos pensar a estrutura de repetição como o loop da montanha-russa, 
onde o carrinho vem em seu fluxo e faz um giro. Em programação, esse loop é 
conhecido como repetição. O loop pode ficar repetindo um número X de vezes. Esse 
número pode ser determinado pelo programador ou pode ser um valor digitado pelo 
usuário. Em todos os casos, esse valor ficará armazenado em uma variável que é 
conhecida como contadora. 
Um detalhe: você pode dar o nome que quiser para essa variável, mas lembre-
se de que é legal o nome da variável ter relação com o significado do que ela 
armazena. Além disso, o loop também pode ser controlado por algo que o usuário 
digita ou alguma operação interna a ele. Imagine que o cálculo da média seja digitado 
até que seja zero para a matrícula do aluno. O loop, então, encerraria como resultado 
de uma operação. Esse tipo de loop é obtido por meio de um teste condicional com 
uma variável, que é conhecida como variável de controle. 
Em C, existem os seguintes loops: while, for e do-while. Vamos começar com 
o while. Para isso, vamos a um código simples, que mostre os números de 1 a 5, 
primeiro sem estrutura de repetição. Alguns detalhes: 
 A condição é uma expressão relacional e/ou lógica com a variável de 
controle. 
 A variável de controle deve ser inicializada antes do loop. 
 A variável de controle precisa ser modificada dentro do loop de repetição. 
 
 
Esses detalhes são importantes, pois, se eles não estiverem presentes no 
código, o loop pode ou não funcionar ou funcionar de forma errada. Para exemplificar, 
vamos a dois erros bastante comuns que podem acontecer, ou melhor, acontecem 
com todos que estão aprendendo a programar (CHAPRA, 2013) 
Veja este exemplo: 
 
Fonte: (CHAPRA, 2013) 
Outro exemplo: 
 
As linguagens de programação formais utilizam os termos na língua inglesa, 
mas a lógica é a mesma, devemos apenas inserir os termos de outra forma. O 
enquanto-faça - fim-enquanto é utilizado da seguinte maneira: 
 
Vamos imaginar outra situação sobre esse exemplo em que, para ficar 
uniforme, a massa deve ser mexida apenas dez vezes. A diferençaé que, nessa outra 
situação, podemos visualizar quantas vezes a ação será repetida. Devemos ter uma 
enquanto (massa não fícar uniforme) faça 
Mexa a massa 
fim_enquanto 
end 
 
while (condição) { 
Instruções a serem executadas enquanto a 
condição for verdade}. 
end 
 
 
 
variável, que servirá de contador, ou seja, contabilizará quantas vezes a estrutura será 
repetida. Como estamos querendo somar a quantidade de vezes, devemos 
incrementar o laço de repetição, o que fazemos utilizando a variável de controle e uma 
instrução que informa que a variável de controle será somada “+1”. Em algoritmo, 
podemos representá-la da seguinte maneira: 
 
O que esses comandos querem dizer? Devemos ler da seguinte maneira: o 
contador iniciará com o valor um, já que ele tem que repetir 5 vezes, repetirá até que 
o contador esteja valendo dez – o passo 1 se refere justamente a essa soma. 
Tabela 1 – Contagem de repetições com o laço de repetição 
Número da rodada 
do laço de repetição 
Contador 
Valor do contador 
após a rodada 
Primeira repetição Iniciar com o valor de i igual a 1 
1 
Segunda repetição 
1 (valor inicial do contador) + 1 
(somado toda vez que o laço se 
repete) 
2 
Terceira repetição 
2 (valor do contador) + 1 (somado 
toda vez que o laço se repete) 
3 
Quarta repetição 
3 (valor do contador) + 1 (somado 
toda vez que o laço se repete) 
4 
Quinta repetição 
4 (valor do contador) + 1 (somado 
toda vez que o laço se repete) 
5 
Fonte: (CHAPRA, 2013) 
Esse tipo de estrutura é utilizada quando temos uma repetição finita, ou seja, 
quando sabemos quantas vezes o laço se repetirá. Em uma linguagem de 
programação formal seria representada por: 
para i de i até 5 passo 1 faça 
Mexa a massa 
fim_para 
 
 
 
 
Para reforçar o que comentamos sobre essa estrutura de repetição, Chapra 
menciona que: 
[...] o laço for funciona da seguinte forma: o índice é uma variável definida 
com um valor inicial, início; o programa, então, compara a variável índice com 
o valor final desejado, fim. Se o índice for menor ou igual à variável fim, o 
programa executará as declarações. Quando ele chega à linha end, que 
caracteriza o fim do laço, a variável índice é incrementada pelo valor da 
variável passo e o programa retorna à declaração for. O processo continua 
até o índice tornar-se maior que o valor de fim; neste ponto, o laço é 
encerrado e o programa salta para a linha imediatamente após a declaração 
end (CHAPRA, 2013, p. 67). 
Atenção: 
Na criação de algoritmos, utilizamos os conceitos de bloco lógico, entrada e 
saída de dados, variáveis, constantes, atribuições, expressões lógicas, relacionais e 
aritméticas, bem como comandos que traduzam esses conceitos para representar o 
conjunto de ações. Para que esse conjunto de ações se torne viável, deve existir uma 
perfeita relação lógica intrínseca ao modo pelo qual essas ações são executadas, ao 
modo pelo qual é regido o fluxo de execução do algoritmo, por meio das estruturas 
básicas de controle do fluxo de execução-sequenciação, seleção, repetição. E da 
combinação delas, poderemos criar algoritmos para solucionar nossos problemas 
(FORBELLONE; EBERSPÄCHER, 2005). 
Cada linguagem traz suas particularidades, por isso é tão importante que você 
compreenda a lógica em si. Os detalhes de aplicação você vai compreendendo melhor 
quando, além de decidir a linguagem, conhecer suas características. Como 
linguagens formais podemos citar Java, C, C++, C#, Python, entre outras. (CHAPRA, 
2013). 
 
Exemplos de uso das estruturas condicionais 
 
Conhecemos como as estruturas funcionam, agora, vamos exemplifi car tanto 
o uso da estrutura for-end quanto o da estrutura while-end. Para exemplificar o uso 
for (indice = inicio; 5; indice++) 
{ Intruções a serem executadas } ; 
 
 
das estruturas, vamos supor que temos que realizar a soma de dois números, na qual 
um desses números será o número dois e o outro será o valor que o usuário for 
digitando conforme o laço de repetição for sendo executado. Porém, essa operação 
matemática só irá ser executada até o resultado da soma dos valores assumir um 
valor menor ou igual a 9. 
Devemos ter algo em mente: como estruturaremos esse algoritmo? 
Vamos utilizar o pseudocódigo para te uma ideia inicial. 
 
 
Fonte: (FORBELLONE,2005) 
 
Aproveitando o mesmo exemplo, podemos aplicar a outra estrutura de 
repetição; o que mudará, além da sintaxe, é quando o laço será repetido, neste caso, 
até quando, já que vamos utilizar a estrutura for-end. Você deve saber, também, que 
essa estrutura é denominada estrutura controlada por variável, em que a variável é o 
contador, que define quantas vezes ela se repetirá. 
 
 
Para adaptar o exemplo anterior, devemos, primeiramente, definir quantas 
vezes o laço será repetido, ou seja, quantas vezes queremos que a soma seja 
realizada. Vamos definir, então, queremos realizar a soma apenas três vezes. 
Podemos compreender melhor observando o pseudocódigo a seguir: 
 
 
 
Fonte: (FORBELLONE,2005) 
 
 
 
 
 
 
REFERÊNCIAS BIBLIOGRÁFICAS 
CHAPRA, S. C. Métodos Numéricos Aplicados com MATLAB para Engenheiros 
e Cientistas. 3ª. ed. Porto Alegre: AMGH, 2013. 
 
FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de programação: a 
construção de algoritmos e estrutura de dados. São Paulo: Makron Books, 2005.