ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA
UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP
FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS
Prof. Dr. Érico Fernando O. [email protected]
Algoritmos e Programação
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
• DEFINIÇÃO DE ALGORÍTIMO
Algoritmo será tratado como uma sequência finita, ordenada e não ambígua de passos para solucionar determinado problema ou realizar uma tarefa.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
ALGORITMO PARA FRITAR UM OVO1. Retire o ovo da geladeira.
2. Coloque a frigideira no fogo.
3. Coloque óleo na frigideira.
4. Quebre ovo, separando a casca.
5. Ponha a clara e a gema na frigideira.
6. Espere um minuto.
7. Apague o fogo.
8. Retire o ovo da frigideira.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
• Todo algoritmo, seja ele computacional ou não, recebe uma entrada,processa-a e gera uma saída segundo seu conjunto de passos.
• Estrutura básica:• Entradas: Deve possuir zero ou mais entradas. Estas são insumos ou quantidades
que são processados pelos algoritmos durante a execução de seus passos.• Processamento: ações sobre os dados (variáveis e/ou constantes).• Saídas: Deve possuir uma ou mais saídas. Elas representam o resultado do
trabalhado realizado pelos algoritmos
• Características gerais:• Definição: passos bem definidos, objetivando a clareza e evitando ambiguidades.• Finitude: Deve chegar ao seu fim após um número de passos.• Efetividade: Deve ser efetivo, ou seja, suas operações devem ser básicas o suficiente
para que possam, em princípio, serem executadas de maneira exata e em um tempofinito.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
As formas mais comumente utilizadas para representar algoritmos :
• Descrição narrativa / Linguagem Natural
• Diagrama de Bloco / Fluxograma
• Linguagem Algorítmica / Pseudocódigo / Pseudolinguagem
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Descrição Narrativa
Os algoritmos são expressos em linguagem natural (português, inglês,francês, espanhol, etc).
• Características:• A linguagem natural está bem distante da linguagem utilizada pelos computadores.
Logo, a tradução de uma para a outra se torna uma atividade bastante dispendiosa.
• Mais propensas a ambiguidades. Muitas vezes uma palavra pode ter váriossignificados, dependendo do contexto no qual é utilizada.
• É bem mais fácil elaborar um algoritmo por meio de uma linguagem com a qual játemos familiaridade.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Descrição Narrativa
Suponha que você dispõe de duasvasilhas de nove e quatro litrosrespectivamente. Como elas nãopossuem marcação, não é possível termedidas intermediárias sobre o volumeocupado. O problema consiste, então,em elaborar uma sequência de passos,por meio da utilização das vasilhas denove e quatro litros, a fim de encheruma terceira vasilha com seis litros deágua sem transbordá-la.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
ALGORITMO REPRESENTANDO EM DESCRIÇÃO NARRATIVA:1. Encha a vasilha de nove litros.2. Usando a vasilha de nove litros, encha a de quatro litros.3. Coloque a quantidade que sobrou (cinco litros) na terceira vasilha (v3 = 5).4. Esvazie a vasilha de quatro litros.5. Encha novamente a vasilha de nove litros.6. Usando a vasilha de nove litros, encha a de quatro litros.7. Esvazie a de quatro litros.8. Usando a sobra da vasilha de nove litros (cinco litros), encha novamente a dequatro litros.9. Coloque a sobra da de nove litros (agora um litro) na terceira vasilha(v3=5+1=6).
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Diagrama de Bloco / FluxogramaUtiliza formas geométricas padronizadas para descrever os passos a serem executados pelos algoritmos.
Norma ISO 5807 - 1985 (E) Proposta para Padronização Formal da Representação Gráfica da Linha de RaciocínioLógico utilizada no Desenvolvimento da Programação de Computadores
R$ 382,38
http://www.iso.org/iso/catalogue_detail.htm?csnumber=11955
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Diagrama de Bloco / Fluxograma
• Características:• Facilidade de compreensão. Descrições de algoritmos mediante formas
gráficas são mais facilmente compreendidas do que descrições que envolvemapenas textos.
• Possuem um padrão mundial no que se refere à sua simbologia, tornando suautilização independente das peculiaridades das linguagens naturais.
• é possível perceber que os fluxogramas tendem a crescer bastante quandodescrevem algoritmos constituídos de muitos passos, o que dificulta tanto suaconstrução como sua visualização.
• Há uma limitação no seu poder de expressão, se comparado com a descriçãonarrativa (exige abstração).
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Diagrama de Bloco / Fluxograma
Norma ISO 5807 - 1985 (E)
http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf
Diagrama de Bloco / Fluxograma
Norma ISO 5807 - 1985 (E)
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Diagrama de Bloco / Fluxograma
Norma ISO 5807 - 1985 (E)
http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Diagrama de Bloco / Fluxograma
Norma ISO 5807 - 1985 (E)
http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Diagrama de Bloco / Fluxograma
Norma ISO 5807 - 1985 (E)
http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Diagrama de Bloco / Fluxograma
Norma ISO 5807 - 1985 (E)
http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Gabaritos para o desenvolvimento de diagramas de blocos. Ferramenta Formas do PowerPoint
Diagrama de Bloco / Fluxograma
Déjà vu?
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Diagrama de Bloco / Fluxograma
Para as aulas:
Processamento
Ponto de decisão
Entrada de Dadosou
ouSaída de Dados
Início/Fim
Sentido do Fluxo
ConectorEntrada genéricaEntrada manual
Saída em documento Saída em Cartões
Exibição em tela
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Linguagem Algorítmica / Pseudocódigo / Pseudolinguagem
Consiste no emprego de uma linguagem intermediária entre alinguagem natural e uma linguagem de programação.
• Características:• Esse meio termo resulta uma linguagem que se aproxima das construções de
uma linguagem de programação, sem exigir, no entanto, rigidez na definiçãodas regras para utilização de suas instruções.
• Geralmente, essa forma de representação é derivada de alguma linguagem deprogramação;
• Grande facilidade de transcrição para uma linguagem de programação.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Linguagem Algorítmica / Pseudocódigo / Pseudolinguagem
Exemplo de pseudocódigo: Portugol
• O Portugol é uma pseudolinguagem de programação, uma simbiose de Português, Algol e Pascal com a proposta de ser independente da linguagem nativa (ou seja, existe em japonês, javanês, russo...).
Exemplo de ferramenta para confecção de pseudocódigo em Portugol:
http://www.dei.estt.ipt.pt/portugol/ Estrutura PortugolIDE
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Linguagem Algorítmica / Pseudocódigo / Pseudolinguagem
Exemplo pseudocódigo.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
Obter as três notas das provas do alunoCalcular a média aritmética das três notasSe a média for maior ou igual a 5, escrever “aprovado”Caso contrário, escrever “reprovado”
Início
real: nota1, nota2, nota3
Fim
media (nota1 + nota2 + nota3)/3.)
media >= 5
s
n
"Aprovado" "Reprovado"
iniciovariável real nota1 , nota2 , nota3 , medialer nota1 , nota2 , nota3media <- ( nota1 + nota2 + nota3 ) / 3.se ( media >= 5 ) então
escrever "aluno aprovado"senão
escrever "aluno reprovado"fimse
fim
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
• 1. Explique, com suas próprias palavras, o que é algoritmo.
• 2. Rotineiramente, usamos algoritmos para as mais diversas tarefas.Cite três algoritmos que podemos encontrar no dia a dia.
• 3. Em que consiste a característica de efetividade de um algoritmo?
• 4. Suponha que o quarto passo de um determinado algoritmo sempreordene que a execução retorne ao primeiro. Qual característica nãoestá sendo satisfeita por esse algoritmo?
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
• 5. Faça a interpretação do pseudocódigo:
Fonte: Internet.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
• 6. Faça a interpretação do pseudocódigo:
Fonte: Internet.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
• 7. Faça a interpretação do pseudocódigo:
Fonte: Internet.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
• 8. Faça a interpretação do Diagrama de Bloco:
Fonte: Internet.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
• 9. Faça a interpretação do Diagrama de Bloco(?):
Diagrama de Chapin.
Fonte: Internet.
Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins
• 10. Faça a interpretação do Diagrama de Bloco (ERROS):
Fonte: Internet.