Buscar

Roteiro_Aula_Teorica_01_algoritmo (5)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PROPOSTA DE TRABALHO 
PERÍODO DE SUSPENSÃO DAS AULAS (DUAS SEMANAS) – MARÇO/2020 
CURSO(S): ENGENHARIA ELÉTRICA 
NOME DO COMPONENTE CURRICULAR: ALGORITMOS E TÉCNICAS DE 
PROGRAMAÇÃO 
CÓDIGO: 12550 TURMA: 21 
CARGA HORÁRIA SEMESTRAL: 40h 
CARGA HORÁRIA DA(S) ATIVIDADE(S) PROPOSTA(S): 8h 
PROFESSOR (A) RESPONSÁVEL: MARCELO LUCAS 
 
Prezado(a) aluno(a). 
Seja bem-vindo(a) aos estudos da disciplina Algoritmos e Técnicas de 
Programação! 
Como estudar requer planejamento e disciplina, e o estudo organizado rende muito 
mais, este "Roteiro de Estudos" têm por objetivo ajudá-lo(a) a sistematizar seus estudos a 
partir de leituras obrigatórias, complementares, atividade de fixação de conteúdo, e 
principalmente por meio de atividades avaliativas, buscando a consolidação, de forma 
contínua e gradual, com o máximo de aproveitamento, dos conhecimentos adquirido nos 
estudos aqui propostos. 
Roteiro de aprendizagem é um instrumento elaborado de forma intencional e 
planejada pelo professor a fim de orientar o estudo dos alunos. Os roteiros favorecem o 
engajamento e autonomia do estudante, além de contribuir para que eles desenvolvam 
estratégias de sistematização de estudo para alcançar os objetivos de aprendizagem 
propostos pelo professor. 
Esta tarefa fará parte da sua composição de notas do 1º bimestre dessa disciplina, 
assim, responda todos os itens de forma clara e organizada. O objetivo é que entenda os 
conceitos sobre Estruturas Básicas de Controle: sequência, decisão e repetição. Seu 
aprendizado depende única e exclusivamente da sua dedicação aos estudos! 
Por meio desse estudo dirigido busca-se auxiliar o aluno nas seguintes ações: 
✓ desenvolver autonomia na realização dos estudos; 
✓ organizar e consolidar conhecimentos; 
✓ desenvolver estratégias individuais de aprendizagem; 
✓ e, estabelecer relações entre os conteúdos aprendidos. 
Este roteiro foi elaborado com o objetivo de orientar 4 (quatro) horas de estudos a 
distância, ao longo das quais serão desenvolvidas atividades relacionadas à primeira unidade 
de estudo constante do programa de ensino deste componente curricular. 
Para que você desenvolva as atividades propostas e vivencie, com proveito, o 
processo de ensino-aprendizagem, você encontrará, neste roteiro, os seguintes recursos: 
✓ texto explicativo, no qual apresentamos o assunto, conceitos, dados e 
informações necessários para introduzir o estudo do tema, articulando-o aos 
demais temas do programa; 
✓ indicação de textos para leitura obrigatória, selecionados para que você, 
lendo-os, tenha conhecimento das discussões e reflexões atuais do tema em 
estudo; 
✓ indicação de textos para leituras complementares, para você ampliar a visão 
do tema, conhecendo o ponto de vista de outros autores; 
 
✓ um conjunto de atividades de aprendizagem, para que você desenvolva 
habilidades de leitura analítica e crítica, de seleção e análise de dados, de 
comparação de ideias e sistematização de conhecimentos. 
OS CONHECIMENTOS CONSTRUÍDOS, A PARTIR DAS ORIENTAÇÕES DE 
ESTUDO CONTIDAS NESTE ROTEIRO, SERÃO REQUERIDOS TAMBÉM NAS 
AVALIAÇÕES PRESENCIAIS. 
É importante que, em seu planejamento de estudos semanal, você inclua as horas, 
os dias, o local e os materiais necessários para o desenvolvimento das atividades de 
aprendizagem e as atividades de avaliação a distância. 
UM LEMBRETE! 
Ao realizar seus estudos semanais, pergunte-se: 
✓ reservei o tempo necessário para as leituras e as atividades programadas? 
✓ adquiri os textos indicados como leituras obrigatórias? 
✓ estou com todo o material de consulta disponível? 
✓ o local onde vou estudar é calmo e silencioso? 
✓ a iluminação e a ventilação estão adequadas? 
✓ estou bem acomodado na mesa e na cadeira? 
✓ sei com quais objetivos vou realizar esse estudo? 
Assim, com esse roteiro de estudos pretendemos que você desenvolva 
competências necessárias à construção de algoritmos e programação de computadores, 
sistemas embarcados, CLPs, ou seja, dispositivos programáveis. 
IMPORTANTE! 
Caso não consiga realizar alguma atividade, ou tenha dúvida sobre algum aspecto, 
estude novamente os materiais (capítulo de livro, artigos, videoaulas etc.) indicados. Sempre 
que necessário, entre em contato com o professor pela central de mensagens. 
Não se esqueça da bibliográfica básica recomendada! 
BONS ESTUDOS! 
 
AVALIAÇÃO DAS ATIVIDADES DE APRENDIZAGEM 
O objetivo dessa atividade de aprendizagem é possibilitar o desenvolvimento das habilidades 
e competências necessária ao profissional engenheiro eletricista deve adquirir ao final da 
disciplina. Os exercícios indicados ao final de cada roteiro possibilitarão que vocês possam 
avaliar sua aprendizagem e seu progresso em cada passo da desse componente. Espera-se, 
assim, que você se torne autônomo, responsável, crítico e decisivo, capaz, sobretudo, de 
desenvolver a própria capacidade intelectual. 
As atividades realizadas deveram ser entregues por meio eletrônico, via diário de bordo, até 
10/04/2020 23h:59min. Será avaliado considerando a aplicação da metodologia conforme 
conteúdo apresentado nas aulas, bibliografia básica e leituras sugeridas. A pontuação 
atribuída terá valor de 10 pontos e irá compor a nota do 1º momento, juntamente com as 
avaliações presenciais e outras atividades desenvolvidas em sala de aula. 
 
