27
Prof. Adm. Hélio Lemes Costa Jr. M.Eng. Introdução a Algoritmos

Algoritmos

Embed Size (px)

Citation preview

Page 1: Algoritmos

Prof. Adm. Hélio Lemes Costa Jr. M.Eng.

Introdução a Algoritmos

Page 2: Algoritmos

Agenda de Aula

O que é “lógica” ou “pensamento lógico”?

O que é algoritmo?

Alguns outros conceitos de algoritmos

Exemplos de algoritmos

Exercícios de Fixação e aprendizado

Page 3: Algoritmos

Exemplos de Algoritmos

- pegar uma escada;- posicionar embaixo da lâmpada;- buscar uma lâmpada nova;- ligar o interruptor;- se a lâmpada não acender, então:

- subir na escada;- retirar a lâmpada velha;- colocar a lâmpada nova.

-senão, se a lâmpada acender, então:- fim do algoritmo.

Page 4: Algoritmos

O que é “lógica” ou “pensamento lógico”?

Lógica é a forma correta de organizar os pensamentos e demonstrar o raciocínio de maneira correta.

A utilização da lógica é a melhor forma de solucionar problemas e atingir objetivos.

Page 5: Algoritmos

O que é “lógica” ou “pensamento lógico”?

Sempre que se quer pensar, falar ou escrever corretamente, deve-se colocar os pensamentos em ordem.

Page 6: Algoritmos

Exemplo

Todo mamífero é um animal.

Todo cavalo é mamífero.

PORTANTO, todo mamífero é animal.

Page 7: Algoritmos

A lógica é muito importante em nossa vida, no dia- a- dia. Veja os exemplos abaixo:A gaveta está fechada.

A Bala está dentro da gaveta

Preciso primeiro abrir a gaveta, para depois pegar a bala.

Page 8: Algoritmos

Recapitulando...O que é “lógica” ou “pensamento lógico”?

é a forma correta de organizar os pensamentos e demonstrar o raciocínio de maneira correta.

Page 9: Algoritmos

O que é algoritmo?

Um Algoritmo é uma seqüência de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema

A seguir, um exemplo de algoritmo não computacional...

Page 10: Algoritmos
Page 11: Algoritmos

AlgoritmoApesar do nome estranho, os algoritmos são muito comuns no nosso cotidiano, como por exemplo, emuma receita de bolo. Nela estão escritos os ingredientes necessários e a seqüências de passos ou ações a serem cumpridos para que se consiga fazer um determinado tipo de bolo.

Em um modo geral, um algoritmo segue um determinado padrão de comportamento, com objetivo de alcançar a solução de um problema.

Page 12: Algoritmos

AlgoritmoPadrão de Comportamento:

Imagine a seqüência de números: 1, 6, 11, 16, 21, 26, ...

Para determinar qual será o sétimo elemento dessa série, precisamos descobrir qual é a sua regra de formação, isto é, qual é o seu padrão de comportamento.

Regra: X + 5

Page 13: Algoritmos

Alguns outros conceitos de algoritmos Algoritmo é a forma organizada de

expressar uma seqüência de passos que visam atingir um objetivo definido. Algoritmo é a lógica necessária para o desenvolvimento de um programa.

Palavras que sempre encontramos nos conceitos de algoritmos:

Page 14: Algoritmos

Exercícios de Fixação1.Um homem quer atravessar um rio com um

barco que pode carregar ele mesmo e apenas mais uma de suas três cargas: um lobo, um carneiro e um maço de alfafa. O que o homem deve fazer para atravessar o rio sem perder nenhuma de suas cargas?

Page 15: Algoritmos

