Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Lógica de Programação PDF
Apostila Lógica de Programação PDF
EDIÇÃO Nº 1 - 2007
___________________________________________________________________
SUMÁRIO
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 3
Apresentação
Carta do Professor
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 4
Apesar do que você possa ter ouvido, programar um computador não é difícil. É a
habilidade que qualquer um pode desenvolver, dedicando prática, paciência e muito
café. Wang (2007)
Caro aluno,
Desde o advento dos computadores, as comunidades de
programadores de software vêm crescendo não somente para a criação de soluções
para atender às novas necessidades do mercado, mas também uma resposta para
acompanhar as mudanças dos negócios empresariais. Esta constante evolução (ou
transformação) nos oferece hoje recursos poderosos e ao mesmo tempo simples,
para a construção de sistemas.
A criação de programa para computadores é uma atividade que sofre do
mesmo sentimento de aprender matemática: há pessoas que adoram e há pessoas
que odeiam. Muitos especialistas tentam encontrar meios para melhorar as
abordagens didáticas, que facilitem a conquista de novos adeptos, mas ainda se
percebe que há uma mistura de sentimento e vocação. Porém, diferente da
matemática, a programação de sistemas é uma atividade interativa que fornece
feedback imediato, como resultado de exploração, investigação e auto-avaliação do
programador.
É importante observarmos que lógica é uma prática comum em nossas
atividades diárias, desde a decisão em qual local almoçar até aceitar um emprego.
Por isso, acredita-se que os obstáculos da lógica de programação não estão nos
conceitos e sim nas linguagens de programação utilizadas, bem como na utilidade
do trabalho de construção que está sendo realizado.
Por outro lado, ao conquistar sua posição como programador, você poderá
sentir a grande satisfação de um artista, já que utilizará seus conhecimentos e
habilidades para construir soluções que serão utilizadas por outras pessoas, para
resolver problemas.
Então, eis a proposta deste trabalho: oferecer uma abordagem simples e
construtiva para minimizar os desafios que a disciplina exige do aluno. Incentivá-
lo(a) a persistir na evolução dos seus estudos de lógica de programação, e fazê-lo(a)
perceber que a prática trará os resultados esperados.
Professor Laércio da Cruz Loureiro
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 5
Cronograma de Estudo
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 6
Plano de Estudo
Ementa
Fundamentos da lógica de programação, motivadores e histórico, processo e os
Objetivos da Disciplina
• Geral
.Transmitir ao aluno os conhecimentos essenciais para a programação de
• Específicos
pseudocódigos e fluxogramas;
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 7
Aula 1
INTRODUÇÃO À LÓGICA E AO
PROCESSO DE PROGRAMAÇÃO
Objetivos da aula
Conteúdos da aula
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 8
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 9
• Com uma construção cada vez mais fácil, reduz o nível de domínio do
programador sobre o conhecimento da linguagem. Em caso de problema na
construção do programa, o programador pode ter dificuldades para resolvê-lo,
já que não possui um “amplo” controle sobre as peculiaridades da linguagem;
• Com a necessidade de velocidade na construção de sistemas, os aplicativos
utilizados acabam gerando maior importância que a própria linguagem. Isso
exige do programador domínio sobre a linguagem, como também, sobre o
próprio programa que será utilizado para implementar a linguagem;
• Com o volume cada vez maior de recursos disponíveis na linguagem, exige-se
cada vez mais a atualização do programador em novas tecnologias, sem
conseguir obter o domínio completo de recursos essenciais;
• Com a inserção de mais recursos à linguagem, para que o programador
“esteja no topo da tecnologia”, precisará dedicar cada vez mais tempo para
aprender e construir recursos, que antes poderiam ser realizados de forma
mais simples.
PERCEBEU O DESAFIO?
À medida que evoluímos as linguagens de programação, melhoramos
a capacidade e velocidade na construção de programas, mas também
geramos cada vez mais opções para se resolver um problema,
aumentando a complexidade para a elaboração de soluções.
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 10
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 11
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 12
Dessa forma, podemos descrever sete passos para atender um ciclo de vida
de desenvolvimento:
1. Definição do Problema;
2. Desenho da solução;
3. Refinamento da solução;
4. Estratégia de testes do desenvolvimento;
5. Codificação do programa e testes;
6. Documentação;
7. Manutenção do programa.
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 13
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 14
SÍNTESE
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 15
EXERCÍCIOS PROPOSTOS
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 16
Aula 2
LINGUAGENS DE PROGRAMAÇÃO
Objetivos da aula
Conteúdos da aula
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 17
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 18
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 19
Programa de Linguagem de
Interpretador Computador
Computador Máquina
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 20
Programa de Linguagem de
Compilador Computador
Computador Máquina
Programa de
Computador
Computador
(em linguagem de
máquina)
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 21
4 PROGRAMAÇÃO E A INTERNET
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 23
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 24
SÍNTESE
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 25
EXERCÍCIOS PROPOSTOS
___________________________________________________________________
___________________________________________________________________
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 26
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 27
Aula 3
FORMAS DE REPRESENTAÇÃO DE
UM ALGORITMO
Objetivos da aula
Conteúdo da aula
1 FORMAS DE REPRESENTAÇÃO DE UM
ALGORITMO
2 O QUE É UM PSEUDOCÓDIGO?
É uma forma especial de linguagem, bem mais restrita que a lingua portuguesa
e com significados bem definidos para todas as palavras utilizadas nas instruções
inseridas em um programa. O objetivo principal dessa abordagem é permitir ao
programador pensar no problema em si e não nas regras particulares de uma
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 29
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 31
Guia Descrição/Objetivo
Ecran Apresenta os resultados do algoritmo
Informações Apresenta informações sobre o sistema
e pontos de observação sobre a
execução do programa.
Ajuda da Linguagem Manual com as regras da linguagem de
pseudocódigo utilizada na ferramenta.
Figura 8 – Páginas do painel de informações
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 33
ler nome
ler nota1
ler nota2
senão
fimse
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 34
ler nome
fimEnquanto
fim
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 35
5 O QUE É UM FLUXOGRAMA?
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 37
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 38
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 39
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 40
SÍNTESE
Agora sim!
Começamos a ter uma visão prática sobre a construção de programas de
computador. Nesta aula você aprendeu as duas principais representações que
podem ser utilizadas para a construção de algoritmos. São as ferramentas principais
do curso e servem como principal base para acelerar no conhecimento de
linguagens de programação.
Cabe ressaltar que o uso dessas ferramentas tem como principal objetivo
facilitar a descrição do seu entendimento para a solução de um problema e a opção
entre pseudocódigo ou fluxograma dependerá do contexto do problema a ser
resolvido.
Nas próximas aulas você conhecerá os comandos utilizados em cada
representação de um algoritmo, estudando detalhadamente cada exemplo.
Até a próxima aula.
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 41
EXERCÍCIOS PROPOSTOS
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 42
Aula 4
VARIÁVEIS E CONSTANTES
Objetivos da aula
Conteúdos da aula
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 43
1 VARIÁVEIS E CONSTANTES
1.1 VARIÁVEIS
1.2 CONSTANTES
Toda variável possui algum conteúdo que será armazenado e manipulado pelo
algoritmo. As variáveis que serão utilizadas nos algoritmos devem ser declaradas
inicialmente. A declaração de uma variável indica o tipo de dado que ela pode
guardar no decorrer da execução do algoritmo (ou no decorrer da execução do
programa que futuramente será construído).
Para declararmos uma variável, temos que criar-lhe um identificador, que será
o nome da variável no algoritmo e também temos que definir o tipo de dado que a
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 45
Onde tipo pode ser uma das palavras: inteiro, real, lógico ou texto; o nome
deve seguir as seguintes regras:
• Deve começar por um caractere alfabético;
• Pode ser seguido por mais caracteres alfabéticos e/ou numéricos;
• Não é permitido o uso de caracteres especiais, como: @, #, &, *, +, ? etc.
(exceto o sublinhado).
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 46
X2
3 COMENTANDO ALGORITMOS
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 47
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 48
/ Divisão 2
* Multiplicação 2
+ Adição 3
- Subtração 3
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 49
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 50
SÍNTESE
EXERCÍCIOS PROPOSTOS
( ) 1000 ( ) “4,56”
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 51
( ) “12” ( ) .Verdadeiro.
( ) .v. ( ) “cinco”
( ) “Casa 8” ( ) “5”
( ) -456 ( ) 456
( ) -4.56 ( ) 45.876
2) Supondo que as variáveis Nota1, Nota2, Matrícula e Sexo serão utilizadas para
armazenar as notas de um aluno, o número da matrícula do aluno e o sexo do aluno,
respectivamente, efetue abaixo a declaração das variáveis e seus tipos
corretamente.
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
Variáveis
Texto idade, x
Lógico NomeDoPai
___________________________________________________________________
___________________________________________________________________
Aula 5
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 52
ESTRUTURAS DE PROGRAMAÇÃO -
CONDICIONAIS
Objetivos da aula
Conteúdos da aula
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 53
1 ESTRUTURAS DE CONTROLE
Os exemplos de algoritmos que vimos até agora já nos deram uma visão
simples do que é um bloco de código de programação. Quando um algoritmo é
executado e todos os seus passos (instruções) são processados em seqüência, sem
desvios e sem repetir ou omitir nenhuma linha, é chamado de algoritmo seqüencial
(figura 16).
Por exemplo:
inicio
real soma, numero1, numero2
escrever "Digite um numero: "
ler numero1
escrever "Digite outro numero: "
ler numero2
soma <- numero1 + numero2
escrever "O resultado da soma é: "
escrever soma
fim
Quando o algoritmo permite a escolha de um conjunto de ações e/ou estruturas
que serão executadas a partir do resultado de uma condição (simples ou composta),
é chamado de algoritmo condicional (figura 16). Esta é uma estrutura de controle
muito comum na programação de computadores, pois normalmente tomamos
decisões dentro do programa, esperando que se faça uma atividade ou outra, de
acordo com determinado resultado de algum processamento.
Por exemplo:
inicio
real soma, numero1, numero2
escrever "Digite um numero: "
ler numero1
escrever "Digite outro numero: "
ler numero2
soma <- numero1 + numero2
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 54
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 55
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 57
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 58
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 59
4 BLOCO SE-SENÃO-ENTÃO
ler B
se A < B ENTÃO
escrever "A é menor que B!!"
fimse
fim
Observe que, no exemplo, caso o usuário digitar o valor de B maior do que A,
nada irá acontecer no programa. Se desejarmos apresentar alguma instrução para o
B ser maior que A, precisamos utilizar a palavra SENÃO. Por exemplo:
inicio
inteiro A
inteiro B
escrever "Digite um valor para A:"
ler A
escrever "Digite um valor para B:"
ler B
se A < B ENTÃO
escrever "A é menor que B!!"
SENÃO
escrever "B é menor que A!!"
fimse
fim
5 BLOCO ESCOLHE-CASO
Por exemplo:
inicio
real a, b, resposta
inteiro escolha
a <- 20
b <- 5
resposta <- 0
escrever "O que você quer ver: 1 = soma 2 = multiplicação 3 = divisão"
ler escolha
escolhe escolha
caso 1:
resposta <- a + b
escrever "A resposta é "
escrever resposta
caso 2:
resposta <- a * b
escrever "A resposta é "
escrever resposta
caso 3:
resposta <- a / b
escrever "A resposta é "
escrever resposta
defeito:
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 62
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 64
Além disso, o editor também apresenta cores diferentes para os elementos que
compõem as instruções digitadas, exemplo: valores em vermelho e símbolo de
atribuição de valor em azul.
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 65
SÍNTESE
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 66
EXERCÍCIOS PROPOSTOS
1) Numa festa, foi feito um sorteio para distribuir um prêmio. Cinco pessoas foram
sorteadas e deveriam pegar uma bola numerada de 1 a 5, Conforme o algarismo
sorteado o prêmio será:
Número da Bola % do prêmio
1 10%
2 25%
3 15%
4 20%
5 30%
O usuário deverá informar o valor do prêmio e qual o número da bola que tirou.
Calcule o valor do prêmio e escreva na tela, utilizando o desvio ESCOLHE- CASO.
Construa o algoritmo usando o software PORTUGOL.
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 67
4) Faça um algoritmo que após receber dois valores numéricos, calcule a média e
imprima o resultado se, e somente se for maior que 33.
Aula 6
ESTRUTURAS DE PROGRAMAÇÃO -
REPETIÇÃO
Objetivos da aula
Conteúdos da aula
Bem vindo a mais esta aula do curso. Veja que agora vamos evoluir o
conceito de lógica condicional, usando blocos de repetição e
entender quando utilizar uma condição ou outra, de acordo com o
problema a ser resolvido.
Boa aula!
1 ESTRUTURAS DE REPETIÇÃO
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 69
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 70
2 BLOCO ENQUANTO-FAZ
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 71
3 BLOCO FAZ-ENQUANTO
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 72
4 BLOCO PARA-ATÉ-PASSO
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 73
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 74
5 CONTADOR E ACUMULADOR
SÍNTESE
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 75
repetição o teste lógico é realizado depois que as instruções contidas no bloco são
executadas.
Nos dois casos, o programador tem a responsabilidade de avaliar qual melhor
atenderá a necessidade específica de uma solução.
Finalmente, você aprendeu a repetição PARA-ATÉ-PASSO, que é uma
abordagem otimizada dos outros dois modos de construção de blocos de repetição.
Nesse tipo de repetição, os elementos são mais agrupados e fornecem uma
abordagem mais clara para a construção de um código de programação.
É isso! Chegamos juntos a um outro nível de pensamento sobre a
programação de computadores. Prepare-se que ainda vem mais na próxima aula.
EXERCÍCIOS PROPOSTOS
2) Escreva um algoritmo para ler dois valores. Após a leitura deve-se calcular a
soma dos valores lidos e armazená-la em uma variável. Após o cálculo da soma,
escrever o resultado e escrever também a pergunta 'Novo Cálculo (S/N)?'. Deve-
se ler a resposta e se a resposta for 'S' (sim), deve-se repetir todos os comandos
(instruções) novamente, mas se a resposta for 'N' (não), o algoritmo deve ser
finalizado escrevendo a mensagem 'Fim dos Cálculos'.
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 76
Aula 7
MODULARIZAÇÃO DE ALGORITMOS
Objetivos da aula
Conteúdos da aula
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 77
1 MODULARIZAÇÃO
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 78
pelo usuário. Um subalgoritmo pode ser chamado pelo algoritmo principal ou por
outros subalgoritmos que compõem o programa. Quando ocorre a chamada ao
subalgoritmo, as instruções contidas serão executadas e, após sua execução, o
processamento do programa retornará para o ponto de chamada.
Algumas características de um algoritmo refletem a abordagem de
modularização:
• Confiabilidade: pela divisão do problema em pequenas partes simples,
aumenta a possibilidade da solução correta;
• Legibilidade: o programa é fácil de ser lido e entendido por um programador
de nível médio;
• Facilidade de manutenção: o programa é fácil de ser modificado. Quando
houver necessidade de mudança, a alteração será facilmente implementada.
Na verdade, apenas pequenas partes receberão modificações;
• Flexibilidade: o programa é fácil de ser reutilizado.
Por exemplo:
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 79
2 MÓDULOS
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 81
3 FUNÇÕES
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 82
4 PASSAGEM DE PARÂMETROS
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 83
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 84
SÍNTESE
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 85
EXERCÍCIOS PROPOSTOS
Algoritmos
SOCIESC – Sociedade Educacional de Santa Catarina 86
REFERÊNCIAS
LOGICA DE PROGRAMAÇAO
A CONSTRUÇÃO DE ALGORITMOS E ESTRUTURA DE DADOS
Autor: FORBELLONE, A. e EBERSPACHER, H.
Editora: MAKRON
LÓGICA DE PROGRAMAÇÃO
Autor: FORBELLONE, ANDRE LUIZ
Editora: PRENTICE HALL BRASIL
LÓGICA DE PROGRAMAÇÃO
Autor: XAVIER, GLEY FABIANO CARDOSO
Editora: SENAC SÃO PAULO
LÓGICA DE PROGRAMAÇÃO
Autores: BERG, ALEXANDRE CRUZ e FIGUEIRO, JOICE PAVEK
Editora: ULBRA
Algoritmos