24
INTRODUÇÃO À COMPUTAÇÃO M Introdução aos Algoritmos M.Sc. Ricardo de Sousa Britto ([email protected]) 1

INTRODUÇÃO AOS LOGARITMOS DE FAZER

Embed Size (px)

DESCRIPTION

A INTRODUÇÃO É MUITO BELA E AMIGA NOSSA AMÉM, VALEU POR TUDO AMIGOS DO PEITO

Citation preview

Page 1: INTRODUÇÃO AOS LOGARITMOS DE FAZER

INTRODUÇÃO À COMPUTAÇÃO M

Introdução aos Algoritmos

M.Sc. Ricardo de Sousa Britto ([email protected])

1

Page 2: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Conceituação 2

¨  Para estabelecer o conceito de algoritmos, será definido o conceito de ação: ¤ Ação é um acontecimento que, a partir de um estado

inicial, após um período de tempo finito, produz um estado final previsível e bem definido.

¨  Ex: Dado um número L qualquer, escreva os termos da série de fibonacci menores que L.

Page 3: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Conceituação 3

¨  Adotaremos a seguinte definição de algoritmo: ¤ Algoritmo é a descrição de um conjunto de comandos

que, obedecidos, resultam numa sucessão finita de ações.

¨  Geralmente um algoritmo se destina a resolver um problema.

Page 4: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Exemplo 4

¨  Algoritmo para escrever os termos de Fibonacci inferiores a um dado L.

Algoritmo Escreva os termos de Fibonacci inferiores a L Fim algoritmo

Page 5: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Exercícios 5

¨  Um algoritmo pode conter um comando como “Escreva todos os termos da sequência de Fibonacci”?

¨  Escreva um algoritmo que, partindo de diferentes estados iniciais, produza os valores: a)  2 4 6 8 10 12 14 b)  1 3 5 7 9 11 13

Page 6: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Componentes de um Algoritmo 6

¨  Um algoritmo é compostos por: ¤ Comandos – Determinam as ações a serem executadas

pelo seu destinatário. ¤ Estruturas de controles – Determinam a ordem em que

os comandos devem ser executados, se devem ser executados ou não e quando devem ser repetidos.

Page 7: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Refinamentos Sucessivos 7

¨  Na vida cotidiana, os algoritmos são encontrados frequentemente como instruções para se utilizar um aparelho eletrodoméstico ou uma receita de bolo.

¨  Um algoritmo é considerado completo se os seus comandos forem do entendimento do seu destinatário.

Page 8: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Refinamentos Sucessivos 8

¨  Caso um comando não seja entendido pelo destinatário, o mesmo deverá ser desdobrado em outros comandos, técnica chamada de refinamento.

¨  Se um algoritmo é formado não apenas por um comando, mas por vários, em sua execução deverá se considerar os estados intermediários.

Page 9: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Exemplo de Refinamento 1 9

¨  Refinar o algoritmo que escreve os termos de Fibonacci inferiores a L.

Ref. Escreva os termos de Fibonacci inferiores a L Receba o valor L Processe os 2 primeiros termos Processe os termos restantes fim ref.

Page 10: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Estrutura Sequêncial 10

¨  Estrutura utilizada no primeiro refinamento apresentado.

¨  Neste tipo de estrutura os comandos devem ser executados um após o outro, na mesma ordem em que aparecem escritos.

Page 11: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Exemplo de Refinamento 2 11

¨  Podemos gerar refinamentos de refinamentos pra melhorar o entendimento de um comando.

Ref. Processe os 2 primeiros termos Atribua o valor 1 ao primeiro termo se ele for menor que L então escreva-o fim se Atribua o valor 1 ao segundo termo se ele for menor que L então escreva-o fim se fim ref.

Page 12: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Estrutura Condicional 12

¨  Estrutura utilizada no segundo refinamento apresentado.

¨  Os comandos só serão executados se a condição for verdadeira.

se condição então comandos fim se

Page 13: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Exemplo de Refinamento 3 13