O ROTEIRO deverá ser digitado em arquivo do tipo "pdf", padrão Portable Document Format 
criado pelo word, papel tamanho A4; fonte Arial, tamanho 14 para o título; fonte Arial, tamanho 
11 para o corpo do texto; margens: 3,0 (esquerda) - 2,0 (direita) - 3,0 (superior) - 2,0 (inferior). 
 
 
Valor: 10 pontos 
Data de entrega: 10/04/2020 23h:59min 
 
Forma de entrega: arquivo pdf 
Local de entrega: diário de bordo (AVA) 
 
ATENÇÃO 
• O trabalho deverá ser feito e entregue individualmente. 
• A submissão será feita pelo diário e bordo, no AVA. 
• Não serão aceitos, em hipótese alguma, trabalhos entregues depois dessa data. 
 
 
 
Uberaba, MG 19 / 03 / 2020 
 
Assinatura do(a)(s) professor (a)(es): 
 
MARCELO LUCAS 
 
Encaminhado à assistente pedagógica em: ____/____/___ 
 
 
Recebido em: ____/____/_____ 
 
Assinatura da assistente pedagógica: 
 
____________________________________ 
Márcia Beatriz da Silva 
 
 
 
 
 
Assinatura do diretor de curso: 
 
____________________________________ 
Marcelo Lucas 
 
 
 
ATIVIDADE TEÓRICA 
NOME DO ALUNO: RA: 
COMPONENTE CURRICULAR: ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO 
PROFESSOR(A) RESPONSÁVEL: MARCELO LUCAS 
VALOR: 10,0 PONTOS DATA DE ENTREGA: 10 / 04/ 2020 
ROTEIRO DE ESTUDO 1 
ESTRUTURAS BÁSICAS DE CONTROLE: SEQUÊNCIA, CONDIÇÃO E 
REPETIÇÃO 
Esse roteiro de estudo equivale a uma carga horária de 08 horas de estudo. 
OBJETIVOS 
Prezado(a) aluno(a) 
Disciplinas como algoritmo e programação de computadores exigem dos alunos habilidades 
e competências como: raciocínio lógico, resolução de problemas e a capacidade de abstração 
da solução em uma representação formal e/ou em uma linguagem computacional. Dessa 
forma, a partir da leitura do(s) texto(s) indicado(s), você estará preparado, por meio dos 
conceitos da programação estrutura aqui abordados, a buscar soluções computacionais para 
os problemas de uma forma geral. Após os estudos aqui propostos, você terá melhores 
condições de compreender esse conteúdo, participando de forma mais ativa com os colegas 
e com o professor em sala de aula. 
TEXTO INTRODUTÓRIO 
1. 
Nesse roteiro, você estudará sobre as estruturas básica de uma programação 
estruturada. Vimos em sala de aula que Lógica de Programação é a técnica de desenvolver 
algoritmos (sequências lógicas) para atingir determinados objetivos dentro de certas regras 
baseadas na Lógica matemática e em outras teorias básicas da Ciência da Computação e 
que depois são adaptados para a Linguagem de Programação utilizada pelo programador 
para construir seu aplicativo. 
Pode-se definir algoritmo como sendo a especificação da sequência ordenada de 
passosque deve ser seguida para a solução de um problema ou para a realização de uma 
tarefa, garantindo a sua repetibilidade. Formas de representação de um algoritmo, além da 
forma com que os algoritmos são expressos em linguagem natural. 
Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome 
é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando 
formos programar em uma linguagem, por exemplo C++, estaremos gerando código em C++. 
Por isso os algoritmos são independentes das linguagens de programação. Ao contrário de 
uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o 
algoritmo. 
Dessa forma, os programas de computadores nada mais são do que algoritmos 
escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) 
e que são interpretados e executados por uma máquina, no caso um computador. Notem que 
dada esta interpretação rigorosa, um programa é por natureza muito específico e rígido em 
 
