Buscar

Lógica de Programação - Fluxogramas e Algoritmos

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

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

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ê viu 3, do total de 42 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

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

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ê viu 6, do total de 42 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

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

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ê viu 9, do total de 42 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

Prévia do material em texto

Apostila da 
Disciplina de 
Lógica de Programação 
 
 
 
 
 
 
Prof. Me. Fábio Magalhães 
 
Professor do Curso de Sistemas de Informação 
Universidade Nove de Julho - Uninove 
 
 
http://fabiologica.blogspot.com 
 
 
 
 
 
1º Semestre / 2010 
11/02/2010 
 2
1 - Introdução à disciplina de Lógica de Programação 
 
Esta pequena apostila é resultado da agregação de diversos materiais pesquisados, e 
reúne o conteúdo básico para o desenvolvimento da disciplina de Lógica de 
Programação, do curso de Sistemas de Informação da Universidade Nove de Julho - 
Uninove - 1º Semestre / 2010. 
 
Programação da disciplina, materiais auxiliares, listas de exercícios, exercícios para o 
laboratório, correção das mesmas estarão disponíveis no blog do professor. 
 
2 – Lógica de Programação 
2.1 - O que é Lógica? 
 
É a arte de pensar corretamente e, visto que a forma mais complexa do pensamento é o 
raciocínio, a Lógica estuda ou tem em vista a correção do raciocínio. 
 
Podemos ainda dizer que a lógica tem em vista a ordem da razão. Isto dá a entender que 
a nossa razão pode funcionar desordenadamente, pode pôr as coisas de pernas para o 
ar. Por isso a Lógica ensina a colocar Ordem no Pensamento. Exemplos: 
 
a) Todo o mamífero é animal. 
Todo cavalo é mamífero. 
Portanto, todo cavalo é animal. 
 
b) Todo mamífero bebe leite. 
O homem bebe leite. 
Portanto, todo homem é mamífero e 
animal. 
2.2 - Existe Lógica no dia-a-dia? 
 
Sempre que pensamos, o raciocínio e a lógica nos acompanham necessariamente. 
Também quando falamos, pois a palavra falada é a representação do pensamento; e, 
visto que a palavra escrita é a representação da palavra falada, também pensamos 
quando escrevemos, utilizando a Lógica ou a Ilógica. Daí percebemos a importância da 
Lógica na nossa vida não só na teoria, como também na prática, já que quando queremos 
pensar, falar ou escrever corretamente precisamos colocar em Ordem o Pensamento, isto 
é, utilizar a Lógica. Exemplos: 
 
a) A gaveta está fechada. 
A bala está na gaveta. 
Preciso primeiro abrir a gaveta, para 
depois pegar a bala. 
 
b) João é mais velho que José. 
Marcelo é mais novo que José. 
Portanto, João é mais velho que Marcelo. 
 
2.3 - O que é Algoritmo? 
 
“Algoritmo é uma seqüência de passos que visam atingir um objetivo bem definido.” 
 
Apesar de achar este nome estranho, algoritmos são comuns em nosso cotidiano, como, 
por exemplo, uma receita de bolo. Nela está descrita uma série de ingredientes 
necessários, uma seqüência de diversos passos - ações - a serem cumpridos para que se 
consiga fazer determinado tipo de bolo – que é um objetivo bem definido. 
 3
Em geral um algoritmo destina-se a resolver um problema: fixa um padrão de 
comportamento a ser seguido, uma norma de execução a ser trilhada, com o objetivo de 
alcançar a solução de um problema. 
2.4 - O que é padrão de comportamento? 
 
Imagine a seguinte seqüência de números: 1, 3, 5, 7, 9, 11.... 
 
Para determinar o sétimo elemento da série, precisamos descobrir qual a sua regra de 
formatação, isto é, seu padrão de comportamento. 
 
Para tal, observamos que a série obedece a uma constância; visto que existe uma 
diferença constante entre cada elemento, a qual pode ser facilmente determinada, somos 
capazes de determinar o sétimo e qualquer outro termo. 
 
Podemos, então, descrever uma atividade bem quotidiana, como, por exemplo, trocar 
uma lâmpada. Apesar de aparentemente óbvias demais, muitas vezes fazemos esse tipo 
de atividade inconscientemente. Sem percebermos seus pequenos detalhes. Vejamos se 
ela fosse descrita passo a passo: 
 
- pegue a escada; 
- posicione-a embaixo da lâmpada; 
- busque uma lâmpada nova; 
- suba na escada; 
- retire a lâmpada velha; 
- coloque a lâmpada nova. 
 
Involuntariamente, já seguimos uma determinada seqüência de ações que, representadas 
neste algoritmo, fazem com que ele seja seguido naturalmente por pessoas, 
estabelecendo um padrão de comportamento. 
2.5 – Programação 
 
Para que um computador possa desempenhar uma tarefa é necessário que esta seja 
detalhada passo-a-passo, numa forma compreensível pela máquina, utilizando aquilo que 
se chama de programa. Neste sentido, um programa de computador nada mais é que um 
algoritmo escrito numa forma compreensível pelo computador (linguagem de 
programação). 
 
É assim também com os algoritmos escritos para computador, você deve especificar 
todos os passos, para que o computador possa chegar ao objetivo. Por exemplo: 
 
Dados os números naturais(N) 
0, 1, 2, 3, 4, 5, 6, ... 
passo1 faça N igual a zero 
passo2 some 1 a N 
passo3 volte ao passo 2 
 
Soma dos primeiros 100 números naturais: 
passo1 faça N igual a zero 
passo2 some 1 a N 
passo3 se N for menor ou igual a 100 
então volte ao passo 2 
senão pare 
 
Nos dois exemplos acima, o primeiro possui repertório bem definido, mas não finito, 
enquanto que o segundo tem um critério de parada, ou seja, é finito e descreve um 
padrão de comportamento, ou seja, temos um algoritmo. 
 4
2.6 – Programa 
 
Programas são processos de automação. Uma tarefa deixa de ser desempenhada pelo 
homem e passa a ser realizada por máquinas, sejam estes dispositivos mecânicos, 
eletrônicos (como os computadores) ou de natureza mista. 
Para que a automação de uma tarefa seja bem-sucedida é necessário que a máquina que 
passará a realizá-la seja capaz de desempenhar cada uma das etapas constituintes do 
processo a ser automatizado com eficiência, de modo a garantir a repetibilidade do 
mesmo. 
 
Assim, é necessário que seja especificado com clareza e exatidão o que deve ser 
realizado em cada uma das fases do processo a ser automatizado, bem como a 
seqüência em que estas fases devem ser realizadas. 
 
2.7 – Etapas de um programa 
 
Ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três 
fases fundamentais, como se conceitua “Processamento de Dados”: 
 
 
 
 
 
 
Onde temos: 
2.7.1 – Entrada 
 
São os dados de entrada do algoritmo. 
Hardwares para entradas de dados: teclado, mouse, microfone, scanner 
2.7.2 – Processamento 
 
São os procedimentos utilizados para chegar ao resultado final. 
2.7.3 – Saída 
 
São os dados já processados. 
Hardwares para saída de dados: impressora, monitor, caixa de som 
3 - Formas de Representação de Algoritmos 
 
Existem diversas formas de representação de algoritmos, mas não há um consenso com 
relação à melhor delas. 
 
Dentre as formas de representação de algoritmos mais conhecidas podemos citar: 
 
- Descrição Narrativa; 
- Fluxograma; 
- Pseudocódigo, também conhecido como Linguagem Estruturada ou Portugol. 
 
Entrada 
 
Processamento 
 
Saída 
 5
3.1 - Descrição Narrativa 
 
Nesta forma de representação os algoritmos são expressos diretamente em linguagem 
natural. 
 
Como exemplo tem-se os algoritmos seguintes: 
Troca de um pneu furado: 
 
Afrouxar ligeiramente as porcas 
Suspender o carro 
Retirar as porcas e o pneu 
Colocar o pneu reserva 
Apertar as porcas 
Abaixar o carro 
Dar o aperto final nas porcas 
 
Tomando um banho: 
 
Entrar no banheiro e tirar a roupa 
Abrir a torneira do chuveiro 
Entrar na água 
Ensaboar-se 
Sair da água 
Fechar a torneira 
Enxugar-se 
Vestir-se 
 
Esta representação é pouco usada na prática porque o uso da linguagem natural muitas 
vezes dá oportunidade a más interpretações, ambigüidades e imprecisões. 
 
Por exemplo, a instrução "afrouxar ligeiramente as porcas" no algoritmo da troca de pneus 
está sujeita a interpretações diferentes por pessoas distintas. Uma instrução mais precisa 
seria: "afrouxar a porca, girando-a 30º no sentido anti-horário". 
 
Vantagens: 
 
- O português é bastante conhecido por nós; 
 
Desvantagens: 
 
- Imprecisão; 
- Pouca confiabilidade (a imprecisão acarreta a desconfiança); 
- Extensão (normalmente, escreve-se muito para dizer pouca coisa). 
3.2 - Fluxograma 
 
É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam 
ações (instruções, comandos) distintos. Tal propriedade facilitao entendimento das idéias 
contidas nos algoritmos e justifica sua popularidade. 
 
Esta forma é aproximadamente intermediária à descrição narrativa e ao pseudocódigo, 
pois é menos imprecisa que a primeira e, no entanto, não se preocupa com detalhes de 
implementação do programa, como o tipo das variáveis usadas. 
 
Nota-se que os fluxogramas convencionais preocupam-se com detalhes de nível físico da 
implementação do algoritmo. Por exemplo, figuras geométricas diferentes são adotadas 
para representar operações de saída de dados realizadas em dispositivos distintos, como 
uma fita magnética ou um monitor de vídeo. 
3.2.1 - Simbologias básicas 
A serem utilizadas nesta disciplina. 
 6
 
 
 
 Terminal – indica início e/ou fim do fluxo de um programa 
ou sub-programa. 
 
 
 
 Seta de Fluxo de dados – indica o sentido do fluxo. 
Serve para conectar os símbolos. 
 
 
 
 
 Entrada – operação de entrada de dados. Lê os dados 
