Logo Passei Direto
Buscar
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

ELEMENTOS DE
ALGORITMOS
Aula 1
ESTRUTURAS DE
ALGORITMOS
FUNDAMENTAIS
Estruturas de algoritmos
fundamentais
Olá, estudante!
Nesta primeira videoaula da Unidade, apresentaremos os conceitos
essenciais de algoritmos, sua definição e aplicabilidade. Além disso,
desenvolveremos os tópicos introdutórios de funções e
modularização. Aproveite esta aula para agregar informações
relevantes ao seu aprendizado, e assim, expandir sua compreensão
e entendimento da área de algoritmos e lógica de programação.
Estudante, esta videoaula foi preparada especialmente para você.
Nela, você irá aprender conteúdos importantes para a sua formação
Alto Contraste A- A+ Imprimir
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 1/53
profissional. Vamos assisti-la? 
Clique aqui para acessar os slides da sua videoaula.
Bons estudos!
Ponto de Partida
Olá, estudante! Seja bem-vindo à esta aula sobre estruturas de
algoritmos fundamentais. Em primeiro lugar, vamos entender o que
são algoritmos e algumas de suas aplicabilidades. Posteriormente,
abordaremos suas propriedades e alguns exemplos práticos no que
se refere à sua aplicação. Traremos, também, conteúdos que
introduzirão o tema funções e modularização.
Estudar algoritmos não apenas aprimorará suas habilidades de
resolução de problemas, como também proporcionará um
entendimento mais profundo do funcionamento interno dos
programas e dos sistemas que moldam nosso cotidiano. Além disso,
você será capaz de compreender o quanto as funções e a
modularização desempenham papéis cruciais na criação de códigos
eficientes e organizados. Por meio das explicações e exemplos
dados, ficará claro que as funções são blocos de construção
fundamentais em qualquer linguagem de programação e que a
modularização, ao dividir o código em partes menores e
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 2/53
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u2a1_algo_log_pro.pdf
independentes, facilita a compreensão e promove a reutilização e
manutenção eficiente de um software.
Diante desses pontos, como exemplo prático imagine que em um
posto de combustível movimentado, os funcionários enfrentam
dificuldades para registrar as vendas de maneira eficiente. Para
melhorar esse processo, você foi convidado a criar um sistema
simples que armazene informações essenciais sobre as transações.
Os dados a serem registrados incluem o tipo de combustível
escolhido pelo cliente, a quantidade abastecida, além do preço por
litro dependendo do tipo de combustível.
Convidamos você a explorar o material da aula e a praticar os
conteúdos aqui trabalhados. Aproveite! 
Vamos Começar!
Definição, conceito e aplicabilidade dos
algoritmos
Os algoritmos, muitas vezes considerados o ponto principal da
ciência da computação, desempenham um papel determinante na
resolução de problemas e na execução eficiente de tarefas em
diversas áreas. No âmbito da programação, entender a definição e a
aplicabilidade dos algoritmos é essencial para qualquer
desenvolvedor ou cientista de dados. Nesta aula, exploraremos o
que são algoritmos, como eles são estruturados e como são
aplicados no mundo real.
Os algoritmos são sequências ordenadas de instruções que visam
realizar uma atividade específica ou solucionar um problema. Eles
são como receitas detalhadas, fornecendo passos claros para atingir
um resultado desejado. A aplicabilidade dos algoritmos é vasta,
abrangendo desde a ordenação de dados até a resolução de
complexos problemas matemáticos. Por exemplo, o algoritmo
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 3/53
Bubble Sort organiza elementos em uma lista de forma ascendente
ou descendente, enquanto o algoritmo de Dijkstra é utilizado para
encontrar o caminho mais curto em redes. Vale lembrar que esses
exemplos são mais complexos e sua construção exige uma maior
habilidade.
Consideremos, pois, um exemplo mais simples, um algoritmo em
Portugol que utiliza comandos básicos de entrada e saída. Esse
algoritmo solicita ao usuário que insira dois números, realiza a soma
e exibe o resultado, como podemos observar na Figura 1:
Figura 1 | Exemplo de algoritmo com comandos básicos.
Fonte: elaborada pelo autor.
Neste exemplo, o algoritmo utiliza os comandos “escreva” para
exibir mensagens no console e “leia” para capturar a entrada do
usuário. Os números fornecidos são armazenados nas variáveis
“numero1” e “numero2”. Em seguida, a soma é calculada e
armazenada na variável “resultado”, que é exibida ao usuário. Este é
um exemplo básico que demonstra o uso fundamental de entrada e
saída em algoritmos simples.
Outro exemplo clássico é o cálculo da média de um aluno. Baseado
em informações solicitadas para o usuário, é possível apresentar o
resultado de cálculos como a média aritmética ou a média
ponderada de uma turma de alunos, ou até mesmo determinar qual
aluno ficou com a maior média da turma. Na Figura 2 a seguir,
vemos um exemplo desse algoritmo:
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 4/53
Figura 2 | Cálculo da média de um aluno. Fonte: elaborada
pelo autor.
Note que a figura apresenta a criação das variáveis na linha 3.
Nesse caso, todas as variáveis foram declaradas como reais, pois
existem valores nos cálculos de divisão que podem retornar
resultados fracionários. Em seguida, é solicitado do usuário as notas
e, após essa etapa, é realizado o cálculo da média. O algoritmo
finaliza apresentando o resultado da média na tela do programa
como uma mensagem textual que acompanha o valor numérico.
Em síntese, compreender a definição e aplicabilidade dos algoritmos
é essencial para qualquer pessoa envolvida no mundo da
programação e da ciência de dados, uma vez que possibilitam a
automação de processos, a solução de problemas básicos e
complexos e a otimização de sistemas.
Portanto, mergulhar no entendimento e na prática dos algoritmos é
não apenas uma escolha sábia, mas uma necessidade para quem
busca excelência na área da programação e na resolução de
desafios computacionais.
Propriedades de um algoritmo
O aprendizado das propriedades de um algoritmo é fundamental no
campo da ciência da computação. Imagine os algoritmos como os
mecanismos complexos que impulsionam a engrenagem por trás do
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 5/53
funcionamento eficiente dos softwares que utilizamos diariamente.
Compreender suas propriedades permite aprimorar, então, a
capacidade de resolução de problemas e criar soluções mais
eficazes para desafios complexos. Ao iniciar os estudos nesse
domínio, os futuros programadores aprimoram suas habilidades
técnicas, além de cultivar uma perspicácia analítica que é essencial
para navegar no cenário em constante evolução da tecnologia.
Debruçar-se sobre os algoritmos e suas propriedades não se trata,
pois, de uma exploração acadêmica, mas de uma habilidade
indispensável para quem busca a perfeição na arte da programação
e da resolução de problemas computacionais. Na sequência,
apresentaremos alguns exemplos práticos que englobam as
principais propriedades de um algoritmo:
1. Passo a passo para realizar uma tarefa
A característica de seguir um passo a passo em um algoritmo é
crucial para garantir a execução ordenada e lógica de uma tarefa
específica. Isso significa que cada ação é cuidadosamente
planejada e executada em uma sequência predeterminada. A
analogia pode ser feita com uma receita de cozinha, na qual cada
instrução precisa ser acompanhada na ordem correta para se obter
o resultado desejado. No contexto da programação, a clareza e a
precisãonos passos são essenciais para evitar erros e garantir o
desfecho almejado. Observe, na Figura 3, o exemplo de um passo a
passo na realização de uma tarefa:
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 6/53
Figura 3 | Exemplo em Portugol: média ponderada. Fonte:
elaborada pelo autor.
A propriedade de passo a passo é essencial para guiar a execução
de um algoritmo de maneira sequencial e lógica, como este que
calcula a média ponderada de três notas, seguindo um processo
ordenado de entrada, cálculo e exibição do resultado.
2. Processamento e instruções lógicas
O processamento e as instruções lógicas são a essência do
funcionamento de um algoritmo. Cada passo do algoritmo envolve a
manipulação de dados através de operações lógicas, como
comparações, cálculos e tomadas de decisão. Por exemplo, ao
verificar se um número é positivo, o algoritmo utiliza a instrução
lógica “se” para comparar o número com zero. Essas operações são
a base que permite que o algoritmo resolva problemas complexos,
decompondo-os em operações lógicas mais simples, como vemos
na Figura 4:
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 7/53
Figura 4 | Exemplo em Portugol: verificação e divisibilidade por 3. Fonte: elaborada pelo autor.
A propriedade de processamento e instruções lógicas é
exemplificada em um algoritmo que verifica se um número é divisível
por 3. Em outras palavras, o processamento envolve a verificação
lógica da condição de divisibilidade. Aqui, as instruções lógicas
determinam se o número é ou não divisível por 3.
Siga em Frente...
3. Início e fim
A propriedade de ter um início e um fim é essencial para estruturar e
delimitar a execução de um algoritmo. O início é o ponto de partida,
onde são recebidos os dados ou parâmetros necessários para
realizar a tarefa. O fim, por sua vez, marca o encerramento do
processo, resultando na conclusão da tarefa ou na produção do
resultado desejado. Essa estruturação clara proporciona uma
melhor compreensão do escopo do algoritmo, facilitando o controle
do desenvolvedor sobre o fluxo de execução, como na Figura 5:
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 8/53
Figura 5 | Exemplo em Portugol: conversão de Celsius para Fahrenheit. Fonte: elaborada pelo autor.
Na Figura 5, a propriedade de ter um início e um fim é evidente em
um algoritmo que converte temperatura de Celsius para Fahrenheit.
O início envolve a entrada da temperatura em Celsius e o fim marca
a exibição da temperatura convertida.
4. Instruções claras e objetivas
Instruções claras e objetivas são fundamentais para garantir que o
algoritmo seja compreendido e executado corretamente. A clareza
nas instruções significa que cada passo do algoritmo é descrito de
maneira direta, sem ambiguidades, evitando interpretações
errôneas. A objetividade, por seu turno, está relacionada à eficiência
na comunicação das ações a serem realizadas, sem informações
desnecessárias. Essas instruções são como um manual detalhado
que guia a execução do algoritmo de forma inequívoca. Veja o
exemplo a seguir:
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 9/53
Figura 6 | Exemplo em Portugol: verificação de número primo.
Fonte: elaborada pelo autor.
A clareza e objetividade nas instruções, como vemos na Figura 6,
são primordiais em um algoritmo que verifica se um número é primo.
A estrutura de controle de fluxo é clara, tornando o algoritmo
compreensível.
Em suma, cada uma dessas propriedades desempenha um papel
elementar na criação de algoritmos robustos e eficientes. A
sequencialidade garante uma execução ordenada, o processamento
e as instruções lógicas são a essência da operação, o início e fim
delimitam o escopo, e as instruções claras e objetivas asseguram
uma compreensão e execução adequadas. Ao entender e aplicar
essas propriedades, os programadores são capazes de desenvolver
algoritmos mais eficazes, precisos e fáceis de manter.
Introdução a funções e modularização
As funções possuem grande relevância na construção de
algoritmos. Elas são blocos de código que realizam tarefas
específicas e podem ser chamadas de diferentes partes do
programa. Ao introduzir funções, a programação se torna mais
modular e compreensível. Imagine-as como ferramentas
especializadas no kit de um desenvolvedor, cada qual projetada
para executar um trabalho único. No mercado da Tecnologia da
Informação, isso se traduz em eficiência e reutilização de código.
Por exemplo, uma função que valida senhas pode ser usada em
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 10/53
diferentes partes de um sistema, promovendo consistência e
economizando tempo de desenvolvimento. A seguir, veremos quatro
exemplos básicos e contextualizados de funções no campo da TI.
1. Validação de e-mail
Cenário: em um sistema de cadastro online, é necessário
validar se o endereço de e-mail fornecido pelos usuários está
no formato correto.
Função: uma função específica pode ser criada para validar e-
mails, sendo utilizada em várias partes do sistema, desde o
cadastro até a recuperação de senha.
2. Geração de relatórios
Cenário: um sistema de gerenciamento financeiro precisa
gerar relatórios mensais para os usuários.
Função: uma função especializada para gerar relatórios pode
ser desenvolvida, proporcionando uma abordagem modular
para lidar com diferentes tipos de relatórios.
3. Ordenação de lista
Cenário: um sistema de gerenciamento de tarefas precisa
exibir as tarefas em uma ordem específica, como por data de
vencimento.
Função: desenvolver uma função de ordenação que aceite a
lista de tarefas como entrada e retorne a lista ordenada. Essa
função pode ser usada sempre que for necessário exibir as
tarefas em uma ordem específica.
4. Conversão de moeda
Cenário: um aplicativo financeiro permite que o usuário
converta valores entre diferentes moedas.
Função: criar uma função de conversão de moeda que aceite o
valor a ser convertido, a moeda de origem e a moeda de
destino como parâmetros. Essa função encapsula a lógica de
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 11/53
conversão e pode ser chamada sempre que uma conversão for
necessária.
Dessa forma, conclui-se que, ao dominar os conceitos de funções,
os programadores podem organizar melhor seus programas,
facilitando a manutenção e a depuração destes. Além disso, o uso
adequado de funções promove a abstração e a encapsulação,
permitindo que partes do código sejam isoladas e modificadas
independentemente, o que contribui para a escalabilidade e a
flexibilidade do software. Portanto, investir tempo no estudo das
funções na programação é fundamental para se tornar um
desenvolvedor mais competente e eficaz.
Quanto à modularização, podemos defini-la como o princípio de
dividir um sistema complexo em módulos ou componentes
independentes e interconectados. Esse conceito traz inúmeras
vantagens para o desenvolvimento de software no mercado de TI.
Em termos de desempenho, a modularização permite a otimização
de cada módulo individual, melhorando a eficiência geral do sistema.
Além disso, ela também simplifica a manutenção, uma vez que
alterações ou atualizações podem ser feitas em módulos específicos
sem impactar o sistema como um todo. Isso se traduz em economia
de tempo e recursos, que são essenciais no cenário tecnológico e
na vida de um desenvolvedor. A seguir, discorreremos sobre essas
vantagens com mais detalhes.
1. Manutenibilidade: ao dividir um sistema em módulos, torna-se
mais fácil localizar e corrigir problemas específicossem afetar
outras partes do código. Isso simplifica a manutenção e
atualização do software.
2. Reusabilidade de código: módulos bem definidos podem ser
reutilizados em diferentes partes do sistema ou mesmo em
projetos futuros, o que economiza tempo de desenvolvimento e
promove consistência no código.
3. Escalabilidade: sistemas modulares são mais fáceis de
escalar, pois novos módulos podem ser adicionados conforme
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 12/53
necessário, o que ajuda na adaptação do sistema às mudanças
nos requisitos.
4. Colaboração eficiente: a modularização permite o trabalho
colaborativo, pois diferentes equipes podem se concentrar em
módulos específicos sem interferir no trabalho umas das
outras.
Como pudemos notar por meio dos exemplos citados, a
modularização tem um papel importante no mercado de Tecnologia
da Informação (TI), pois oferece uma abordagem organizada e
escalável. Ao dividir um sistema complexo em módulos
independentes e interconectados, os desenvolvedores podem
aumentar a eficiência em desenvolvimento, testes e manutenção de
software. Isso permite que equipes trabalhem de forma colaborativa
em diferentes partes do projeto, facilitando a identificação e correção
de erros, além de promover a reutilização do código. A
modularização também permite a integração de novos recursos e a
adaptação a mudanças nos requisitos do cliente ou do mercado,
tornando o processo de desenvolvimento mais ágil e adaptável.
Logo, a modularização não somente melhora a qualidade e
confiabilidade dos produtos de software, como também contribui
para a entrega oportuna de soluções inovadoras e eficientes para os
clientes.
As funções e a modularização são, portanto, elementos de grande
importância no desenvolvimento de software e no mundo da
programação. Ao utilizar funções, os desenvolvedores podem criar
blocos de código reutilizáveis, promovendo eficiência e coesão no
desenvolvimento. A modularização, por sua vez, traz vantagens
significativas, desde a melhoria do desempenho até a facilitação da
manutenção e escalabilidade do sistema. Esses princípios formam
uma ótima base para o desenvolvimento de sistemas de qualidade
que sejam flexíveis e fáceis de manter, qualidades muito valorizadas
no ambiente tecnológico atual.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 13/53
Vamos Exercitar?
Vamos retomar a situação apresentada no início da aula, na qual em
um posto de combustível movimentado, os funcionários enfrentam
dificuldades para registrar as vendas de maneira eficiente. Para
melhorar esse processo, é necessário criar um sistema simples que
armazene informações essenciais sobre as transações. Os dados a
serem registrados incluem o tipo de combustível escolhido pelo
cliente, a quantidade abastecida, além do preço por litro
dependendo do tipo de combustível.
Vamos à resolução?
Registro do tipo de combustível
Solicite ao cliente tipo de combustível desejado (gasolina,
etanol, diesel etc.).
Criar uma variável do tipo “Caractere” que armazene o tipo de
combustível.
Registro da quantidade abastecida
Solicite ao cliente a quantidade de litros desejada para o
combustível escolhido.
Armazene a quantidade em uma variável do tipo “Real”, pois a
quantidade pode ser fracionada.
Registro do valor por litro
O valor por litro deve ser consultado na tabela de preços do
posto.
Armazene o valor por litro em uma variável do tipo “Real”.
Cálculo do valor total
Calcule o valor total da compra multiplicando a quantidade de
litros pelo preço por litro.
Apresente o valor total ao cliente.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 14/53
Este método simplificado de gerenciamento de transações ressalta a
relevância da utilização de variados tipos de dados para armazenar
informações em um posto de abastecimento de combustível. A
habilidade em lidar com dados e realizar cálculos é essencial para
assegurar um serviço ágil e preciso aos clientes.
Saiba Mais
Para saber mais sobre conceitos básicos de algoritmos, entre os
quais estão os tipos de dados e operadores aritméticos, consulte o
Capítulo 2 – Algoritmos e a Lógica de Programação, do livro
Algoritmos – Lógica para Desenvolvimento de Programação de
Computadores, de Manzano e Oliveira, disponível no repositório da
Biblioteca virtual.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Capítulo 2 – Algoritmos
e a Lógica de Programação. In: Algoritmos – Lógica para
Desenvolvimento de Programação de Computadores. São
Paulo: Editora Saraiva, 2019, p. 29. 
Referências Bibliográficas
CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de
Janeiro: LTC, 2022.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos - Lógica
para Desenvolvimento de Programação de Computadores. São
Paulo: Editora Saraiva, 2019.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de
algoritmos. São Paulo: Érica, 2000.
MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.
SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para
computação. 2. ed. São Paulo: Cengage Learning, 2017.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 15/53
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/]https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/29
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/]https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/29
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/]https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/29
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/]https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/29
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/]https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/29
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/]https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/29
ZIVIANI, N. Projeto de algoritmos com implementações em
Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.
Aula 2
EXECUÇÃO SEQUENCIAL E
ESTRUTURAS DE DECISÃO
Execução sequencial e estruturas
de decisão
Olá, estudante!
Nesta videoaula, temos como objetivo apresentar os conceitos
básicos de algoritmos que abrangem os primeiros passos no
desenvolvimento da tomada de decisão em códigos. Além disso,
abordaremos como deve ser a estrutura de um código de decisão,
que utiliza condicionais, e como ele funciona.
Não perca a oportunidade de agregar informações valiosas ao seu
aprendizado e, assim, ampliar seu conhecimento e compreensão da
área de algoritmos. 
Clique aqui para acessar os slides da sua videoaula.
Bons estudos!
 
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 16/53
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u2a2_algo_log_pro.pdf
Ponto de Partida
Olá, caro estudante! Seja bem-vindo à esta aula sobre estrutura
sequencial e estrutura de decisão, as quais constituem a base para
a construção lógica de programas.
As estruturas sequenciais são como os blocos de construção iniciais
de um projeto em que as instruções são executadas em ordem
linear, uma após a outra. Essa abordagem é essencial para
organizar o fluxo de execução do programa, permitindo que a lógica
siga de forma ordenada e compreensível. Seja na simples exibição
de mensagens ou até em cálculos mais complexos, as estruturas de
sequência fornecemum ponto de partida para qualquer
programador iniciante.
 À medida que avançamos, entramos no domínio da estrutura de