relação aos algoritmos da vida real. O algoritmo deve ser fácil de se interpretar e fácil de 
codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de 
programação. 
1. ALGORITMOS NÃO COMPUTACIONAIS 
Um algoritmo é uma sequência de instruções finita e ordenada de forma lógica para 
a resolução de uma determinada tarefa ou problema. São exemplos de algoritmos instruções 
de montagem, receitas, manuais de uso, etc. Um algoritmo não é a solução do problema, pois, 
se assim fosse, cada problema teria um único algoritmo; um algoritmo é um caminho para a 
solução de um problema. Em geral, existem muitos (senão infinitos) caminhos que levam a 
uma solução satisfatória. 
Um algoritmo não computacional é um algoritmo cuja sequência de passos, a 
princípio, não pode ser executada por um computador. Abaixo é apresentado um algoritmo 
não computacional cujo objetivo é usar um telefone público. Provavelmente você “executou” 
o algoritmo deste exemplo diversas vezes. O termo algoritmo está muito ligado à Ciência da 
Computação, mas, na realidade, ele pode ser aplicado a qualquer problema cuja solução 
possa ser decomposta em um grupo de instruções. 
Um outro exemplo típico de algoritmo é uma receita culinária, como no exemplo 
abaixo. 
Exemplo: Algoritmo para fritar um ovo 
1) Colocar um ovo na frigideira 
2) Esperar o ovo ficar frito 
3) Remover o ovo da frigideira 
O algoritmo acima, no entanto, poderia ser mais detalhado e completo. Uma versão 
mais aceitável seria: 
Exemplo: Algoritmo para fritar um ovo 
1) Retirar um ovo da geladeira 
2) Colocar a frigideira no fogo 
3) Colocar óleo 
4) Esperar até o óleo ficar quente 
5) Quebrar o ovo separando a casca 
6) Colocar o conteúdo do ovo na frigideira 
7) Esperar um minuto 
8) Retirar o ovo da frigideira 
9) Apagar o fogo 
Essa segunda versão é mais completa e detalhada que a anterior. Nela, várias ações 
que estavam subentendidas foram explicitadas. No entanto, para que o algoritmo possa ser 
útil, é necessário ainda que quem faz uso dele conheça os termos utilizados nas instruções. 
O algoritmo do exemplo só será útil para alguém que seja fluente na língua portuguesa e 
conheça o significado dos verbos retirar, colocar, esperar assim como dos substantivos 
utilizados no contexto de uma receita culinária. Em outras palavras, é preciso que a linguagem 
utilizada no algoritmo seja conhecida tanto por quem o escreveu quanto por quem vai executá-
lo. 
Para que o algoritmo possa ser executado por uma máquina é importante que as 
instruções sejam corretas e sem ambiguidades. Portanto, a forma especial de linguagem que 
utilizaremos é bem mais restrita que o Português e com significados bem definidos para todos 
os termos utilizados nas instruções. Essa linguagem é conhecida como português Estruturado 
(às vezes também chamada de Portugol). O português estruturado é, na verdade, uma 
simplificação extrema do Português, limitada a umas poucas palavras e estruturas que têm 
um significado muito bem definido. Ao conjunto de palavras e regras que definem o formato 
das sentenças válidas chamamos sintaxe da linguagem. Durante este texto, a sintaxe do 
Português Estruturado será apresentada progressivamente e a utilizaremos em muitos 
exercícios de resolução de problemas. 
Aprender as palavras e regras que fazem parte dessa sintaxe é fundamental; no 
entanto, não é o maior objetivo deste curso. O que realmente exigirá um grande esforço por 
 
parte do estudante é aprender a resolver problemas utilizando a linguagem. Para isso, há 
somente um caminho: resolver muitos problemas. O processo é semelhante ao de tornar-se 
competente em um jogo qualquer: aprender as regras do jogo (a sintaxe) é só o primeiro 
passo, tornar-se um bom jogador (programador) exige tempo, muito exercício e dedicação. 
Embora o Português Estruturado seja uma linguagem bastante simplificada, ela 
possui todos os elementos básicos e uma estrutura semelhante à de uma linguagem típica 
para programação de computadores. Além disso, resolver problemas com português 
estruturado, pode ser uma tarefa tão complexa quanto a de escrever um programa em uma 
linguagem de programação qualquer. Portanto, neste curso, estaremos na verdade 
procurando desenvolver as habilidades básicas que serão necessárias para adquirir-se 
competência na programação de computadores. 
Para praticar nossa sintaxe e testar nossos problemas, utilizaremos o software 
VisuAlg desenvolvida por Cláudio Morgado de Souza. 
2. ALGORITMOS COMPUTACIONAIS 
O computador, a princípio, não executa nada. Para que ele faça uma determinada 
tarefa - calcular uma folha de pagamento, por exemplo -, é necessário que ele execute um 
programa. Um programa é um conjunto de milhares de instruções que indicam ao computador, 
passo a passo, o que ele tem que fazer. Logo, um programa nada mais é do que um algoritmo 
computacional descrito em uma linguagem de programação. Uma linguagem de programação 
contém os comandos que fazem o computador escrever algo na tela, realizar cálculos 
aritméticos, receber uma entrada de dados via teclado, e milhares de outras coisas, mas estes 
comandos precisam estar em uma ordem lógica. 
O termo processamento de dados é muitas vezes utilizado em conjunto com 
computadores, pois, em geral, é isto o que eles fazem: processar dados. Daí podem extrair 
os dois componentes básicos de um algoritmo computacional (de agora em diante, esta 
palavra sempre utilizada no contexto de algoritmos computacionais): dados e código. Dados 
são os valores (números, nomes etc.) de que precisamos para resolver o problema, e código 
são os comandos ou instruções que usaremos para manipular e "processar" os dados. 
Um programa representa uma particular implementação de um algoritmo. Um 
algoritmo define uma estratégia de resolução de um problema e o programa codificado de 
acordo com tal algoritmo corresponde a uma implementação específica de tal algoritmo 
descrita em uma linguagem de programação. Os passos esboçados no algoritmo para 
resolver o problema são convertidos em comandos da linguagem de programação adotada e 
acrescidos com declarações suplementares que, entre outros, indicam o uso pretendido de 
variáveis. 
Comandos são executados, em princípio, em ordem sequencial, isto é, um após o 
outro obedecendo a ordem em que são listados no código. A sequência de comandos 
determina assim o fluxo de execução (também denominado fluxo de controle) padrão dos 
comandos. Tal fluxo padrão pode ser alterado no nível mais básico com comandos 
denominados comandos condicionais e comandos repetitivos. 
Um comando condicional define uma bifurcação no fluxo. A alternativa percorrida a 
partir da bifurcação é determinada pelo resultado da avaliação de uma condição inserida no 
comando condicional em questão. Uma vez executada a alternativa, então o fluxo de 
execução é retomado no comando que sucede tal comando condicional. 
Um comando repetitivo implementa execuções cíclicas de um comandosimples ou 
composto. A execução repetitiva é interrompida quando uma determinada condição 
denominada de parada e integrante de tal comando é satisfeita. O fluxo de execução é, então, 
retomado no comando que sucede o comando repetitivo cuja execução acaba de ser 
finalizada. 
3. COMANDOS DE E/S (ENTRADA/SAÍDA) 
Em geral, um programa que faz seu processamento e não tem como mostrar seus 
resultados é inútil (imagine, por exemplo, uma calculadora que realiza uma infinidade de 
 
operações matemáticas, mas não tem um display para mostrar os resultados!). Portanto, em 
algum ponto do algoritmo geralmente deve ocorrer à exibição de valores, e todas as 
linguagens de programação têm comandos para este fim. Em português estruturado 
algoritmos usamos o comando escreva para isto. A sintaxe desse comando tem a 
seguinte forma: 
 
 
 
