34
UDESC - Prof. Juliano Mai a 1 Algoritmos

UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

Embed Size (px)

Citation preview

Page 1: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 1

Algoritmos

Page 2: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 2

Índice

Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação de

Algoritmos

Page 3: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 3

IntroduçãoSeção 1

Definição Algoritmos Características Algoritmos Definição Programa

Page 4: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 4

Uma Receita de bolo! Misture os ingredientes Unte a forma com manteiga Despeje a mistura na forma Se forno convencional, asse por 45

minutos em temperatura de 180 graus

Se forno microondas, asse por 30 minutos em temperatura alta

Retire a forma do forno

Page 5: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 5

Conceitos comuns

“Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico”

“Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema”

Page 6: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 6

Conceitos comuns

“Seqüência ordenada de passos que deve ser seguida para a realização de uma tarefa, garantindo a sua repetibilidade.”

Page 7: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 7

Características de um Algoritmo

Ter fim Não dar margem à dupla

interpretação (não ambíguo) Capacidade de receber dado(s) de

entrada do mundo exterior Poder gerar informações de saída

para o mundo externo ao do ambiente do algoritmo

Page 8: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 8

Programa

Um programa de computador nada mais é que um algoritmo escrito numa forma compreensível pelo computador.

Page 9: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 9

Estruturas de ControleSeção 2

Estrutura Seqüencial Estruturas de Seleção Estruturas de Repetição

Page 10: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 10

Estrutura Seqüencial Esta estrutura representa a

seqüência de execução dos comandos de um algoritmo:

Comando 1Comando 2 ::Comando N

Page 11: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 11

Estruturas de Seleção Estas estruturas subordinam a

execução de um comando, ou bloco de comandos, à veracidade ou não de uma condição lógico relacional.

Se <condição> ::Senão ::Fim_Se

Page 12: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 12

Estruturas de Repetição Estas estruturas permitem a

repetição de um comando, ou bloco de comandos, um número determinado de vezes ou tantas vezes quantas uma condição lógica permita, são elas:ParaEnquantoFaça Enquanto

Page 13: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 13

Estrutura Para

Nesta estrutura a repetição acontece um número determinado de vezes, de forma automática.

Para contador = 1 Até N ::Fim_Para

Page 14: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 14

Estrutura Enquanto

Nesta estrutura a repetição acontece enquanto uma condição lógica relacionada for verdadeira, após a verificação desta condição.

Enquanto <condição> ::Fim_Enquanto

Page 15: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 15

Estrutura Faça Enquanto

Nesta estrutura a repetição acontece enquanto uma condição lógica relacionada for verdadeira, antes da verificação desta condição.

Faça ::Enquanto <condição>

Page 16: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 16

Representação de AlgoritmosSeção 3

Descrição Narrativa Fluxograma Pseudocódigo

Page 17: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 17

Descrição Narrativa Representação de algoritmos

diretamente em linguagem natural, o português.

Cálculo da média de um aluno Obter notas da primeira e segunda provas Calcular a média aritmética entre as duas

provas Se a média for maior que 7, o aluno foi

aprovado, senão ele foi reprovado

Page 18: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 18

Desvantagens

Sujeito a más interpretações, ambigüidades e imprecisões:

Maria toma banho porque sua mãe disse ela traga a toalha.

Maria toma banho porque sua. Mãe, disse ela, traga a toalha.

Page 19: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 19

Desvantagens

Page 20: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 20

Exercício Proposto

Crie um algoritmo em descrição narrativa com o objetivo de trocar um pneu de carro. Seja detalhista!

Page 21: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 21

Fluxograma

Representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos.

Page 22: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 22

Símbolos de representação

Início e final do fluxograma

Operação de entrada de dados

Operação de saída de dados

Operação de atribuição e controle subalgoritmo

Decisão

Page 23: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 23

Exemplo

Page 24: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 24

Conceito de variável

Nota1, Nota2 e média são variáveis.

Variável: entidade destinada a armazenar (espaço de memória) uma informação.

Page 25: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 25

Vantagens e Desvantagens

Padrão mundial Figuras representam melhor que

palavras Representação conhecida e

reconhecida

Trabalhoso e complicado a medida que o algoritmo cresce

Page 26: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 26

Exercício Exemplo

Faça um algoritmo que escreva 100 vezes o texto “Não vou fazer mais bagunça”, utilizando um comando de repetição.

Page 27: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 27

Exercício Exemplo

Faça um algoritmo (representação fluxograma) que leia uma lista de números inteiros positivos terminada pelo número 0 (zero). Ao final, o algoritmo deve mostrar a média aritmética de todos os números lidos (excluindo o zero).

Page 28: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 28

Pseudocódigo

Representação de algoritmos através de uma pseudolinguagem de programação, cujos comandos são em português.

Page 29: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 29

Exemplo Algoritmo Media-AlunoInício Var nota1, nota2, media Leia nota1 e nota2 media = (nota1 + nota2) / 2 Se media >= 7 Então Escreva “APROVADO” Senão Escreva “REPROVADO” Fim_SeFim

Page 30: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 30

Variáveis e Comandos Comandos:Início, Var, Leia, Se ... Então ... Senão ... Fim_se,

Escreva, Fim. Variáveis: nota1, nota2, media

Page 31: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 31

Operadores Operadores aritméticos

+, -, *, /, %, ** Operadores relacionais

>, >=, <, <=, ==, != Atenção: = representa uma atribuição e não uma

comparação. Operadores lógicos

|| (OU), && (E), ! (NÃO)

Page 32: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 32

Vantagens e Desvantagens

Usa o português como base Pode-se definir quais e como os

dados serão estruturados Rápida codificação do algoritmo

Não padronizado

Page 33: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 33

Exercício Num frigorífico existem 90 bois.

Cada boi traz preso em seu pescoço um cartão contendo seu número de identificação e seu peso. Faça um algoritmo (representação pseudocódigo) que escreva o número e o peso do boi mais gordo e do boi mais magro (supondo que não haja empates).

Page 34: UDESC - Prof. Juliano Maia1 Algoritmos. UDESC - Prof. Juliano Maia2 Índice Seção 1 – Introdução Seção 2 – Estruturas de Controle Seção 3 – Representação

UDESC - Prof. Juliano Maia 34

Exercício Proposto

Faça um algoritmo que calcule a multiplicação de dois números inteiros sem utilizar o operador “*”. Utilize apenas o operador “+”