decisão, um conceito-chave para a tomada de decisões dinâmicas
em um programa. Através de declarações condicionais, como “se” e
“senao”, podemos introduzir ramificações lógicas no fluxo do código.
Essas estruturas permitem que um programa escolha entre
diferentes caminhos de execução com base em condições
específicas, aumentando, assim, a flexibilidade e adaptabilidade às
aplicações.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 17/53
Para ilustrar a aprendizagem dos conteúdos desta aula, imagine que
você precisa desenvolver um módulo para um sistema de comércio
eletrônico que oferece descontos aos clientes com base em suas
compras anteriores. O sistema deve aplicar um percentual de
desconto de acordo com o valor total da compra.
Ao compreender esses princípios básicos, estaremos prontos para
explorar cenários e desafios de programação mais complexos no
futuro. Vale lembrar que esses conceitos iniciais são a chave para
desbloquear o enorme potencial da programação. 
Vamos Começar!
No vasto universo da programação, as estruturas que moldam a
execução dos algoritmos são partes que integram a eficácia do
código. Sua compreensão é um pré-requisito elementar para
qualquer programador que busca criar sistemas coesos e funcionais.
Nesse contexto, destacam-se três aspectos fundamentais: a
estrutura de programação, que define o esqueleto do código; as
estruturas sequenciais, que determinam a execução linear das
instruções; e as estruturas de decisão, que conferem ao programa a
capacidade de se adaptar a diferentes cenários por meio de lógica
condicional.
 Em um nível macro, a estrutura de programação estabelece a
