1) O documento apresenta o conteúdo programático de uma disciplina de algoritmos e programação, com definições de conceitos como algoritmo, variáveis e operadores.
2) São apresentados exemplos de algoritmos, qualidades desejáveis em algoritmos e estratégias para construção de algoritmos.
3) Também são definidos os tipos de dados, operadores e variáveis que podem ser utilizados na construção de algoritmos.
2. Ementa
Desenvolver algoritmos por meio de divisão
modular e refinamentos sucessivos. Interpretar
pseudocódigos, algoritmos e outras
especificações para codificar programas. Avaliar
resultados de testes dos programas
desenvolvidos. Integrar módulos desenvolvidos
separadamente.
2
3. Objetivos
Geral
Capacitar o aluno para o desenvolvimento de soluções de
problemas usando técnicas estruturadas de programação,
algoritmos e estruturas estáticas de dados.
Específicos
Utilizar modelos, pseudocódigos e ferramentas na
representação da solução de problemas.
Redigir instruções de uso dos programas implementados.
Utilizar tipos de dados básicos e operadores aritméticos,
lógicos e relacionais.
Utilizar instruções de seleção para escolher entre ações
alternativas.
Utilizar estruturas de repetição para executar instruções em
um programa repetidamente. Implementar subalgoritmos.
3
6. Conteúdo Programático
P1
Introdução
Tipos de algoritmos
Conceito
Descrição geral dos algoritmos
LÓGICA DE PROGRAMAÇÃO
Princípios de resolução de problemas
Tipos de variáveis
Uso de Constantes
Fórmulas matemáticas
Formas de representação gráfica
Instruções básicas
TOMADAS DE DECISÃO
Desvio condicional simples
Desvio condicional composto
Desvio condicional encadeados
6
7. Conteúdo Programático
P2
LAÇOS DE REPETIÇÃO
Looping com teste lógico no início
Looping com teste lógico no fim
Looping com variável de controle
7
11. Algoritmo
Um algoritmo é uma
sequência de instruções
finita e ordenada de
forma lógica para a
resolução de uma
determinada tarefa ou
problema.
11
São exemplos de
algoritmos instruções de
montagem, receitas,
manuais de uso, etc.
12. Algoritmo
Um algoritmo não é a solução do problema, pois,
se assim fosse, cada problema teria um único
algoritmo;
Um algoritmo é um caminho para a solução de
um problema.
Em geral, existem muitos (senão infinitos)
caminhos que levam a uma solução satisfatória.
12
14. Exemplo 2
Algoritmo para fritar um ovo
1. Colocar um ovo na frigideira
2. Esperar o ovo ficar frito
3. Remover o ovo da frigideira
14
15. Exemplo 3
Algoritmo para fritar um ovo
1. Retirar um ovo da geladeira
2. Colocar a frigideira no fogo
3. Colocar óleo
4. Esperar até o óleo ficar quente
5. Quebrar o ovo separando a casca
6. Colocar o conteúdo do ovo na frigideira
7. Esperar um minuto
8. Retirar o ovo da frigideira
9. Apagar o fogo
15
16. Exemplo 4
Algoritmo Lavar a cabeça
1 – Início
2 – Molhe o cabelo
3 – Coloque Shampoo
4 – Faça Massagem
5 – Enxágüe
6 – Repita o Processo
7 – Fim
16
17. Exemplo 4
Algoritmo Lavar a cabeça
1 – Início
2 – Molhe o cabelo
3 – Coloque Shampoo
4 – Faça Massagem
5 – Enxágue
6 – Repita o Processo
7 – Fim
1) É a descrição de um
procedimento rotineiro;
2) Tem um INÍCIO e um FIM
claros;
3) A descrição é feita passo
a passo, de maneira bem
definida;
4) Há imperfeições: 4.1)
Não especifica a
quantidade de shampoo;
4.2) Não especifica quantas
vezes o processo deve ser
repetido;
4.3) Não especifica qual o
processo ou qual passo que
deve ser repetido.
17
18. Exemplo 4
Algoritmo Lavar a cabeça
18
1 – Início
2 – Molhe o Cabelo
3 – Repita 2 (duas) vezes:
3.1 – Coloque a quantidade correspondente
a uma tampa de shampoo
3.2 – Faça massagem durante 1 minuto
3.3 – Enxágüe
4 – Fim
19. Qualidades de um bom
Algoritmo
Definição Perfeita
Deve descrever exatamente quais são as instruções que
devem ser executadas e em que seqüência. Deve ser
tornado explícito o maior número possível de
informações, pois a falta de alguma informação pode
levar a uma interpretação errada do algoritmo;
Ausência de Ambigüidade
Não deve deixar dúvidas sobre o que deve ser feito. A
ambigüidade acerca do que deve ser feito também pode
levar a uma interpretação errada do algoritmo;
19
20. Qualidades de um bom
Algoritmo
Eficácia
Conseguir resolver o problema em qualquer situação.
Todas as situações de exceção que possam alterar o
comportamento do algoritmo devem ser especificadas e
tratadas;
Eficiência
Resolver o problema com o mínimo de recursos.
Sempre se deve buscar aquele algoritmo que, dentre os
diversos algoritmos que resolvam um mesmo problema,
utilize a menor quantidade de recursos.
20
21. Estratégias na Construção
de Algoritmos
Especifique o problema claramente e entenda-o
completamente;
Explicite todos os detalhes supérfluos;
Entre no problema (envolva-se totalmente com o
problema);
Use todas as informações disponíveis;
Decomponha o problema (Top-Down);
Use o sentido inverso, se necessário (Bottom-Up).
21
23. Como Construir
Algoritmos
Análise Preliminar
Solução
Execute o algoritmo desenvolvido com dados para os quais o
resultado seja conhecido. O ideal é que o universo dos dados
tenha todas as combinações possíveis. Note que a qualidade de
um algoritmo pode ser limitada por fatores como tempo para a
sua confecção e recursos disponíveis.
Alteração
Desenvolva um algoritmo para resolver o problema.
Teste de Qualidade
Entenda o problema com a maior precisão possível, identifique os
dados; identifique os resultados desejados.
Se o resultado do teste de qualidade não for satisfatório, altere o
algoritmo e submeta-o a um novo teste de qualidade.
Produto Final
O algoritmo concluído e testado, pronto para ser aplicado.
23
24. Portugol
A Linguagem Estruturada é a forma que tem sido
mais utilizada para a elaboração de algoritmos.
É a forma que mais se assemelha com a forma
em que os programas são escritos nas linguagens
de programação.
24
27. Operadores Lógicos
Operador
Simbolo Significado
Multiplicação
lógica
E
Resulta VERDADEIRO se ambas
as partes forem verdadeiras.
Adição lógica
OU
Resulta VERDADEIRO se uma
das partes é verdadeira.
Negação
NÃO
Nega uma afirmação,
invertendo o seu valor lógico:
se for
VERDADEIRO torna-se FALSO, se
for FALSO torna-se
VERDADEIRO.
27
32. Tabelas de Prioridade –
Operadores Lógicos
(2>3) ou (3<2) e (2<3) //resultado seria Falso
(2>3) e (3<2) ou (2<3) //resultado seria Verdadeiro
32
33. Prioridade entre
categorias de operadores
Atenção:
O software VisuAlg não possui relacionamento de categorias.
2*5>3 ou 5+1<2 e 2<7-2 // resulta em erro.
(2*5>3) ou (5+1<2) e (2<7-2) // certo seria assim.
33
34. Linearização de
Expressões
Para a construção de algoritmos que realizam
cálculo matemáticos, todas as expressões
aritméticas devem ser linearizadas, ou seja,
colocadas em linhas, devendo também ser feito
o mapeamento dos operadores da aritmética
tradicional para os do Português Estruturado.
34
36. Regras no nome das
variáveis
1.
nomes de variáveis não podem ser iguais a
palavras reservadas;
2.
nomes de variáveis devem possuir como primeiro
caractere uma letra ou sublinhado '_' (os outros
caracteres podem ser letras, números e
sublinhado);
3.
nomes de variáveis devem ter no máximo 127
caracteres;
4.
Nomes de variáveis não podem conter espaços
em branco;
5.
na sintaxe do Português Estruturado, não há
diferença entre letras maiúsculas de minúsculas
(NOME é o mesmo que noMe).
36