31
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 CURSO DE ENGENHARIA ELÉTRICA Prof. Dr. Érico Fernando O. Martins [email protected] Algoritmos e Programação

Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

Embed Size (px)

Citation preview

Page 1: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

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ÓGICASCURSO DE ENGENHARIA ELÉTRICA

Prof. Dr. Érico Fernando O. [email protected]

Algoritmos e Programação

Page 2: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Algoritmos

Page 3: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. 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.

Page 4: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. 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.

Page 5: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Características de um algoritmo

• Todo algoritmo, seja ele computacional ou não, recebe uma entrada,processa-a e gera uma saída segundo seu conjunto de passos.

• Características gerais de algoritmos computacionais:• Definição: passos bem definidos, objetivando a clareza e evitando ambiguidades.• Finitude: Deve chegar ao seu fim após um número finito 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.

• Entradas: Deve possuir zero ou mais entradas. Estas são insumos ou quantidadesque são processados pelos algoritmos durante a execução de seus passos.

• Saídas: Deve possuir uma ou mais saídas. Elas representam o resultado dotrabalhado realizado pelos algoritmos

Page 6: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Formas de Representação dos Algoritmos

Page 7: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

As formas mais comumente utilizadas para representar algoritmos :

• Descrição narrativa

• Fluxograma / Diagrama de Bloco

• Linguagem Algorítmica / Pseudocódigo / Pseudolinguagem

Page 8: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. 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 atividadebastante dispendiosa.

• Mais propensas a ambiguidades. Muitas vezes uma palavra pode ter váriossignificados, dependendo do contexto no qual são utilizadas.

• É bem mais fácil elaborar um algoritmo por meio de uma linguagem com aqual já temos uma certa familiaridade, do que através de linguagens que nãosão utilizadas com frequência no dia a dia.

Page 9: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. 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 ovolume ocupado. O problema consiste,então, em elaborar uma sequência depassos, por meio da utilização dasvasilhas de nove e quatro litros, a fimde encher uma terceira vasilha comseis litros de água.

Page 10: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

ALGORITMO PARA ENCHER VASILHAS REPRESENTADO 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 de nove litros (cinco litros), encha novamente a de quatrolitros.9. Coloque a sobra da de nove litros (agora um litro) na terceira vasilha(v3=5+1=6).

Page 11: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Fluxograma / Diagrama de BlocoUtiliza 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

Page 12: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Fluxograma / Diagrama de Bloco

• Características:• Facilidade de compreendê-los. 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).

Page 13: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Fluxograma / Diagrama de Bloco

Norma ISO 5807 - 1985 (E)

http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf

Page 14: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf

Fluxograma / Diagrama de Bloco

Norma ISO 5807 - 1985 (E)

Page 15: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Fluxograma / Diagrama de Bloco

Norma ISO 5807 - 1985 (E)

http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf

Page 16: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Fluxograma / Diagrama de Bloco

Norma ISO 5807 - 1985 (E)

http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf

Page 17: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Fluxograma / Diagrama de Bloco

Norma ISO 5807 - 1985 (E)

http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf

Page 18: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Fluxograma / Diagrama de Bloco

Norma ISO 5807 - 1985 (E)

http://www.cantareira.br/thesis2/ed_1/1_navarro.pdf

Page 19: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Gabaritos para o desenvolvimento de diagramas de blocos. Ferramenta Formas do PowerPoint

Fluxograma / Diagrama de Bloco

Déjà vu?

Page 20: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Fluxograma / Diagrama de Bloco

Para as aulas:

Processamento

Ponto de decisão

Entrada de Dadosou

ouSaída de Dados

Início/Fim

Sentido do Fluxo

Conector

Entrada genéricaEntrada manual

Saída em documento Saída em Cartões

Page 21: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. 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 de algoritmos é uma versãoreduzida de linguagens de alto nível como C e Pascal.

• Grande facilidade de transcrição para uma linguagem de programação.

Page 22: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Linguagem Algorítmica / Pseudocódigo / Pseudolinguagem

Exemplo pseudocódigo.

Page 23: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. 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, criada originalmente em inglês, 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

Page 24: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Linguagem Algorítmica / Pseudocódigo / Pseudolinguagem

PortugolIDE

PortugolIDE exemplo média versão 1.0 PortugolIDE exemplo média versão 2.0

Page 25: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Page 26: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

Atividades Algoritmos

Page 27: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. 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?

Page 28: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

• 5. Faça a interpretação do pseudocódigo:

Page 29: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

• 6. Faça a interpretação do Diagrama de Bloco:

Page 30: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

• 7. Explorar a Ajuda do PortugolIDE e verificar os seguintes itens:• a) Tipos de dados

• b) Entrada e Saída

• c) Operadores

Page 31: Algoritmos e Programação - UNEMAT – Campus Sinop ...sinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_148932... · Norma ISO 5807 - 1985 (E) ... •Possuem um padrão mundial

CURSO DE ENGENHARIA ELÉTRICAAlgoritmos e Programação

Prof. Dr. Érico Fernando O. Martins

• 8. Desenvolva no PortugolIDE algoritmos para:• a) Somar dois valores reais fornecidos pelo usuário pelo usuário e

apresentar o resultado em tela;

• b) Receba como entrada a base e a altura de um triângulo, calculee exiba sua área.

• c) Somar dois valores inteiros previamente definidos e armazenados emx e y. Tendo x o valor 10 e y o valor 5;