necessários do programa 
 
 
 
 Processamento – operação de atribuição. Indica os 
cálculos a efetuar, ou atribuições de valores 
 
 
 
 
 Saída – operação de saída de dados. Apresenta os 
dados no monitor (ou algum outro dispositivo de saída) 
 
 
 
 
 
 Decisão (a ser tomada) – indicando os desvios para 
outros pontos do fluxo, dependendo do resultado da 
comparação 
 
 
 
 
 
 Preparação – grupo de operações não incluídas na 
diagramação (chave que modificará a execução de um 
determinado programa) 
 
 
 
 Conector – ao receber duas Setas de Fluxo de dados, 
normalmente após o fechamento dos processos 
decorrentes de uma decisão 
 
 
 
 
 Conector de seção – quando for necessário particionar o 
fluxograma. Coloca um número idêntico em ambas as 
seções / páginas, indicando a sua continuação. 
 
Abaixo está a representação do algoritmo de cálculo da média de um aluno sob a forma 
de um fluxograma. 
 
 
inicio
n1 
n2 
1
media ← ((n1 + n2) / 2) 
 
 
 
 
 
 7
Exemplo de um fluxograma convencional. 
 
De modo geral, um fluxograma se resume a um único símbolo inicial por onde a execução 
do algoritmo começa, e um ou mais símbolos finais, que são pontos onde a execução do 
algoritmo se encerra. Partindo do símbolo inicial, há sempre um único caminho orientado 
a ser seguido, representando a existência de uma única seqüência de execução das 
instruções. 
 
Isto pode ser melhor visualizado pelo fato de que, apesar de vários caminhos poderem 
convergir para uma mesma figura do diagrama, há sempre um único caminho saindo 
desta. Exceções a esta regra são os símbolos finais, dos quais não há nenhum fluxo 
saindo, e os símbolos de decisão, de onde pode haver mais de um caminho de saída 
(usualmente dois caminhos), representando uma bifurcação no fluxo. 
 
Vantagens: 
 
- Uma das ferramentas mais conhecidas; 
- Figuras dizem muito mais que palavras; 
- Padrão mundial 
 
Desvantagens: 
 
- Faz com que a solução do problema já esteja amarrada a dispositivos físicos; 
- Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-
los; 
- Complica-se à medida que o algoritmo cresce. 
 
3.3 - Pseudocódigo 
 
De forma semelhante como os programas são escritos. Também chamado de Portugol ou 
Português Estruturado. 
 
A linguagem de Programação mais próxima é o Pascal, com codificação quase idêntica 
ao Inglês Estruturado. 
Esta forma de representação de algoritmos é rica em detalhes, como a definição dos tipos 
das variáveis usadas no algoritmo. Por assemelhar-se bastante à forma em que os 
programas são escritos, encontra muita aceitação. 
.F. .V.
fim
“aprovado” 
(media >= 7) 
“reprovado” 
1
 8
Na verdade, esta representação é suficientemente geral para permitir a tradução de um 
algoritmo nela representado para uma linguagem de programação específica seja 
praticamente direta. 
 
A forma geral da representação de um algoritmo na forma de pseudocódigo é a seguinte: 
 
algoritmo <Nome_do_Programa> 
 <declaração_de_variáveis> 
inicio 
 <corpo do algoritmo> 
FimAlgoritmo 
 
Algoritmo é uma palavra que indica o início da definição de um algoritmo em Portugol ou 
Pseudocódigo. 
 
<Nome_do_Programa> é um nome simbólico dado ao algoritmo com a finalidade de 
distingui-los dos demais. 
 
<declaração_de_variáveis> consiste em uma porção opcional onde são declaradas as 
variáveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos. 
 
Início e FimAlgoritmo são respectivamente as palavras que delimitam o início e o término 
do conjunto de instruções do corpo do algoritmo. 
 
Abaixo exemplo na forma de um pseudocódigo, da representação do algoritmo do cálculo 
da média de um aluno. 
 
algoritmo CalculoMedia 
var n1, n2, media: real 
inicio 
leia n1 
leia n2 
media ← ((n1 + n2) / 2) 
se (media >= 7) entao 
escreva (“aprovado”) 
senao 
escreva (“reprovado”) 
fimse 
FimAlgoritmo 
 
Vantagens: 
 
- Independência física da solução (solução lógica apenas); 
- Usa o português como base; 
- Pode-se definir quais e como os dados vão estar estruturados; 
- Passagem quase imediata do algoritmo para uma linguagem de programação qualquer. 
 
Desvantagens: 
 
- Exige a definição de uma linguagem não real para trabalho; 
- Não padronizado. Pode ter certas diferenças dependo do autor / programador. 
 9
4 - Ciclo de vida de um programa 
 
Como tudo na terra, o programa tem um tempo de vida, chamado de ciclo de vida de um 
programa. 
4.1.1 - Planejamento 
 
É a fase onde definimos o problema a ser resolvido utilizando um computador. Nesta fase 
relacionamos a entrada e a saída do futuro programa, assim como a definição dos 
arquivos auxiliares que ele venha a utilizar. 
4.1.2 - Projeto 
 
É a fase onde a resolução do problema é concebida. Neste ponto são definidos detalhes 
do algoritmo, estrutura de dados empregados pelo programa. 
4.1.3 - Escrita 
 
Consiste em codificar o programa em uma linguagem de programação apropriada. 
4.1.4 - Depuração 
 
Ao final da escrita estaremos com o programa quase pronto; mas será que ele funciona? 
Esta é a fase onde se corrigem os erros, até que o objetivo seja alcançado. 
4.1.5 - Implantação 
 
O programa é disponibilizado ao cliente para utilização. 
4.1.6 - Manutenção 
 
O programa poderá ser alterado, tanto para corrigir erros não encontrados na fase de 
depuração / implantação, como também para atender novas necessidades a serem 
solicitadas pelos usuários. 
4.1.7 - Morte do programa 
 
É quando o programa não atende mais as necessidades do usuário / cliente. Poderá ser 
substituído por outro ou nova versão. 
 
4.2 - Método para construção de algoritmos 
 
Ler atentamente o enunciado. É justamente o enunciado do exercício que fornece o 
encaminhamento necessário à resolução do problema, que se torna, portanto, 
dependente de sua completa compreensão. 
 
Retirar do enunciado a relação das entradas de dados. 
Retirar do enunciado a relação das saídas de dados. 
 
 10
Determinar o que deve ser feito para transformar as entradas determinadas nas saídas 
específicas. 
 
Nesta fase é que determinamos a construção de algoritmos propriamente dita, pois, a 
partir de alguns requisitos especificados, devemos determinar qual a seqüência de ações 
é capaz de transformar um conjunto definido de dados nas informações de resultado. 
4.3 - Um ambiente para escrever algoritmos 
 
Descreveremos uma máquina hipotética para a qual escreveremos nossos algoritmos. O 
nosso computador hipotético apresentará a seguinte organização: 
 
Cada uma das partes constituintes da figura abaixo tem os seguintes significados: 
 
(1) Dispositivo de entrada (o teclado): 
É o meio pelo qual os dados que serão trabalhados pelo algoritmo vão ser introduzidos 
em nosso computador hipotético; 
 
(2) Unidade Lógica e Aritmética (ULA): 
Parte responsável pelas operações matemáticas e avaliações lógicas; 
 
(3) Unidade de Controle: 
Exerce controle sobre as demais partes do nosso computador. É uma verdadeira gerente 
que distribui tarefas às outras unidades; 
 
(4) Memória: 
Guarda o algoritmo a serexecutado e os dados a serem utilizados pelo mesmo. Todo 
dado fornecido ao computador e o resultado de suas operações ficam guardados na 
memória; 
 
(5) Dispositivo de Saída (vídeo e impressora): 
É o meio que se dispõe para apresentação dos resultados obtidos. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Convenção: trajeto de dados 
 trajeto de sinais de controle 
 
Unidade Central de Processamento 
(1) 
Dispositivo 
de Entrada 
(3) 
Unidade de Controle 
(2) 
Unidade Lógica 
e Aritmética 
(4) 
Memória Principal 
(5) 
Dispositivo 
de Saída 
 11
4.4 - Funcionamento do nosso computador 
 
Todos os computadores, independentemente dos seus tamanhos, são conceitualmente 
semelhantes ao esquema da figura anterior (há algumas diferenças, mas não trataremos 
aqui dos casos especiais). 
 
Resumidamente, podemos afirmar que existem 4 (quatro) operações básicas que 
qualquer computador pode executar: 
 
a) operações de entrada e saída: ler dados do teclado e escrever dados na tela é um 
exemplo destas operações. Elas servem para introduzir dados na memória do nosso 
computador e exibir dados que já estejam lá armazenados; 
 
b) operações aritméticas: são utilizadas na realização de operações matemáticas (adição, 
subtração, multiplicação e divisão); 
 
c) operações lógicas e relacionais: têm aplicabilidade em comparações, testes de 
condições lógicas (2 > 6 ? X = Y ?); 
 
d) movimentação de dados entre os vários componentes: as operações aritméticas são 
executadas na Unidade Lógica e Aritmética, necessitando da transferência dos dados 
para essa unidade e da volta do resultado final para ser guardado na memória. 
4.5 - Resolvendo um problema 
 
Suponha que queiramos resolver o seguinte problema: a partir de dois números que serão 
informados, calcular a adição dos mesmos. Se você fosse encarregado de efetuar essa 
tarefa, seria bem provável que utilizasse os passos a seguir: 
 
a) saber quais são os números; 
b) calcular a soma dos números; 
c) responder à questão com o valor do resultado. 
 
Vejamos como seria resolvido esse mesmo problema em termos das operações básicas 
citadas anteriormente: 
 
a) operação de entrada de dados dos números; 
b1) movimento do valor dos números entre a memória e a ULA; 
b2) operação aritmética de somar os 2 números; 
b3) movimentação do resultado da ULA para guardar na memória; 
c) operação de saída do resultado, que está guardado na memória, para o dispositivo de 
saída desejado. 
 
Deve-se salientar que os passos b1 e b3, normalmente, ficam embutidos na operação 
matemática, não sendo explicitados. 
 
