40
Introdução aos Algoritmos 16/02/14 1 © P C F de Oliveira 2014 Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

  • Upload
    lynhi

  • View
    235

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

Introdução aos Algoritmos

16/02/14   1  ©  P  C  F  de  Oliveira  2014  

Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Page 2: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

Unidade 01 Introdução

16/02/14   2  ©  P  C  F  de  Oliveira  2014  

Seção 1.1 Fundamentos

Page 3: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

²  Lógica ²  Conjunto de estudos, que têm por fim determinar

categorias racionais válidas para a apreensão da realidade concebida como uma totalidade em permanente transformação

²  Conjunto de regras e princípios que orientam, implícita ou explicitamente, o desenvolvimento de uma argumentação ou de um raciocínio, a resolução de um problema, etc.

16/02/14   3  ©  P  C  F  de  Oliveira  2014  

Unidade 01 Introdução

Page 4: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

² Lógica ² Coerência de raciocínio, de ideias ² Sequência coerente, regular e

necessária de acontecimentos, de coisas

16/02/14   4  ©  P  C  F  de  Oliveira  2014  

Unidade 01 Introdução

Page 5: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

²  Lógica (exemplos)

Ex. 1: “Eu preciso de um caderno que está dentro da minha pasta.” Primeiro abro minha pasta Depois pego o caderno

Ex. 2: João é mais velho que Pedro. Pedro é mais velho que José.

Logo, João é mais velho José. 16/02/14   5  ©  P  C  F  de  Oliveira  2014  

Unidade 01 Introdução

Page 6: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

² Origem da Palavra “algoritmo” ² Nome do matemático persa do século

9 chamado Abu Abdullah Muhammad bin Musa al-Khwarizmi

² Palavra foi traduzida do nome al-Khwarizmi para algoritmo no século 18 (latinização)

16/02/14   6  ©  P  C  F  de  Oliveira  2014  

Unidade 01 Introdução

Page 7: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

² Definições

“Sequencia finita de instruções usada frequentemente para cálculos e processamento de dados”

Wikipedia ”Um processo passo-a-passo de resolução de problemas, ou especificamente, um processo recursivo computacional estabelecido para resolver um problema em um número finito de etapas”

Answers.com “Um procedimento passo-a-passo para resolver um problema ou realizar algum fim especialmente por um computador”

Merriam Webster Dictionary

16/02/14   7  ©  P  C  F  de  Oliveira  2014  

Unidade 01 Introdução

Page 8: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

² Definições

“Sequencia finita de instruções usada frequentemente para cálculos e processamento de dados”

Wikipedia ”Um processo passo-a-passo de resolução de problemas, ou especificamente, um processo recursivo computacional estabelecido para resolver um problema em um número finito de etapas”

Answers.com “Um procedimento passo-a-passo para resolver um problema ou realizar algum fim especialmente por um computador”

Merriam Webster Dictionary

16/02/14   8  ©  P  C  F  de  Oliveira  2014  

Unidade 01 Introdução

Page 9: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

² Definições

“Sequencia finita de instruções usada frequentemente para cálculos e processamento de dados”

Wikipedia ”Um processo passo-a-passo de resolução de problemas, ou especificamente, um processo recursivo computacional estabelecido para resolver um problema em um número finito de etapas”

Answers.com “Um procedimento passo-a-passo para resolver um problema ou realizar algum fim especialmente por um computador”

Merriam Webster Dictionary

16/02/14   9  ©  P  C  F  de  Oliveira  2014  

Unidade 01 Introdução

Page 10: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

² Definições

“Sequencia finita de instruções usada frequentemente para cálculos e processamento de dados”

Wikipedia ”Um processo passo-a-passo de resolução de problemas, ou especificamente, um processo recursivo computacional estabelecido para resolver um problema em um número finito de etapas”

Answers.com “Um procedimento passo-a-passo para resolver um problema ou realizar algum fim especialmente por um computador”

Merriam Webster Dictionary

16/02/14   10  ©  P  C  F  de  Oliveira  2014  

Unidade 01 Introdução

Page 11: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   11  ©  P  C  F  de  Oliveira  2014  

Algoritmo (Exemplos) Problema: Cozinhar macarrão Algoritmo: Pegar uma panela

Colocar água na panela Por a panela (com água) no fogo Colocar azeite na água Colocar sal na água Quando ferver, colocar o macarrão Deixar cozinhando até estar no ponto

Unidade 01 Introdução

