Você está na página 1de 22

Algoritmos e Estruturas de Dados I

1º Trimestre
Moisés Henrique Ramos Pereira

Técnico Integrado em
Informática
Moisés Henrique Ramos Pereira

Algoritmos e Estruturas de Dados I


1ª Edição

Belo Horizonte
Instituto Federal de Minas Gerais
2021
Palavra do Professor-Autor

We Gotta Power (Temos a Força)


Dragon Ball Z

Posso pressentir o perigo e o caos


E ninguém agora vai me amedrontar
Com a minha mente vou a mil lugares
E a imaginação me dá forças para voar

Sonhos desejamos alcançar


Ser alguém com um poder maior
que você já tem

Liberdade é correr pelo céu


Sempre unidos vamos triunfar
E se a nossa luta é pra valer
Vou mostrar meu valor
Dragon Ball Z
Meu compromisso é sempre vencer

Quando eu surgir entre as nuvens do céu


A eletricidade das coisas vai mudar
Entre a vida e a morte, aventuras vou viver
Na escuridão mistérios posso ver
O futuro todo eu vou mudar
Nova estrada com a luz do sol
vamos te trazer

Liberdade nova era vai chegar


Energia tenho para usar
E com alegria de viver ninguém vai me deter
Dragon Ball Z
Meu compromisso é sempre vencer

Desejo bons estudos para todos vocês!


Apresentação do Módulo da Disciplina

Este módulo se constitui parte da estratégica pedagógica do IFMG campus Ribeirão das
Neves para o fornecimento do Ensino Remoto Emergencial devido à pandemia da Covid-19.

Este módulo acontecerá no período correspondente à três semanas de 16 horas cada,


contabilizando 48 horas referentes ao 1° trimestre letivo da disciplina Algoritmos e Estruturas
de Dados I (AED I). Os temas deste módulo serão abordados em cinco partes, apresentadas
a seguir:

SEMANA 09  Conceitos Básicos sobre Algoritmos;


07/06 a 12/06  Formas de Representação de Algoritmos.

SEMANA 10  Estrutura Sequencial no Visualg;


14/06 a 19/06  Estruturas Condicionais no Visualg.

SEMANA 11
 Estruturas de Repetição no Visualg.
21/06 a 25/06

Os temas serão abordados em cada parte por meio de vídeos postados pelo professor e
leitura de textos indicados. Além disso, haverá também a oportunidade de tirar dúvidas por
meio de reuniões virtuais pelo Microsoft Teams. Nessas reuniões virtuais, o professor poderá
mostrar a resolução de algumas atividades para você. De qualquer forma, essas reuniões
serão gravadas para você poder acompanhar depois os passos na resolução de algumas
atividades, juntamente com os vídeos.
Assim, durante o módulo, vamos fazer 4 atividades avaliativas, sendo 3 delas valendo 8
pontos e a avaliação síncrona valendo 6 pontos, totalizando os 30 pontos para o 1º trimestre.
Essas atividades poderão ser postadas em campos próprios da disciplina cadastrada no
Moodle, equivalente a esse material, ou entregues fisicamente no campus pelos estudantes
que não tem recursos de conexão à Internet em casa.
Apresentação dos Ícones

Os ícones são elementos gráficos para facilitar os estudos, fique atento quando eles
aparecem no texto. Veja aqui o seu significado:

Atenção: indica pontos de maior importância


no texto.

Dica do professor: novas informações ou


curiosidades relacionadas ao tema em estudo.

Atividades: sugestão de tarefas e atividades


para o desenvolvimento da aprendizagem.

Mídias digitais: sugestão de recursos


audiovisuais para enriquecer a aprendizagem.
Sumário

1.1. Conceito e Construção de Algoritmos .................................................. 2


1.2. Tipos de Representação de Algoritmos ................................................ 4
1.3. Conceito de Variável ............................................................................ 5
2.1. Estrutura Sequencial em Pseudocódigo ............................................... 7
3.1. Estrutura Condicional em Pseudocódigo ............................................ 10
4.1. Estrutura de Repetição Para .............................................................. 12
4.2. Estrutura de Repetição Enquanto ...................................................... 14
4.3. Estrutura de Repetição Repita ........................................................... 15
Revisão dos Conceitos Básicos sobre Algoritmos