Em resumo, pode-se dizer que escrever algoritmos ou, em última análise, programar 
consiste em dividir qualquer problema em muitos pequenos passos, usando uma ou mais 
das quatro operações básicas citadas. 
 
Esses passos que compõem o algoritmo são denominados de comandos. Os comandos 
de uma linguagem de programação podem estar mais próximos da máquina (linguagens 
de baixo nível) ou serem mais facilmente entendidos pelo homem (linguagens de alto 
 12
nível). A seqüência de operações básicas, dada anteriormente, para resolver o problema 
de adicionar dois números, está em uma linguagem de baixo nível para o nosso 
computador hipotético. Em uma linguagem de alto nível teríamos um resultado assim: 
 
Leia X,Y 
SOMA = X + Y 
Escreva SOMA 
5 - Tipos de Dados e Instruções Primitivas 
 
As informações manipuladas pelo computador se apresentam através dos dados 
(informações) e das instruções (comandos). 
 
As instruções, que comandam o funcionamento da máquina e determinam a maneira 
como devem ser tratados os dados. As instruções são específicas para cada modelo de 
computador, pois são funções do tipo particular de processador utilizado em sua 
implementação. 
Os dados propriamente ditos, que correspondem à porção das informações a serem 
processadas pelo computador. 
 
A maior parte das pessoas não ligadas à área de informática ignora o potencial dos 
computadores e imagina que eles são capazes de tratar apenas com dados numéricos. 
Na realidade, a capacidade dos mesmos se estende a outros tipos de dados. 
 
A classificação apresentada a seguir não se aplica a nenhuma linguagem de 
programação específica; pelo contrário, ela sintetiza os padrões utilizados na maioria das 
linguagens. 
5.1 - Dados Numéricos 
 
São categorizados normalmente em 2 categorias: 
 
- Inteiros; 
- Reais. 
5.1.1 - Dados Numéricos Inteiros 
 
Os números inteiros são aqueles que não possuem componentes decimais ou 
fracionários, podendo ser positivos ou negativos. 
 
Como exemplo de números inteiros tem: 
 
24 - número inteiro positivo 
0 - número inteiro 
-12 - número inteiro negativo 
5.1.2 - Dados Numéricos Reais 
 
Os dados de tipo real são aqueles que podem possuir componentes decimais ou 
fracionários, e podem também ser positivos ou negativos. 
 
 13
Como dito anteriormente, os elementos dos conjuntos de números fracionários e reais são 
necessariamente representados no computador por dados do tipo real. Havendo a parte 
decimal, deverá ser utilizado o caractere ponto (.) e não a vírgula. 
 
Exemplos de dados do tipo real: 
 
24.01 - número real positivo com duas casas decimais 
144 - número real positivo com zero casas decimais 
-13.3 - número real negativo com uma casa decimal 
0.0 - número real com uma casa decimal 
0 - número real com zero casa decimal 
5.2 - Dados Literais 
 
