Desenvolvendo
Algoritmos
Fundamentos de Lógica
Marco Antonio Montebello Júnior
[email protected]
Agenda




Regras para construção de uma algoritmo
Tipos de algoritmos
Tipos de dados e variáveis
Operadores





Aritméticos
Relacionais
Lógicos
Estrutura Seqüencial
Estruturas de Decisão
Fundamentos de Lógica
2
Algoritmo

O algoritmo deve ser fácil de se interpretar
e fácil de codificar.

Ou seja, ele deve ser o intermediário entre
a linguagem falada e a linguagem de
programação.
Fundamentos de Lógica
3
Regras para construção do
algoritmo






Descrever a seqüência de instruções, de maneira
simples e objetiva.
Usar somente um verbo por frase
Imaginar que você está desenvolvendo um
algoritmo para pessoas que não trabalham com
informática
Usar frases curtas e simples
Ser objetivo
Procurar usar palavras que não tenham sentido
dúbio
Fundamentos de Lógica
4
Fases

Para montar um algoritmo, precisamos primeiro
dividir o problema apresentado em três fases
fundamentais:



ENTRADA: São os dados de entrada do algoritmo
PROCESSAMENTO: São os procedimentos utilizados
para chegar ao resultado final
SAÍDA: São os dados já processados
Entrada
Processamento
Fundamentos de Lógica
Saída
5
Fases
Analogia com um homem
Fundamentos de Lógica
6
Tipo: Pseudocódigo –
Português Estruturado



Utiliza linguagem estruturada e se assemelha, na
forma, a um programa escrito na linguagem de
programação.
É um tipo de algoritmo que utiliza uma linguagem
flexível, intermediária entre a linguagem natural e
a linguagem de programação.
“Pseudocódigo” significa “falso código”; o nome
se deve à proximidade que existe entre um
algoritmo escrito em pseudocódigo e a maneira
pela qual um programa é escrito em uma
linguagem de programação
Fundamentos de Lógica
7
Pseudocódigo

Trocar uma lâmpada (V1)






pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar lâmpada velha;
colocar lâmpada nova.
Fundamentos de Lógica
8
Pseudocódigo

Trocar 10 lâmpadas SE estiverem queimadas


ir até o interruptor do primeiro soquete;
enquanto a quantidade de soquetes testados for menor que 10,
faça
 acionar o interruptor;
 se a lâmpada não acender, então









pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
acionar o interruptor;
subir na escada;
retirar lâmpada queimada;
colocar lâmpada nova;
enquanto a lâmpada não acender, faça
 retirar lâmpada queimada;
 colocar lâmpada nova;
ir até o interruptor do próximo soquete;
Fundamentos de Lógica
9
Tipo: Descrição Narrativa

Utiliza linguagem natural para especificar os
passos para a realização das tarefas.

Não é muito utilizada
Fundamentos de Lógica
10
Tipo: Fluxograma

Utiliza-se de figuras geométricas para ilustrar os
passos a serem seguidos na resolução dos
problemas.

Diagrama de Blocos. É bastante utilizado
Fundamentos de Lógica
11
Fluxograma - Simbologia

Cada instrução ou ação a ser executada deve ser
representada por meio de um símbolo gráfico.
Terminal: representa o
início e o final do
fluxograma.
Vídeo: representa a saída
de informações por meio
do monitor de vídeo.
Processamento:
representa a execução
de operações ou ações.
Decisão: representa uma
ação lógica que resultará na
escolha de uma das
seqüências de instruções.
Teclado: representa a
entrada de dados para
as variáveis por meio do
teclado.
Preparação: representa
uma ação de preparação
para o processamento.
Fundamentos de Lógica
12
Fluxograma - Simbologia
Conector: utilizado para interligar partes do fluxograma ou para
desviar o fluxo corrente para um determinado trecho do
fluxograma.
Conector de Páginas: utilizado para interligar partes
do fluxograma em páginas distintas.
Seta de orientação do fluxo.
Início
Nome, Idade
"Nome: ",
Nome
Fundamentos de Lógica
"Idade: ",
Idade
Fim
13
Fluxograma
início
ir para o primeiro soquete
posicionar escada
não
acendeu?
soquetes
restantes < 10
F
buscar lâmpada nova
V
acionar o interruptor
retirar a lâmpada queimada
subir na escada
colocar lâmpada nova
V
acionar o interruptor
não
acendeu?
F
F
retirar a lâmpada queimada
ir ao próximo soquete
colocar lâmpada nova
V
pegar uma escada
acionar o interruptor
Fundamentos de Lógica
fim
14
Tipo: Diagrama de Chapin