Objetivos
Nessa unidade, vamos rever alguns conceitos fundamentais
vistos em sala sobre algoritmos, lógica de programação e tipos
de representação de algoritmos.

1.1. Conceito e Construção de Algoritmos

Sabemos que um computador serve para receber, manipular e armazenar dados. A partir de
diversos circuitos eletrônicos, cabos e fontes de alimentação, o computador só consegue
armazenar dados em discos, imprimir relatórios, gerar gráficos, realizar cálculos, entre outras
funções, por meio de programas. Com isso, a principal finalidade de um computador é o
processamento de dados, ou seja, receber uma entrada de dados, seja por teclado, mouse,
ou scanner, por exemplo, realizar operações com esses dados e gerar uma resposta em um
dispositivo de saída como impressora, monitor, etc. Um determinado tipo de processamento
de dados que queiramos realizar é definido por meio de um ou mais programas que devemos
escrever. No entanto, para que o computador compreenda e execute esses programas,
devemos escrevê-los usando uma linguagem de códigos que tanto o computador quanto o
desenvolvedor do programa entendam, conhecida por linguagem de programação.
Para auxiliar o entendimento sobre quaisquer linguagens de programação, é necessário
desenvolver uma lógica voltada para o desenvolvimento de programas a partir de algoritmos,
recursos que descrevem uma sequência de comandos não ambíguos que, se obedecidos,
resultam numa sucessão finita de ações que permitam resolver alguma situação-problema.
Em 2012, Ascencio e Campos listaram algumas etapas para a construção de programas:
 Análise: estuda-se o enunciado do problema para definir os dados de entrada, o
processamento e os dados de saída;
 Algoritmo: ferramentas do tipo descrição narrativa, fluxograma ou português
estruturado são utilizadas para descrever o problema com suas soluções;
 Codificação: o algoritmo é transformado em códigos da linguagem de programação
escolhida para se trabalhar.

Mídia Digital: Para entender toda a aplicação teórica e


prática de algoritmos em diversas situações atuais no
mundo, vá à sala virtual sobre o que é e como funcionam
os algoritmos no Vídeo 1.
Portanto, um programa é a codificação de um algoritmo em uma linguagem de
programação (ASCENCIO, 1999). Nesse contexto, podemos perceber que executamos no
dia a dia vários algoritmos, como se pode observar nos exemplos a seguir:
 Algoritmo 1
Passo 1 - Somar três números;
Passo 2 - Receber os três números;
Passo 3 - Somar os três números de uma vez;
Passo 4 - Mostrar o resultado obtido.
 Algoritmo 2
Passo 1 - Pegar o pão;
Passo 2 - Cortar o pão ao meio;
Passo 3 - Pegar a maionese;
Passo 4 - Passar a maionese no pão;
Passo 5 - Pegar e cortar alface e tomate;
Passo 6 - Colocar alface e tomate no pão;
Passo 7 - Pegar o hambúrguer;
Passo 8 - Fritar o hambúrguer;
Passo 9 - Colocar o hambúrguer no pão.

E olha que no caso do Algoritmo 1, temos um conceito matemático não ambíguo, ou seja,
que não significa outra coisa, mas no Algoritmo 2 temos algumas situações ambíguas. Por
exemplo, se um robô entender que pegar a maionese é ele ia lá com a mão e pegar aquele
conteúdo pastoso e depois passar no pão, vai virar aquela bagunça e pouco higiênico, ainda
mais se for o mesmo robô que limpa o vaso sanitário. O Passo 4 também foi pouco
específico: não falou em passar a maionese no meio do pão entre as duas fatias no local do
corte. O robô poderia passar a maionese na parte de cima do pão, e untar bem, pois não se
falou da quantidade. Pois é: ia ser aquela “maravilha melecada” pra pegar esse troço depois
pra comer, né? rs
Considerando os algoritmos descritos anteriormente, você pode estar pensando: “Mas
eu realizo essas atividades de maneira diferente!”. Esse pensamento está correto, pois, às
vezes, um problema pode ser resolvido de diversas maneiras, porém, gerando a mesma
resposta. Ou seja, podem existir vários algoritmos para solucionar o mesmo problema.
Para a construção de qualquer tipo de algoritmo, é necessário seguir estes passos:
 Compreender completamente o problema a ser resolvido, destacando os pontos mais
