36
28/08/2009 1 Módulo I Prof. Reverton Cristaldo www.revertoncristaldo.com Tópicos 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

Algoritmo - Módulo I

Embed Size (px)

DESCRIPTION

Apostila do Módulo I do curso de Algoritmo do Professor Reverton

Citation preview

Page 1: Algoritmo - Módulo I

28/08/2009

1

Módulo I

Prof. Reverton Cristaldowww.revertoncristaldo.com

Tópicos

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 2: Algoritmo - Módulo I

28/08/2009

2

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.

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 3: Algoritmo - Módulo I

28/08/2009

3

O que é “lógica” ou “pensamento

lógico”?

Sempre que se quer pensar , falar ou escrevercorretamente, deve-se colocar os pensamentosem ordem.

Exemplo

Todo mamífero é um animal.

Todo cavalo é mamífero.

PORTANTO, todo cavalo é animal.

Page 4: Algoritmo - Módulo I

28/08/2009

4

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.

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 5: Algoritmo - Módulo I

28/08/2009

5

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 6: Algoritmo - Módulo I

28/08/2009

6

Algoritmo

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

Algoritmo

Padrã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 7: Algoritmo - Módulo I

28/08/2009

7

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:

Exercícios de Fixação

1.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 8: Algoritmo - Módulo I

28/08/2009

8

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.

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 bMova Disco 1 da haste c para a haste bMova Disco 3 da haste a para a haste cMova Disco 1 da haste b para a haste aMova Disco 2 da haste b para a haste cMova Disco 1 da haste a para a haste c

Page 9: Algoritmo - Módulo I

28/08/2009

9

Algoritmo computacional –

Trabalhando os conceitos

Um algoritmo é um procedimento computacional definido que recebe um ou mais valores (entrada) e produz um ou mais valores (saída) .

Entrada Saída

Algoritmo computacional –

Trabalhando os conceitos

O 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 10: Algoritmo - Módulo I

28/08/2009

10

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.

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 11: Algoritmo - Módulo I

28/08/2009

11

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

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 varx : realy : 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 12: Algoritmo - Módulo I

28/08/2009

12

Fatores a serem levados em consideração

na construção de um algoritmo

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

Complexidade

A 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 13: Algoritmo - Módulo I

28/08/2009

13

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 ?

É 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 14: Algoritmo - Módulo I

28/08/2009

14

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:

Recapitulando conceito

A palavra algoritmo significa:

"conjunto de regras e instruções, que devem ser seguidas na ordem especificada, para resolver um problema específico" .

Page 15: Algoritmo - Módulo I

28/08/2009

15

Recapitulando - 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:

Método para construir um algoritmo

1. Ler atentamente o enunciado

Deve-se reler o enunciado de um exercício quantas vezes for necessário, até compreendê-lo completamente.

A maior parte da resolução de um exercício consiste na compreensão completa do enunciado.

Crie um algoritmo, ou descreva os passos para se trocar o pneu furado de um carro parado no acostamento de uma rodovia.

Page 16: Algoritmo - Módulo I

28/08/2009

16

Método para construir um algoritmo

Crie um algoritmo, ou descreva os passos para se trocar o pneu furado de um carro parado no acostamento de uma rodovia.

descreva os passos

trocar o pneu furado

O que eu tenho que fazer ?

Condição 1

de um carro parado no acostamento de uma rodovia

Condição 2

Método para construir um algoritmo

2. Retirar a relação das entradas de dados do enunciado .

Através do enunciado, descobrimos quais são os dados que devem ser fornecidos ao programa, via teclado, a partir dos quais são desenvolvidos os cálculos.

Obs. Pode haver algum algoritmo que não necessite da entrada de dados (pouco comum).

Page 17: Algoritmo - Módulo I

28/08/2009

17

Variáveis de entrada

Que informação variável eu preciso fornecer para a fórmula?

Valor de “a”

Valor de “b”Valor de “c”

Método para construir um algoritmo

3. Retirar do enunciado, a relação das saídas das informações

