View
663
Download
5
Category
Preview:
DESCRIPTION
Slide de Introdução à Disciplina de Algoritmo 1 Nível Médio Integrado Instituto Federal de Mato Grosso do Sul - IFMS Ponta Porã - MS Professores Eder S. Villalba e Ricardo Lins do Nascimento
Citation preview
Algoritmo 1
Semana 01INTRODUÇÃO – DEFINIÇÃO - CONCEITOS
1
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
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
Avaliação
Provas Bimestrais – Peso 8
Trabalhos Bimestrais – Peso 2
4
Conteúdo ProgramáticoCONTEÚDO PROPOSTO POR AVALIAÇÃO
5
Conteúdo Programático
P1 Introdução
Conceito
Tipos de algoritmos
Descrição geral dos algoritmos
LÓGICA DE PROGRAMAÇÃO
Formas de representação gráfica
Princípios de resolução de problemas
Tipos de variáveis
Uso de Constantes
Fórmulas matemáticas
Instruções básicas
TOMADAS DE DECISÃO
Desvio condicional simples
Desvio condicional composto
Desvio condicional encadeados
6
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
Conteúdo Programático
P3
MATRIZES
Matrizes de uma dimensão ou vetores
Matrizes com mais de uma dimensão
8
Conteúdo Programático
P4
Modularização de programas
Procedimentos e funções
Passagem de parâmetros
9
AlgoritmoDEFINIÇÕES
10
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.
São exemplos de
algoritmos instruções de
montagem, receitas,
manuais de uso, etc.
11
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
Exemplo 1 13
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
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
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
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
Exemplo 4
Algoritmo Lavar a cabeça
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
18
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
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
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
Como Construir
Algoritmos
Problema
Análise Preliminar
Solução
Teste de Qualidade Alteração
Produto Final
22
Como Construir
Algoritmos Análise Preliminar
Entenda o problema com a maior precisão possível, identifique os dados; identifique os resultados desejados.
Solução
Desenvolva um algoritmo para resolver o problema.
Teste de Qualidade
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
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
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
Operadores Aritméticos
Operação Operador Exemplo
Soma + 1+1=2
Subtração - 1-1=0
Multiplicação * 2*2=4
Divisão Real / 7/2=3.5
Divisão de Inteiros \ 7\2=3
Resto da Divisão
Inteira
% 7%2=1
Potenciação ^ 22 = 2^2.
25
Operadores Relacionais
Operador Simbolo
Menor <
Menor ou Igual <=
Maior >
Maior ou Igual >=
Diferente <>
Igual =
Os operadores relacionais retornam valores lógicos
(Verdadeiro ou Falso)
26
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
Operadores Lógicos –
Tabela Verdade
28
Exemplo – Operadores
Relacionais
2+5>4 resulta VERDADEIRO
3<>3 resulta FALSO
29
Operadores Lógicos –
Exemplo
(2+5>4) e (3<>3) resulta FALSO,
pois VERDADEIRO e FALSO resulta FALSO.
30
Prioridades de OperadoresOperador Aritmético Prioridade
Exponenciação 3
Multiplicação 2
Divisão 2
Adição 1
Subtração 1
Operador Lógico Prioridade
E 3
OU 2
NÃO 1
Operador Prioridade
Aritméticos 3
Relacionais 2
Lógicos 1
(2 + 2)/2 resulta 2
2 + 2/2 resulta 3
31
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
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
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
Variáveis
Variável
Conteúdo
NomeTipo
35
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
Tipos de Dados
Tipos
Literal Lógico
Numéricos
37
Recommended