Conhecido também como diagrama de
Shneiderman ou diagrama N-S.

Apresenta a solução do problema por meio de um
diagrama de quadros com uma visão hierárquica
e estruturada
Fundamentos de Lógica
15
Diagrama de Chapin
ir para o primeiro soquete
soquetes testados < 10
acionar o interruptor
lâmpada não acendeu
pegar uma escada
colocar a escada embaixo do soquete
buscar lâmpada nova
acionar o interruptor
subir na escada
retirar lâmpada queimada
colocar lâmpada nova
lâmpada não acendeu
retirar lâmpada queimada
colocar lâmpada nova
ir para o próximo soquete
Fundamentos de Lógica
16
Formas de Representação

Gráficas (Fluxograma e Chapin)



Vantagens
 Maior clareza no fluxo de execução
 Linguagem visual
Desvantagens
 Requer conhecimento de convenções gráficas
 Mais trabalhoso em decorrência de seus desenhos
 Dificuldade para fazer correções
Textuais (Português Estruturado)

Apresenta mais vantagens, desde que se tomem alguns cuidados:
 Riqueza gramatical de nossa língua pode levar a ambigüidades
 A frase “O pregador foi grampeado durante o conserto” tem “8”
sentidos diferentes quando pronunciada
 Para resolver, utilizaremos um conjunto restrito de regras,
conhecido como Português Estruturado
Fundamentos de Lógica
17
Tipos de dados e variáveis
Tipos Primitivos

São os tipos básicos de informação dos
algoritmos




Inteiro: informação pertencente ao conjunto dos
números inteiros relativos (positiva ou negativa).
Real: informação pertencente ao conjunto dos
números reais.
Caractere: informação alfanumérica (caracteres
alfabéticos, numéricos e especiais)
Lógico: informação biestável (admite apenas 2
valores: verdadeiro ou falso)
Fundamentos de Lógica
18
Tipos de dados e variáveis
Constantes

São valores que não sofrem nenhuma variação
no decorrer do tempo

São exemplos de constantes:




Valor de PI;
Velocidade da luz;
5;
“Não fume”.
Fundamentos de Lógica
19
Tipos de dados e variáveis
Variáveis

São valores que podem sofrer alteração no
decorrer do tempo.

Exemplo:




Cotação do dólar;
Peso de uma pessoa;
Preço da gasolina.
São como gavetas que podem receber diversos
tipos de objetos
Fundamentos de Lógica
20
Tipos de dados e variáveis
Variáveis

Identificadores: São os nomes escolhidos para
as informações variáveis.




Deve iniciar por caractere alfabético;
Pode ser seguido por mais caracteres alfabéticos ou
numéricos;
Não devem ser usados caracteres especiais.
Declaração:


Processo de reservar e etiquetar gavetas;
Só podem armazenar valores de um mesmo tipo, de
maneira que também são classificadas como sendo
numéricos, lógicos e literais.
Fundamentos de Lógica
21
Operadores Aritméticos

Utilizados para a realização de cálculos matemáticos
Operador
Função
Exemplos
+
Adição
2 + 3, X + Y
-
Subtração
4 - 2, N – M
*
Multiplicação
3 * 4, A * B
/
Divisão
10 / 2, C / D
Potenciação (x elevado a y)
pot(2, 3)
Raiz quadrada (de x)
rad(9)
Mod
Resto da divisão
9 mod 4 resulta 1
Div
Quociente da divisão inteira
9 div 4 resulta 2
pot(x,y)
rad(x)
Fundamentos de Lógica
22
Operadores Relacionais