Através do enunciado podemos descobrir quais são as informações que devem ser mostradas para compor o resultado final, objetivo do algoritmo.

Page 18: Algoritmo - Módulo I

28/08/2009

18

Variáveis de saída

Que informação será apresentada como resposta?

Valor de “x”

Neste exercício queremos os valores de X1 para (+) e X2 para (-)

Método para construir um algoritmo

4. Determinar o que deve ser feito para transformar as entradas nas saídas especificadas

Nessa fase é que teremos a construção do Algoritmo propriamente dito. Devemos determinar qual seqüência de passos ou ações é capaz de transformar um conjunto de dados nas informações de resultado.

Page 19: Algoritmo - Módulo I

28/08/2009

19

Portugol – Português estruturado

é uma pseudo-linguagem (de programação), criado para demonstrar o uso de algoritmos.

Portugol é uma pseudo-linguagem que permite ao programador pensar no problema em si e não no equipamento que irá executar o algoritmo. Devem ser considerados a sintaxe (em relação à forma) e a semântica (em relação ao conteúdo ou seu significado). Em portugol a sintaxe é definida pela linguagem e a semântica depende do significado que quer se dar ao algoritmo.

Como ficaria o português estruturado

para a fórmula de Bhaskara?

Escreva no caderno sua versão estruturada dessa fórmula...

Page 20: Algoritmo - Módulo I

28/08/2009

20

Fatores a serem levados em consideração

na construção de um algoritmo

� Complexidade� Legibilidade� Portabilidade� Técnica de resolução por método cartesiano

� ”Dividir para Conquistar”� Dividir o problema em partes� Analisar a divisão e garantir a coerência entre as partes.� Reaplicar o método, se necessário

� Planejamento reverso

Entendendo a complexidade (fatores

agregados ao algoritmo) e detalhamento

Observe o algoritmo abaixo:

1. Colocar um ovo na frigideira2. Esperar o ovo ficar frito3. Remover o ovo da frigideira

Correto

Page 21: Algoritmo - Módulo I

28/08/2009

21

Entendendo a complexidade (fatores

agregados ao algoritmo) e detalhamento

1. Retirar um ovo da geladeira2. Colocar a frigideira no fogo3. Colocar óleo4. Esperar até o óleo ficar quente5. Quebrar o ovo separando a casca6. Colocar o conteúdo do ovo na frigideira7. Esperar um minuto8. Retirar o ovo da frigideira9. Apagar o fogo

Correto

Premissas da construção de algoritmos

� é preciso que a linguagem utilizada no algoritmo seja conhecida tanto por quem o escreveu quanto por quem vai executá-lo.

� Para que o algoritmo possa ser executado por uma máquina é importante que as instruções sejam corretas e sem ambigüidades

� Construir algoritmo é um processo semelhante ao de tornar-se competente em um jogo qualquer: aprender as regras do jogo (a sintaxe) é só o primeiro passo, tornar-se um bom jogador (programador) exige tempo, muito exercício e dedicação.

Page 22: Algoritmo - Módulo I

28/08/2009

22

Algoritmos Computacionais

� O computador (hardware), a princípio, não executa nada . Para que ele faça uma determinada tarefa - calcular uma folha de pagamento, por exemplo -, é necessário que ele execute um programa (Software).

é um conjunto de muitas instruções que indicam ao computador, passo a passo, o que ele tem que fazer.

Construindo o algoritmo para a

Fórmula de Bhaskara

Primeiro devemos fazer a “Linearização das Expressões”.

Page 23: Algoritmo - Módulo I

28/08/2009

23

Construindo o algoritmo para a

Fórmula de Bhaskara

X = -B

+/- Raiz Quadrada (B

2- 4 * *

A C

)

2 *

Delta

Delta > 0 � duas raízes reais e diferentesDelta = 0 � duas raízes reais e iguaisDelta < 0 � não existem raízes reais

6 6 3 1

3

Calcular

Aplicativo Bhaskara

Page 24: Algoritmo - Módulo I

28/08/2009

