algoritmos e programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_159162... · norma...

33
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. Martins [email protected] Algoritmos e Programação

Upload: duongdat

Post on 15-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

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

Algoritmos

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

Formas de Representação dos Algoritmos

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

Atividades Algoritmos

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.

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

• 11. Faça a interpretação do Diagrama de Bloco (ERROS):

Fonte: Internet.