Page 12: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   12  ©  P  C  F  de  Oliveira  2014  

Problema: Calcular a área de um retângulo (Área = base * altura)

Algoritmo:

Conhecer (ler/obter) o valor da base do retângulo Conhecer (ler/obter) o valor da altura do retângulo Multiplicar o valor da base pelo valor da altura A área do retângulo é igual ao valor obtido

Unidade 01 Introdução

Page 13: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   13  ©  P  C  F  de  Oliveira  2014  

Problema: Calcular a média semestral

(MS = (P1 + P2) / 2) Algoritmo: Conhecer (ler/obter) a média da primeira prova (P1) Conhecer (ler/obter) a média da segunda prova (P2) Somar P1 e P2 Dividir o resultado da soma por 2 A média semestral é igual ao valor obtido

Unidade 01 Introdução

Page 14: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   14  ©  P  C  F  de  Oliveira  2014  

Seção 1.2 Fases da construção de algoritmos

Unidade 01 Introdução

Page 15: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   15  ©  P  C  F  de  Oliveira  2014  

² Fases da construção de algoritmos

Fase 2 Fase 3 Fase 4 Fase 1 Fase 5

Identificar os dados de saída�

Transformar dados de entrada em dados de saída�

Identificar as entradas do problema�

Compreender o problema�

Construir o algoritmo ou a sequência de passos �

Fase 6

Testar o algoritmo �

Unidade 01 Introdução

Page 16: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   16  ©  P  C  F  de  Oliveira  2014  

² Fases da construção de um algoritmo

Entrada Processamento Saída

Unidade 01 Introdução

Page 17: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   17  ©  P  C  F  de  Oliveira  2014  

Conhecer (ler/obter) o valor da base do retângulo

Conhecer (ler/obter) o valor da altura do retângulo

Multiplicar o valor da base pelo valor da altura

A área do retângulo é igual ao valor obtido

Entrada

Processamento

Saída

² Fases da construção de um algoritmo

Unidade 01 Introdução

Page 18: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   18  ©  P  C  F  de  Oliveira  2014  

² Formas de resolver um algoritmo ² Fluxograma ² Pseudocódigo

Unidade 01 Introdução

Page 19: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   19  ©  P  C  F  de  Oliveira  2014  

²  Fluxograma (Definição – Dicionário Houaiss) ²  Uma representação gráfica de um

procedimento, problema ou sistema, cujas etapas ou módulos são ilustrados de forma encadeada por meio de símbolos geométricos interconectados.

²  Um diagrama para representação de um algoritmo.

²  Diagrama de fluxo

Unidade 01 Introdução

Page 20: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   20  ©  P  C  F  de  Oliveira  2014  

²  Símbolos mais usados

Unidade 01 Introdução

Page 21: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   21  ©  P  C  F  de  Oliveira  2014  

²  Exemplos de fluxogramas

Unidade 01 Introdução

Page 22: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   22  ©  P  C  F  de  Oliveira  2014  

Unidade 01 Introdução

Page 23: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   23  ©  P  C  F  de  Oliveira  2014  

Unidade 01 Introdução

Page 24: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   24  ©  P  C  F  de  Oliveira  2014  

² Colocando tudo junto

Unidade 01 Introdução

Page 25: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   25  ©  P  C  F  de  Oliveira  2014  

Seção 1.3 Pseudocódigo – definição da linguagem

Unidade 01 Introdução

Page 26: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   26  ©  P  C  F  de  Oliveira  2014  

Formato do Pseudo-código algoritmo “nome do algoritmo” // Função: // Autor: // Data: // Seção de Declarações

var <declaração de variáveis> inicio // Seção de Comandos fimalgoritmo

Unidade 01 Introdução

Page 27: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   27  ©  P  C  F  de  Oliveira  2014  

Formato do Pseudo-código Nome do algoritmo

§ Deve ser representativo § Ex: “Calcula Area Triangulo”

Seção de Comandos § Deve conter instruções de entrada (leitura), processamento (somar, subtrair...) e saída (escrita) § Não deve conter acentuação § Ex: leia (base)

Unidade 01 Introdução

Page 28: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   28  ©  P  C  F  de  Oliveira  2014  

Exemplo 1: Considere o problema de calcular a área de um retângulo

algoritmo “Calcula Area Retangulo” inicio Obter o valor da base

Obter o valor da altura Multiplicar a base pela altura O valor obtido é a área do retângulo