Elabore um algoritmo que mova 3 discos de uma torre de Hanói, que consiste em 3 hastes (a-b-c), uma das quais serve de suporte para os três discos de tamanhos diferentes (1-2-3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, sendo que nunca deve ser colocado um disco maior sobre um menor. O objetivo é transferir os três discos da haste A para haste C.

Page 16: Algoritmos

Mova <disco n> da haste <n1> para haste <n2>

Passo 1Passo 2Passo 3Passo 4Passo 5Passo 6Passo 7

Mova Disco 1 da haste a para a haste c

Mova Disco 2 da haste a para a haste b

Mova Disco 1 da haste c para a haste b

Mova Disco 3 da haste a para a haste c

Mova Disco 1 da haste b para a haste a

Mova Disco 2 da haste b para a haste c

Mova Disco 1 da haste a para a haste c

Page 17: Algoritmos

Algoritmo computacional – Trabalhando os conceitosUm algoritmo é um procedimento computacional definido que recebe um ou mais valores (entrada) e produz um ou mais valores (saída).

Entrada Saída

Page 18: Algoritmos

Algoritmo computacional – Trabalhando os conceitosO algoritmo é aquela fórmula matemática, aquele pedaço de código, que fica ali no meio da entrada e da saída para transformar o primeiro no segundo.

Vamos supor por exemplo que temos a função:            

A sua entrada é o x e a sua saída é o y (ou f(x), o valor que a função retorna).

Page 19: Algoritmos

Algoritmo computacional – Trabalhando os conceitos

Os passos do algoritmo para resolução deste problema ficariam da seguinte forma:

O algoritmo aqui seria o seguinte:

1. Entrada: Receber o valor X. 2. Elevar X ao quadrado e guardar o número resultante

como Z. 3. Dividir Z por 3 e guardar o número resultante como Y. 4. Saída: Imprimir o valor Y.

Page 20: Algoritmos

Pseudocódigo – Introdução.

É uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples (nativa a quem o escreve, de forma a ser entendida por qualquer pessoa) sem necessidade de conhecer a sintaxe de nenhuma linguagem de programação.

Como ficaria a escrita do algoritmo para a resolução deste problema, independente do valor de X?

Page 21: Algoritmos

algoritmo "calculaX"// Função : Calcular: F(x) = (X2)/2// Autor : Prof. Reverton Cristaldo// Data : 31/7/2008// Seção de Declarações var x : real y : realinicio// Seção de Comandos leia(x)y <- (x * x)/3escreva("O Valor de F(x) é : ", y:2:2)fimalgoritmo

Page 22: Algoritmos

Pseudocódigo Linguagem de Programação Pascal

algoritmo "calculaX"// Função : Calcular: F(x) = (X2)/2// Autor : Prof. Reverton Cristaldo// Data : 31/7/2008// Seção de Declarações var x : real y : realinicio// Seção de Comandos leia(x)y <- (x * x)/3escreva("O Valor de F(x) é : ", y:2:2)fimalgoritmo

program calculaX;uses Crt;{ Função : Calcular: F(x) = (X2)/2}{ Autor : Prof. Reverton Cristaldo}{ Data : 31/7/2008}{ Seção de Declarações}varx : real;y : real;begin { Seção de Comandos} readln(x); y := (x * x)/3; write('O Valor de F(x) é : ', y:2:2);end.

Page 23: Algoritmos

Fatores a serem levados em consideração na construção de um algoritmo1. Complexidade

Percebemos que, na medida em que colocamos situações novas no problema a ser resolvido, o algoritmo vai aumentando a sua complexidade.

Esse certamente é o maior problema envolvido na construção de algoritmos.

Page 24: Algoritmos

ComplexidadeA complexidade pode ser vista como um sinônimo de variedade (quantidade de situaçõesdiferentes que um problema pode apresentar), as quais devem ser previstas na sua solução.

Page 25: Algoritmos

Ah!, Sim! Pode ser digital

E um relógio sem ponteiro, pode ?

Pode..com 3,2 ou 1 ponteiro

E um relógio com 1 ponteiro é possível?

É...Pode ser

Um relógio com 2 ponteiros é possível?

Exemplo de Complexidade

É um instrumento com três ponteiros concêntricos

O que é um Relógio ?

Page 26: Algoritmos

É um instrumento cuja finalidade é marcar o decorrer do tempo.

Exemplo de Complexidade

O que é um relógio ?

Algumas variáveis podem aumentar ou diminuir a complexidade de um sistema quando forem bem ou mal utilizadas.

Page 27: Algoritmos

Exercícios de Fixação e aprendizado1. Crie um algoritmo, ou descreva os passos para se

trocar o pneu furado de um carro parado no acostamento de uma rodovia.

2. Crie um algoritmo para calcular o X na seguinte fórmula: