algoritmo 01 - semana 01
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 NascimentoTRANSCRIPT
![Page 1: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/1.jpg)
Algoritmo 1
Semana 01INTRODUÇÃO – DEFINIÇÃO - CONCEITOS
1
![Page 2: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/2.jpg)
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
![Page 3: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/3.jpg)
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
![Page 4: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/4.jpg)
Avaliação
Provas Bimestrais – Peso 8
Trabalhos Bimestrais – Peso 2
4
![Page 5: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/5.jpg)
Conteúdo ProgramáticoCONTEÚDO PROPOSTO POR AVALIAÇÃO
5
![Page 6: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/6.jpg)
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
![Page 7: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/7.jpg)
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
![Page 8: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/8.jpg)
Conteúdo Programático
P3
MATRIZES
Matrizes de uma dimensão ou vetores
Matrizes com mais de uma dimensão
8
![Page 9: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/9.jpg)
Conteúdo Programático
P4
Modularização de programas
Procedimentos e funções
Passagem de parâmetros
9
![Page 10: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/10.jpg)
AlgoritmoDEFINIÇÕES
10
![Page 11: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/11.jpg)
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
![Page 12: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/12.jpg)
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
![Page 13: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/13.jpg)
Exemplo 1 13
![Page 14: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/14.jpg)
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
![Page 15: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/15.jpg)
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
![Page 16: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/16.jpg)
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
![Page 17: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/17.jpg)
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
![Page 18: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/18.jpg)
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
![Page 19: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/19.jpg)
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
![Page 20: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/20.jpg)
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
![Page 21: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/21.jpg)
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
![Page 22: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/22.jpg)
Como Construir
Algoritmos
Problema
Análise Preliminar
Solução
Teste de Qualidade Alteração
Produto Final
22
![Page 23: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/23.jpg)
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
![Page 24: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/24.jpg)
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
![Page 25: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/25.jpg)
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
![Page 26: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/26.jpg)
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
![Page 27: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/27.jpg)
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
![Page 28: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/28.jpg)
Operadores Lógicos –
Tabela Verdade
28
![Page 29: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/29.jpg)
Exemplo – Operadores
Relacionais
2+5>4 resulta VERDADEIRO
3<>3 resulta FALSO
29
![Page 30: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/30.jpg)
Operadores Lógicos –
Exemplo
(2+5>4) e (3<>3) resulta FALSO,
pois VERDADEIRO e FALSO resulta FALSO.
30
![Page 31: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/31.jpg)
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
![Page 32: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/32.jpg)
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
![Page 33: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/33.jpg)
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
![Page 34: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/34.jpg)
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
![Page 35: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/35.jpg)
Variáveis
Variável
Conteúdo
NomeTipo
35
![Page 36: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/36.jpg)
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
![Page 37: Algoritmo 01 - Semana 01](https://reader034.vdocuments.net/reader034/viewer/2022042607/559e62f21a28abab6d8b47e2/html5/thumbnails/37.jpg)
Tipos de Dados
Tipos
Literal Lógico
Numéricos
37