importantes e as partes que o compõem;
 Definir os dados de entrada, ou seja, quais dados serão fornecidos e que fazem parte
dessa situação-problema;
 Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições
para esses cálculos. O processamento é responsável pela transformação dos dados
de entrada em dados de saída;
 Definir quais os dados de saída que serão gerados depois do processamento;
 Construir o algoritmo utilizando um dos tipos descritos no próximo tópico;
 Testar o algoritmo realizando simulações.
1.2. Tipos de Representação de Algoritmos

Os três tipos mais utilizados de algoritmos estão descritos a seguir:


 Descrição Narrativa: consiste em analisar o enunciado do problema e escrever,
utilizando uma linguagem natural (por exemplo, a língua portuguesa), os passos a
serem seguidos para sua resolução.
- Vantagem: não é necessário aprender nenhum conceito novo, pois uma língua
natural, neste ponto, já é bem conhecida.
- Desvantagem: a língua natural abre espaço para várias interpretações, o que
posteriormente dificultará a transcrição desse algoritmo para programa.
 Fluxograma: consiste em analisar o enunciado do problema e escrever os passos a
serem seguidos para sua resolução utilizando símbolos gráficos predefinidos
conforme ilustrados na Figura 1.
- Vantagem: o entendimento de elementos gráficos é mais simples que o
entendimento de textos.
- Desvantagem: é necessário aprender a simbologia dos fluxogramas e, além disso,
o algoritmo resultante não apresenta muitos detalhes, dificultando sua transcrição
para um programa.
 Pseudocódigo, conhecido como portugol ou português estruturado: consiste em
analisar o enunciado do problema e escrever, por meio de regras predefinidas, os
passos a serem seguidos para sua resolução.
- Vantagem: a passagem do algoritmo para qualquer linguagem de programação é
quase imediata, bastando conhecer as palavras reservadas da linguagem que será
utilizada para a programação.
- Desvantagem: é necessário aprender as regras do pseudocódigo, que serão
apresentadas nos próximos capítulos.

Figura 1 – Conjunto de símbolos utilizados no fluxograma.


Fonte: ASCENCIO; CAMPOS, 2012.
Seja o seguinte exemplo de um fluxograma para somar dois números quaisquer.
Guardem esse exemplo, pois ele irá evoluir nesses próximos nossos módulos da disciplina.

Figura 2 – Fluxograma envolvendo o fluxo com duas variáveis para fazer a soma entre dois números.
Fonte: Elaborado pelo Professor-Autor.

1.3. Conceito de Variável