Utilizados para a estabelecer relação de comparação
entre valores
Operador
Função
Exemplos
=
Igual a
3 = 3, X = Y
>
Maior que
5 > 4, X > Y
<
Menor que
3 < 6, X < Y
>=
Maior ou igual a
5 >= 3, X >= Y
<=
Menor ou igual a
3 <= 5, X <= Y
Diferente de
8 <> 9, X <> Y, 7 != 9
<> ou !=
Fundamentos de Lógica
23
Operadores Relacionais


A=5
B=3
Expressão
A=B
A <> B
A>B
A<B
A >= B
A <= B
Resultado
Falso (F)
Verdadeiro (V)
Verdadeiro (V)
Falso (F)
Verdadeiro (V)
Falso (F)
Fundamentos de Lógica
24
Operadores Lógicos

Utilizados para a efetuar avaliações lógicas entre valores
Operador
não
(not) !
e (and)
&&
ou (or)
||
Função
Exemplos
Negação: inverte o valor da expressão não V, não X
ou condição, se verdadeira inverte
para falsa e vice-versa.
Conjugação: é verdadeira se todas as
condições forem verdadeira
V e V, X e Y
Disjunção: é verdadeira se pelo
menos uma condição for verdadeira
V ou V, X ou Y
Fundamentos de Lógica
25
Operadores Lógicos
Tabela Verdade

Conjunto de todas as possibilidades de cada
operador lógico.
A
não A
!A
A
B
AeB
A && B
A
B
A ou B
A || B
F
V
F
F
F
F
F
F
V
F
F
V
F
F
V
V
V
F
F
V
F
V
V
V
V
V
V
V
Fundamentos de Lógica
26
Estrutura Seqüencial

O fluxo de controle segue a mesma seqüência
linear da nossa escrita, ou seja:



De cima para baixo;
Da esquerda para direita
Cada ação é seguida de um ;


Objetiva separar uma ação da outra
Indica que a próxima ação da seqüência deve ser
executada
Fundamentos de Lógica
27
Estrutura Seqüencial

Algoritmo – Média Aritmética
início
// declaração de variáveis
real: N1, N2, N3, N4, // notas bimestrais
MA; // média anual
// entrada de dados
leia (N1, N2, N3, N4);
// processamento
MA ← (N1 + N2 + N3 + N4) / 4;
// saída de dados
escreva (MA);
fim
Fundamentos de Lógica
28
Estruturas de Decisão




São aquelas que permitem alterar o fluxo de
execução, de forma a selecionar qual parte deve
ser executada
Essa “decisão” de execução é tomada a partir
de uma condição, que pode resultar apenas em
verdadeiro ou falso
Uma condição é representada por expressões
relacionais ou lógicas
As estruturas de seleção podem ser classificadas
em simples, compostas ou encadeadas.
Fundamentos de Lógica
29
Estruturas de Decisão
Fundamentos de Lógica
30
Estruturas de Decisão
Simples


Quando a <condição> for verdadeira o “bloco
verdadeiro” é executado.
Quando a <condição> for falsa o “bloco verdadeiro” não
é executado.
se <condição> então
início // início do bloco verdadeiro
comando 1;
comando 2;
...
comando n;
fim; // fim do bloco verdadeiro
fim_se;
Fundamentos de Lógica
31
Estruturas de Decisão
Simples

Algoritmo – Média Aritmética com Aprovação
início
// declaração de variáveis
real:N1, N2, N3, N4, // notas bimestrais
MA; // média anual
// entrada de dados
leia (N1, N2, N3, N4);
// processamento
MA ← (N1 + N2 + N3 + N4) / 4;
// saída de dados
escreva (MA);
se (MA >= 7) então
escreva (“Aluno Aprovado !”);
fim_se;
fim.
Fundamentos de Lógica
32
Estruturas de Decisão
Composta


Quando a <condição> for verdadeira o “bloco verdadeiro” é
executado
Quando a <condição> for falsa o “bloco falso” é executado
se <condição> então
início // início do bloco verdadeiro
comando 1;
comando n;
fim; // fim do bloco verdadeiro
senão
início // início do bloco falso
comando 1;
comando n;
fim; // fim do bloco falso
fim_se;
Fundamentos de Lógica
33
Estruturas de Decisão
Composta