24

algoritmo "calculo_baskara“var

a,b,c : realx1 : realx2 : real

delta : real

Inicioleia(b)leia(a)leia(c)delta <- (b * b) - (4 * a * c)

se delta < 0 entaoescreva("Valor de delta menor que zero, não existem raizes")

Fimsex1 <- (- b + (raizq(delta)))/(2 * a)x2 <- (- b - (raizq(delta)))/(2 * a)

escreval(x1:2:2)escreval(x2:2:2)

fimalgoritmo

Fatores a serem levados em consideração

na construção de um algoritmo (Continuação)

� Legibilidade� Mede a capacidade de compreensão de um

algoritmo por qualquer observador (que não o construiu); a clareza com que sua lógica está exposta. Quanto mais legível for um algoritmo, menor será sua complexidade.

Page 25: Algoritmo - Módulo I

28/08/2009

25

Fatores a serem levados em consideração

na construção de um algoritmo (Continuação)

� Portabilidade� Devido a quantidade enorme de linguagens

de programação existentes, não será adotada nenhuma linguagem específica para trabalhar os algoritmos (ex: C, pascal, Java, etc.). Isso porque a solução do problema fica ligada a características e recursos da linguagem na qual ela foi concebida.

Fatores a serem levados em consideração

na construção de um algoritmo (Continuação)

� Técnica de resolução por método cartesiano� Dividir para conquistar

� 1. Dividir o problema em partes� 2. Analisar a divisão e garantir a coerência

entre as partes.� 3. Reaplicar o método, se necessário

Page 26: Algoritmo - Módulo I

28/08/2009

26

Dados (Tipos de informações

utilizadas em algoritmo).

� São as informações necessárias para que o algoritmo execute, e apresente valores de resposta.

A = 12B = “Professor Reverton”C = 0,23D = Verdadeiro

DadosVariáveis

Dados (Tipos de informações

utilizadas em algoritmo).

� Inteiro : toda e qualquer informação numéricaque pertença ao conjunto dos números inteiros (negativa, nula ou positiva). � Exemplos:

� 39, 0, -56 entre outros.� Ele tem 15 irmãos. � A temperatura desta noite será de -2 graus.

Page 27: Algoritmo - Módulo I

28/08/2009

27

Dados (Tipos de informações

utilizadas em algoritmo).

� Real: toda e qualquer informação numérica que pertença ao conjunto dos números reais (negativa, nula ou positiva, inteiro ou fracionário). � Exemplos:- 4, 3, 0, 35, 1,23� Ela tem 1,73 metro de altura.� Meu saldo bancário é de - R$ 121,07..

Dados (Tipos de informações

utilizadas em algoritmo).

� Caractere : São caracterizadas como tipos caracteres, as seqüências contendo letras, números e símbolos especiais. Uma seqüência de caracteres deve ser indicada entre aspas (““). Este tipo de dado é também conhecido como alfanumérico, string, literal ou texto.

� Exemplos: � Endereço: “Rua Alfa, 52 Apto 1”, “Fone:574-

9988”, “04387-456”, “ “, “7”.

Page 28: Algoritmo - Módulo I

28/08/2009

28

Dados (Tipos de informações

utilizadas em algoritmo).

� Lógico : São caracterizados como tipos lógicos, os dados com valores verdadeiro e falso, sendo que este tipo de dado poderá representar apenas um dos dois valores. Os dados do tipo lógico, poderão ser apresentados e delimitados pelo caractere ponto (.) ou não: falso, .f., verdadeiro ou .v.� Exemplo: você pode entrar.

Exercício 01

� Determine qual o tipo primitivo de informação presente nas sentenças abaixo:� Telefone: 36219999� Idade: 34 anos� RG: 452215� Nome: “Pedrinho não sei das quantas“� A = “Olá”� B = 3,34� C = - 5

Page 29: Algoritmo - Módulo I

28/08/2009

29

Constantes e Variáveis

� São espaços de memória alocados para armazenar informações.