Duas pessoas estão conversando e precisam realizar uma conta. A primeira pessoa diz:
“Vamos somar dois números”. E continua: “O primeiro número é 5”. A segunda pessoa
guarda o primeiro número na cabeça, ou seja, na memória. A primeira pessoa diz: “O
segundo número é 3”. A segunda pessoa também guarda o segundo número na cabeça,
sem esquecer o primeiro número, ou seja, cada número foi armazenado em posições
diferentes da memória humana, sem sobreposição. A primeira pessoa pergunta: “Qual é o
resultado da soma?”. Aí a segunda pessoa resgata os valores armazenados na memória,
realiza a conta e responde dizendo que o resultado é 8.
Um algoritmo e, posteriormente, um programa recebem dados que precisam ser
armazenados no computador para serem utilizados no processamento. Esse
armazenamento é feito na memória. Pode ser um posição diferente na memória RAM,
também conhecida como memória primária, caso o programa esteja em execução, ou pode
ser uma posição diferente na memória secundária (HD, SSD, arquivos, pendrive, etc). Essas
posições diferentes na memória para armazenar os dados podem ser representadas nos
programas por meio de variáveis. Uma variável representa uma posição de memória, que
possui nome e tipo, e seu conteúdo pode variar ao longo do tempo, durante a execução de
um programa. Embora uma variável possa assumir diferentes valores, ela só pode
armazenar um valor a cada instante.
Os tipos de dados das variáveis podem ter nomes diferentes para cada linguagem, mas
correspondem, basicamente, nos tipos numéricos, lógicos e literais ou caracteres, que estão
descritos a seguir de uma forma geral:
Os dados numéricos dividem-se em dois grupos: inteiros e reais. Os números inteiros
podem ser positivos ou negativos e não possuem parte fracionária como, por exemplo, os
números -5, 18, 233, 12, e 74. Já os números reais podem ser positivos ou negativos e
possuem parte fracionária, como por exemplo os números 23.45, 346.89, –34.88 e 0.0.
O tipo de dado lógico é também chamado de booleano, por causa da álgebra de Boole,
e podem assumir os valores verdadeiro ou falso.
Os dados do tipo texto, chamados de literais ou caracteres, são dados formados por um
único caractere ou por uma cadeia de caracteres. Esses caracteres podem ser as letras
maiúsculas, as letras minúsculas, os números (não podem ser usados para cálculos) e os
caracteres especiais (&, #, @, ?, +). Alguns exemplos desse tipo de dado seriam “aluno”,
“1234”, “@ internet”, “0.34”, “1 + 2”, ‘A’ e ‘3’. Um caractere é representado entre apóstrofos
(ou aspas simples) e um conjunto de caracteres é representado entre aspas duplas.
Outro componente importante para manipular os dados de uma variável é o conceito de
identificadores, que são os nomes das variáveis, dos programas, das constantes, das
rotinas, das unidades, dentre outros. As regras básicas para a formação dos identificadores
de variáveis são:
 Os caracteres permitidos são: os números, as letras maiúsculas, as letras minúsculas
e o caractere sublinhado;
 O primeiro caractere deve ser sempre uma letra ou o caractere sublinhado;
 Não são permitidos espaços em branco e caracteres especiais (@, $, +, –, %, !);
 Não podemos usar as palavras reservadas nos identificadores, ou seja, palavras que
pertençam à linguagem de programação. Por exemplo, ao declarar uma variável para
o nome do seu cachorrinho, se for uma ideia de programar um aplicativo para
petshops, o nome dela poderia ser nomeDog, ou nomeCachorro, ou só meuPet, ou o
nome de algo abstrato, etc. Sua variável não pode se chamar 5dog, pois começou
com número e essa forma está incorreta.
Estrutura Sequencial em Visualg

Objetivos
Nessa unidade, veremos a implementação e execução de
algoritmos simples por meio de estruturas sequenciais de
pseudocódigo em Visualg.

Mídia Digital: Para deixar seu ambiente computacional


preparado para a parte prática de desenvolvimento, vá à
sala virtual e assista ao tutorial de instalação do software
DIA e do Visualg nos Vídeos 2 e 3.

2.1. Estrutura Sequencial em Pseudocódigo

No restante deste documento para finalizar o 1º trimestre, utilizaremos a notação de


pseudocódigo do Visualg para programarmos os algoritmos de exemplo e das atividades,
igual como fazíamos antes da pandemia. A partir do próximo trimestre, aprenderemos os
mesmos conceitos que estão aqui utilizando a linguagem de programação Python e algumas
coisas a mais, é claro.
A notação do Visualg que utilizaremos é a seguinte:
Algoritmo "nome_do_seu_algoritmo"
Var nome_da_sua_variavel : tipo_de_dados
Inicio
Bloco_de_Comandos
FimAlgoritmo
Para a notação do Visualg, as variáveis são declaradas após a palavra VAR e os tipos
mais utilizados são INTEIRO, REAL, LITERAL ou CARACTER (para variáveis que receberão
caracteres) e LÓGICO (para variáveis que receberão apenas dois valores: verdadeiro ou
falso). Exemplo:
Var x : Inteiro
y, z : Caracter
teste : Logico
O comando de atribuição é utilizado para conceder valores ou operações às variáveis,
sendo representado pelo símbolo <- (sinal de menor seguindo de um tracinho). Exemplos:
x <- 4
x <- x + 2
y <- "aula"
teste <- falso
O comando de entrada é utilizado para receber dados digitados pelo usuário, que serão
armazenados em variáveis. Esse comando é representado pela palavra LEIA. Exemplos:
Leia (x) – Este comando permite que o valor digitado pelo usuário será armazenado
na variável x;
Leia (y) – Um ou vários caracteres digitados pelo usuário serão armazenados na
variável y.
O comando de saída é utilizado para mostrar dados na tela ou na impressora. Esse
comando é representado pela palavra Escreva, e os dados podem ser conteúdos de
variáveis ou mensagens. Exemplos:
Escreva (x) – Comando que mostra o valor armazenado na variável x;
Escreva ("Conteúdo de Y = ", y) – Mostra a mensagem "Conteúdo de Y = " e, em
seguida, o valor armazenado na variável y.
Seguindo o exemplo do fluxograma feito na Figura 2:
Algoritmo "SomaDoisNumeros"
Var x, y, S : Real
Inicio
Escreva ("Informe o valor do primeiro número: ")
Leia (x)
Escreva ("Informe o valor do segundo número: ")
Leia (y)
S <- x + y
Escreva ("O valor de S = ", S)
FimAlgoritmo
Note que a execução do programa acontece no bloco de comandos que está escrito no
trecho de código (ou trecho de pseudocódigo) apresentado entre Inicio e FimAlgoritmo na
sequência em que eles aparecem, numa estrutura de execução de cima para baixo, da
esquerda para a direita, no sentido da leitura que fazemos quando lemos um texto qualquer.
Por isso dizemos que no caso desse pseudocódigo escrito em português estruturado no
interpretador Visualg é uma estrutura sequencial de comandos a serem executados pelo
sistema operacional. Dizemos então que o programa inteiro é formado por todos os
componentes escritos desde Algoritmo até FimAlgoritmo.
Mídia Digital: Para ajudar a fixar seus conhecimentos
sobre estruturas sequenciais, vá à sala virtual e assista
ao passo a passo de programação de uma estrutura
sequencial usando o Visualg no Vídeo 4.
Atividade Avaliativa: Baixe o Arquivo 1 referente à
primeira lista de exercícios. Faça seus códigos no
Visualg e salve os arquivos ALG criados lá. Depois que
terminar as atividades, basta submeter seu arquivo
compactado ZIP à Atividade 1.

Dica do professor: Caso você não saiba como


compactar e descompactar arquivos em pastas, vá à
sala virtual e assista ao Vídeo 5.

Atenção: Se você está sem acesso a computador e está


assistindo os vídeos e vendo esse material pelo celular,
você pode fazer as atividades em folha de caderno,
fotografar e submeter nas atividades do Moodle. Você
pode usar também o aplicativo Pseudocode que utiliza
a notação do Visualg para celular. Veja as
recomendações de vídeos ao final do Vídeo 3, pois dos
vídeos recomendados é mostrando como instalar o
Visualg no Linux e o outro é para instalar o Pseudocode
no celular. Se tiver mais de um foto ou arquivo, favor
compactar em ZIP para enviar.
Estrutura Condicional em Visualg

Objetivos
Nessa unidade, veremos a implementação e execução de
algoritmos em pseudocódigo Visualg utilizando estruturas
condicionais simples e compostas.

3.1. Estrutura Condicional em Pseudocódigo

A estrutura condicional em algoritmos pode ser simples ou composta.


Vejamos a seguir a sintaxe do comando para estrutura condicional simples no Visualg:
Se (condição) Entao
Comando ou Bloco_de_Comandos
FimSe
O comando só será executado se a condição for verdadeira. Uma condição é uma
comparação que possui dois valores possíveis: verdadeiro ou falso.
Já no caso da estrutura condicional, se a condição for verdadeira, será executado o
Comando1 ou Bloco_de_Comandos1; caso contrário, será executado o Comando2.
Se (condição) Entao
Comando1 ou Bloco_de_Comandos1
Senao
Comando2 ou Bloco_de_Comandos2
FimSe
Seguindo o exemplo do fluxograma feito na Figura 2, agora envolvendo uma estrutura
condicional sobre qual operador básico da Matemática que o usuário fará a conta:
Algoritmo "CalculaDoisNumeros"
Var x, y, S: Real
op: Caracter
Inicio
S <- 0
Escreva ("Informe o valor do primeiro número: ")
Leia (x)
Escreva ("Informe o valor do segundo número: ")
Leia (y)
Escreva ("Informe qual o símbolo da operação básica? ")
Leia (op)
Se (op = "+") Entao
S <- x + y
Senao
Se (op = "-") Entao
S <- x - y
Senao
Se (op = "*") Entao
S <- x * y
Senao
Se (op = "/") Entao
S <- x / y
FimSe
FimSe
FimSe
FimSe
Escreva ("O valor de S = ", S)
FimAlgoritmo

Mídia Digital: Ainda considerando o Vídeo 4, use o


software DIA para desenhar o fluxograma para o código
acima, envolvendo uma estrutura condicional composta.

Mídia Digital: Para ajudar a fixar seus conhecimentos


sobre estruturas condicionais, vá à sala virtual e assista
ao passo a passo de programação de algumas
estruturas condicionais em Visualg nos Vídeos 6 e 7.
Atividade Avaliativa: Baixe o Arquivo 2 referente à
segunda lista de exercícios. Faça seus códigos no
Visualg e salve os arquivos ALG criados lá. Depois que
terminar as atividades, basta submeter seu arquivo
compactado ZIP à Atividade 2, incluindo o fluxograma.
Estruturas de Repetição em Visualg

Objetivos
Nessa unidade, veremos a implementação e execução de
algoritmos em pseudocódigo Visual utilizando as estruturas de
repetição Para, Enquanto e Repita para diversas aplicações.

4.1. Estrutura de Repetição Para

Uma estrutura de repetição é utilizada quando um trecho do algoritmo, ou até mesmo o


algoritmo inteiro, precisa ser repetido. O número de repetições pode ser fixo ou estar atrelado
a uma condição. Assim, existem estruturas para tais situações, descritas a seguir.
Essa estrutura de repetição Para é utilizada quando se sabe o número de vezes que um
trecho do algoritmo deve ser repetido. O formato geral dessa estrutura é:
Para i De valor_inicial Ate valor_final [Passo n] Faca
Comando1
Comando2
...
ComandoN
FimPara
O Comando1, o Comando2 e o ComandoN serão executados utilizando-se a variável i
como controle, e seu conteúdo vai variar de um valor inicial até um valor final. A informação
do Passo está entre colchetes porque é opcional. O Passo indica como será a variação da
variável de controle. Por exemplo, quando for indicado Passo 2, a variável de controle será
aumentada em 2 unidades a cada iteração até atingir o valor final. Quando a informação do
Passo estiver ausente, isso significa que o incremento ou o decremento da variável de
controle será de 1 unidade.
Exemplos:
Para i De 1 Ate 10 Faca
Escreva (i)
FimPara
O comando Escreva (i) será executado dez vezes no trecho acima, ou seja, para i
variando de 1 a 10. Assim, os valores de i serão: 1, 2, 3, 4, 5, 6, 7, 8, 9 e 10.
Para j De 1 Ate 9 Passo 2 Faca
Escreva (j)
FimPara
O comando Escreva (j) será executado cinco vezes no trecho de código acima, ou seja,
para J variando de 1 a 9, de 2 em 2. Assim, os valores de j serão: 1, 3, 5, 7 e 9.
Para i De 10 Ate 5 Passo -1 Faca
Escreva (i)
FimPara
O comando Escreva (i) será executado seis vezes no trecho acima, ou seja, para i
variando de 10 a 5. Assim, os valores dele serão: 10, 9, 8, 7, 6 e 5.
Existem duas instruções comumente usadas nos comandos internos das estruturas de
repetição. São as instruções denominadas acumuladores e contadores.
Os acumuladores devem ser usados quando a realização de um cálculo precisa de
valores obtidos a cada iteração, ou seja, o cálculo só estará pronto com a conclusão da
repetição. É por isso que um acumulador deve ser inicializado com um valor neutro para a
operação em que será utilizado. Por exemplo, se for usado em uma adição, deve ser
inicializado com zero; se for usado em uma multiplicação, deve ser inicializado com 1.
Exemplo de trecho com acumulador:
soma <- 0
// inicialização da variável SOMA com o valor zero
Para i De 1 Ate 5 Faca
Escreva ("Digite um número: ")
Leia (num)
soma <- soma + num // acumulando o valor da variável num na variável soma
FimPara
Escreva ("Soma = ", soma)
Exemplo de trecho com contador:
cont <- 0
// inicialização da variável cont com o valor zero
Para i De 1 Ate 5 Faca
Escreva ("Digite um número: ")
Leia (num)
Se (num > 5) Entao
cont <- cont + 1 // contando mais 1 na variável cont
FimSe
FimPara
Escreva ("Quantidade de número maiores que 5 = ", cont)

4.2. Estrutura de Repetição Enquanto

Essa estrutura de repetição é utilizada quando não se sabe o número de vezes que um
trecho do algoritmo deve ser repetido, embora também possa ser utilizada quando se
conhece esse número.
Essa estrutura baseia-se na análise de uma condição. A repetição será feita enquanto a
condição se mostrar verdadeira.
Existem situações em que o teste condicional da estrutura de repetição, que fica no início,
resulta em um valor falso logo na primeira comparação. Nesses casos, os comandos escritos
dentro da estrutura de repetição não serão executados.
Enquanto (condição) Faca
Bloco_de_Comandos1
FimEnquanto
Enquanto a condição for verdadeira, o Bloco_de_Comandos1 será executado.
Enquanto (condição) Faca
Comando1
Comando2
Comando3
FimEnquanto
Enquanto a condição for verdadeira, o Comando1, o Comando2 e o Comando3 serão
executados.
Exemplos de trecho de código:
x <- 1
y <- 5
Enquanto (x < y) Faca
x <- x + 2
y <- y + 1
FimEnquanto
No trecho do algoritmo anterior, portanto, os comandos que estão dentro da estrutura de
repetição são repetidos quatro vezes.
x <- 1 // inicialização da variável x com o valor 1
y <- 1 // inicialização da variável y com o valor 1
Enquanto (x <= 5) Faca
y <- y * x // acumulador das multiplicações
x <- x + 1 // contador incrementado em 1 unidade
FimEnquanto
No trecho do algoritmo anterior, portanto, os comandos que se localizam na estrutura de
repetição são repetidos cinco vezes. Nesse exemplo, a estrutura Enquanto é utilizada para
repetir o trecho do algoritmo em um número definido de vezes.

4.3. Estrutura de Repetição Repita

Essa estrutura de repetição é utilizada quando não se sabe o número de vezes que um
trecho do algoritmo deve ser repetido, embora também possa ser utilizada quando se
conhece esse número.
Essa estrutura baseia-se na análise de uma condição. A repetição será feita até a
condição se tornar verdadeira.
A diferença entre a estrutura Enquanto e a estrutura Repita é que, nessa última, os
comandos serão repetidos pelo menos uma vez, já que a condição de parada se encontra
no final. Exemplos:
Repita
Bloco_de_Comandos
Ate (condição)
Repita os comandos até a condição se tornar verdadeira.
Exemplos:
x <- 1
y <- 5
Repita
x <- x + 2
y <- y + 1
Ate (x >= y)
No trecho do algoritmo anterior, portanto, os comandos escritos dentro da estrutura de
repetição são repetidos quatro vezes.
x <- 1
y <- 1
Repita
y <- y * x
x <- x + 1
Ate (x = 6)
No trecho do algoritmo anterior, portanto, os comandos que se localizam dentro da
estrutura de repetição são repetidos cinco vezes. Nesse exemplo, a estrutura Repita é
utilizada para repetir o trecho do algoritmo em um número definido de vezes.

Mídia Digital: Para ajudar a fixar seus conhecimentos


sobre estruturas de repetição, vá à sala virtual e assista
ao passo a passo de programação de cada uma das
estruturas de repetição no Visualg no Vídeo 8.
Atividade Avaliativa: Baixe o Arquivo 3 referente à
primeira lista de exercícios. Faça seus códigos no
Visualg e salve os arquivos ALG criados lá. Depois que
terminar as atividades, basta submeter seu arquivo
compactado ZIP à Atividade 3.

Nos vemos no próximo trimestre!


REFERÊNCIAS

ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.


Fundamentos da Programação de Computadores: algoritmos, Pascal, C/C++ (Padrão
ANSI) e Java. 3. ed. São Paulo: Pearson Education do Brasil, 2012.
NICOLODI, Antonio Carlos. Manual do Visualg 3.0. Versão 3.0.6.5. 2019. Disponível em:
https://manual.visualg3.com.br/doku.php?id=start. Acesso em: 04 set. 2020.

Você também pode gostar