OBS.: No Visualg existem dois comandos escreva com finalidades diferentes quando 
usado consecutivamente. 
 
 
 
Nem todos os dados que um algoritmo manipula são gerados por ele. Um algoritmo 
(programa) de caixa automático, por exemplo, tem que obter do usuário o número da conta, 
a senha, a opção de serviço desejada etc. Assim, deve haver um meio para que sejam 
digitados (ou fornecidos de outra maneira) dados para o algoritmo. Mais uma vez, todas as 
linguagens de programação permitem isto, e no nosso português estruturado usamos o 
comando leia. A sintaxe deste comando é: 
 
 
4. ESTRUTURAS BÁSICAS DE CONTROLE: SEQUÊNCIA, CONDIÇÃO 
REPETIÇÃO. 
São formas de raciocínio intuitivamente óbvias. A legibilidade e compreensão de 
cada bloco de código na solução é enormemente incrementada, proibindo o uso irrestrito de 
comandos de desvio incondicional (GOTO). 
4.1. CONSTRUINDO OS PRIMEIROS ALGORITMOS ESTRUTURAS SEQUENCIAIS 
De forma genérica, a construção de um algoritmo se resume às seguintes etapas: 
a) entendimento do problema 
b) elaboração da solução algorítmica 
c) codificação da solução no português estruturado 
 
Geralmente a etapa 2 é a mais complexa, pois depende da engenhosidade e 
experiência do “construtor”. 
Exemplo 1 
Enunciado: Faça um programa que leia dois valores numéricos, e calcule e exiba a sua média 
aritmética. 
Etapa 1 
Simples, hein? Dos tempos de escola lembramos que a média aritmética de dois valores é 
calculada como (a+b)/2, e sendo assim a primeira etapa já está pronta. 
 
Etapa 2 
Os dados necessários serão os dois valores, que colocaremos em duas variáveis A e B, do 
tipo numérico, e uma terceira variável, que chamaremos Média, que armazenará a média 
aritmética calculada. 
Etapa 3 
A obtenção dos dados neste programa é simples e direta. Basta pedir ao usuário que digite 
os valores. 
Etapa 4 
O processamento aqui é o cálculo da média, usando o método citado acima, na etapa 
O resultado do cálculo será armazenado na variável Média. 
Etapa 5 
Basta exibir o conteúdo da variável Média. 
 
Figura 1 – Implementação do algoritmo Média em VisualG. 
 
Figura 2 – Resposta do programa Média. 
Comentários 
Você deve ter notado que colocamos na tela instruções para o usuário usando o 
comando escreva(). Esta é uma boa técnica de programação, mesmo hoje em dia, com o 
ambiente do Windows etc. Da mesma forma, ao imprimir o resultado, não mostramos 
simplesmente a média, mas explicamos ao usuário o que aquele valor significa. 
 
4.2. ESTRUTURA CONDICIONAL SIMPLES (SE…ENTÃO) 
Na vida real tomamos decisões a todo o momento baseadas em uma situação 
existente. Em um algoritmo, chamamos esta situação de condição. Associada a uma 
condição, existirá uma alternativa possível de ações. 
Observe a seguinte afirmativa: “se tiver R$ 10,00 sobrando então irei ao cinema hoje 
à noite.” 
A condição nesta frase é "tiver R$ 10,00 sobrando". Ela é uma expressão lógica, pois 
a pergunta "Tenho R$ 10,00 sobrando?" Pode (tem que) ser respondida com "Sim" ou "Não". 
Lembre-se, então: em um algoritmo, toda condição tem que ser uma expressão lógica, algo 
que se possa pensar como “isto é verdadeiro” ou “isto é falso”. Se a condição for verdadeira, 
a ação a ser executada é "irei ao cinema", se a resposta à pergunta "Tenho dinheiro 
suficiente?" for "Sim". Então, em um algoritmo, as ações são um ou mais comandos que serão 
realizados apenas se a avaliação da condição resulta verdadeiro. 
Vamos colocar agora a frase do exemplo anterior em outra forma, mais parecida com 
nosso português estruturado: 
 
 
Veja que grifamos três palavras: se, entao e fimse. Elas são muito importantes na 
estrutura dos comandos de decisão. Como próximo passo, vamos generalizar a estrutura que 
criamos acima: 
Para terminar a nossa comparação, devemos lembrar que os comandos de um 
algoritmo são sempre indispensáveis, e que o computador só lida com quantidades definidas 
(ou seja, ele não sabe o que é "ter R$ 10,00 sobrando"). Para aproximar mais nossa frase de 
um algoritmo, poderemos ter a seguinte forma: 
 
 
O funcionamento deste comando obedece a seguinte regra: 
 
SINTAXE 
 
 
 
 
 
 
 
 
 
 
 
FLUXOGRAMA 
 
4.3. ESTRUTURA CONDICIONAL COMPOSTO (SE…ENTÃO…SENÃO) 
O desvio condicional composto tem por finalidade tomar decisões de acordo com o 
resultado de uma condição (teste lógico), da mesma forma que o desvio condicional simples 
que estudamos na aula anterior. Porém, enquanto o condicional simples somente executa 
instruções quando o teste condicional retorna verdadeiro, o condicional composto permite 
criar dois blocos de código. 
 
Se o teste lógico retornas verdadeiro, as instruções contidas entre os comandos 
então e senão serão executadas (como no condicional simples). Entretanto, se o teste lógico 
retornar falso, as instruções contidas entre os comandos senao e fimse serão executadas. O 
funcionamento deste comando obedece a seguinte regra: 
 
SINTAXE 
 
 
 
 
 
 
 
 
FLUXOGRAMA 
 
 
4.4. ESTRUTURA CONDICIONAL ANINHADA (SE…ENTÃO…SENÃO…SE) 
Existem situações nas quais é necessário verificar condições de teste sucessivas, 
onde uma ação será executada caso um conjunto anterior de ações seja satisfeito. Podemos 
usar para resolver esse tipo de problemas uma estrutura denominada Desvio Condicional 
Aninhado, que nada mais é do que o encadeamento de estruturas de decisão compostas em 
um algoritmo. Também chamamos a esse tipo de estrutura de desvio condicional encadeado, 
por este motivo. O funcionamento deste comando obedece a seguinte regra: 
 
SINTAXE 
 
 
FLUXOGRAMA 
 
4.5. ESCOLHA...CASO 
Em algumas situações é necessário termos várias soluções ligadas a respostas 
diferentes, neste caso o comando de alternativa simples ou composta não é uma solução 
prática, isto porque obrigará o programador a escrever muitas linhas de programa, além de 
ter que criar vários comandos de alternativas compostas e verificar a validade de suas 
condições para que o comando execute o caminho correto para uma determinada condição. 
Temos então o comando de alternativa de múltipla escolha. O funcionamento deste comando 
obedece a seguinte regra: 
 
SINTAXE 
 
 
 
 
 
 
 
FLUXOGRAMA 
 
Veja o exemplo a seguir, que ilustra bem o que faz este comando: 
 
 
 
4.6. TESTANDO O ALGORITMO (TESTE DE MESA) 
Um algoritmo, depois de ser elaborado, pode (e deve) ser testado. Para tal, utilizamos 
um método conhecido como teste de mesa. O teste de mesa é como uma simulação de todos 
os passos, ou seja, entradas, comandos e instruções do algoritmo, a fim de saber se ele chega 
ao resultado a que se propõe e se a lógica está correta. Para tal, preenche-se uma tabela com 
valores para as variáveis e segue-se o fluxo de execução do algoritmo, simulando a execução 
de cada instrução, ou seja, refazendo o que o computador faria ao executar cada instrução. 
A cada comando simulado (executado), o valor das variáveis na tabela deve ser atualizado. 
Se, para uma instrução executada, uma ou mais variáveis não ficaram com os valores 
esperados, há um erro na lógica do algoritmo. 
Tabela I – Exemplo de teste de Mesa. 
 
 
4.7. ESTRUTURA DE REPETIÇÃONos exemplos e exercícios que vimos até agora sempre foi possível resolver os 
problemas com uma sequência de instruções onde todas eram necessariamente executadas 
uma única vez. Nas estruturas estudadas até agora viu-se apenas uma sequência linear de 
operações. Em muitos casos é necessário repetir um trecho de um programa diversas vezes. 
Nessa situação podemos usar um “loop” que efetue essa repetição de código quantas vezes 
forem necessárias. 
Os loops são chamados também de laços de repetição. Existem várias estruturas 
que podem ser utilizadas para criar loops em programação. A seguir iremos tratar da estrutura 
enquanto. 
4.8. ESTRUTURA DE REPETIÇÃO ENQUANTO 
Essa estrutura realiza um teste lógico no início do loop, e cada vez que o teste retorna 
o valor verdadeiro, os comandos associados ao laço são executados. 
Quando o teste retornar falso, o laço é encerrado e o processamento volta para o 
fluxo principal do programa. O funcionamento deste comando obedece a seguinte regra: 
 
SINTAXE 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
FLUXOGRAMA 
 
 
4.9. ESTRUTURA DE REPETIÇÃO REPITA ATÉ 
Continuando, temos a estruturas de repetição REPITA ATÉ. Trata-se de uma 
estrutura que efetua um teste lógico no final do loop, em vez de no início, como a estrutura 
enquanto. 
Essa estrutura lembra a estrutura enquanto, porém, executa o conjunto de instruções 
programado ao menos uma vez antes de verificar a condição testada; no laço enquanto, a 
condição é testada antes de executar o bloco de códigos, o que significa que há a chance 
desse bloco nunca ser executado – se a condição de teste retornar falso logo no primeiro 
teste. 
Com o REPITA ATÉ o conjunto de instruções é executado enquanto a condição 
testada retornar FALSO. 
 
SINTAXE 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
FLUXOGRAMA 
 
 
4.10. ESTRUTURA DE REPETIÇÃO PARA 
Prosseguindo nosso estudo sobre estruturas de repetição em lógica de programação, 
abordaremos nesta lição a estrutura PARA. 
O comando PARA permite construir estruturas de loop para casos onde se conhece 
de antemão o número de repetições que devem ser realizadas (ou seja, número finito de 
laços). Por exemplo, quando sabemos de antemão que o laço deve se repetir 10 vezes; 
portanto, neste caso podemos usar a estrutura para. 
Caso não haja como saber previamente o número de repetições necessárias, use 
preferencialmente as estruturas de repetição enquanto ou repita até. 
 