O tipo de dados literal é constituído por uma seqüência de caracteres contendo letras, 
dígitos e/ou símbolos especiais (!, @, #, $, %, ^, &, *, etc.). Este tipo de dados é também 
muitas vezes chamado de alfanumérico, cadeia de caracteres, ainda, do inglês, string. 
 
Usualmente, os dados literais são representados nos algoritmos pela coleção de 
caracteres, delimitada em seu início e término com o caractere aspas ("). 
Diz-se que o dado do tipo literal possui um comprimento dado pelo número de caracteres 
nele contido. 
 
Exemplos de dados do tipo literal: 
 
"QUAL ?" - literal de comprimento 6 
" " - literal de comprimento 1 
"qUaL ?!$" - literal de comprimento 8 
" AbCdefGHi" - literal de comprimento 9 
"1-2+3=" - literal de comprimento 6 
“0” - literal de comprimento 1 
 
Note que, por exemplo, "1.2" representa um dado do tipo literal de comprimento 3, 
constituído pelos caracteres "1", "." e "2", diferindo de 1.2 que é um dado do tipo real. 
5.3 - Dados Lógicos 
 
A existência deste tipo de dado é, de certo modo, um reflexo da maneira como os 
computadores funcionam. Muitas vezes, estes tipos de dados são chamados de 
booleanos, devido à significativa contribuição de BOOLE à área da lógica matemática. 
 
O tipo de dados lógico é usado para representar dois únicos valores lógicos possíveis: 
verdadeiro e falso. É comum encontrar-se em outras referências outros tipos de pares de 
valores lógicos como sim/não, 1/0, true/false. 
 
Nos algoritmos apresentados nesta apostila os valores lógicos serão delimitados pelo 
caractere ponto (.). 
 
Exemplo: 
 
.V. - valor lógico verdadeiro 
.F. - valor lógico falso 
 
 14
A árvore abaixo resume a classificação dos dados com relação aos tipos de dados 
apresentados. 
 
 
 
Representação dos diversos tipos de dados 
5.4 - Variáveis 
 
Tudo o que é instável, inconstante. Serão armazenadas pela memória do computador, e é 
necessário identificar qual é o melhor tipo de dados a ser utilizado. 
 
Para que não se "esqueça" das informações, o computador precisa guardá-las em sua 
memória. Cada variável representa um valor, e a qualquer instante pode ser alterado 
(quando for realizado um comando para fornecer um novo valor). 
5.5 – Arquitetura de Memória 
 
De um modo geral, a memória do computador pode ser vista como um conjunto de 
células, cada identificada unicamente por um número inteiro distinto, conhecido como 
endereço. 
5.5.1 – Memória 
 
O acesso às informações armazenadas na memória (leitura, escrita) é feita Byte a Byte. 
Cada Byte é formado por uma combinação de 8 dígitos binários(0 e 1), sendo assim, um 
Byte possui 256 (28) estados possíveis ou representa 256 símbolos de informação. 
5.5.2 – Armazenamento de dados na memória 
 
Cada informação de determinado tipo é representada de diferentes formas, e necessita de 
certa quantidade de memória para armazená-las. O número de bytes necessários para 
armazenar uma informação dependerá do seu tipo. Por exemplo, na maioria das 
linguagens de programação o tipo inteiro é armazenado ocupando 2 bytes, ou seja, 65536 
(28 x 28 = 216) possibilidades (-32767, -32766, ....., -1,0, 1..... 32767, 32768). Um dado 
do tipo caractere é formado por vários símbolos, sendo que cada um ocupa 1 byte. Desta 
forma o número de bytes utilizados no armazenamento do tipo caractere dependerá do 
seu tamanho. 1 endereço - 1 byte. 
5.5.3 – Identificadores 
 
Podemos imaginar a memória como sendo um armário repleto de gavetas, no qual as 
gavetas seriam os locais físicos responsáveis por armazenar objetos; os objetos (que 
podem ser substituídos ou não) seriam as informações (dados), e as gavetas as variáveis 
ou constantes. 
 
 15
Visto que na memória (armário) existem inúmeras variáveis (gavetas), precisamos 
diferenciá-las, o que é feito por meio de identificadores (etiquetas). Cada variável 
(gaveta), no entanto, pode guardar apenas uma informação (objeto) de cada vez, sendo 
sempre do mesmo tipo (material). 
 
Os identificadores possuem certas regras para serem formados: 
 
- Devem começar por um caractere alfabético; 
- Podem ser seguidos por mais caracteres alfabéticos e/ou alfanuméricos; 
- Não é permitido o uso de caracteres especiais ou espaços; 
- Não pode ser uma Palavra Reservada (instrução). 
 
Exemplos válidos: 
 
pe, media, valor, jksp, m1, m2, nomeusuario. 
5.6 – Definição de Variáveis em Algoritmos 
 
Todas as variáveis utilizadas em algoritmos devem ser definidas antes de serem 
utilizadas. Isto se faz necessário para permitir que o compilador reserve um espaço na 
memória para as mesmas. 
 
Nos algoritmos apresentados nesta apostila será adotada a seguinte convenção: 
 
Todas as variáveis utilizadas em algoritmos serão definidas no início do mesmo, por meio 
de um comando de uma das formas seguintes: 
 
var <nome_da_variável> : <tipo_da_variável> 
 
var <lista_de_variáveis> : <tipo_das_variáveis> 
 
A palavra-chave var deverá estar presente sempre e será utilizada uma única vez na 
definição de um conjunto de uma ou mais variáveis; 
 
Numa mesma linha poderão ser definidas uma ou mais variáveis do mesmo tipo. Para tal, 
devem-se separar os nomes das mesmas por vírgulas; 
 
Variáveis de tipos diferentes devem ser declaradas em linhas diferentes. 
 
A forma de utilização deste comando ficará mais clara quando da utilização da 
representação de algoritmos em linguagem estruturada (Pseudocódigo). 
 
Esta convenção é válida para a representação de algoritmos na forma de pseudocódigo. 
Em termos de fluxograma, não é usual adotar-se qualquer forma de definição de 
variáveis. 
 
Exemplo de definição de variáveis: 
 
var 
nome : caractere 
 idade : inteiro 
 salario : real 
 temfilhos : logico 
 16
No exemplo acima foram declaradas quatro variáveis: 
 
- a variável nome, capaz de armazenar dados alfanuméricos (tipo Literal); 
- a variável idade, capaz de armazenar um número inteiro; 
- a variável salario, capaz de armazenar um número real; 
- a variável tem_filhos, capaz de armazenar uma informação lógica (tipo booleano). 
5.7 – Instruções Primitivas 
 
São representadas pelo conjunto de Palavras-chave (Vocabulário) de uma determinada 
Linguagem de Programação. Em Portugol, será utilizado as seguintes Instruções 
Primitivas: 
 
algoritmo (ou programa) 
ate (ou ateque) 
caractere 
caso 
e 
enquanto 
entao 
escolha 
escreva 
faca 
falso 
fimalgoritmo (ou fim) 
fimenquanto 
fimescolha 
fimpara 
fimrepita 
fimse 
inicio 
leia 
logico 
mensagem 
nao 
numerico 
ou 
outrocaso 
para 
passo 
repita 
se 
senao 
verdadeiro 
 
Uma determinada ação poderá ser escrita diferente dependendo da Linguagem de 
Programação utilizada. 
6 - Expressões 
6.1 - Conceito 
 
O conceito de expressão em termos computacionais está intimamente ligado ao conceito 
de expressão (ou fórmula) matemática, onde um conjunto de variáveis e constantes 
numéricas relacionam-se por meio de operadores aritméticos compondo uma fórmula 
que, uma vez avaliada, resulta num valor. 
 
 
 
Figura - Triângulo de base (B) e altura (H). 
 
 
Por exemplo, a fórmula de cálculo da área do triângulo é dada por: 
 17
area <- 0.5 * b * h 
 
Esta fórmula utiliza três variáveis: b e h, que contêm as dimensões do triângulo, e area, 
onde é guardado o valor calculado (resultado da avaliação da expressão). Há, também, 
uma constante (0.5) e o operador de multiplicação (*), que aparece duas vezes na 
expressão. 
 
O conceito de expressão aplicado à computação assume uma conotação mais ampla: 
uma expressão é uma combinação de variáveis, constantes e operadores, e que, uma vez 
avaliada, resulta num valor. 
6.2 - Operadores 
 
Operadores são elementos funcionais que atuam sobre operandos e produzem um 
determinado resultado. Por exemplo, a expressão 3 + 2 relaciona dois operandos (os 
números 3 e 2) por meio do operador (+) que representa a operação de adição. 
 
De acordo com o número de operandos sobre os quais os operadores atuam, os últimos 
podem ser classificados em: 
 
- binários, quando atuam sobre dois operandos. 
 
Ex.: os operadores das operações aritméticas básicas (soma, subtração, multiplicação e 
divisão); 
 
- unários, quando atuam sobre um único operando. 
 
Ex.: o sinal de (-) na frente de um número, cuja função é inverter seu sinal. 
 
Outra classificação dos operadores é feita considerando-se o tipo de dado de seus 
operandos e do valor resultante de sua avaliação. Segundo esta classificação, os 
operadores dividem-se em aritméticos, lógicos e literais. Esta divisão está diretamente 
relacionada com o tipo de expressão onde aparecem os operadores. 
 
Um caso especial é o dos operadores relacionais, que permitem comparar pares de 
operandos de tipos de dados iguais, resultando sempre num valor lógico. 
 
Mais adiante serão apresentados os operadores dos diversos tipos acima relacionados. 
6.3 - Tipos de Expressões 
 
As expressões são classificadas de acordo com o tipo do valor resultante de sua 
avaliação. 
6.3.1 - Expressões Aritméticas 
 
Expressões aritméticas são aquelas cujo resultado da avaliação é do tipo numérico, seja 
ele inteiro ou real. Somente o uso de operadores aritméticos e variáveis numéricas são 
permitidos em expressões deste tipo. 
 
Os operadores aritméticos relacionados às operações aritméticas básicas estão 
sumarizados na Tabela. 
 18
 
Tabela - Operadores aritméticos e sua ordem de prioridade 
Operador Tipo Operação Prioridade 
+ Binário Adição 4 
- Binário Subtração 4 
* Binário Multiplicação 3 
/ Binário Divisão 3 
^ ou ** Binário Exponenciação 2 
+ Unário Manutenção de sinal 1 
- Unário Inversão de sinal 1 
 
A prioridade entre operadores define a ordem em que os mesmos devem ser avaliados 
dentro de uma mesma expressão. Este assunto será tratado com maior profundidade 
numa seção posterior. 
 
O caractere (*) é adotado na maioria das linguagens de programação para representar a 
operação de multiplicação, ao invés do caractere (x), devido à possibilidade da ocorrência 
do mesmo no nome de variáveis. O símbolo (^) é adotado para representar a operação de 
exponenciação, e em muitas literaturas será visto o símbolo (**) para esta finalidade, mas 
será adotado preferencialmente o símbolo (^). 
6.3.2 - Expressões Lógicas 
 
Expressões lógicas são aquelas cujo resultado da avaliação é um valor lógico (.V. ou .F.). 
 
Os operadores lógicos e suas relações de precedência são mostrados na tabela abaixo. 
Tabela - Operadores lógicos e suas relações de prioridade 
Operador Tipo Operação Prioridade 
.ou. Binário Disjunção 3 
.e. Binário Conjunção 2 
.nao. Unário Negação 1 
 
Para exemplificar o uso de operadores lógicos, a Tabela5.3 apresenta duas variáveis 
lógicas A e B. Uma vez que cada variável lógica possui somente dois valores possíveis, 
então há exatamente quatro combinações para estes valores, razão pela qual a tabela 
tem quatro linhas. As diversas colunas contêm os resultados das operações lógicas sobre 
as combinações possíveis dos valores das variáveis A e B. 
 
Tabela - Tabela-Verdade dos operadores apresentados na Tabela anterior 
a b .nao. a .nao. b a .ou. b a .e. b
.F. .F. .V. .V. .F. .F.
.F. .V. .V. .F. .V. .F.
.V. .F. .F. .V. .V. .F.
.V. .V. .F. .F. .V. .V.
 
A Tabela acima é chamada de Tabela-Verdade. Convém salientar as seguintes 
conclusões que podem ser extraídas por observação da Tabela: 
 
O operador lógico .nao. sempre inverte o valor de seu operando. Ex.: . nao. .V. = .F. e . 
nao. .F. = .V.; 
 
Para que a operação lógica .ou. tenha resultado verdadeiro basta que um de seus 
operandos seja verdadeiro; Para melhor visualizar este efeito, podemos imaginar que as 
 19
variáveis lógicas a e b são como dois interruptores ligados em paralelo num circuito de 
acionamento de uma lâmpada. 
 
Há, ainda, outro tipo de operador que pode aparecer em operações lógicas: os 
operadores relacionais, mostrados na Tabela. 
 
Tabela - Operadores relacionais 
Operador Operação 
= Igual 
<> Diferente 
< Menor 
<= Menor ou igual 
> Maior 
>= Maior ou igual 
 
Estes operadores são somente usados quando se deseja efetuar comparações. 
Comparações só podem ser feitas entre objetos de mesma natureza, isto é, variáveis do 
mesmo tipo de dado. O resultado de uma comparação é sempre um valor lógico. 
 
O uso de operadores relacionais possibilita o aparecimento em expressões lógicas de 
variáveis de outros tipos de dados que não o lógico. 
7 - Comandos de Atribuição 
 
Um comando de atribuição permite-nos fornecer um valor a certa variável, onde o tipo 
dessa informação deve ser compatível com o tipo da variável, isto é, somente podemos 
atribuir um valor lógico a uma variável capaz de comportá-lo, ou seja, uma variável 
declarada do tipo lógico. O comando de atribuição é uma seta apontando para a variável 
ou dois pontos e o sinal de igual (<-): 
Exemplo: 
 
var 
a, b,c : real 
inicio 
a <- 5 
b <- a+b 
c <- b*a 
7.1 – Constantes 
 
Entendemos que uma informação é constante quando não sofre nenhuma variação no 
decorrer do tempo. 
 
As constantes são definidas junto com as variáveis antes de iniciar o programa, e em 
seguida após o início do algoritmo, as constantes recebem seu valor fixo através do 
comando de atribuição (<-): 
 
var 
nomepadrao : caracter 
 valorpi : real 
inicio 
nomepadrao <- “João” 
valorpi <- 3.1415 
 
 20
No exemplo acima foram declaradas duas constantes: 
 
- a variável constante nomepadrao, que foi atribuído um valor fixo “João” do tipo 
Alfanumérico; 
- a variável constante valorpi, que foi atribuído um valor fixo 3.1415 do tipo Real; 
7.2 - Entrada de Dados 
 
Para que nossos algoritmos funcionem, em quase todos os casos precisaremos de 
informações que serão fornecidas somente após o algoritmo pronto, e que sempre 
estarão mudando de valores, para que nossos algoritmos recebem estas informações, 
devemos então construir entradas de dados, pelas quais o usuário (pessoa que utilizar o 
programa) poderá fornecer todos os dados necessários. 
 
A sintaxe do comando de entrada de dados é a seguinte: 
 
leia (variável) 
7.3 - Saída de Dados 
 
Da mesma forma que nosso algoritmo precisa de informações, o usuário precisa de 
respostas as suas perguntas, para darmos estas respostas usamos um comando de 
saída de dados para informar a resposta. 
 
A sintaxe do comando de saída de dados é a seguinte: 
 
escreva (variável) 
escreval (variável) // Para pulara para a linha seguinte, basta acrescentar a letra “l” 
8 - Estruturas de Controle 
8.1 - Estrutura Seqüencial 
 
É o conjunto de ações primitivas que serão executadas numa seqüência linear de cima 
para baixo e da esquerda para direita, isto é, na mesma ordem em que foram escritas. 
 
Como podemos perceber, todas as ações devem pular uma linha, o que objetiva separar 
uma ação de outra. 
 
Variáveis; 
(declaração de variáveis) 
início 
comando 1 
comando 2 
comando 3 
FimAlgoritmo. 
Algoritmo - 01: Criar um programa que efetue a leitura de dois valores 
numéricos. Faça a operação de soma entre os dois valores e apresente 
o resultado obtido. 
 
 21
Planejamento 
Problema: Calcular a soma de dois números. 
Objetivo: Apresentar a soma de dois números. 
 
Entradas: N1, N2 
Saídas: SOMA 
 
Projeto 
Cálculos: 
SOMA <- N1 + N2 
 
Fluxograma 
 
 
 
Portugol 
 
algoritmo Algoritmo01 
var 
 N1 : real 
 N2 : real 
 SOMA : real 
inicio 
 leia N1 
 leia N2 
 SOMA <- N1 + N2 
 escreva SOMA 
FimAlgoritmo 
8.2 - Estruturas de Seleção ou Decisão 
 
Uma estrutura de decisão permite a escolha de um grupo de ações e estruturas a ser 
executado quando determinadas condições, representadas por expressões lógicas, são 
ou não satisfeitas. 
 
 22
8.2.1 - Decisão Simples 
 
Se <condição> entao 
{bloco verdade} 
Fimse 
 
<condição> é uma expressão lógica, que, quando inspecionada, pode gerar um resultado 
falso ou verdadeiro. 
 
Se .V., a ação primitiva sob a cláusula será executada; caso contrário, encerra o 
comando, neste caso, sem executar nenhum comando. 
Algoritmo - 02: Ler dois valores numéricos, efetuar a adição e 
apresentar o resultado caso o valor somado seja maior que 10. 
 
Planejamento 
Problema: Calcular a soma de dois números e apresentar o resultado com condição. 
Objetivo: Apresentar o resultado apenas se for maior que 10. 
 
Entradas: N1, N2 
Saídas: SOMA 
 
Projeto 
Cálculos e detalhamento: 
 SOMA <- N1 + N2 
 Se (SOMA > 10) entao 
escreva SOMA 
 Fimse 
 
Fluxograma 
 
INICIO
N1 
N2 
SOMA N1 + N2 
SOMA > 10 
SOMA 
FIM
.V..F.
 23
Portugol 
Algoritmo Algoritmo02 
Var 
 N1: Real 
 N2: Real 
 SOMA: Real 
Inicio 
 Leia N1 
 Leia N2 
 SOMA <- N1 + N2 
 Se (SOMA > 10) entao 
 Escreva SOMA 
 Fimse 
FimAlgoritmo 
 
8.2.2 - Decisão Composta 
 
Se <condição> entao 
{bloco verdade} 
Senao 
{bloco falso} 
Fimse 
 
<condição> é uma expressão lógica, que, quando inspecionada, pode gerar um resultado 
falso ou verdadeiro. 
 
Se .V., a ação primitiva sob a cláusula será executada; caso contrário, isto é, se for .F., a 
ação primitiva sob a cláusula será executada.Após isto, encerra a condição com o 
comando Fimse. 
 
Algoritmo - 03: Ler dois valores numéricos, efetuar a adição. Caso o 
valor somado seja maior ou igual a 10, este deverá ser apresentado 
somando-se a ele mais 5, caso o valor somado não seja maior ou igual 
a 10, este deverá ser apresentado subtraindo-se 7. 
 
Planejamento 
Problema: Calcular a soma de dois números e apresentar o resultado com uma condição. 
Objetivo: Apresentar o Resultado se for igual ou maior que 10 adicionando mais 5, se 
não for igual ou maior que 10 deverá subtrair 7. 
Entradas: A, B 
Saídas: TOTAL 
Auxiliares: SOMA 
 
Projeto 
Cálculos e detalhamento: 
SOMA <- A + B 
 Se (SOMA >= 10) Então 
 TOTAL <- SOMA + 5 
 Senão 
TOTAL <- SOMA - 7 
 Fimse 
 24
 
Fluxograma 
 
Portugol 
Algoritmo Algoritmo03 
Var 
 A: Real 
 B: Real 
 SOMA: Real 
 TOTAL: Real 
Inicio 
 Leia A 
 Leia B 
 SOMA ← A + B 
 Se (SOMA >= 10) entao 
 TOTAL ← SOMA + 5 
 Senao 
 TOTAL ← SOMA – 7 
 Fimse 
Escreva TOTAL 
FimAlgoritmo 
8.2.3 – Seleção Múltipla 
 
Esta estrutura evita que façamos muitos blocos se, quando o teste será sempre em cima 
da mesma variável. 
 
Exemplo: 
 
.F. .V.
INICIO
A 
B 
SOMA A + B 
FIM
TOTAL ← SOMA + 5 
TOTAL 
SOMA > =10 
TOTAL ← SOMA - 7 
 25
Se (variavel = valor1) entao 
comando1 
Senao 
Se (variavel = valor2) entao 
Comando2 
Senao 
Se (variavel = valor3) entao 
Comando3 
Senao 
Se (variavel = valor4) entao 
Comando4 
Senao 
comando5 
Fimse 
Fimse 
Fimse 
Fimse 
 
Com a estrutura de escolha múltipla, o algoritmo ficaria da seguinte maneira: 
escolha variavel 
caso valor1 
comando1 
caso valor2 
comando2 
casovalor3 
comando3 
caso valor4 
comando4 
 outrocaso 
comando5 
fimescolha 
 
Algoritmo - 04: Ler um número inteiro entre 1 e 4 e escrever o número 
por extenso correspondente: exemplo: Lido 1, será apresentado um. 
Lido 2, será apresentado dois etc. 
 
Planejamento 
Objetivo: Apresentar um número por extenso. 
Entradas: numero 
Saídas: 
Auxiliares: 
Projeto 
Cálculos e detalhamento: 
escolha numero 
caso 1 
escreva “um” 
caso 2 
escreva “dois” 
caso 3 
escreva “três” 
caso 4 
escreva “quatro” 
 outrocaso 
escreva “número inválido” 
fimescolha 
 
 26
Fluxograma 
 
 
 
Portugol 
Algoritmo Algoritmo04 
Var 
 numero: inteiro 
Inicio 
 Leia numero 
escolha numero 
caso 1 
escreva “um” 
caso 2 
escreva “dois” 
caso 3 
escreva “três” 
caso 4 
escreva “quatro” 
 outrocaso 
escreva “número inválido” 
fimescolha 
FimAlgoritmo 
 
INICIO
numero 
Numero=1 “um” 
FIM
.V.
Numero=2 “dois” 
.V.
Numero=3 “tres” 
.V.
Numero=4 “quatro
”
.V.
“numero invalido” 
 27
8.3 – Estruturas de Repetição 
 
Estas estruturas possibilitam que nosso algoritmo seja muito mais enxuto e fácil de se 
programar. 
 
Imagine um algoritmo de fatorial de 8: 
 
Algoritmo FatorialNumero8 
variaveis 
fat : real; 
início 
fat <- 8 * 7 
fat <- fat * 6 
fat <- fat * 5 
fat <- fat * 4 
fat <- fat * 3 
fat <- fat * 2 
escreva (fat) 
FimAlgoritmo. 
 
O resultado será o fatorial com certeza, mas, imagine se fosse o fatorial de 250. Ou ainda, 
o usuário deseja fornecer o número e o algoritmo deve retornar o fatorial, qual número 
será digitado? 
 
Quantas linhas deverão ser escritas? 
 
Para isso servem as estruturas de repetição, elas permitem que um determinado bloco de 
comandos seja repetido várias vezes, até que uma condição determinada seja satisfeita. 
 
Serão estudadas as seguintes estruturas de repetição: 
- Enquanto - Faca, o teste é realizado no Início do looping 
- Repita - Ateque, o teste é realizado no Final do looping 
- Para - de - ate - Passo - faca, cuja Estrutura é utilizada uma variável de Controle. 
8.3.1 – Enquanto ... Faca - Estrutura com teste no Início 
 
Esta estrutura faz seu teste de parada antes do bloco de comandos, isto é, o bloco de 
comandos será repetido, até que a condição seja F. Os comandos de uma estrutura 
enquanto .. faca poderá ser executada uma vez, várias vezes ou nenhuma vez. 
Enquanto < condição > Faça 
< bloco de comandos > 
FimEnquanto 
Algoritmo - 05: Apresentar o total da soma obtida dos cem primeiros 
números inteiros (1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a 
estrutura Enquanto ... Faca) 
 
Planejamento 
Objetivo: Apresentar o resultado da soma obtida dos cem primeiros números inteiros 
Entradas: Num 
Saídas: Tot 
 28
Projeto 
Cálculos e detalhamento: 
Enquanto Num <= 100 faca 
 Tot<--Tot+Num 
num=num+1 
FimEnquanto 
 
Fluxograma 
 
 
Portugol 
 
Algoritmo Algoritmo05 
Var 
Num, tot : inteiro 
Inicio 
Num <- 0 
Tot <- 0 
Enquanto Num <= 100 faca 
 Tot <-Tot+Num 
Num <- num+1 
FimEnquanto 
Escreva Tot 
FimAlgoritmo 
 
.F.
.V.
INICIO
FIM
Tot <-Tot+Num 
tot 
Enquanto Num 
<= 100
Num <- num+1 
num <- 0 
tot <- 0 
 29
8.3.2 – Repita ... Ateque - Estrutura com teste no final 
 
Esta estrutura faz seu teste de parada após o bloco de comandos, isto é, o bloco de 
comandos será repetido, até que a condição seja V. Os comandos de uma estrutura repita 
.. até sempre serão executados pelo menos uma vez. 
 
Repita 
comando1 
comando2 
comando3 
ateque <condição> 
 
Algoritmo – 06: Apresentar o total da soma obtida dos cem primeiros 
números inteiros (1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a 
estrutura Repita ... Até) 
 
Planejamento 
Objetivo: Apresentar o resultado da soma obtida dos cem primeiros números inteiros 
Entradas: Num 
Saídas: Tot 
 
Projeto 
Cálculos e detalhamento: 
Num=1 
Repita 
Tot <-Tot+Num 
Num <- num+1 
Ateque Num >= 100 
 
Portugol 
Algoritmo Algoritmo06 
Var 
Num, tol : inteiro 
Inicio 
Num <- 1 
Tot <- 0 
Repita 
Tot <-Tot+Num 
Num <- num+1 
Ateque Num >= 100 
Escreva Tot 
FimAlgoritmo 
 
 30
Fluxograma 
 
 
8.3.3 – Para ... de ... ate ... Passo ... faca – Estrutura com 
variável de Controle 
 
Nas estruturas de repetição vistas até agora, acorrem casos em que se torna difícil 
determinar quantas vezes o bloco será executado. Sabemos que ele será executado 
enquanto uma condição for satisfeita - enquanto..faça, ou até que uma condição seja 
satisfeita - repita...até. A estrutura para .. passo repete a execução do bloco um número 
definido de vezes, pois ela possui limites fixos: 
 
Para <variável> <- <valor> até <valor> passo N faca 
< bloco de comandos > 
FimPara 
Algoritmo - 07: Apresentar o total da soma obtida dos cem primeiros 
números inteiros (1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a 
estrutura Para .. Passo) 
 
Planejamento 
Objetivo: Apresentar o resultado da soma obtida dos cem primeiros números inteiros 
 
Entradas: Num 
Saídas: Tot 
 
.F. .V.
INICIO
FIM
Tot <-Tot+Num 
tot 
Ateque Num 
>= 100
Num <- num+1 
num <- 1 
tot <- 0 
 31
Projeto 
 
Cálculos e detalhamento: 
Para num de 1 a 100 passo 1 faca 
Tot <-Tot+Num 
 FimPara 
 
Fluxograma 
 
 
Portugol 
 
Algoritmo Algoritmo07 
Var 
Num, tol : inteiro 
Inicio 
Tot <- 0 
Para num de 1 a 100 passo 1 faca 
Tot <-Tot+Num 
 FimPara 
Escreva Tot 
FimAlgoritmo 
9 - Conclusão 
 
Este semestre teve como principal objetivo capacitar o aluno a entender os conceitos 
fundamentais de lógica de programação de forma independente da linguagem e introduzi-
lo a uma metodologia de desenvolvimento de programas. 
 
Saber Lógica de Programação é mais importante que saber uma Linguagem de 
Programação. Sem saber como se planeja um programa, dificilmente poderá ser 
implantada tanto na Linguagem de Programação mais antiga como nas mais modernas. 
 
Deseja-se boa sorte a todos os colegas, futuros profissionais da área de Informática!!! 
 
.F.
.V.
INICIO
FIM
Tot <-Tot+Num 
tot 
tot <- 0 
Para num de 1 
a 100 passo 1 
f
 32
Sumário 
 
1 - Introdução à disciplina de Lógica de Programação.......................................................2 
 
2 – Lógica de Programação................................................................................................2 
2.1 - O que é Lógica? .........................................................................................................2 
2.2 - Existe Lógica no dia-a-dia? ........................................................................................2 
2.3 - O que é Algoritmo? ....................................................................................................2 
2.4 - O que é padrão de comportamento?..........................................................................3 
2.5 – Programação .............................................................................................................3 
2.6 – Programa...................................................................................................................4 
2.7 – Etapas de um programa ............................................................................................4 
2.7.1 – Entrada ...................................................................................................................4 
2.7.2 – Processamento.......................................................................................................4 
2.7.3 – Saída ......................................................................................................................4 
 
3 - Formas de Representação de Algoritmos .....................................................................4 
3.1 - Descrição Narrativa ....................................................................................................5 
3.2 - Fluxograma ................................................................................................................5 
3.2.1 - Simbologias básicas................................................................................................5 
3.3 -Pseudocódigo.............................................................................................................7 
 
4 - Ciclo de vida de um programa.......................................................................................9 
4.1.1 - Planejamento ..........................................................................................................9 
4.1.2 - Projeto .....................................................................................................................9 
4.1.3 - Escrita .....................................................................................................................9 
4.1.4 - Depuração...............................................................................................................9 
4.1.5 - Implantação.............................................................................................................9 
4.1.6 - Manutenção.............................................................................................................9 
4.1.7 - Morte do programa..................................................................................................9 
4.2 - Método para construção de algoritmos ......................................................................9 
4.3 - Um ambiente para escrever algoritmos....................................................................10 
4.4 - Funcionamento do nosso computador .....................................................................11 
4.5 - Resolvendo um problema.........................................................................................11 
 
5 - Tipos de Dados e Instruções Primitivas ......................................................................12 
5.1 - Dados Numéricos.....................................................................................................12 
5.1.1 - Dados Numéricos Inteiros .....................................................................................12 
5.1.2 - Dados Numéricos Reais........................................................................................12 
5.2 - Dados Literais ..........................................................................................................13 
5.3 - Dados Lógicos..........................................................................................................13 
5.4 - Variáveis...................................................................................................................14 
5.5 – Arquitetura de Memória ...........................................................................................14 
5.5.1 – Memória................................................................................................................14 
5.5.2 – Armazenamento de dados na memória................................................................14 
5.5.3 – Identificadores ......................................................................................................14 
5.6 – Definição de Variáveis em Algoritmos .....................................................................15 
5.7 – Instruções Primitivas................................................................................................16 
 
6 - Expressões..................................................................................................................16 
6.1 - Conceito ...................................................................................................................16 
6.2 - Operadores ..............................................................................................................17 
6.3 - Tipos de Expressões ................................................................................................17 
 33
6.3.1 - Expressões Aritméticas .........................................................................................17 
6.3.2 - Expressões Lógicas ..............................................................................................18 
 
7 - Comandos de Atribuição .............................................................................................19 
7.1 – Constantes ..............................................................................................................19 
7.2 - Entrada de Dados ....................................................................................................20 
7.3 - Saída de Dados........................................................................................................20 
 
8 - Estruturas de Controle.................................................................................................20 
8.1 - Estrutura Seqüencial ................................................................................................20 
Algoritmo - 01: Criar um programa que efetue a leitura de dois valores numéricos. Faça a 
operação de soma entre os dois valores e apresente o resultado obtido.........................................20 
8.2 - Estruturas de Seleção ou Decisão ...........................................................................21 
8.2.1 - Decisão Simples....................................................................................................22 
Algoritmo - 02: Ler dois valores numéricos, efetuar a adição e apresentar o resultado caso o valor 
somado seja maior que 10. .............................................................................................................22 
8.2.2 - Decisão Composta ................................................................................................23 
Algoritmo - 03: Ler dois valores numéricos, efetuar a adição. Caso o valor somado seja maior ou 
igual a 10, este deverá ser apresentado somando-se a ele mais 5, caso o valor somado não seja 
maior ou igual a 10, este deverá ser apresentado subtraindo-se 7..................................................23 
8.2.3 – Seleção Múltipla ...................................................................................................24 
Algoritmo - 04: Ler um número inteiro entre 1 e 4 e escrever o número por extenso 
correspondente: exemplo: Lido 1, será apresentado um. Lido 2, será apresentado dois etc..........25 
8.3 – Estruturas de Repetição ..........................................................................................27 
8.3.1 – Enquanto ... Faca - Estrutura com teste no Início.................................................27 
Algoritmo - 05: Apresentar o total da soma obtida dos cem primeiros números inteiros 
(1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Enquanto ... Faca).........................27 
8.3.2 – Repita ... Ateque - Estrutura com teste no final ....................................................29 
Algoritmo – 06: Apresentar o total da soma obtida dos cem primeiros números inteiros 
(1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Repita ... Até)................................29 
8.3.3 – Para ... de ... ate ... Passo ... faca – Estrutura com variável de Controle..............30 
Algoritmo - 07: Apresentar o total da soma obtida dos cem primeiros números inteiros 
(1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Para .. Passo).................................30 
 
9 - Conclusão ...................................................................................................................31 
 
Sumário ............................................................................................................................32 
Anexo - Bibliografia ..........................................................................................................34 
Anexo - Listas de Exercícios ............................................................................................35 
1º Lista de Exercícios .....................................................................................................................35 
2º Lista de Exercícios .....................................................................................................................353º Lista de Exercícios .....................................................................................................................36 
4º Lista de Exercícios .....................................................................................................................37 
5º Lista de Exercícios .....................................................................................................................38 
6º Lista de Exercícios .....................................................................................................................38 
7º Lista de Exercícios .....................................................................................................................38 
8º Lista de Exercícios .....................................................................................................................39 
9º Lista de Exercícios .....................................................................................................................39 
10º Lista de Exercícios ...................................................................................................................39 
11º Lista de Exercícios ...................................................................................................................40 
12º Lista de Exercícios ...................................................................................................................40 
13º Lista de Exercícios ...................................................................................................................41 
14º Lista de Exercícios ...................................................................................................................42 
15º Lista de Exercícios ...................................................................................................................42 
 34
Anexo - Bibliografia 
 
Bibliografia básica recomendada: 
 
Manzano, J. A. N. G., Oliveira, J. F.: Algoritmos Lógica para o Desenvolvimento da 
Programação. 10ª. Ed. São Paulo: Érica, 2001. 
 
Bibliografia complementar: 
 
Puga, S., Rissetti, G. Lógica de programação e estruturas de dados - com aplicações 
em Java. São Paulo: Prentice Hall, 2004. 
 
Lopes, A., Garcia, G.: Introdução à Programação – 500 Algoritmos resolvidos. Rio de 
Janeiro: Campus, 2002. 
 
Apostilas consultadas para confecção desta apostila: 
 
________. Algoritmo e Lógica de Programação. Natal: Universidade Federal do Rio 
Grande do Norte - Departamento de Engenharia de Computação e Automação, 2004. 
 
Agosti, C. Curso Tecnólogo em Informática - Prof. - Apostila de Pascal. Xanxerê: 
Universidade do Oeste de Santa Catarina – Unoesc, 2001. 
 
Costa, R.; Paradzinski, A. Apostila de Lógica de Programação. Curso Técnico em 
Processamento de Dados. 
 
Egypto, C. Introdução à Programação. João Pessoa: Asper – Associação Paraibana de 
Ensino Renovado - Faculdade Paraibana de Processamento de Dados - Curso de 
Tecnologia em Processamento de Dados, 2004. 
 
Egypto, C. Linguagens e Técnicas e Programação I. João Pessoa: Asper – Associação 
Paraibana de Ensino Renovado - Faculdade Paraibana de Processamento de Dados - 
Curso de Tecnologia em Processamento de Dados, 1998. 
 
Mandaguari, C. B. M. Apostila da Disciplina de Análise de Algoritmos. Faculdade de 
Filosofia, Ciências e Letras de Mandaguari - Departamento de Informática, 2004. 
 
Mazer Jr, A. Curso Técnico em Informática – Disciplina de Técnicas de Programação 
I. Ponta Grossa : Senai - Serviço Nacional de Aprendizagem Industrial. 
 
Moraes, P. S. Curso Básico de Lógica de Programação. Unicamp - Centro de 
Computação - Lógica de Programação. 
 
Shine, C. Y. A Torre de Hanói. Artigo baseado em aula ministrada na IV Semana 
Olímpica, Salvador: Colégio Etapa. 
 
Tonin, N. Apostila de Algoritmos e Estrutura de Dados I. Erechim: Universidade 
Regional Integrada do Alto Uruguai e das Missões - URI – Campus de Erechim - Curso de 
Graduação em Ciência da Computação, 2005. 
 35
Anexo - Listas de Exercícios 
Instruções gerais 
 
As Listas de Exercícios comporão 30% das notas A1 e A2. 
O prazo de entrega deverá ser cuidadosamente respeitado. 
Após uma semana de atraso não será contabilizada nota. 
A entrega será sempre individual 
Precisa constar sempre. Havendo falta de informações não será corrigido e não será 
contabilizada nota. 
- curso, turma, disciplina 
- nome do aluno em todas as folhas 
- número da lista de exercícios 
- número do exercício. 
1º Lista de Exercícios 
Montar em Descrição Narrativa, Fluxograma e Portugol. 
 
1 - Crie uma seqüência lógica para tomar banho. Verificar o que fazer se acabar a água. 
 
2 - Descreva com detalhes a seqüência lógica para Trocar um pneu de um carro. Verificar 
se tem estepe. 
 
3 - Faça um algoritmo que crie um suco de acerola. Caso não tenha açúcar substituir por 
adoçante. 
2º Lista de Exercícios 
Utilizando linguagem natural, fluxogramas e Portugol, resolver os seguintes 
problemas: 
 
1 - Um homem precisa atravessar um rio com um barco que possui capacidade de 
carregar apenas ele mesmo e mais uma de suas três cargas, que são: um lobo, um bode 
e um maço de alfafas. O que o homem deve fazer para conseguir atravessar o rio sem 
perder suas cargas? 
 
2 - Construa um algoritmo que mostre todos os passos que você segue para escolher o 
tipo de roupa com que vai sair, após levantar, levando em consideração apenas o tempo 
(bom, nublado, chuvoso) e a temperatura (quente, moderado, frio). 
 
3 - Elabore um algoritmo que mova três discos de uma Torre de Hanói, que consiste em 
três hastes (a - b - c), uma das quais serve de suporte para três discos diferentes (1 - 2 - 
3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer 
haste, contanto que nunca seja colocado um disco maior sobre um menor. O objetivo é 
transferir os três discos para outra haste. 
Simulação no site: http://www.npd.ufes.br/hanoi 
 
4 - Três jesuítas e três canibais precisam atravessar um rio; para tal, dispõem de um 
barco com capacidade para duas pessoas. Por medidas de segurança não se permite que 
em alguma margem a quantidade de jesuítas seja inferior à de canibais. Qual a seqüência 
de passos que permitiria a travessia com segurança? 
 36
3º Lista de Exercícios 
Favor entregar esta lista nesta própria folha (obrigatório) 
 
1 - Classifique os dados especificados abaixo de acordo com seu tipo, assinalando com I 
os dados do tipo Inteiros, com R os Reais, com A os Alfanumérico, com B os lógicos 
(Booleanos). Deixe em branco aqueles para os quais não é possível definir a priori um 
tipo de dado. 
 
( ) .v. 
( ) " logico " 
( ) 7094 
( ) F 
( ) 2X 
( ) .falso. 
( ) " verdadeiro " 
( ) .verdadeiro. 
( ) y3 
( ) + 56 
( ) .F. 
( ) " 01053-067 " 
( ) " f " 
( ) ! 
( ) 89.41 
( ) " fone$res " 
( ) - 7.05706 
( ) " - 6 " 
( ) ate_que 
( ) " Boa sorte " 
( ) + 805 
( ) #fone_com 
( ) 1584 
( ) - 54.01 
( ) " 14 " 
( ) - 1 
( ) " o " 
( ) .V. 
( ) 18 
( ) .F. 
( ) 0 
( ) x2 
( ) 8.55551 
( ) 18 º 
( ) " 15 " 
( ) 0,8 
( ) 28B 
( ) - 1.0 
( ) 156 
( ) " 6RN " 
( ) " 11.06 " 
( ) - 123 
( ) " Prova1 + 2 " 
( ) " 15 º " 
( ) " CARACT " 
( ) VAR 
( ) .falso. 
( ) 111.3500089 
( ) " zero " 
( ) 28B 
( ) - 1.0n 
( ) " 156 + 200 " 
( ) - 16.087 
( ) " constante " 
( ) alfanumerico 
( ) RESULT= - 18 
" 
 
2 - Indique com um X quais são PALAVRAS RESERVADAS (INSTRUÇÕES): 
 
( ) fim 
( ) + 8 
( ) " ramal " 
( ) enquanto 
( ) 40P 
( ) programa 
( ) ate_que 
( ) " abril/00 " 
( ) nota_do_aluno 
( ) fone 
( ) ramal 
( ) var 
( ) acabou 
( ) INICIO 
( ) começa
 
 
3 - Assinale com um X os nomes válidos para uma VARIÁVEL: Justifique o motivo quando 
for um nome inválido: 
 
( ) z8ur8cmv ____________________________________________ 
( ) 18log ____________________________________________ 
( ) y3 ____________________________________________ 
( ) R$ 85.05 ____________________________________________ 
( ) PROVA 1 ____________________________________________ 
( ) data15_03_2000 ____________________________________________( ) ShoppingMorumbi ____________________________________________ 
( ) constante80.9 ____________________________________________ 
( ) inicio ____________________________________________ 
( ) " mediad " ____________________________________________ 
( ) simpson@igo.com ____________________________________________ 
( ) X ____________________________________________ 
( ) fim ____________________________________________ 
( ) laranja 12_reais ____________________________________________ 
( ) Sul ____________________________________________ 
( ) RAMAL ____________________________________________ 
( ) O I A ____________________________________________ 
( ) 5x ____________________________________________ 
( ) var ____________________________________________ 
 37
4º Lista de Exercícios 
Favor entregar esta lista nesta própria folha (obrigatório) 
 
1 - Assinale com X os identificadores corretos e explique o que está errado nos 
identificadores incorretos. 
( ) valor _____________________________________________________ 
( ) _b248 _____________________________________________________ 
( ) nota*do*aluno_____________________________________________________ 
( ) a1b2c3 _____________________________________________________ 
( ) 3 x 4 _____________________________________________________ 
 ( ) km/h _____________________________________________________ 
( ) xyz _____________________________________________________ 
( ) nome empr _____________________________________________________ 
( ) sala_215 _____________________________________________________ 
( ) “nota” _____________________________________________________ 
( ) ah! _____________________________________________________ 
( ) abc _____________________________________________________ 
( ) AB/C _____________________________________________________ 
( ) 123a _____________________________________________________ 
( ) 080 _____________________________________________________ 
( ) DBAC _____________________________________________________ 
( ) xyz _____________________________________________________ 
( ) A_B-C _____________________________________________________ 
( ) U2 _____________________________________________________ 
( ) A123 _____________________________________________________ 
( ) Cos *4 _____________________________________________________ 
( ) SENAO _____________________________________________________ 
 
2 - Classifique os dados especificados abaixo de acordo com seu tipo, assinalando com I 
os dados do tipo inteiro, com R os reais, com L os literais, com B os lógicos (booleanos), e 
com N aqueles para os quais não é possível definir a priori um tipo de dado. 
 
( ) 0.21 
( ) 1 
( ) V 
( ) “0.” 
( ) 1% 
( ) “José” 
( ) 0,35 
( ) .F. 
( ) -0.001 
( ) .T. 
( ) +3257 
( ) “a” 
( ) “+3257” 
( ) +3257. 
( ) “-0.0” 
( ) “.F.” 
( ) - 3 
( ) .V. 
( ) .V 
( ) “abc” 
( ) F 
( ) C 
( ) Maria 
( ) +36 
( ) 0 
( ) + 36 
( ) “+3257 
( ) F 
( ) 1 
( ) + 32 
( ) “+3257” 
( ) 'F' 
( ) 0,0 
( ) - 0,001 
( ) “-0,0” 
( ) “.V.” 
( ) 0 
( ) + 0,05 
( ) “.V.” 
( ) F 
( ) -1 
( ) + 3257 
( ) V 
( ) -32 
( ) “a” 
( ) “abc” 
( ) -1,9E13 
( ) '0' 
 
3 - Encontrar o resultado dos exercícios abaixo (Operadores Aritméticos): 
 
 
 
1) result <- a*b-c+d 
2) result <- b/a-c*d 
3) result <- a*(b-c)+d 
4) result <- a**d-c**d+(b^2) 
5) result <- d*(b+c*(c/d)) 
6) result <- a*(b-d)*((c-a) ^ 2) 
 
 
Para os valores: 
A=3, B=6, c=8, d=2 
Respostas: 
1) result <- ____ 
2) result <- ____ 
3) result <- ____ 
4) result <- ____ 
5) result <- ____ 
6) result <- ____ 
 