Ref. Processe os termos restantes repita ele for menor que L Calcule o novo termo somando os 2 anteriores se o novo termo for maior ou igual a L então interrompa fim se Escreva novo termo fim repita fim ref.

Page 14: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Estrutura de Repetição 14

¨  Estrutura utilizada no terceiro refinamento apresentado.

¨  Os comandos e estruturas de controle abrangidos devem ser executados repetidamente até que se verifique uma condição para que se interrompa a repetição.

repita se condição então interrompa fim se fim repita

Page 15: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Estrutura de Repetição 15

¨  Considerando L = 5 no refinamento 3, a execução do refinamento resultaria em:

Calcula novo termo, como sendo 1+1=2 Como 2 < 5, escreve o valor 2

Calcula novo termo, como sendo 1+2=3 Como 3 < 5, escreve o valor 3

Calcula novo termo, como sendo 2+3=5 Como 5 = 5, interrompe

Page 16: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Fim dos Refinamentos 16

¨  Uma vez que o destinatário consiga entender os comandos utilizados após os refinamentos, o algoritmo pode ser considero completo.

¨  Chegando a este ponto, deve-se substituir no algoritmo os comandos pelos refinamentos dos mesmos.

¨  Os antigos comandos substituídos devem ser utilizados como comentários, para facilitar o entendimento do algoritmo.

Page 17: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Algoritmo Completo 17

Algoritmo {Escrita dos termos de Fibonacci inferiores a L} Receba o valor de L {Processamento dos 2 primeiros termos}

Atribua o valor 1 ao primeiro termo se ele for menor que L

então escreva-o fim se

Atribua o valor 1 ao segundo termo se ele for menor que L

então escreva-o fim se

{Processamento de termos restantes} repita ele for menor que L

Calcule o novo termo somando os 2 anteriores se o novo termo for maior ou igual a L

então interrompa fim se

Escreva novo termo fim repita

fim algoritmo

Page 18: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Exercícios 18

1.  Construa um algoritmo que calcule a área de um triângulo,dados a altura h e a base b.

2.  Execute o algoritmo abaixo: Algoritmo repita Invente um problema Escreva um algoritmo para sua resolução se estiver cansado então interrompa fim se fim repita Mostre os algoritmos feitos aos colegas fim algoritmo

Page 19: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Desenvolvimento Estruturados 19

¨  Com a evolução do hardware, os problemas levados aos computadores são cada vez de maior porte e maior complexidade.

¨  Os algoritmos ainda devem ser desenvolvidos pelo ser humano, mas podem ultrapassar os limites de sua compreensão.

¨  Por surgiram várias técnicas que permitem sistematizar e ajudar o desenvolvimento de algoritmos chamadas de técnicas de desenvolvimento estruturado.

Page 20: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Desenvolvimento Estruturados 20

¨  Os objetivos dessas técnicas são: ¤ Facilitar o desenvolvimento dos algoritmos; ¤ Facilitar o seu entendimento pelo humanos; ¤ Antecipar a comprovação da sua correção; ¤ Facilitar a sua manutenção e a sua modificação; ¤ Permitir que o seu desenvolvimento possa ser

empreendido simultaneamente por uma equipe de pessoas.

Page 21: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Desenvolvimento Estruturados 21

¨  Para se atingir esse objetivos, o desenvolvimento estruturado preconiza que: ¤ Os algoritmos devem ser desenvolvidos por

refinamentos sucessivos, partindo de uma descrição geral e gradativamente se atacando as minúcias do problema(Desenvolvimento top-down);

¤ Os sucessivos refinamentos são módulos, que delimitam poucas funções e são o mais independente possível.

¤ Nos módulos deve ser usado um número limitado de diferentes comandos e de diferentes estruturas de controle.

Page 22: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Desenvolvimento Estruturados 22

¨  Alguns formalismos podem ser utilizados para auxiliar no desenvolvimento estruturado: ¤ Diagrama de Blocos ¤ Diagrama de Chapin

Page 23: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Diagrama de Blocos 23

Page 24: INTRODUÇÃO AOS LOGARITMOS DE FAZER

Diagrama de Chapin 24