SINTAXE 
 
 
onde: 
variável: variável contadora 
início: valor inicial atribuído à variável 
fim valor final que a variável armazenará 
incremento: valor para incrementar variável a cada loop (valor padrão: 1) 
 
 
 
FLUXOGRAMA 
 
 
LEITURAS OBRIGATÓRIAS 
Objetivando um melhor acompanhamento de nossas aulas, você deverá para as duas 
próximas semanas, ler e anotar em caderno as ideias centrais dos tópicos: 
 
TEXTO 1 
 
Capítulo 3, intitulado Estruturas de Controle, págs 30 a 67 do livro Lógica de Programação: 
A construção de algoritmos e estruturas de dados, 3ed., do autor Andre Luiz Villar 
Forbellone que faz parte da bibliografia básica e está disponível no drive virtual Microsoft 
OneDrive, e na biblioteca virtual Pearson. 
Link de acesso: https://1drv.ms/b/s!Alj8IX7eeWMCiWtFKvhXgnJmUX_K 
 
TEXTO 2 
 
Apostila A Linguagem de Programação do VisuAlg: Universidade Federal de Uberlândia 
págs 8 a 11 disponível no drive virtual Microsoft OneDrive. 
Link de acesso: https://1drv.ms/b/s!Alj8IX7eeWMCgY991CxJYxmEjnkIvA 
 
https://1drv.ms/b/s!Alj8IX7eeWMCiWtFKvhXgnJmUX_K
 
A partir da leitura indicada, você se preparará para acompanhar as aulas sobre o conteúdo 
abordado, familiarizando-se com os termos, conceitos, princípios, pressupostos, 
fundamentos, e, desta forma, ter melhores condições de compreender esse conteúdo, 
participando de forma mais ativa com os colegas e com o professor em sala de aula. 
 
Além das leituras indicadas, para aprofundar um pouco mais no assunto, assista aos vídeos: 
 
“Lógica de Programação com VisualG - Estrutura de Seleção ou Decisão – 02”, disponível no 
link 
https://www.youtube.com/watch?v=mmHfui8nenw&list=PL9kG3mxAhzQVDLxToTD2rWrUzxj
FGmqvt&index=2 
 
“Lógica de Programação com VisualG - Estrutura de Seleção ou Decisão Pt.2 – 03”, disponível 
no link 
https://www.youtube.com/watch?v=s477n6NpxAE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxj
FGmqvt&index=3 
 
“Lógica de Programação com VisualG - Estrutura de Repetição - Para – 04”, disponível no link 
https://www.youtube.com/watch?v=lQjGDLSRUDo&list=PL9kG3mxAhzQVDLxToTD2rWrUzx
jFGmqvt&index=4 
 
“Lógica de Programação com VisualG Estrutura de Repetição - Enquanto – 05”, disponível no 
link 
https://www.youtube.com/watch?v=8-JWuzb-
gIE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=5 
 
“Lógica de Programação com VisualG Estrutura de Repetição - Repita – 06”, disponível no 
link 
https://www.youtube.com/watch?v=cgfe08eg85o&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjF
Gmqvt&index=6 
 
VisuALG (5 exercícios resolvidos), disponível no link 
https://www.youtube.com/watch?v=tMThV7CQ_1c 
LEITURAS COMPLEMENTARES 
Para uma melhor compreensão dos assuntos aqui abordados, faça a leitura de itens referente 
ao livro da bibliografia complementar Algoritmos: Lógica para Desenvolvimento de 
Programação de Computadores, 22ª ed., isso irá aumentar seu conhecimento sobre 
programação estruturada, e consequentemente, sua participação nas aulas teóricas 
presencias. Você deverá ler, nas duas próximas semanas, os itens 5.1 Repetição do tipo: 
Teste lógico no início do looping a 5.5 Estruturas de Controle Encadeadas, capítulo 5, 
intitulado Estruturas de Controle: Laços ou Malhas de Controle, disponível no Drive virtual 
OneDrive. 
Link de acesso: 
https://1drv.ms/b/s!Alj8IX7eeWMCiWwBSq1FUuk2dHna 
https://www.youtube.com/watch?v=mmHfui8nenw&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=
https://www.youtube.com/watch?v=mmHfui8nenw&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=
https://www.youtube.com/watch?v=s477n6NpxAE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=3
https://www.youtube.com/watch?v=s477n6NpxAE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=3
https://www.youtube.com/watch?v=lQjGDLSRUDo&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=4
https://www.youtube.com/watch?v=lQjGDLSRUDo&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=4
https://www.youtube.com/watch?v=8-JWuzb-gIE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=5
https://www.youtube.com/watch?v=8-JWuzb-gIE&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=5
https://www.youtube.com/watch?v=cgfe08eg85o&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=6
https://www.youtube.com/watch?v=cgfe08eg85o&list=PL9kG3mxAhzQVDLxToTD2rWrUzxjFGmqvt&index=6
https://www.youtube.com/watch?v=tMThV7CQ_1c
https://1drv.ms/b/s!Alj8IX7eeWMCiWwBSq1FUuk2dHna
 