� Porque precisamos de variáveis?� Para armazenar valores que serão utilizados

posteriormente.

A = 2; B = 5; C=8

A = B + C

Constantes e Variáveis

Uma variável pode ser vista como uma caixa com um rótulo ou nome colado a ela,que num dado instante guarda um determinado objeto.

O conteúdo desta caixa não é algo fixo, permanente.

Page 30: Algoritmo - Módulo I

28/08/2009

30

A variável pode aceitar apenas 1 tipo de informação:

-Inteiro

-Real

-Caractere

-Lógico

Exemplo de nome de variável: “Nome”, “Endereço”,”Idade”,”Estado”, “Bairro”

Conteúdo é variável, em determinada instância de execução ele pode variar o valor.

Page 31: Algoritmo - Módulo I

28/08/2009

31

Exercícios de FixaçãoDetermine qual é o tipo primitivo e as variáveis de informação presente nas sentenças abaixo:

a) A placa “Pare!” tinha dois furos de bala.b) Josefina subiu 5 degraus para pegar uma maçã boa.c) Alberta levou 3 horas e meia para chegar ao hospital onde concebeu uma garota.d) Julia escreveu em sua casa: “Preserve o meio ambiente”, e ficou devendo R$ 20,59 ao vendedor de tintas.e) José recebeu sua 18 a medalha na natação por ter alcançado a marca de 57,3 segundos nos 100 metros rasos.

Constante x Variável

Entende-se por uma informação constante , aquela que não sofre nenhuma alteração no decorrer do tempo.

Por exemplo, na fórmula a seguir, o que é constante e o que é variável?

RESULTADO � ENTRADA + 2,25

Page 32: Algoritmo - Módulo I

28/08/2009

32

Detalhes acerca de variáveis

Variáveis são palavras que tem um significado bem específico em um algoritmo. Para que o computador possa executar comandos que envolvem variáveis da maneira correta, ele deve conhecer os detalhes das variáveis que pretendemos usar.

No algoritmo, usamos a área destinada a declaração de variáveis: VAR

VAR<identificador 1>, <identificador 2>, ..., <identificador n>: <tipo das variáveis >

Regras para identificação das

variáveisa. nomes de variáveis não podem ser iguais a palavras reservadas;

b. nomes de variáveis devem possuir como primeiro caractere uma letra ousublinhado '_' (os outros caracteres podem ser letras, números e sublinhado);

c. nomes de variáveis devem ter no máximo 127 caracteres;

d. Nomes de variáveis não podem conter espaços em branco;

Page 33: Algoritmo - Módulo I

28/08/2009

33

Regras para identificação das variáveis

e. na sintaxe do Português Estruturado, não há diferença entre letras maiúsculas deminúsculas (NOME é o mesmo que noMe).

Identificadores válidos: NOME, TELEFONE, IDADE_FILHO, IdadeFilho, NOTA1, Est_Civil

Identificadores inválidos: 3Endereco, Estado Civil, PARA, algoritmo, numero/complemento

Iniciando no Visualg

Nome do algoritmo

Comentários de autoria

Área de declaração de variáveis

Declaração de início de algoritmo

Declaração de fim de algoritmo

Page 34: Algoritmo - Módulo I

28/08/2009

34

Iniciando no Visualg

Nome do algoritmo

Comentários de autoria

Área de declaração de variáveis

Declaração de início de algoritmo

Declaração de fim de algoritmo

Operadores Aritméticos em

Algoritmos

Alguns exemplos:2 + 3 = 52 * 3 = 62 – 3 = -12 / 3 = 0,666...2 ^ 3 = 8

Page 35: Algoritmo - Módulo I

28/08/2009

35

Estruturando os comandos do meu

algoritmo.

� var - Declaração de variáveis.� leia(<nome_da_variável>) - comando para

leitura do dado via teclado.� escreva( <nome_da_variável>) � escreva( “=== Olá ===”)

� comando para escrever em tela a saída do processamento ou a mensagem que você deseja.

Page 36: Algoritmo - Módulo I

28/08/2009

36