Fundamentos de Lógica 2
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 3
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 4
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 5
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 Saída
Fundamentos de Lógica 6
FasesAnalogia com um homem
Fundamentos de Lógica 7
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 8
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 9
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 10
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 11
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 12
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.
Processamento: representa a execução de operações ou ações.
Teclado: representa a entrada de dados para as variáveis por meio do teclado.
Vídeo: representa a saída de informações por meio do monitor de vídeo.
Decisão: representa uma ação lógica que resultará na escolha de uma das seqüências de instruções.
Preparação: representa uma ação de preparação para o processamento.
Fundamentos de Lógica 13
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 íc io F im"No me : ",
No meNo me , Id a d e"Id a d e : ",
Id a d e
Fundamentos de Lógica 14
Fluxograma
início
ir para o primeiro soquete
soquetesrestantes < 10
acionar o interruptor
pegar uma escada
posicionar escada
buscar lâmpada nova
acionar o interruptor
nãoacendeu?
subir na escada
retirar a lâmpada queimada
colocar lâmpada nova
acionar o interruptor
nãoacendeu?
retirar a lâmpada queimada
colocar lâmpada nova
ir ao próximo soquete
fim
F
F
F
V
V
V
Fundamentos de Lógica 15
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 16
Diagrama de Chapinir para o primeiro soquete
soquetes testados < 10
acionar o interruptor
pegar uma escadacolocar a escada embaixo do soquetebuscar lâmpada novaacionar o interruptorsubir na escadaretirar lâmpada queimadacolocar lâmpada nova
lâmpada não acendeu
retirar lâmpada queimadacolocar lâmpada nova
ir para o próximo soquete
lâmpada não acendeu
Fundamentos de Lógica 17
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 18
Tipos de dados e variáveisTipos 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 19
Tipos de dados e variáveisConstantes
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 20
Tipos de dados e variáveisVariá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 21
Tipos de dados e variáveisVariá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 22
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
pot(x,y) Potenciação (x elevado a y) pot(2, 3)
rad(x) 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
Fundamentos de Lógica 23
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
<> ou != Diferente de 8 <> 9, X <> Y, 7 != 9
Fundamentos de Lógica 24
Operadores Relacionais
A = 5 B = 3
Expressão Resultado
A = B Falso (F)
A <> B Verdadeiro (V)
A > B Verdadeiro (V)
A < B Falso (F)
A >= B Verdadeiro (V)
A <= B Falso (F)
Fundamentos de Lógica 25
Operadores Lógicos
Utilizados para a efetuar avaliações lógicas entre valores
Operador Função Exemplos
não (not) !
Negação: inverte o valor da expressão ou condição, se verdadeira inverte para falsa e vice-versa.
não V, não X
e (and) &&
Conjugação: é verdadeira se todas as condições forem verdadeira
V e V, X e Y
ou (or) ||
Disjunção: é verdadeira se pelo menos uma condição for verdadeira
V ou V, X ou Y
Fundamentos de Lógica 26
Operadores LógicosTabela Verdade
Conjunto de todas as possibilidades de cada operador lógico.
A não A
! A
F V
V F
A B A e B
A && B
F F F
F V F
V F F
V V V
A B A ou B
A || B
F F F
F V V
V F V
V V V
Fundamentos de Lógica 27
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 28
Estrutura Seqüencial
Algoritmo – Média Aritmética
início// declaração de variáveisreal: N1, N2, N3, N4, // notas bimestrais
MA; // média anual// entrada de dadosleia (N1, N2, N3, N4);// processamentoMA ← (N1 + N2 + N3 + N4) / 4;// saída de dadosescreva (MA);
fim
Fundamentos de Lógica 29
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 30
Estruturas de Decisão
Fundamentos de Lógica 31
Estruturas de DecisãoSimples 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ãoinício // início do bloco verdadeiro
comando 1;comando 2;...comando n;
fim; // fim do bloco verdadeirofim_se;
Fundamentos de Lógica 32
Estruturas de DecisãoSimples Algoritmo – Média Aritmética com Aprovação
início// declaração de variáveisreal: N1, N2, N3, N4, // notas bimestrais
MA; // média anual// entrada de dadosleia (N1, N2, N3, N4);// processamentoMA ← (N1 + N2 + N3 + N4) / 4;// saída de dadosescreva (MA);se (MA >= 7) então
escreva (“Aluno Aprovado !”);fim_se;
fim.
Fundamentos de Lógica 33
Estruturas de DecisãoComposta Quando a <condição> for verdadeira o “bloco verdadeiro” é
executado Quando a <condição> for falsa o “bloco falso” é executado
se <condição> entãoinício // início do bloco verdadeiro
comando 1;comando n;
fim; // fim do bloco verdadeirosenão
início // início do bloco falsocomando 1;comando n;
fim; // fim do bloco falsofim_se;
Fundamentos de Lógica 34
Estruturas de DecisãoComposta Algoritmo – Média Aritmética com aprovação e reprovação
início// declaração de variáveisreal: N1, N2, N3, N4, // notas bimestrais
MA; // média anualleia (N1, N2, N3, N4);MA ← (N1 + N2 + N3 + N4) / 4;escreva (MA);se (MA >= 7) então
inícioescreva (“Aluno Aprovado!”); escreva (“Parabéns!”);
fim;senão
inícioescreva (“Aluno Reprovado!”);escreva (“Estude mais!”);
fim;fim_se;
fim.
Fundamentos de Lógica 35
Estruturas de DecisãoEncadeada (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 36
Estruturas de Decisão Encadeada – Heterogênea Algoritmo – Tipos de Triângulo
iníciointeiro: A, B, C; // tamanho dos ladosleia (A, B, C);se (A<B+C) e (B<A+C) e (C<A+B) então
se (A=B) e (B=C) entãoescreva (“Triangulo Equilátero”);
senãosese (A=B) (A=B) ouou (B=C) (B=C) ouou (A=C) (A=C) entãoentão
escrevaescreva (“Triângulo Isósceles”); (“Triângulo Isósceles”);senãosenão
escrevaescreva (“Triangulo Escaleno”); (“Triangulo Escaleno”);fim_sefim_se;;
fim_se;senão
escreva (“Estes valores não formam um triângulo”);fim_se;
fim.
Fundamentos de Lógica 37
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 38
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;
X=V1 X=V2 X=V3 X=V4 Ação
V F F F C1
F V F F C2
F F V F C3
F F F V C4
X=V1 X=V2 X=V3 X=V4 Ação
V - - - C1
F V - - C2
F F V - C3
F F F V C4
se – senão – 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
então C4; fim_se;
fim_se;fim_se;
fim_se;
Fundamentos de Lógica 39
Estruturas de DecisãoMú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 Xcaso V1: C1;caso V2: C2;caso V3: C3;caso V4: C4;
fim_escolha;
Fundamentos de Lógica 40
Estruturas de DecisãoMúltipla Escolha Algoritmo – Múltipla Escolha
inícioreal: 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.