ORIENTAÇÕES 
Primeiramente, faça uma leitura completa dos textos indicados. Essa primeira leitura irá 
permitir que você tenha uma ideia geral da informação que esse texto traz. 
Em seguida, faça uma segunda leitura dos trechos ou parágrafos que julgar mais importantes 
e que mais lhe interessaram. Isso fará com que você absorva melhor essas informações. 
Nesse momento, você poderá anotar/registrar/identificar o que julga mais relevante. Essa 
segunda leitura é extremamente importante e fará com que você retorne àquilo que realmente 
interessa. 
Durante a leitura, anote suas possíveis dúvidas para discussão em aula. 
Após a leitura, assista ao vídeo indicado, primeiramente, para ter uma visão geral do que está 
sendo abordado. Depois, assista-o procurando relacionar o que é apresentado nos vídeos 
com o conteúdo Estruturas Básicas de Controle: sequência, decisão e repetição, que 
será abordado nas próximas semanas. 
Obs.: As leituras (e/ou vídeos) servirão de fundamento teórico para a participação nas aulas 
e realização das atividades. Farão parte da avaliação continuada do componente. 
QUESTÕES PARA AVALIAÇÃO DA APRENDIZAGEM 
1) Enunciado: Algoritmo que lê o nome de um aluno, as notas de suas três provas e calcule 
e exibe a média harmônicadas provas. 
Etapa 1: a média harmônica de três provas a, b e c é dada pela fórmula: 
3
1 1 1
Mh
a b c
=
+ +
 
Etapa 2: os dados necessários serão o nome do aluno e os valores das provas. O algoritmo 
limita-se basicamente à própria fórmula. 
REFERENCIAL DE RESPOSTA 
 
 
2) Enunciado: Um algoritmo que lê o valor do raio e calcule a área do círculo correspondente. 
Etapa 1: o cálculo da área do círculo é 
2r . 
Etapa 2: o dado necessário é o valor do raio, que será lido (colocado) na Variável Raio. 
REFERENCIAL DE RESPOSTA 
 
3) Enunciado: Faça um Algoritmo para calcular a área de um círculo, fornecido o valor do 
raio, que deve ser positivo. 
REFERENCIAL DE RESPOSTA 
 
4) Enunciado: Algoritmo que peça ao usuário a quantia em dinheiro que tem sobrando e 
sugira, caso ele tenha 10 ou mais reais, que vá ao cinema, e se não tiver, fique em casa 
vendo TV. 
 
REFERENCIAL DE RESPOSTA 
 
5) Um determinado clube de futebol pretende classificar seus atletas em categorias e para 
isto ele contratou um programador para criar um programa que executasse esta tarefa. 
Para isso o clube criou uma tabela que continha a faixa etária do atleta e sua categoria. A 
tabela está demonstrada abaixo: 
 
IDADE CATEGORIA 
• De 05 a 10 Infantil 
• De 11 a 15 Juvenil 
• De 16 a 20 Junior 
• De 21 a 25 Profissional 
 
6) Construa um programa que solicite o nome e a idade de um atleta e imprima a sua 
categoria. 
 
REFERENCIAL DE RESPOSTA 
 
7) Algoritmo que lê os nomes dos alunos de uma turma de três alunos e as notas de suas 
três provas; o algoritmo calcula e exibe as médias harmônicas das provas de cada aluno. 
REFERENCIAL DE RESPOSTA 
 
 
 
8) Faça um programa que some número reais diferentes. Condição de parada: número = 0. 
REFERENCIAL DE RESPOSTA 
 
9) Dado três valores reais X, Y, Z, verificar se eles podem ser os comprimentos dos lados de 
um triângulo, e se forem, verificar se é um triângulo equilátero, isósceles ou escaleno. Se 
eles não formarem um triângulo, escrever uma mensagem. Antes da elaboração do 
algoritmo, torna-se necessária a revisão de algumas propriedades e definições. Faça um 
algoritmo que leia N conjuntos de dados (X, Y e Z), que representam o comprimento dos 
lados de um triângulo, verifique se os dados inseridos pelo usuário formam correspondes 
aos lados de um triângulo. Se corresponder a uma figura triangular, identifique qual o tipo 
do triângulo conforme exemplos a seguir. Caso algum valor (X, Y, ou Z) seja negativo o 
programa deverá converter positivo. Utilize X = 0 como condição de parada, e nesse caso 
informe ao usuário que o programa foi finalizado. 
 
Propriedade: O comprimento de cada lado de um triângulo é menor do que a soma dos 
comprimentos dos outros dois lados. 
 
Definição 1: Chama-se triângulo equilátero os que tem os comprimentos dos três lados 
iguais, 
Definição 2: Chama-se triângulo isósceles ao triângulo que tem os comprimentos de dois 
lados iguais. 
Definição 3: Chama-se triângulo escaleno ao triângulo que tem os comprimentos dos três 
lados diferentes. 
 
REFERENCIAL DE RESPOSTA 
Algoritmo "Triangulo" 
// Disciplina : ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO 
Var 
 // Seção de Declarações das variáveis 
 X, Y, Z: real 
 IsTri: logico 
 tTipo: Caracter 
Inicio 
 // Seção de Comandos, procedimento, funções, operadores, etc... 
 
 escreval("Entrada de dados:") 
 escreval 
 escreva("Entre com o valor de X: ") 
 leia(X) 
 
 enquanto X <> 0 faca 
 
 escreva("Entre com o valor de Y: ") 
 leia(Y) 
 escreva("Entre com o valor de Z: ") 
 leia(Z) 
 escreval 
 escreval 
 escreval 
 
 X <- abs(X) 
 Y <- abs(Y) 
 Z <- abs(Z) 
 IsTri <- ((X+Y) > Z) E ((X+Z) > Y) E ((Y+Z) > X) 
 
 Se IsTri entao 
 se (X = Y) E (X = Z) entao 
 tTipo <- "EQUILÁTERO" 
 senao 
 se ((X = Y) E (X <> Z)) OU ((X = Z) E (X <> Y)) OU 