Algoritmo – Média Aritmética com aprovação e reprovação
início
// declaração de variáveis
real: N1, N2, N3, N4, // notas bimestrais
MA; // média anual
leia (N1, N2, N3, N4);
MA ← (N1 + N2 + N3 + N4) / 4;
escreva (MA);
se (MA >= 7) então
início
escreva (“Aluno Aprovado!”);
escreva (“Parabéns!”);
fim;
senão
início
escreva (“Aluno Reprovado!”);
escreva (“Estude mais!”);
fim;
fim_se;
fim.
Fundamentos de Lógica
34
Estruturas de Decisão
Encadeada (aninhada)


Ocorre quando uma seleção tem como ação uma
outra seleção
Uma seleção encadeada pode ser:


Heterogênea: Quando não é possível identificar
padrão de comportamento
Homogênea: Quando é possível identificar padrão de
comportamento


se – então – se: quando depois de cada então ocorre outro se
se – senão – se: quando depois de cada senão ocorre outro se
Fundamentos de Lógica
35
Estruturas de Decisão
Encadeada – Heterogênea

Algoritmo – Tipos de Triângulo
início
inteiro: A, B, C; // tamanho dos lados
leia (A, B, C);
se (A<B+C) e (B<A+C) e (C<A+B) então
se (A=B) e (B=C) então
escreva (“Triangulo Equilátero”);
senão
se (A=B) ou (B=C) ou (A=C) então
escreva (“Triângulo Isósceles”);
senão
escreva (“Triangulo Escaleno”);
fim_se;
fim_se;
senão
escreva (“Estes valores não formam um triângulo”);
fim_se;
fim.
Fundamentos de Lógica
36
Estruturas de Decisão
Encadeada – Homogênea

se – então – se
se <Cond1> então
se <Cond2> então
se <Cond3> então
se <Cond4>
então W;
fim_se;
fim_se;
fim_se;
fim_se;

É equivalente a:
se <Cond1> e <Cond2> e <Cond3> e <Cond4> então W;
fimse;
Fundamentos de Lógica
37
Estruturas de Decisão
Encadeada – Homogênea
se X=V1 então
C1;
fim_se;
se X=V2 então
C2;
fim_se;
se X=V3 então
C3;
fim_se;
se X=V4 então
C4;
fim_se;
se X=V1
então C1;
senão se X=V2
então C2;
senão se X=V3
então C3;
senão se X=V4
se – senão – se
então C4;
fim_se;
fim_se;
fim_se;
fim_se;
X=V1 X=V2 X=V3 X=V4 Ação
X=V1 X=V2 X=V3 X=V4 Ação
V
F
F
F
C1
V
-
-
-
C1
F
V
F
F
C2
F
V
-
-
C2
F
F
V
F
C3
F
F
V
-
C3
F
F
F
V
C4
F
F
F
V
C4
Fundamentos de Lógica
38
Estruturas de Decisão
Múltipla Escolha



Seleções encadeadas homogêneas se-senão-se são
bastante freqüentes para o tratamento de listas de valor
Para simplificar a escrita, pode-se utilizar o comando
escolha.
Adaptando o algoritmo anterior:
escolha X
caso V1: C1;
caso V2: C2;
caso V3: C3;
caso V4: C4;
fim_escolha;
Fundamentos de Lógica
39
Estruturas de Decisão
Múltipla Escolha

Algoritmo – Múltipla Escolha
início
real: Preço;
inteiro: Origem;
leia (Preço, Origem);
escolha Origem
caso 1: escreva (Preço, “ – produto do Sul”);
caso 2: escreva (Preço, “ – produto do Norte”);
caso 3: escreva (Preço, “ – produto do Leste”);
caso 4: escreva (Preço, “ – produto do Oeste”);
caso 7, 8, 9: escreva (Preço, “ – produto do Sudeste”);
caso 10..20: escreva (Preço, “ – produto do Centro-Oeste”);
caso 5, 6, 25..50: escreva (Preço, “ – produto do Nordeste”);
caso contrário: escreva (Preço, “ – produto importado”);
fimescolha;
fim.
Fundamentos de Lógica
40
Download

Document