Você está na página 1de 36

28/08/2009

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

1
28/08/2009

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.

2
28/08/2009

O que é “lógica” ou “pensamento


lógico”?
Sempre que se quer pensar, falar ou escrever
corretamente, deve-se colocar os pensamentos
em ordem.

Exemplo

Todo mamífero é um animal.

Todo cavalo é mamífero.

PORTANTO, todo cavalo é animal.

3
28/08/2009

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.

4
28/08/2009

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

5
28/08/2009

Algoritmo
Apesar do nome estranho, os algoritmos são muito
comuns no nosso cotidiano, como por exemplo, em
uma 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

6
28/08/2009

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?

7
28/08/2009

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 1 Mova Disco 1 da haste a para a haste c
Passo 2 Mova Disco 2 da haste a para a haste b
Passo 3 Mova Disco 1 da haste c para a haste b
Passo 4 Mova Disco 3 da haste a para a haste c
Passo 5 Mova Disco 1 da haste b para a haste a
Passo 6 Mova Disco 2 da haste b para a haste c
Passo 7 Mova Disco 1 da haste a para a haste c

8
28/08/2009

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

9
28/08/2009

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?

10
28/08/2009

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 : real
inicio
// Seção de Comandos
leia(x)
y <- (x * x)/3
escreva("O Valor de F(x) é : ", y:2:2)
fimalgoritmo

Pseudocódigo  Linguagem de
Programação Pascal
algoritmo "calculaX" program calculaX;
// Função : Calcular: F(x) = (X2)/2 uses Crt;
// Autor : Prof. Reverton Cristaldo { Função : Calcular: F(x) = (X2)/2}
// Data : 31/7/2008 { Autor : Prof. Reverton Cristaldo}
// Seção de Declarações { Data : 31/7/2008}
var { Seção de Declarações}
x : real var
y : real x : real;
inicio y : real;
// Seção de Comandos begin
leia(x) { Seção de Comandos}
y <- (x * x)/3 readln(x);
escreva("O Valor de F(x) é : ", y := (x * x)/3;
y:2:2) write('O Valor de F(x) é : ', y:2:2);
fimalgoritmo end.

11
28/08/2009

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ções
diferentes que um problema pode apresentar),
as quais devem ser previstas na sua solução.

12
28/08/2009

Exemplo de Complexidade
O que é um Relógio ?
É um instrumento com três ponteiros concêntricos

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


É...Pode ser

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


Pode..com 3,2 ou 1 ponteiro

E um relógio sem ponteiro, pode ?


Ah!, Sim! Pode ser digital

Exemplo de Complexidade

O que é um relógio ?
É um instrumento cuja finalidade é marcar o decorrer do tempo.

Algumas variáveis podem aumentar ou diminuir a


complexidade de um sistema quando forem bem ou mal
utilizadas.

13
28/08/2009

Exercícios de Fixação e
aprendizado
1. 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".

14
28/08/2009

Recapitulando - Exercícios de Fixação


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

15
28/08/2009

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 O que eu tenho que fazer ?
trocar o pneu furado 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).

16
28/08/2009

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.

17
28/08/2009

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.

18
28/08/2009

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

19
28/08/2009

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

1. Colocar um ovo na frigideira


2. Esperar o ovo ficar frito
3. Remover o ovo da frigideira

20
28/08/2009

Entendendo a complexidade (fatores


agregados ao algoritmo) e detalhamento
1. Retirar um ovo da geladeira Correto
2. Colocar a frigideira no fogo
3. Colocar óleo
4. Esperar até o óleo ficar quente
5. Quebrar o ovo separando a casca
6. Colocar o conteúdo do ovo na frigideira
7. Esperar um minuto
8. Retirar o ovo da frigideira
9. Apagar o fogo

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.

21
28/08/2009

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

22
28/08/2009

Construindo o algoritmo para a


Fórmula de Bhaskara Delta
2
X = - 6 +/- Raiz Quadrada ( 6 - 4 * 3 * 1 )
B B A C

2* 3
Calcular

Delta > 0  duas raízes reais e diferentes


Delta = 0  duas raízes reais e iguais
Delta < 0  não existem raízes reais

Aplicativo Bhaskara

23
28/08/2009

algoritmo "calculo_baskara“
var
a,b,c : real
x1 : real
x2 : real
delta : real

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

se delta < 0 entao


escreva("Valor de delta menor que zero, não existem raizes")
Fimse
x1 <- (- 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.

24
28/08/2009

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

25
28/08/2009

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 = 12
B = “Professor Reverton”
C = 0,23
D = Verdadeiro
Variáveis Dados

Dados (Tipos de informações


utilizadas em algoritmo).
 Inteiro: toda e qualquer informação numérica
que 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.

26
28/08/2009

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

27
28/08/2009

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

28
28/08/2009

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.

29
28/08/2009

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.

30
28/08/2009

Exercícios de Fixação
Determine 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

31
28/08/2009

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áveis
a. nomes de variáveis não podem ser iguais a
palavras reservadas;

b. nomes de variáveis devem possuir como


primeiro caractere uma letra ou
sublinhado '_' (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;

32
28/08/2009

Regras para identificação das variáveis


e. na sintaxe do Português Estruturado, não há
diferença entre letras maiúsculas de
minú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

33
28/08/2009

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 =5
2*3 =6
2 – 3 = -1
2 / 3 = 0,666...
2^3 =8

34
28/08/2009

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.

35
28/08/2009

36

Você também pode gostar