((Y = Z) E (Y <> X)) entao 
 tTipo <- "ISÓSCELES" 
 senao 
 tTipo <- "ESCALENO" 
 fimse 
 fimse 
 
 escreval("Resultado:") 
 escreval 
 escreval("Os lados inseridos correspondem aos de um 
triângulo") 
 escreval("TRIÂNGULO: ",tTipo) 
 senao 
 escreval("Resultado:") 
 escreval 
 escreval("Os lados inseridos não correspondem aos de um 
triângulo") 
 fimse 
 
 escreval 
 escreval 
 escreval 
 escreval("Entrada de dados:") 
 escreval 
 escreva("Entre com o valor de X: ") 
 leia(X) 
 
 fimenquanto 
 
 
 escreval 
 escreval 
 escreval 
 escreval("Programa finalizado com sucesso.") 
 escreval 
 escreval 
 escreval 
 
Fimalgoritmo 
 
10) Fazer um algoritmo que calcule escreva a soma dos N primeiros termos da seguinte série, 
sendo 1≤N≤1000: 
1000
1
997
2
994
3
991
4
− + − +...
 
REFERENCIAL DE RESPOSTA 
 
QUESTÕES PARA AVALIAÇÃO DA APRENDIZAGEM 
1) Elabore um algoritmo que leia um número. Se positivo, armazene-o em A. Se negativo, 
armazene-o em B. No final, mostre os valores de A e B. 
 
2) Escreva um algoritmo para determinar se um número é par, ou ímpar. 
 
3) Tendo como dados de entrada a altura e sexo de uma pessoa, construa um algoritmo que 
calcule o peso ideal, utilizando as seguintes fórmulas: 
 
• Para homens: (72*h)-58 
• Para mulheres: (62.1*h)-44.7 
onde h=altura 
 
4) Uma determinada empresa só contrata secretárias que preencham os seguintes 
requisitos: 
• Ter idade igual ou superior a 19 anos 
• Falar com fluência dois (02) ou mais idiomas 
Conforme as características da candidata, escreva uma das seguintes mensagens: “Você 
tem as características necessárias para ser uma secretária” ou “Você não tem as 
características necessárias para ser uma secretária”. 
 
5) O departamento que controla o índice de poluição do meio ambiente monitora três grupos 
de indústrias altamente poluidoras. O índice de poluição aceitável varia de 0 (zero) à 0,25 
miligramas de poluentes por metro cúbico de ar. Se o índice sobe para 0,3 mg/m3 as 
indústrias do primeiro grupo são intimadas a suspender suas atividades. Se o índice sobre 
para 0,4 mg/m3 as do primeiro e segundo grupos devem paralisar as atividades. E se o 
índice atingir 0,5 mg/m3, os três grupos devem paralisar as atividades. Escrever um 
algoritmo que leia o índice de poluição medido (geral para os três grupos de empresas) e 
mostre a notificação na forma de uma frase: “grupo 1 deve parar”, ou “grupo 1 e 2 devem 
parar”, ou “os três grupos devem parar 
 
6) Uma empresa irá oferecer um reajuste salarial, cujo percentual será decidido através das 
seguintes situações: 
• Funcionários do sexo masculino, com tempo de casa superior ou igual a 10 anos, terão 
direito a reajuste de 5% 
• Funcionários do sexo masculino, com tempo de casa inferior a 10 anos, terão direito a 
reajuste de 3% 
• Funcionários do sexo feminino, com tempo de casa superior ou igual a 8 anos, terão 
direito a reajuste de 5% 
• Funcionários do sexo feminino, com tempo de casa inferior a 8 anos, terão direito a 
reajuste de 3% 
• Funcionários em qualquer uma das situações acima, porém com mais de um 
dependente, terão ainda um reajuste de 2% sobre o salário reajustado anteriormente 
Faça um algoritmo que, dado o sexo, o salário sem reajuste, o tempo de casa e o número 
de dependentes de um funcionário, mostre seu reajuste e os salários bruto e liquido, 
atualizados. Utilize a tabela abaixo para determinar o valor de desconto do imposto de 
renda cobrado. 
 
7) Escreva um programa para imprimir uma Progressão Aritmética (PA), sendo que serão 
fornecidos o primeiro termo, a razão e a quantidade de termos desejada. Por exemplo, 
para primeiro termo = 13, razão = 5 e quantidade de termos = 8 o programa deverá exibir: 
13, 18, 23, 28, 33, 38, 43, 48 
 
8) A série de Fibonacci é formada pela seguinte sequência; 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ..., 
etc. Escreva um algoritmo que gere a série de Fibonacci até o enésimo termo. O valor de 
N (enésimo) deverá ser solicitado pelo usuário e deverá ser maior que 10. 
 
9) Escreva um algoritmopara informar se um número N é primo ou não. Faça a validação de 
dados de forma que N seja sempre positivo. 
 
10) Escreva um algoritmo que calcule N! (fatorial de N), sendo que o valor inteiro de N é 
fornecido pelo usuário. Faça a validação de dados de forma que N seja positivo. Sabe-se 
que: 5! = 5 x 4 x 3 x 2 x 1 = 120 
0! = 1, por definição 
 
REFERÊNCIAS 
ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de. 
Fundamentos da Programação de Computadores. 3ª edição. Editora Pearson Prentice 
Hall, 2012. 
FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de 
programação: a construção de algoritmos e estruturas de dados. 3 ed. São Paulo: 
Prentice Hall, 2005. 
MANZANO, J.A.N.G. e OLIVEIRA, J. F. Algoritmos: Lógica para Desenvolvimento de 
Programação de Computadores. Editora Erica. 22ª Edição, 2009.

Continue navegando