ordem geral das operações, enquanto as estruturas sequenciais e
de decisão refinam essa ordem, proporcionando ao código a
flexibilidade necessária para enfrentar desafios diversos. Este
mergulho no centro dessas estruturas é essencial para capacitar
programadores a criar códigos mais claros, concisos e eficientes,
podendo, assim, solucionar problemas de forma sofisticada no
mundo da programação.
Estrutura de programação
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 18/53
A estrutura de programação refere-se ao esqueleto básico de um
programa, estabelecendo a ordem em que as instruções são
executadas. No contexto do pseudocódigo Portugol, podemos
ilustrar essa qualidade com um exemplo simples:
Figura 1 | Exemplo de estrutura de programação. Fonte:
elaborada pelo autor. 
Na Figura 1, é evidente a estrutura de programação. O programa
começa com a entrada de dados, quando o usuário fornece dois
números. Em seguida, ocorre o processamento, em que os
números são subtraídos e o resultado é armazenado na variável
"sub". Por fim, a saída de dados exibe a subtração ao usuário. Essa
sequência lógica de operações exemplifica a estrutura de
programação, na qual cada passo é crucial para alcançar o
resultado desejado.
 Essa abordagem estruturada é essencial para garantir a clareza e a
funcionalidade do código. Em projetos mais complexos, a
organização eficaz das operações por meio de uma estrutura de
programação bem definida torna-se ainda mais crítica, permitindo
que programadores e equipes colaborem de maneira mais eficiente
e mantenham o código de forma sustentável ao longo do tempo.
Assim, a estrutura de programação não apenas estabelece a ordem
de execução, mas também promove a legibilidade e a manutenção
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 19/53
do código, fatores cruciais no desenvolvimento de um software de
qualidade.
Estruturas sequenciais
As estruturas sequenciais representam a execução de instruções
em ordem linear, uma após a outra. Em linguagens de programação,
isso ocorre de forma natural, mas é importante compreender como
organizá-las de maneira lógica. Para tanto, vamos expandir o
exemplo anterior para incluir uma estrutura sequencial.
Figura 2 | Estruturas sequenciais. Fonte: elaborada pelo autor. 
Neste exemplo ampliado, após a saída de dados que exibe a soma,
adicionamos instruções sequenciais para calcular e exibir o dobro do
resultado. Essa adição ilustra como as estruturas sequenciais
permitem a execução linear de operações, uma após a outra. No
caso, o dobro da soma é calculado imediatamente após a exibição
da soma, seguindo o fluxo sequencial do programa.
As estruturas sequenciais são, pois, capitais para a organização
lógica e compreensão do código. Elas possibilitam que os
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 20/53
desenvolvedores expressem a lógica de execução de maneira clara
e direta. Em programas mais complexos, essa sequencialidade
torna-se primordial para evitar resultados inesperados e garantir que
as operações sejam realizadas na ordem desejada. A clareza
proporcionada por estruturas sequenciais também facilita a
depuração e a manutenção do código, contribuindo para um
desenvolvimento mais eficiente e eficaz.
Siga em Frente...
Estruturas de decisão
No universo da programação, as estruturas de decisão são
fundamentais para conferir ao código a capacidade de tomar
diferentes caminhos de execução com base em condições
específicas. Na pseudolinguagem Portugol, a estrutura condicional
básica é representada pelo comando "se-então-senão".
As estruturas de decisão podem ser classificadas em três tipos
principais: desvio condicional simples, desvio condicional composto
e desvio condicional encadeado. Exploremos cada uma delas com
exemplos claros em Portugol.
Desvio condicional simples
O desvio condicional simples é o tipo mais básico, no qual o código
executa uma instrução se uma condição for verdadeira; caso
contrário, ele simplesmente continua sua execução normal. Na
Figura 3, vemos como o programa verifica se um número digitado é
positivo.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 21/53
Figura 3 | Positivo?. Fonte: elaborada pelo autor. 
Neste caso, a mensagem "O número é positivo" será exibida apenas
se a condição numero > 0 for verdadeira.
Desvio condicional composto
O desvio condicional composto inclui um bloco de instruções para
cada possível resultado da condição. No exemplo a seguir, além de
verificar se o número é positivo, também apura-se se é negativo ou
igual a zero.
Figura 4 | Positivo ou negativo?. Fonte: elaborada pelo
autor.
Logo, o código aborda todas as possibilidades, garantindo que a
mensagem correta seja exibida com base no valor do número
inserido.
Desvio condicional encadeado
O desvio condicional encadeado ocorre quando uma série de
decisões está interligada. Cada decisão é tomada com base na
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 22/53
condição anterior. Na Figura 5, observamos o programa classificar
um aluno com base em sua nota.
Figura 5 | Aprovado, recuperação ou reprovado?. Fonte:
elaborada pelo autor.
Neste caso, o programa avalia primeiro se a nota é maior ou igual a
7,0. Se sim, o aluno é aprovado. Caso contrário, se a nota for maior
ou igual a 4,0, ele está em recuperação. Se não atender a nenhuma
dessas condições, o aluno é considerado reprovado.
Tais exemplos demonstram como as estruturas de decisão em
Portugol podem ser aplicadas de maneiras simples e
compreensíveis, proporcionando ao programador flexibilidade para
lidar com diferentes situações. A escolha entre essas estruturas
dependerá da complexidade do problema a ser resolvido e da lógica
específica que se deseja implementar.
ConclusãoEm resumo, as estruturas de programação constituem a espinha
dorsal do desenvolvimento de software, proporcionando a
organização lógica necessária para a criação de algoritmos
eficientes. Ao definirem o esqueleto do código, elas estabelecem as
bases sobre as quais as estruturas sequenciais e de decisão se
desdobrarão. As estruturas sequenciais, por sua vez, asseguram a
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 23/53
execução ordenada das instruções, conferindo clareza e linearidade
ao fluxo do programa. Da mesma forma, as estruturas de decisão
emergem como ferramentas cruciais para a adaptação dinâmica do
código, permitindo que ele responda a condições específicas.
Ao aplicar esses conceitos no ambiente de programação em
Portugol, os desenvolvedores têm a oportunidade de criar códigos
mais legíveis, organizados e eficientes. A clareza proporcionada
pelas estruturas de programação é fundamental para facilitar a
compreensão do código não apenas pelo criador, mas também por
outros membros da equipe envolvida no projeto. Além disso, a
capacidade de tomar decisões lógicas por meio das estruturas
condicionais permite que os programas lidem de maneira adaptável
com diferentes cenários, contribuindo para a robustez e versatilidade
das soluções desenvolvidas. Em última análise, o entendimento
profundo dessas estruturas é uma habilidade essencial para
programadores que aspiram a construir soluções de software
robustas e funcionalmente sólidas.
Vamos Exercitar?
Vamos retomar a situação apresentada no início da aula onde você
precisa desenvolver um módulo para um sistema de comércio
eletrônico que oferece descontos aos clientes com base em suas
compras anteriores. O sistema deve aplicar um desconto de 10%
em relação ao valor total da compra.
Vamos à resolução?
Identificação do cliente
Crie uma estrutura de dados para representar as informações
do cliente: nome, e-mail e total gasto em compras anteriores.
Solicite ao usuário que insira seu nome, e-mail e o valor total
gasto em compras anteriores.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 24/53
Aplicação de desconto
Implemente uma estrutura de seleção (condicional) para
verificar o valor total gasto pelo cliente.
Aplique um desconto de 10% se o valor total for superior a R$
500.
Exibição do resultado
Mostre ao usuário o valor original da compra, o desconto
aplicado (se houver) e o valor final a ser pago.
Exiba uma mensagem incentivando o cliente a continuar
comprando.
Usando a Linguagem C
Figura 6 | Identificação do cliente. Fonte: elaborada pelo autor.
Figura 7 | Aplicação do desconto. Fonte: elaborada pelo autor.
Figura 8 | Resultado. Fonte: elaborada pelo autor.
Saiba Mais
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 25/53
Para saber mais sobre as estruturas de decisão e formas de
aplicação dos desvios condicionais na linguagem de programação C
e quais suas características, consulte o Capítulo 7. Estruturas
condicionais do livro Elementos de programação em C, de Pinheiro,
disponível no repositório da Biblioteca virtual.
PINHEIRO, F. de A. C. Capítulo 7. Estrutura Condicionais. In:
Elementos de programação em C. Porto Alegre: Bookman, 2012,
p. 148-165. 
Referências Bibliográficas
CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de
Janeiro: LTC, 2022.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de
algoritmos. São Paulo: Érica, 2000.
MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.
PINHEIRO, F. de A. C. Elementos de programação em C. Porto
Alegre: Bookman, 2012.
SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para
computação. 2. ed. São Paulo: Cengage Learning, 2017.
ZIVIANI, N. Projeto de algoritmos com implementações em
Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.
Aula 3
ESTRUTURAS DE
REPETIÇÃO
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 26/53
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/165
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/165
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/165
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/165
Estruturas de repetição
Olá, estudante! Esta videoaula será dedicada às estruturas de
repetição, as quais proporcionarão uma imersão completa nos
elementos essenciais para o desenvolvimento de algoritmos mais
complexos. Durante nosso encontro, exploraremos os conceitos
fundamentais dessas estruturas, discutindo como elas podem ser
aplicadas para otimizar e automatizar processos em programação. A
habilidade de criar loops eficientes é crucial para qualquer
programador, e esta aula visa fornecer uma compreensão sólida do
assunto. Além disso, abordaremos a importância da clareza na
estrutura do código e como essa qualidade contribui para um
desenvolvimento mais eficiente. Entender como organizar e
controlar o fluxo de um programa é primordial para qualquer
aspirante a desenvolvedor.
Clique aqui e acesse os slides da sua videoaula.
Bons estudos!
Ponto de Partida
Olá, caro estudante! Seja bem-vindo à esta aula dedicada às
estruturas de repetição em Portugol. Nesta jornada, apresentaremos
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 27/53
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u2a3_algo_log_pro.pdf
essas estruturas essenciais para a criação de algoritmos dinâmicos
e eficientes. Elas são como os fios que tecem a complexidade dos
programas, proporcionando a flexibilidade necessária para enfrentar
desafios variados. Assim como alicerces firmes sustentam uma
construção, entender o "Enquanto-Faça", "Para-Até-Faça" e "Repita-
Até" permitirá, assim, que você construa códigos mais robustos e
adaptáveis.
Para ilustrar a aprendizagem dos conteúdos desta aula, imagine que
você trabalha em uma loja de pneus que deseja otimizar o controle
de estoque e conta com a sua ajuda para criar um programa que
facilite a contagem de produtos. Cada pneu vendido é registrado, e
o estoque precisa ser atualizado constantemente. Portando, você
precisará desenvolver um algoritmo que permita ao vendedor
informar quantos pneus foram vendidos e, com base nessa
informação, realizar a contagem atualizada do estoque.
Este é apenas o começo; o conhecimento adquirido aqui será a
chave para desbloquear as possibilidades infinitas que a
programação oferece. Abrace cada conceito, participe ativamente e
não hesite em explorar e questionar. Estamos aqui para apoiar sua
aprendizagem e guiá-lo na compreensão plena dessas estruturas.
Boa aula!
Vamos Começar!
A lógica de programação é uma parte fundamental do
desenvolvimento de software, e entre suas muitas nuances,
destacam-se as estruturas de repetição como ferramentas
essenciais para construir algoritmos eficientes e dinâmicos. Nesta
aula, vamos explorar a profundidade dessas estruturas em Portugol,
uma linguagem pseudocódigo que serve como ponte intuitiva para
entender os conceitos básicos da área. À medida que nos
aprofundarmos no universo do "Enquanto-Faça", "Para-Até-Faça" e
"Repita-Até", desvendaremos os segredos por trás dessas
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 28/53
construções que capacitam os programadores a automatizar tarefas,
criar lógicas complexas e dar vida a algoritmos mais eficientes.
Resumidamente, a estrutura "Enquanto-Faça" oferece uma
abordagem dinâmica, permitindo que um bloco de código seja
repetido enquanto uma condição específica permanecerverdadeira.
Essa capacidade de adaptação é crucial, pois permite a execução
de tarefas variáveis, condicionando o fluxo do programa à avaliação
contínua de uma expressão booleana. No entanto, há também a
necessidade de estruturas que possam lidar com um número fixo de
repetições, e é aqui que o "Para-Até-Faça" assume o palco,
simplificando o controle de iterações. Por fim, para cenários em que
é necessário garantir que um bloco de código seja executado pelo
menos uma vez, independentemente da condição inicial, a estrutura
"Repita-Até" se destaca como um instrumento valioso,
proporcionando robustez e adaptabilidade aos algoritmos. Ao
desbravar esses conceitos, os programadores estarão equipados
não apenas com conhecimentos práticos, como também com uma
compreensão mais profunda da arte de criar algoritmos eficientes.
Enquanto-Faça
A estrutura de repetição "Enquanto-Faça" destaca-se como uma
ferramenta dinâmica e versátil no contexto da programação. Sua
lógica é centrada na execução de um bloco de código enquanto uma
condição específica permanece verdadeira. No exemplo prático do
contador, inicializamos uma variável em 1. Enquanto essa variável
for menor ou igual a 5, o bloco de código dentro do "Enquanto-Faça"
será repetido. Cada iteração incrementa o contador, proporcionando
uma contagem sequencial de 1 a 5. Essa flexibilidade torna o
"Enquanto-Faça" ideal para situações em que a quantidade de
repetições não é conhecida antecipadamente.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 29/53
Figura 1 | Contador. Fonte: elaborada pelo autor. 
Uma das características marcantes do "Enquanto-Faça" é a sua
capacidade de adaptar dinamicamente o fluxo de execução do
programa. A condição que determina a repetição é avaliada antes de
cada iteração, permitindo que o bloco de código seja executado
apenas enquanto a condição for verdadeira. Isso proporciona um
controle preciso e flexível sobre o número de repetições,
adequando-se a cenários em que a lógica do programa precisa
ajustar-se às condições variáveis, tornando-o uma escolha ideal
para contextos dinâmicos.
Além de seu papel em loops, o "Enquanto-Faça" contribui
significativamente para a construção lógica sequencial de um
programa. Sua adaptabilidade ao lidar com conjunturas em que as
condições de repetição podem depender de variáveis externas ou
interações do usuário é valiosa. Ao dominar o uso dessa estrutura,
os programadores adquirem uma ferramenta capital para criar
algoritmos dinâmicos e ajustáveis, abrindo portas para a resolução
eficiente de uma variedade de problemas.
Para-Até-Faça
A estrutura de repetição "Para-Até-Faça" é um instrumento poderoso
que proporciona um controle preciso sobre o número de iterações
em um bloco de código. Ao contrário do "Enquanto-Faça", no qual a
execução depende de uma condição booleana, o "Para-Até-Faça" é
especialmente útil quando sabemos previamente quantas repetições
são precisas. Essa estrutura é conduzida por uma variável de
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 30/53
https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/66193c8bea5e5e4fa5b8f049/63fc42a9-24c9-4d7c-bc7d-b13a041f032d/original
https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/66193c8bea5e5e4fa5b8f049/63fc42a9-24c9-4d7c-bc7d-b13a041f032d/original
controle, muitas vezes chamada de índice, que é inicializada com
um valor específico e incrementada automaticamente a cada
iteração.
Imagine, a título de ilustração, que estamos desenvolvendo um
programa para calcular a soma dos primeiros cinco números
inteiros. Utilizando o "Para-Até-Faça", podemos criar um código
conciso e eficiente:
Figura 2 | Somando 5 números. Fonte: elaborada pelo
autor.
Neste exemplo, a variável soma é inicializada em zero, e o "Para-
Até-Faça" é utilizado para iterar de 1 até 5. A cada iteração, o valor
de i é somado à variável soma. Ao final do loop, obtemos a soma
total dos primeiros cinco números inteiros. Essa abordagem é eficaz
quando conhecemos antecipadamente o número de iterações
necessárias, proporcionando um controle preciso sobre o fluxo do
programa.
Essa estrutura é particularmente eficiente em operações que
envolvem listas, arrays ou qualquer contexto em que a quantidade
de elementos seja conhecida. O "Para-Até-Faça" simplifica a
implementação de iterações controladas, tornando o código mais
legível e fácil de compreender. Aprofundar-se nesse conceito, assim,
proporcionará um entendimento sólido e versátil das estruturas de
repetição em Portugol.
Siga em Frente...
Repita-Até
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 31/53
https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/66193c8bea5e5e4fa5b8f049/27305487-97b7-4d65-9061-4829c87e92ab/original
https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/66193c8bea5e5e4fa5b8f049/27305487-97b7-4d65-9061-4829c87e92ab/original
A estrutura de repetição "Repita-Até" é muito útil quando desejamos
que um bloco de código seja executado pelo menos uma vez,
independentemente da condição inicial. Ao contrário do "Enquanto-
Faça", que verifica a condição antes da execução, o "Repita-Até"
executa o bloco primeiro e, em seguida, verifica a condição para
determinar se deve repetir o processo.
Considere um exemplo prático: suponha que estamos
desenvolvendo um programa para solicitar ao usuário um número
entre 1 e 10. Utilizando o "Repita-Até", podemos garantir que o
código seja executado pelo menos uma vez, independentemente da
entrada do usuário.
Figura 3 | Verificando número válido. Fonte: elaborada
pelo autor. 
Na Figura 3, o bloco de código dentro de "Repita-Até" solicita ao
usuário que digite um número repetidamente até que a condição
número >= 1 e número <= 10 seja atendida. Essa estrutura garante
que o programa não avance até que o usuário forneça uma entrada
válida, tornando-a útil para situações em que é essencial garantir a
execução de um bloco pelo menos uma vez.
O "Repita-Até" é um instrumento interessante para cenários nos
quais a execução do bloco deve ocorrer antes da verificação da
condição. Ao compreender a dinâmica dessa estrutura, os
programadores podem criar algoritmos mais flexíveis e adaptáveis.
Conclusão
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 32/53
https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/66193c8bea5e5e4fa5b8f049/575b4bb6-b7ee-44e3-970d-aca871ecf493/original
https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/66193c8bea5e5e4fa5b8f049/575b4bb6-b7ee-44e3-970d-aca871ecf493/original
Exploramos, nesta aula, as fundamentais estruturas de repetição em
Portugol, o "Enquanto-Faça", "Para-Até-Faça" e "Repita-Até",
construções valiosas para o desenvolvimento de algoritmos mais
dinâmicos e eficientes. Ao compreender a aplicação adequada de
cada uma delas, os programadores adquirem a capacidade de criar
códigos mais claros, flexíveis e adaptáveis, essenciais em cenários
complexos.
O "Enquanto-Faça" destaca-se por sua flexibilidade, permitindo que
um bloco de código seja repetido enquanto uma condição específica
permanecer verdadeira. Isso é especialmente útil quando a
quantidade de repetições é incerta e depende de condições
variáveis. O “Para-Até-Faça”, por sua vez, é ideal quando o número
de iterações é conhecido antecipadamente, proporcionando um
controle preciso sobre o fluxo do programa. Essa estrutura simplifica
a implementação de iterações controladas, tornando o código mais
legível e eficiente.
Já o "Repita-Até" evidencia-se por garantir que um bloco de código
seja executado pelo menos uma vez, independentemente da
condição inicial. Essa característica faz com ele que seja proveitoso
em situações em que é necessário assegurar a execuçãode um
bloco antes de verificar a condição.
Tais estruturas, em conjunto, formam uma base sólida para a
criação de algoritmos poderosos. Ao dominá-las, os programadores
estarão preparados para enfrentar desafios mais complexos,
construindo códigos mais eficientes e adaptáveis. A jornada na
lógica de programação continua, e o entendimento profundo dessas
estruturas de repetição serve como um trampolim para explorar
cenários e desafios mais avançados no vasto mundo da
programação. 
Vamos Exercitar?
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 33/53
Retomando a situação apresentada no início da aula onde você
trabalha em uma loja de pneus que deseja otimizar o controle de
estoque e conta com a sua ajuda para criar um programa que facilite
a contagem de produtos. E a sua responsabilidade é desenvolver
um algoritmo que permita ao vendedor informar quantos pneus
foram vendidos e, com base nessa informação, realizar a contagem
atualizada do estoque.
Vamos à resolução?
Inicialização do estoque
Inicialize o estoque de pneus com um valor pré-definido, por
exemplo, 100 pneus. 
Registro de vendas
Implemente um loop (estrutura de repetição) que permita ao
vendedor registrar as vendas de pneus.
Solicite ao vendedor que informe a quantidade de pneus
vendidos a cada transação.
Atualize o estoque subtraindo a quantidade vendida. 
Exibição do estoque atualizado
Após cada registro de venda, exiba ao vendedor o estoque
atualizado.
Continue o processo até que o vendedor decida encerrar a
contagem. 
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 34/53
Figura 4 | Controle de estoque. Fonte: elaborada pelo autor.
O investimento em soluções computacionais que integrem
estruturas de controle proporciona vantagens competitivas e
eficiência operacional, elementos cruciais em um mercado cada vez
mais tecnológico e orientado por dados. Continue, pois, aprimorando
suas habilidades para enfrentar desafios mais complexos na área de
programação.
Saiba Mais
Para saber mais sobre laços de repetição na linguagem de
programação C e suas características, consulte o Capítulo 8 -
Estruturas de Repetição do livro Elementos de programação em C,
de Pinheiro, disponível no repositório da Biblioteca virtual.
PINHEIRO, F. de A. C. Capítulo 8 - Estruturas de Repetição. In:
Elementos de programação em C. Porto Alegre: Bookman, 2012,
p. 171-187. 
Referências Bibliográficas
CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de
Janeiro: LTC, 2022.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 35/53
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/188
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/188
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/188
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/188
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de
algoritmos. São Paulo: Érica, 2000.
MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.
PINHEIRO, F. A. C. Elementos de programação em C. Porto
Alegre: Bookman, 2012.
SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para
computação. 2. ed. São Paulo: Cengage Learning, 2017.
ZIVIANI, N. Projeto de algoritmos com implementações em
Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.
Aula 4
VARIÁVEIS INDEXADAS
Variáveis indexadas
Olá, estudante! Esta videoaula tem como objetivo apresentar os
conceitos básicos de algoritmos que abrangem os primeiros passos
no desenvolvimento da tomada de decisão em códigos.
Abordaremos, também, como deve ser a estrutura de um código e
como ele funciona.
Não perca a oportunidade de agregar informações valiosas ao seu
aprendizado e de ampliar seu conhecimento e compreensão da área
de algoritmos. 
Clique aqui para acessar os slides da sua videoaula.
Bons estudos!
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 36/53
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u2a4_algo_log_pro.pdf
Ponto de Partida
Olá, caro estudante! Seja bem-vindo à esta aula dedicada à
utilização de vetores, às variáveis indexadas unidimensionais e
variáveis compostas na construção eficiente de algoritmos.
Começaremos entendendo as estruturas sequenciais, que são como
blocos de construção iniciais para projetos. Nelas, as instruções são
executadas em ordem linear, passo a passo, o que é vital para
organizar o fluxo do programa, desde tarefas simples, como exibir
mensagens, até manipulações mais complexas usando vetores e
variáveis indexadas unidimensionais.
Na sequência, mergulharemos no domínio das variáveis compostas,
ferramentas poderosas que permitem agrupar dados relacionados
em uma única estrutura. Nesse contexto, exploraremos como
vetores e variáveis indexadas unidimensionais são primordiais para
construir algoritmos eficientes e resolver problemas computacionais
de forma organizada.
Portanto, para ilustrar a aprendizagem do conteúdo desta aula,
vamos exercitar com um algoritmo em Portugol que faça operações
utilizando a estrutura de vetores. Será apresentando um algoritmo
que vai solicitar informações ao usuário que serão armazenadas em
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 37/53
2 vetores. Um terceiro vetor será necessário para fazer a soma dos
elementos dos dois vetores e apresentar o seu resultado no final do
programa.
A jornada está apenas começando, e esses conceitos iniciais são a
chave para enfrentar cenários e desafios de programação mais
complexos no futuro.
Vamos Começar!
A programação é uma linguagem que utiliza diversos conceitos para
representar e manipular dados. Entre esses conceitos, destacam-se
a utilização de vetores, variáveis indexadas unidimensionais e
variáveis compostas, essenciais para organizar e acessar
informações de maneira eficiente. Nesta aula, portanto,
exploraremos cada um desses conteúdos, exemplificando seu uso
por meio da linguagem de programação Portugol.
Utilização de vetores
Os vetores são estruturas fundamentais na programação, permitindo
armazenar e organizar dados de forma sequencial em memória, o
que facilita seu acesso e manipulação eficaz. Em linguagens como
Portugol, a declaração e manipulação desses vetores são tarefas
comuns, proporcionando uma abordagem estruturada para lidar com
conjuntos de dados relacionados.
A declaração de um vetor em Portugol envolve a especificação dos
elementos e a definição da faixa de índices. Assim, ao criar um vetor
de notas, podemos utilizar a declaração vetor [1.5] de real, indicando
que ele terá elementos do tipo real e índices variando de 1 a 5. O
acesso aos elementos se dará por meio dos índices que
representam uma posição única no vetor. Para atribuir ou recuperar
valores, basta referenciar o vetor e o índice desejado.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 38/53
Considere, na Figura 1, o exemplo em Portugol no qual criamos um
vetor “notas” para armazenar as notas dos alunos, permitindo
acessar, por meio do índice, a segunda nota:
Figura 1 | Exemplo de vetor. Fonte: elaborada pelo
autor. 
Vetores são versáteis, podendo armazenar diferentes tipos de
dados, desde números até caracteres. Além disso, são eficientes
para lidar com conjuntos de dados homogêneos, como uma lista de
temperaturas mensais ou um histórico de vendas diárias. Sua
utilização simplifica a manipulação desses dados, proporcionando
uma estrutura organizada e acessível e contribuindo para o
desenvolvimento de algoritmosmais claros e efetivos.
Variáveis indexadas unidimensionais
As variáveis indexadas unidimensionais são extensões do conceito
de vetores, proporcionando uma forma mais flexível de representar
e acessar dados em programação. Elas permitem organizar
informações de maneira estruturada, associando valores a índices
específicos. No contexto do Portugol, a utilização de variáveis
indexadas unidimensionais oferece uma abordagem eficaz para lidar
com conjuntos de dados que não seguem necessariamente uma
sequência contígua de índices.
Mas, ao contrário dos vetores, elas não requerem uma faixa de
índices fixa durante a declaração. Podemos definir índices de forma
mais dinâmica, tornando-as ideais para situações em que os dados
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 39/53
https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/6619402c5ee97b6e8477469e/7a527af5-1db6-4696-9c86-bfab94c8ca36/original
https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/6619402c5ee97b6e8477469e/7a527af5-1db6-4696-9c86-bfab94c8ca36/original
não seguem uma ordem sequencial predefinida. No Portugol, a
declaração de uma variável indexada unidimensional é feita como
var nome: vetor de tipo, permitindo a atribuição de índices em tempo
de execução. O acesso aos elementos ocorre da mesma forma,
utilizando índices para referenciar valores específicos.
A seguir, apresentamos um exemplo em Portugol no qual criamos
uma variável indexada “meses” para representar os meses do ano e
acessarmos o terceiro mês:
Figura 2 | Variável indexada. Fonte: elaborada pelo
autor. 
Variáveis indexadas unidimensionais são especialmente úteis em
situações dinâmicas, como a representação de dados esparsos ou
informações que podem ser atualizadas ao longo do tempo. Podem
ser empregadas em cenários que envolvam, por exemplo, a
categorização de eventos no decorrer de um ano, sem a
necessidade de reservar espaço para todos os meses. Essa
flexibilidade as torna uma ferramenta poderosa na programação,
contribuindo para uma gestão eficiente de dados em contextos
menos estruturados.
Siga em Frente...
Variáveis compostas
Variáveis compostas evoluem além das estruturas simples de dados,
permitindo uma representação mais rica e abrangente na
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 40/53
programação. Como discutimos anteriormente, o uso de registros
em Portugol para criar variáveis compostas é essencial para
explorar duas variantes avançadas, as multidimensionais e as
heterogêneas, as quais oferecem recursos adicionais para lidar com
conjuntos de dados mais complexos e diversificados.
Variáveis compostas
multidimensionais
No contexto das variáveis compostas multidimensionais, a
declaração envolve a criação de estruturas que possuem mais de
uma dimensão. Matrizes ou arrays bidimensionais são exemplos
comuns nessa categoria. Ao declarar uma matriz em Portugol,
especificamos o número de linhas e colunas. O acesso aos
elementos ocorre por meio da referência a índices em ambas as
dimensões. Assim, uma matriz pode representar uma tabela em que
as linhas são os meses do ano e as colunas são os dias, facilitando
a organização e manipulação de dados mais elaborados.
Figura 3 | Variável composta multidimensional. Fonte:
elaborada pelo autor. 
Variáveis compostas heterogêneas
As variáveis compostas heterogêneas introduzem a ideia de
estruturas que contêm campos de diferentes tipos de dados.
Enquanto os registros em Portugol são homogêneos, as estruturas
heterogêneas permitem uma abordagem mais flexível. Pode-se ter
um campo que armazena um número inteiro, enquanto outro
armazena um caractere, por exemplo. Essa versatilidade é muito
vantajosa ao modelar entidades que possuem atributos diversos e
não uniformes.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 41/53
Figura 4 | Variável composta heterogenia. Fonte:
elaborada pelo autor. 
Em resumo, a incorporação de variáveis compostas
multidimensionais e compostas heterogêneas enriquece
significativamente a capacidade de representar dados na
programação. Ao entender e aplicar esses conceitos em Portugol, os
programadores podem desenvolver soluções adaptáveis,
adequadas para lidar com desafios mais complexos. A linguagem
Portugol, integrando essas formas, proporciona, então, uma base
sólida para o desenvolvimento de habilidades programáticas mais
avançadas em linguagens subsequentes, preparando
programadores para enfrentar problemas cada vez mais sofisticados
na construção de softwares.
Conclusão
A integração de vetores, variáveis indexadas unidimensionais e
variáveis compostas emerge como prática essencial na
programação, promovendo uma estrutura organizada e eficiente
para a manipulação de dados. A compreensão profunda desses
temas e sua aplicação criteriosa em contextos específicos
capacitam os programadores a conceberem sistemas mais
transparentes, modulares e de fácil manutenção. A linguagem
Portugol, ao dar suporte para esses elementos, destaca-se como
uma ferramenta inestimável para aqueles que buscam aprender a
programar de maneira estruturada e eficaz.
Vamos Exercitar?
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 42/53
Retomando a situação apresentada no início da aula, de exercitar
com um algoritmo em Portugol que faça operações utilizando a
estrutura de vetores, criando um algoritmo que vai solicitar
informações ao usuário que serão armazenadas em 2 vetores. Um
terceiro vetor será necessário para fazer a soma dos elementos dos
dois vetores e apresentar o seu resultado no final do programa.
Vamos à resolução?
Inicialização dos vetores
Crie dois vetores inteiros: vetorA e vetorB, com um tamanho
pré-definido.
Leitura dos elementos
Implemente um loop para solicitar ao usuário que informe os
elementos de cada vetor.
Para cada posição i do vetorA e vetorB, leia um valor inteiro e
armazene no vetor correspondente.
Somatória dos vetores
Crie um terceiro vetor, vetorSoma, com o mesmo tamanho dos
vetores vetorA e vetorB, para armazenar a soma dos
elementos de cada posição.
Para cada posição i, realize a soma dos elementos das
posições correspondentes dos vetores vetorA e vetorB e
armazene o resultado no vetorSoma.
Apresentação dos vetores
Após a leitura e somatória, exiba ao usuário os elementos dos
vetores vetorA, vetorB e vetorSoma, mostrando os valores de
cada posição.
Fim do programa
Encerre a execução do programa.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 43/53
Segue o demonstrativo da codificação em Portugol:
Figura 5 | Soma de vetores. Fonte: elaborada pelo autor. 
Figura 6 | Soma de vetores – cont. Fonte: elaborada pelo autor. 
Nesta atividade, você aprendeu como utilizar vetores em Portugol
para armazenar e manipular conjuntos de dados. Você criou um
algoritmo que permite ao usuário inserir elementos em dois vetores,
somá-los e depois apresentar os vetores originais e o vetor
resultante da soma. Esta prática é essencial para entender o
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 44/53
conceito de vetores e como aplicá-los na resolução de problemas
computacionais.
Saiba Mais
Para saber mais sobre estruturas de dados homogêneas e
heterogêneas, vetores e matrizes, consulte o Capítulo 6 – Estruturas
de Dados Homogêneas de Uma Dimensão, do livro Algoritmos –
Lógica para Desenvolvimento de Programação de Computadores,
de Manzano e Oliveira, disponível no repositório da Biblioteca
virtual.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Capítulo 6 - Estruturas
de Dados Homogêneas de UmaDimensão. In: Algoritmos –
Lógica para Desenvolvimento de Programação de
Computadores. São Paulo: Saraiva, 2019, p. 145-158.
Referências Bibliográficas
CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de
Janeiro: LTC, 2022.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos - Lógica
para Desenvolvimento de Programação de Computadores. São
Paulo: Editora Saraiva, 2019.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de
algoritmos. São Paulo: Érica, 2000.
MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.
SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para
computação. 2. ed. São Paulo: Cengage Learning, 2017.
ZIVIANI, N. Projeto de algoritmos com implementações em
Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 45/53
https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/146
https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/146
https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/146
https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/146
https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/146
https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/146
https://integrada.minhabiblioteca.com.br/reader/books/9788536531472/pageid/146
Encerramento da Unidade
ELEMENTOS DE
ALGORITMOS
Videoaula de Encerramento
Olá, estudante! Seja bem-vindo à videoaula de encerramento desta
Unidade, na qual destacaremos as estruturas de seleção, também
conhecidas como condicionais. Essa estrutura é uma das mais
presentes nos algoritmos desenvolvidos em todas as aplicações do
mercado de software, portanto muito relevante para quem já atua ou
está planejando entrar para a área da computação.
Preparado para finalizar essa jornada?
Clique aqui para acessar os slides da sua videoaula.
Bons estudos!
Ponto de Chegada
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 46/53
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u2enc_algo_log_pro.pdf
Olá, estudante! Para desenvolver a competência desta Unidade, a
saber, desenvolver algoritmos com a utilização das estruturas de
decisão e repetição por meio de pseudocódigos na programação,
tivemos, primeiramente, que conhecer os conceitos fundamentais de
algoritmos, entender a sua importância e, ainda, compreender por
que eles são tão utilizados no desenvolvimento de sistemas.
Embarcar no universo da programação é abrir as portas para a
resposta a desafios complexos e a criação de soluções inovadoras.
É preciso se inteirar a respeito das estruturas existentes para
construir soluções inteligentes e essenciais na atualidade. Isso não
apenas torna o código mais eficiente, como também proporciona
uma abordagem flexível para a resolução de problemas.
As empresas buscam profissionais capazes de criar códigos
robustos, que respondam dinamicamente a variáveis e situações
diversas. A capacidade de implementar condicionais de forma
inteligente, assim, otimiza processos e demonstra uma
compreensão sólida da lógica de programação.
Especialistas que dominam as estruturas de seleção são capazes
de criar algoritmos mais desenvolvidos, adaptáveis e eficazes. Essa
habilidade facilita a resolução de problemas complexos e destaca os
programadores como ativos valiosos em um mercado cada vez mais
competitivo e dinâmico. Ela enriquece o repertório técnico, além de
ser um diferencial estratégico. Portanto, ao compreender as
estruturas condicionais, os programadores se capacitam para criar
soluções arrojadas, contribuindo para o progresso contínuo no
mundo da programação. 
É Hora de Praticar!
Chegou o momento, caro estudante, de colocar em prática o
conhecimento adquirido nesta unidade de ensino. Para tanto, vamos
abordar um estudo de caso sobre Processo de conserto de
motocicleta com o cenário descrito a seguir.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 47/53
Suponha que você trabalhe em uma oficina de motocicletas e
receba um cliente com um veículo apresentando problemas de
funcionamento. O cliente relata que a moto está falhando e deseja
uma análise mecânica para identificar o problema.
O desafio é criar um algoritmo que ajude o mecânico a diagnosticar
o mau funcionamento com eficiência em todo o processo. O passo a
passo seria o seguinte:
1. Coleta de informações: o algoritmo deve solicitar o input das
informações do cliente colhidas pelo mecânico ou atendente.
2. Inspeção da motocicleta: o veículo segue para diagnóstico
dos possíveis problemas.
3. Proposta de solução: já com o diagnóstico provisório, o
cliente recebe uma proposta de solução do(s) problema(s)
apresentado(s).
Agora é a sua vez! Utilize seus conhecimentos em algoritmos para
criar soluções para o estudo de caso apresentado. Siga os passos
sugeridos no gabarito e demonstre suas habilidades para a
resolução desse desafio.
Reflita
No contexto do aprendizado de programação, é essencial
compreender não apenas as técnicas específicas, como também a
importância de estruturas, como as estruturas condicionais dentro
da lógica de programação e o uso de pseudocódigos.
A seguir, apresentamos duas questões de reflexão para aprofundar
nossa compreensão sobre esses temas:
1. Estruturas de seleção
Após ter explorado as estruturas de seleção, pense quais
habilidades específicas são necessárias para criar condicionais
claros e eficazes?
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 48/53
Como o domínio dessas estruturas pode impactar diretamente
na qualidade e adaptabilidade do código?
Ao colocar essas questões, procure compreender a importância
de aprimorar suas competências no campo e como isso pode
influenciar positivamente a resolução de problemas complexos
no mundo da programação.
2. Estruturas de repetição
Ao refletir sobre as estruturas de repetição, analise como a
habilidade de criar loops eficientes pode otimizar a execução
de algoritmos.
Considere as situações em que a repetição controlada é
necessária e como diferentes estruturas, como o enquanto-faça
e o repita até, podem ser aplicadas de maneira inteligente.
Quais são os benefícios de criar algoritmos que podem lidar
dinamicamente com tarefas repetitivas?
Como o domínio das estruturas de repetição pode influenciar a
eficiência e a escalabilidade do código?
Ao fazer essas reflexões, busque compreender a importância de
desenvolver conhecimentos sólidos na área para enfrentar desafios
variados e criar soluções mais robustas em programação.
Dê o Play!
Clique aqui para acessar os slides do Dê o play!
Resolução do estudo de caso
Processo de conserto de motocicleta
Passo 1: Coleta de informações 
O mecânico inicia o processo coletando informações do cliente
sobre os sintomas da motocicleta, o que inclui questioná-lo
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 49/53
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u2play_algo_log_pro.pdf
sobre quando os problemas começaram, se há algum padrão
nas falhas, entre outras perguntas relevantes.
Passo 2: Inspeção física 
O próximo passo envolve uma inspeção física da motocicleta.
O mecânico verifica o sistema de ignição, o filtro de ar, as velas
de ignição e outros componentes essenciais. Ele realiza testes
visuais e, se necessário, testes práticos para observar o
comportamento da moto.
Passo 3: Análise de dados
 Com as informações coletadas, o mecânico analisa os dados