fimalgoritmo

Unidade 01 Introdução

Page 29: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   29  ©  P  C  F  de  Oliveira  2014  

Constantes e Variáveis ² Uma constante recebe um único valor que é válido para toda a

execução do algoritmo. ² Uma variável pode receber valores diferentes com o passar do

tempo, mas apenas um único valor é armazenado nela, o valor antigo é desconsiderado.

² Uma variável é de determinado tipo. Nome de Variáveis (regras): Só pode conter caracteres alfanuméricos (letras ou números) Deve começar sempre com uma letra Não pode conter outros símbolos (só _ ) Pode ter até 30 caracteres

Unidade 01 Introdução

Page 30: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   30  ©  P  C  F  de  Oliveira  2014  

Tipos Primitivos Tipo Exemplos

inteiro 19

real 2.5

caractere “uma frase”

lógico verdadeiro / falso

Unidade 01 Introdução

Page 31: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   31  ©  P  C  F  de  Oliveira  2014  

algoritmo “teste_variaveis” var x : inteiro nome : caractere inicio // comandos fimalgoritmo

Unidade 01 Introdução

Page 32: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   32  ©  P  C  F  de  Oliveira  2014  

Seção de declaração começa com a palavra-chave var, e continua com as seguintes sintaxes:

<lista-de-variáveis> : <tipo-de-dado> <lista-de-variáveis> : vetor "["<lista-de-intervalos>"]" de <tipo-de-dado>

Unidade 01 Introdução

Page 33: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   33  ©  P  C  F  de  Oliveira  2014  

Seção de declaração Exemplos: var a : inteiro Valor1, Valor2: real vet: vetor [1..10] de real matriz: vetor [0..4,8..10] de inteiro nome_do_aluno: caractere sinalizador: logico

Unidade 01 Introdução

Page 34: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   34  ©  P  C  F  de  Oliveira  2014  

Operadores Aritméticos: + adição

- subtração

* multiplicação

/ divisão real

\ divisão inteira (só para operandos inteiros)

^ potenciação

% resto da divisão inteira (só para operandos inteiros)

Unidade 01 Introdução

Page 35: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   35  ©  P  C  F  de  Oliveira  2014  

Operadores Relacionais: = igual a <> diferente de > maior que < menor que >= maior ou igual a <= menor ou igual a

Unidade 01 Introdução

Page 36: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   36  ©  P  C  F  de  Oliveira  2014  

Operador de Caracteres: + Operador de concatenação de strings (i.e., cadeias de caracteres), quando usado com dois valores (variáveis ou constantes) do tipo “caractere” Exemplo: “Rio “ + “ de Janeiro” = “Rio de Janeiro”

Unidade 01 Introdução

Page 37: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   37  ©  P  C  F  de  Oliveira  2014  

Comandos Comando de Entrada: leia (<lista de variáveis>) Ex.: leia(alturatijolo) leia (<nome da variável1>, <nome da variável2>) Ex.: leia(alturaTijolo, compTijolo)

Unidade 01 Introdução

Page 38: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   38  ©  P  C  F  de  Oliveira  2014  

Comandos Comando de Saída: escreva (<nome da variável>) Ex.: escreva (alturaTijolo) escreva (“Algo que se deseja escrever”, <nome da variável>) Ex.: escreva (“A altura do tijolo eh: ”, alturaTijolo)

Unidade 01 Introdução

Page 39: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   39  ©  P  C  F  de  Oliveira  2014  

Comandos Comando de Atribuição: <nome da variável> <- expressão

Ex.: areaTijolo <- alturaTijolo * compTijolo

Unidade 01 Introdução

Page 40: Introdução aos Algoritmos - blogdoprofpc.files.wordpress.com · (Área = base * altura) Algoritmo: ... Calcular a média semestral ... Considere o problema de calcular a área de

16/02/14   40  ©  P  C  F  de  Oliveira  2014  

Formato Exemplo algoritmo "exemplo" var x: real y: inteiro a: caractere l: logico inicio x <- 2.5 y <- 6 a <- "teste" l <- VERDADEIRO escreva ("x", x:4:1, y+3:4) //Escreve: x 2.5 9 escreva (a, "ok") //Escreve: testeok escreval(a, " ok”) //Escreve: teste ok (e pula linha) escreval (a + " ok") //Escreve: teste ok (e pula linha) escreva (l) // Escreve: VERDADEIRO fimalgoritmo

Unidade 01 Introdução