Escolar Documentos
Profissional Documentos
Cultura Documentos
LGICA DE PROGRAMAO
Orientaes de estudo:
A principal fonte de consulta e estudo dever ser a bibliografia recomendada, este material
deve ser trabalhado como notas de aula.
Bibliografia Bsica
MANZANO, Jos Augusto. Algoritmos - Lgica para Desenvolvimento de Programao. Rio de
Janeiro: rica, 1996.
WIRTH, Niklaus. Algoritmos e estruturas de dados. ETH Zurich: LTC Editora, 1999.
KERNIGHAN, Brian W. A linguagem de programao. Porto Alegre: Editora Campus Ltda, 1987.
Bibliografia Complementar
CELES, Waldemar, . Estruturas de Dados. Rio de Janeiro: PUC-RIO, 2002.
BROOKSHEAR, J. Glenn. Cincia da Computao Uma viso abrangente. Porto Alegre: Bookman, 2005.
1
TPICO 03
COCEITO DE LGICA
LGICA O COTIDIAO
LGICA DE PROGRAMAO
COCEITO DE SISTEMA
2
DIFERETES TIPOS DE LGICA
Lgica proposicional
Exemplo
Utilizando uma forma de argumento vlida podemos ter uma concluso falsa. Pois a
primeira premissa falsa (existem muitos outros seres que so mamferos alm de um co e um
gato). Entretanto nada impede que, cheguemos a concluses verdadeiras a partir de premissas
falsas.
Exemplo:
Exemplo:
Lgica probabilstica
3
Lgica Fuzzy
Suponha que se deseja representar de forma Fuzzy a altura de quatro indivduos, e p ser alto.
Milena 1,65m
Matheus 1,75m
Joo 2,0 m
Nadine 1,45m
Percebe-se que a lgica Fuzzy est associada teoria dos conjuntos. E que cada
afirmao representa o grau de pertinncia ao conjunto das pessoas altas.
Apesar das diferentes verses de lgica todas esto ligadas a determinao da verdade
de uma afirmao de certeza quanto a um conjunto de proposies ou afirmaes que podem
compor um teorema matemtico ou a base de um sistema de computao. Estes dois tm suas
principais diferenas em:
ALGORTMO O COTIDIAO
O pensamento encadeado que leva a uma ao ou o processo organizado pela lgica que
nos permite realizar nossas tarefas de maneira simples, pode ser descrito como uma seqncia
de instrues, que devem ser obedecidas para se cumprir s tarefas. Esta seqncia chamada de
algoritmo est presente no nosso dia a dia. Por exemplo, h algoritmos para a construo de
maquetes (expressos na forma de instrues de montagem) ou para tocar msica (na forma de
partituras). O mais conhecido algoritmo o da diviso, para encontrar o quociente de dois
nmeros ou para calcular o mximo divisor comum de dois inteiros positivos1.
4
Exemplos de algoritmos (no computacionais)
Objetivo: Usar um telefone pblico.
Incio
1. tirar o fone do gancho;
2. ouvir o sinal de linha;
3. introduzir o carto;
4. digitar o nmero pretendido;
5. se der o sinal de chamar
5.1 conversar
5.2 desligar
5.3 retirar o carto
6. se der o sinal ocupado
6.1 colocar o fone no gancho
6.2 repetir o processo partir da ao 1.
Fim
exemplo 02
5
TPICO 04
PROBLEMAS COMPUTACIOAIS
OBJETO REALIDADE
Abstrai MODELAGEM
Denota FORMALIZAO
Linguagens de programao,
SMBOLO NVEL FORMAL Linguagens de especificao formal
Lgica proposicional
Lgica estatstica
Lgica Fuzzy, etc.
6
TPICO 05
Limitaes de Execuo de
Delineamento de Representao de
7
TPICO 06
Diagrama de blocos
Operao
Movimento/transporte
Ponto de deciso
Inspeo
Documento impresso
Espera
Armazenagem
Sentido do fluxo
A Conexo
8
Limites (incio, pare, fim)
Observaes
EXEMPLOS DE FLUXOGRAMA
Incio
Digite o
coeficiente a
Digite o
coeficiente b
No Imprime no
a 0 ? existe raiz
Sim
X = - (b/a)
Imprime valor
de x
Fim
9
DESCRIO ARRATIVA OU SEQUECIA LGICA
Exemplo.
Incio da rotina
Fim da rotina
Exemplo:
Algoritmo Valor_dia
Var Salariominimo,media:real
Incio
SalarioMinino = 510,00
Media=Salariominimo/30
Envie para impressora Media
Fim
10
Note que a declarao da varivel Var do tipo Real representando uma varivel que pode
assumir valores pertencentes ao conjunto dos nmeros reais.
1
Este algoritmo pressupe que sejam fornecidos dois inteiros positivos e calcula o seu mximo divisor comum.
Procedimento:
Passo 1. Atribuir, inicialmente, a M e N os valores correspondentes ao maior e menor dos dois nmeros inteiros
positivos fornecidos, respectivamente.
Passo 2. Dividir M por N, e chamar de R o resto da diviso.
Passo 3. Se R no for 0, atribua a M o valor de N, a N o valor de R e retorne ao passo 2; caso contrrio, o mximo
divisor comum ser o valor correspondente de N.
2
- American ational Standards Institute ("Instituto Nacional Americano de Padronizao"), tambm conhecido
por sua sigla ASI, uma organizao particular sem fins lucrativos que tem por objetivo facilitar a padronizao
dos trabalhos de seus membros.
Segundo a prpria organizao, o objetivo melhorar a qualidade de vida e dos negcios nos Estados Unidos. So
conhecidos por terem inmeros padres, entre eles o ANSI C que serve como guia na escrita de compiladores e de
programas nesta linguagem de programao.
11
TPICO 07
TIPOS DE DADOS
Tipos de dados
Tipo de dados que determina o conjunto de valores assumidos por uma constante ou
varivel, gerados por uma funo ou um operador; (Exemplo )
Operador ou funo que exigem argumentos de um dado tipo fixado e produz um
resultado.No necessariamente do mesmo tipo.
Indicador de funo:
void Indica que no h tipo definido: Este tipo serve para indicar que um resultado
no tem um tipo definido. Uma das aplicaes deste tipo criar um tipo vazio que pode
posteriormente ser modificado para um dos tipos anteriores.
12
Modificadores dos Tipos Bsicos:
13
TPICO 08
Variveis
Uma varivel a representao dos elementos de um conjunto que ocupa um espao na
memria do computador dedicado ao armazenamento de um tipo de dado determinado. Em um
programa as variveis devem ser declaradas, especificando seu tipo que pode ser inteiro, real ou
caractere, devendo receber nomes para poderem ser referenciadas e alteradas quando necessrio.
Cada varivel corresponde a uma posio de memria, cujo contedo alterado durante
o processo e execuo de um programa.
main()
int a; // a a varivel
a = 12/2; // o resultado ser 6
a = 12 % 5; // o resultado ser 2
Constantes
Constante um determinado valor que no se modifica ao longo da execuo de um
programa, podendo ser classificada como numrica, lgica ou literal conforme o tipo.
Onde:
Nf nota final
N1 avaliao do 1 semestre
N2 avaliao do 2 semestre
(4 e 6) constantes multiplicativas (que correspondem ao peso de cada uma das avaliaes)
10 constante (que corresponde a soma dos pesos das avaliaes)
14
Lgicos: Baseado na lgica booleana s pode armazenar dados do tipo true (verdadeiro)
1 ou false (falso) 0.
Portas lgicas
AND
Essa porta lgica possui dois bits de entrada e um de sada. Para que o bit de sada seja
verdadeiro (valor 1) ambos os bits de entrada devem ser verdadeiros.
ENTRADAS SADA
0 0 0
0 1 0
1 0 0
1 1 1
OR
OR de significado em portugus OU, e da
Entrada Sada mesma maneira que no portugus indica uma
escolha.
15
Essa porta lgica possui dois bits de entrada e um de sada. Para que o bit de sada seja
verdadeiro (valor 1) pelo menos um dos bits de entrada precisa ser verdadeiro.
ENTRADAS SADA
0 0 0
0 1 1
1 0 1
1 1 1
XOR
A porta lgica XOR possui dois bits de entrada e um de sada. Para que o bit de sada
seja verdadeiro (valor 1) os bits de entrada devem ser diferentes ou seja um verdadeiro outro
falso.
ENTRADAS SADA
0 0 0
0 1 1
1 0 1
1 1 0
NOT
NOT de significado em portugus negao, e
Entrada Sada da mesma maneira que no portugus indica a
negao a uma afirmao.
A porta lgica NOT tambm conhecida como inversor por (ao de negao a uma
determinada afirmao), literalmente, inverte o bit de entrada. Se o bit de entrada for um, por
exemplo, o bit de sada ser zero, e vice-versa.
ENTRADA SADA
0 1
1 0
Circuito flip-flop
Corresponde ao circuito que apresenta um dos dois valores binrios 0 e 1,
permanecendo assim at que um pulso temporrio em sua entrada modifique sua sada.
16
Tal procedimento permite aos operadores lgicos que sejam agrupados em blocos,
conceito do qual constitudo o computador.
O valor da sada alterna entre dois valores, conforme os estmulos esternos provenientes
de outro circuito.
Exemplo:
17
TPICO 09
Existem dois tipos de atribuio de valor um quando se impe uma igualdade, ou seja:
Logo depois da declarao do tipo de varivel necessrio que se indique qual o valor
inicial, para evitar que algo que esteja carregado na memria seja carregado como sujeira.
a = 0;
Uma caracterstica importante do comando de atribuio que o mesmo deve ser
expresso sempre da esquerda para direita.
Exemplo:
18
TPICO 10
Operadores Matemticos
Tambm chamados de operadores aritmticos so os responsveis pelo processo
matemtica a ser realizado pelo computador. Podendo ser separados em dois tipos:
A tabela a seguir apresenta os operadores matemticos para uso em lgica descrevendo seu tipo.
Para variar o nvel de prioridade requerido ao um determinado operador necessrio o uso de parnteses,
considerando-se regras de ordem para resoluo matemtica.
As cinco operaes aritmticas suportadas pela linguagem C esto descritos abaixo com seus
respectivos smbolos em portugol e no padro ANSI
Exemplo:
Se escrevermos a funo:
19
Tpico 11
Operadores relacionais
Tabela de operadores
Operador Smb Exemp Resultado
. . Literal Binrio
Maior > a>b V se a maior que b, seno F 1 se a maior que b, seno 0
Menor < a<b V se a menor que b, seno F 1 se a menor que b, seno 0
Maior ou igual >= a>= V se a maior ou igual a b, seno F 1 se a maior ou igual a b, seno 0
Menor ou igual =< a=< V se a menor ou igual a b, seno F 1 se a menor ou igual a b, seno 0
Igual = a=b V se a igual a b, seno F 1 se a igual a b, seno 0
Diferente <> a<>b V se a diferentes de b, seno F 1 se a diferentes de b, seno 0
TPICO 12
Operadores lgicos
Tambm referenciados como operadores booleanos, os operadores lgicos so
utilizados na programao quando se deseja realizar uma tomada de deciso com varias
condies, estas condies exigem uma ordem de precedncia que corresponde a:
1 negao .no.
2 conjuno .e.
fim_se
20
Operador lgico de conjuno.
Corresponde a operao lgica entre duas ou mais condies (proposies),
representado na teoria de conjuntos como a interseco entre conjuntos.
fim_se
fim_se
21
O operador lgico .xou. corresponde a operao entre duas condies
(proposies), representado na teoria de conjuntos como a subtrao da unio de dois
conjuntos pela interseco dos mesmos conjuntos.
22
TPICO 13
Tabela verdade
Proposio:
Chama-se proposio ou sentena toda orao declarativa que pode ser classificada em
verdadeira ou em falsa.
Observa-se que toda proposio apresenta trs caractersticas obrigatrias:
Toda proposio deve ter um valor verdade (isto , deve ser verdadeira ou falsa). Desta
maneira, proposies podem ser combinadas atravs de operadores lgicos. Os
operadores lgicos so representados da seguinte forma:
Conectivo de conjuno E
Conectivo de disjuno Ou
Bi-condicional Se e somente se
23
egao ~
p ~p
A partir de uma proposio p qualquer, sempre ser possvel
construir outra proposio, denominada negao de p e identificada V F
pelo smbolo ~p.
F V
FV F
(l-se: e), conectivo que quando utilizando entre duas proposies
p q, denominada conjuno das sentenas. F F F
p q pvq
FV V
A disjuno p q verdadeira se ao menos uma
das proposies p ou q verdadeira; se p e q so F F F
ambas falsas, ento p q falsa.
24
p q pq
(l-se: ou exclusivo) XOR, Disjuno exclusiva que quando utilizada
entre duas proposies pq, onde
VV F
VF V
A conjuno pq verdadeira se, e somente se, apenas um dos operandos
for verdadeiro FV V
F F F
Condicionais
P Q pq
(l-se: se ... ento ...), condicional que quando utilizando entre duas
proposies pq, onde p denominado antecedente e q conseqente. VV V
(implicao)
VF F
O condicional p q falso somente quando p verdadeiro e p falsa;
caso contrrio pq verdadeiro. FV V
F F V
F F V
FV V F
F F F V
25
Tautologias ou proposio logicamente verdadeira.
Seja uma proposio formada a partir de outras (p, q, r, ...) mediante o emprego de
conectivos ( ou ) ou do modificador (~) ou de condicionais ( ou ). Dizemos que
v uma tautologia ou proposio logicamente verdadeira quando v tem o valor V
(verdadeiro) independentemente dos valores lgicos de p, q, etc.
Assim a tabela-verdade de uma tautologia v apresenta s V na coluna de v.
Exemplo
1 (p~q) (qp) uma tautologia,,pois:
V V F F V V
V F F F V V
F V V F V V
F F V F F V
Exemplo
p~p proposio logicamente falsa, pois:
P ~p p~p
V F F
F V F
26
Tpico 14
Escrever instrues ligadas entre si apenas por estruturas seqenciais, tomadas de deciso,
laos de repetio e de selecionamento.
Escrever instrues em grupos pequenos e combin-las na forma de sub-rotinas ou de
mdulos estruturados ou orientados a objeto.
Distribuir mdulos do programa entre os diferentes programadores que trabalharo sob a
superviso de um programador snior, chefe de programao ou analista de sistemas de
informao.
Revisar o trabalho executado em reunies regulares e previamente programado.
Objetivando a:
Procedimentos.
1 - Estabelecer a seqncia lgica do Durante esta fase de projeto o engenheiro dever ter em mente
projeto; que em geral necessrio trs processos.
Entrada ou leitura de dados.
Processamento dos dados.
Sadas dos dados.
27
TABELA DE COMADOS ADOTADOS EM LPP
LPP CLASSIFICAO SITTICA
AT Preposio
AT_QUE Conjuno (de acordo com seu equivalente em ingls-until)
AT_SEJA Preposio com interjeio
CADEIA Substantivo feminino
CARACTERE Substantivo feminino
CASO Substantivo masculino
CLASSE Substantivo feminino
CONJUNTO Adjetivo
CONST (constante) Adjetivo
CONTINUA Verbo (imperativo afirmativo)
DE Preposio
EFETUE Verbo (imperativo afirmativo)
ENQUANTO Conjuno
ENQUANTO SEJA Conjuno com verbo
ENTO Advrbio
ESCREVA Verbo (imperativo afirmativo)
FAA Verbo (imperativo afirmativo)
FIM Substantivo masculino
FIM_AT_SEJA Substantivo masculino com preposio e com interjeio)
FIM_CASO Substantivo masculino com substantivo masculino
FIM_CLASSE Substantivo masculino com substantivo feminino
FIM_ENQUANTO Substantivo masculino com conjuno
FIM_FAA Substantivo masculino com verbo
FIM_LAO Substantivo masculino com substantivo masculino
FIM_PARA Substantivo masculino com preposio
FIM_REGISTRO Substantivo masculino com substantivo masculino
FIM_SE Substantivo masculino com conjuno
FUNO Substantivo masculino
HERANA Substantivo feminino
INCIO Substantivo masculino
INTEIRO Adjetivo
LAO Substantivo masculino
LEIA Verbo (imperativo afirmativo)
LGICO Adjetivo
OBJETO Substantivo masculino
PARA Preposio
PASSO Substantivo masculino
PRIVADA Substantivo feminino
PROCEDIMENTO Substantivo masculino
PROGRAMA Substantivo masculino
PROTEGIDA Adjetivo
PBLICA Adjetivo
REAL Substantivo masculino
REGISTRO Substantivo masculino
REPITA Verbo (imperativo afirmativo)
SAIA_CASO Verbo imperativo afirmativo com substantivo masculino
SE Conjuno
SEO_PRIVADA Substantivo feminino com substantivo masculino
SEO_PROTEGIDA Substantivo feminino com adjetivo
SEO_PBLICA Substantivo feminino com adjetivo
SEJA Interjeio
SENO Conjuno
TIPO Substantivo masculino
VAR (varivel) Substantivo feminino
VIRTUAL Adjetivo
28
Tpico 15 -17
Exemplo:
Uma entrada poder ser atravs de teclado, sensor, modem, leitores pticos, disco e etc.
Entrada de dados
Utilizando-se do smbolo.
Sintaxe em portugol.
Estrutura de controles
Controle corresponde a ao de tomada de deciso devida a uma condio, sendo que
uma condio pode ser entendida como uma obrigao que se impe e se aceita, enquanto
deciso corresponde ao ato ou efeito de decidir.
29
Tpico 18
Estrutura de seleo simples
Exemplo:
Elaborar um programa de computador que leia dois valores numricos reais desconhecidos. Em
seguida o programa deve efetuar a soma entre os dois valores e caso o resultado seja maior que
10 apresent-lo em vdeo.
1. Definir a entrada de dois valores incgnitos (variveis A e B), note que apesar do
enunciado indicar a leitura de dois nmeros, podemos entender que no so dados
armazenados, pois so desconhecidos, assim devem ser inseridos.
2. Efetuar a soma dos valores A e B e atribuindo o resultado varivel X.
3. Apresentar o resultado armazenado na varivel X, caso a varivel X tenha seu valor
maior que 10.
programa ADIO_DE_NMEROS_1
var
A, B, X : real
incio
leia A, B
XA+B
escreva X
fim_se
fim
30
Tpico 19
Estrutura de seleo composta.
Exemplo:
Elaborar um programa que leia dois valores numricos reais desconhecidos. Em seguida o
programa deve efetuar a soma dos dois valores lidos e caso seja o resultado maior ou igual a 10,
deve ser somado a 5. Caso contrrio, o valor do resultado deve ser subtrado de 7. Aps a
obteno de um dos novos resultados o novo resultado deve ser apresentado em vdeo.
1. Definir a entrada dos dois valores incgnitos (variveis A e B), note que apesar do
enunciado indicar a leitura de dois nmeros, podemos entender que no so dados
armazenados, pois so desconhecidos, assim devem ser inseridos.
2. Efetuar a adio dos valores A e B e atribuir o resultado da adio varivel X.
3. Verificar se o valor da varivel X maior ou igual a 10; caso seja maior ou igual a 10,
proceder ao clculo de X + 5, atribuindo seu resultado a varivel R. Se o valor da
varivel X no for maior ou igual a 10, proceder ao clculo de X 7, atribuindo seu
resultado a varivel R.
c) Cdigo
b) Diagrama de blocos
programa ADIO_DE_NMEROS_2
var
A, B, X, R : real
incio
leia A, B
XA+B
RX+5
seno
RX-7
fim_se
escreva R
fim
31