para identificar a causa raiz do problema. Ele verificaos
resultados dos testes, os códigos de falha e as observações
para formar um diagnóstico preciso.
Passo 4: Proposta de solução 
Com o diagnóstico em mãos, o mecânico propõe uma solução
ao cliente. Isso pode incluir a substituição de peças, ajustes
específicos ou reparos necessários. O cliente é informado
sobre o custo estimado e a extensão do trabalho a ser feito.
Conclusão
Esse estudo de caso destaca a importância de uma abordagem
sistemática para resolver problemas em um contexto de reparo
mecânico de motocicletas. A coleta cuidadosa de informações, a
inspeção física, o uso de ferramentas de diagnóstico e a análise de
dados são, portanto, passos para uma resolução eficiente. Esse
processo exemplifica, assim, como a lógica de programação pode
ser aplicada de forma prática na resolução de desafios do mundo
real.
Dê o play!
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 50/53
Assimile
Neste infográfico, apresentamos, resumidamente, os principais
conceitos relacionados aos elementos de algoritmos.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 51/53
Figura | Elementos algoritmos. Fonte: elaborada pelo autor.
Referências
CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de
Janeiro: LTC, 2022.
MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.
SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para
computação. 2. ed. São Paulo: Cengage Learning, 2017.
ZIVIANI, N. Projeto de algoritmos com implementações em
Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 52/53
01/08/2024, 14:15 Elementos de Algoritmos
https://alexandria-html-published.platosedu.io/16ac6071-3df3-4021-90e9-1d7caf2db65d/v1/index.html 53/53

Mais conteúdos dessa disciplina

Mais conteúdos dessa disciplina