Para os valores: 
A=2, B=6, c=6, d=1 
Respostas: 
1) result <- ____ 
2) result <- ____ 
3) result <- ____ 
4) result <- ____ 
5) result <- ____ 
6) result <- ____ 
 38
5º Lista de Exercícios 
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa 
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado 
(Portugol) dos seguintes programas: 
 
1 - Criar um programa que efetue a leitura de quatro valores numéricos. Faça a operação 
de soma entre os quatro valores e apresente o resultado obtido. 
 
2 - Desenvolver a lógica para um programa que efetue o cálculo da área de uma 
circunferência e do triângulo apresentando a medida das áreas calculadas. 
 
3 - Calcular e apresentar o valor do volume de uma lata de óleo, utilizando a fórmula: 
VOLUME = pi * R2 * ALTURA. 
 
4 – Ler o nome e o endereço de uma pessoa. Apresentar em tela novamente. 
6º Lista de Exercícios 
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa 
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado 
(Portugol) dos seguintes programas: 
 
1 - Efetuar a leitura de um número inteiro e apresentar o resultado do quadrado deste 
número. 
 
2 - Efetuar o cálculo da quantidade de litros de combustível gastos em uma viagem, 
utilizando-se um automóvel que faz 12 km por litro. Para obter o cálculo, o usuários 
deverá fornecer o tempo gasto na viagem e a velocidade média durante a mesma. Desta 
forma, será possível obter a distância percorrida com a fórmula DISTANCIA = TEMPO * 
VELOCIDADE. Tendo o valor da distância, basta calcular a quantidade de litros de 
combustível utilizada na viagem com a fórmula: LITROS_USADOS = DISTANCIA / 12. O 
programa deverá apresentar os valores da velocidade média, tempo gasto na viagem, a 
distância percorrida e a quantidade de litros utilizada na viagem. 
 
3 - Efetuar o cálculo do valor de uma prestação em atraso, utilizando a fórmula: 
PRESTAÇÃO = VALOR + (VALOR * (TAXA / 100) * TEMPO). 
 
4 - Dados dois números inteiros, trocar o conteúdo desses números. 
7º Lista de Exercícios 
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa 
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado 
(Portugol) dos seguintes programas: 
 
1 - O cardápio de uma lanchonete é dado abaixo. Prepare um algoritmo que leia a 
quantidade de cada item que você consumiu e calcule a conta final. 
Hambúrguer R$ 3,00 
Cheeseburger R$ 2,50 
Fritas R$ 2,50 
Refrigerante R$ 1,00 
Milkshake R$ 3,00 
 
2 - Dados dois números inteiros, achar a média aritmética entre eles. 
 39
3 - Escreva um algoritmo que tenha como entrada nome, endereço, sexo, salário. Após lê-
los, apresente ao usuário os valores digitados. 
 
4 - Fazer a transformação de um valor em dólar, para a moeda corrente do Brasil. 
8º Lista de Exercícios 
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa 
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado 
(Portugol) dos seguintes programas: 
 
1 - Ler dois valores numéricos, efetuar a multiplicação entre eles, e apresentar o resultado 
caso o valor multiplicado seja maior ou igual que 5000. 
 
2 - Efetue o cálculo do reajuste de salário de um funcionário. Considere que o funcionário 
deverá receber um reajuste de 15% caso seu salário seja menor que R$ 500,00, se o 
salário foi maior ou igual a R$ 500,00 mas menor ou igual a R$ 1000,00, seu reajuste será 
de 10%, caso seja ainda maior que R$ 1000,00, o reajuste deverá ser de 5%. 
 
3 - Efetuar a leitura de um valor positivo ou negativo e apresentar o número lido como 
sendo um valor positivo, ou seja, o programa deverá apresentar o módulo de um número 
fornecido. Lembre-se de verificar se o número fornecido é menor que zero, sendo 
multiplique-o por -1. 
9º Lista de Exercícios 
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa 
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado 
(Portugol) dos seguintes programas: 
 
1 - Ler 4 notas escolares de um aluno e imprimir uma mensagem dizendo que o aluno foi 
aprovado, se o valor da média for maior ou igual que 7. 
Caso o contrário, solicitar a nota do exame final, somar com o valor da média e obter a 
nova média. Se a nova média for maior ou igual a 5, apresentar uma mensagem que o 
aluno foi aprovado em exame. Se o alunonão foi aprovado, indicar uma mensagem 
informando esta condição. Apresentar com as mensagens o valor da média do aluno, 
para qualquer condição. 
 
2 - Conheça três números inteiros, e informe qual é o maior. Exibi-los depois em ordem 
crescente. 
 
3 - Construa um algoritmo que verifique a validade de uma senha fornecida pelo usuário. 
A senha válida deve ser igual a ‘cachorro’. 
10º Lista de Exercícios 
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa 
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado 
(Portugol) dos seguintes programas: 
 
1 - Ler um número inteiro entre 1 e 9 e escrever o número por extenso correspondente: 
exemplo: Lido 1, será apresentado um. Lido 2, será apresentado dois etc. 
 
2 - Ler um número inteiro entre 1 e 12 e escrever o mês correspondente. Caso o usuário 
digite um número fora desse intervalo, deverá aparecer uma mensagem informando que 
não existe mês com este número. 
 40
3 - Uma faculdade atribui menções aos alunos conforme a faixa de notas que tenha 
atingido: 
9,0 a 10: SS (superior) 
7,0 a 8,9: MS (médio superior) 
5, 0 a 6,9: MM (médio) 
3,0 a 4,9: MI (médio inferior) 
0,1 a 2,9: II (inferior) 
0: SR (sem rendimento). 
Faça um programa que lê a nota e informa a menção. 
11º Lista de Exercícios 
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa 
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado 
(Portugol) dos seguintes programas: 
 
1 - Imprimir todos os números de 1 a 100. 
 
2 - Imprimir os múltiplos de 5, no intervalo de 1 a 500. 
 
3 - Apresentar os quadrados dos números inteiros de 15 a 200. 
 
4 - Elaborar um programa que apresente o valor de uma potência de uma base qualquer 
elevada a um expoente qualquer, ou seja, de NM. 
12º Lista de Exercícios 
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa 
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado 
(Portugol) dos seguintes programas: 
 
1 - Apresentar as potências de 3 variando de 0 a 15. Deve ser considerado que qualquer 
número elevado a zero é 1, e elevado a 1 é ele próprio. Deverá ser apresentado, 
observando a seguinte definição: 
30 = 1 
31 = 3 
32 = 9 
(...) 
315 = 14348907 
2 - Criar um algoritmo que imprima todos os números de 1 a 100 e a soma deles. (1 + 2 + 
3 + 4 + 5 + 6 + 7 + etc. + 97 + 98 + 99 + 100). 
 
3 - Apresentar os resultados de uma tabuada de um número qualquer. Esta deverá ser 
impressa no seguinte formato: 
Considerando como exemplo o fornecimento do número 2 
2x1= 2 
2x2= 4 
2x3= 6 
2x4= 8 
2x5=10 
(...) 
2x10=20 
 41
13º Lista de Exercícios 
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa 
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado 
(Portugol) dos seguintes programas: 
 
1 - Escrever um algoritmo que calcule a média dos números digitados pelo usuário, se 
eles forem pares, termine a leitura se o usuário digitar 0 (zero) e mostre o resultado final. 
 
2 - Fazer um programa para imprimir o conceito de um aluno, dada a sua nota. Supor 
notas inteiras somente. O critério para conceitos é o seguinte: 
- nota inferiores a 3 - conceito E; 
- nota de 3 a 5 - conceito D; 
- notas 6 e 7 - conceito C; 
- notas 8 e 9 - conceito B; 
- nota 10 - conceito A. 
 
3 - Ler vinte valores e contar quantos deles são maiores que 1000. 
 
4 – Faça um algoritmo que exiba os números pares entre 1000 e 0, nessa ordem, usando 
a estrutura para. 
 
5 - Dado um conjunto de números inteiros, obter a soma e a quantidade de elementos. 
 
6 - Desenhar o Fluxograma para o seguinte programa codificado em Portugol: 
Algoritmo SALARIOCOMREAJUSTE 
Var 
 SAL: Real 
 SALREAJ: Real 
Inicio 
 leia SAL 
se (SAL < 500) entao 
SALREAJ ← (SAL * 1.15) 
 senao 
se (SAL <= 1000) entao 
SALREAJ ← (SAL * 1.10) 
senao 
SALREAJ ← (SAL * 1.05) 
fimse 
fimse 
escreva SALREAJ 
FimAlgoritmo 
 
7 - Programa Seu nome 
Você digita seu nome na tela e apresenta como resposta (em tela novamente) o que você 
digitou. 
Formato da tela: 
___________________________________ 
Digite seu nome: ______________ 
Seu nome é: ______________ 
___________________________________ 
 
 42
14º Lista de Exercícios 
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa 
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado 
(Portugol) dos seguintes programas: 
 
1 - Faça um programa para gerar e exibir os números inteiros de 20 até 10, decrescendo 
de 1 em 1. 
 
2 - Calcule o fatorial de um número qualquer. 
Exemplo: Se o valor lido for 5. O fatorial de 5! é: 5 x 4 x 3 x 2 x 1. 
Exemplo: Se o valor lido for 150. O fatorial de 150! é: 150 x 149 x 148 x ... 3 x 2 x 1. 
Se o número for zero, o fatorial de 0! tem como resultado 1. 
 
3 - Escreva um algoritmo que escreva 15 vezes o nome do seu time preferido. O valor 
deve ser inserido pelo usuário. Ao final, apresentar também: "O melhor time do século!". 
 
4 - Escreva um algoritmo que calcule a soma e a média dos salários dos funcionários de 
uma empresa. O programa termina quando o usuário digitar um salário menor que 0. 
15º Lista de Exercícios 
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa 
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado 
(Portugol) dos seguintes programas: 
 
1 - Realizou-se uma pesquisa para determinar o índice de mortalidade infantil em um 
certo período. Construa um algoritmo que leia o número de crianças nascidas no período 
e, depois, num número indeterminado de vezes, o sexo de uma criança morta (masculino, 
feminino) e o número de meses da vida da criança. 
Como finalizador, teremos a palavra “fim” no lugar do sexo da criança. 
Determine e imprima: 
- a porcentagem de crianças mortas no período; 
- a porcentagem de crianças do sexo masculino mortas no período; 
- a porcentagem de crianças que viveram dois anos ou menos no período. 
 
2 - Recebendo quatro médias bimestrais, calcule a media do ano (ponderada), sabendo 
que o 1º bimestre tem peso 1, o 2º bimestre tem peso 2, o 3º bimestre tem peso 3 e o 4º 
bimestre tem peso 4. Sabendo que para aprovação o aluno precisa ter uma média anual 
maior ou igual a 7, escreva uma mensagem indicando se o aluno foi aprovado ou 
reprovado. 
Observação: Média anual = (1º bimestre * 1+ 2º bimestre * 2 + 3º bimestre * 3 + 4º 
bimestre * 4) / (1+2+3+4) 
 
3 - Escreva um programa para ler o nome e o sobrenome de uma pessoa e escrevê-los 
na seguinte forma: 
sobrenome seguido por uma vírgula e pelo nome. 
Exemplo: entrada: "Antonio","Soares" saída: Soares, Antonio 
 
4 - Deseja-se calcular a conta de consumo de energia elétrica de um consumidor. Para 
isto, escreva um programa que leia o código do consumidor, o preço do Kw e a 
quantidade de Kw consumido, e exiba o código do consumidor e o total a pagar. 
- total a pagar = preço x quantidade 
- total a pagar mínimo = R$ 11,20

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes