Anda di halaman 1dari 31

S.I.

LGICA DE PROGRAMAO
Prof.: Marcos Henrique Gomes

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.
SALVETTI, Dirceu Douglas. Algoritmos. So Paulo: Pearson/Makron Books, 2004.
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.
PUGA, Sandra. Lgica de programao e Estrutura de Dados. : Pearson - Prentice Hall, .
SEBESTA, Robert W. Concepts of Programming Languages. : Addison-Wesley, 1996.

As listas de exerccios e respectivas resolues sero postadas no portal Moodle e no


endereo: www.profmarcoshg@webs.com

TPICO 03

COCEITO DE LGICA
A lgica trata da elaborao do pensamento. Da filosofia, procura saber por que
pensamos assim e no de outra maneira, questionamentos quanto a incertezas tem sido foco de
pesquisador ao logo da histria da humanidade. Com arte ou tcnica, nos, ensinando a usar
corretamente as leis do pensamento.
Poderamos dizer tambm que a lgica a arte de pensar corretamente e, visto que a
forma mais complexa do pensamento o raciocnio, a lgica estuda ou tem em vista a correo
do raciocnio. Dizemos ento que a lgica tem em vista a ordem da razo.
Isto d a entender que a nossa razo pode funcionar desordenadamente. Por isso a lgica
ensina a colocar Ordem no Pensamento.
Uma parte importante da lgica o estudo do erro (falcia) ou mtodos incorretos do
raciocnio. Ento podemos afirmar que o indivduo pode cometer erros lgicos e com o intuito
de evit-los que estudamos tcnicas que possibilitam evitar o erro.

LGICA O COTIDIAO
Os conceitos relacionados lgica no esto somente atrelados a matemtica, seu
significado est corretamente associado resoluo de problemas sejam eles de qualquer ordem.
Ao resolver problemas relacionados fala ou a coordenao motora a criana apresenta
solues que lhe permitiro superar os obstculos, o que podemos ter como exemplo o de
caminhar, comunicar-se, enfim o sujeito evoluindo.
Da mesma maneira que um mestre de obras decide em construir determinada estrutura a
partir do emprico realizando seu trabalho, sem a necessidade de realizar clculos.

LGICA DE PROGRAMAO
Definimos por lgica de programao o conjunto das tcnicas de encadeamento do
pensamento para atingir determinados objetivos, isto , encapsular um processo atravs de
comandos lgicos.
Pensamentos que devem obedecer a uma seqncia lgica que corresponde ao conjunto
de instrues que corresponde s regras ou normas definidas para o emprego ou realizao de
uma determinada ao. Em programao dizemos que a instruo a informao que indica a
mquina (computador) uma ao elementar a ser executada.
Para que uma ordem seja executada de forma a dizermos que um processo foi realizado
de maneira completa no basta apenas uma instruo, mas um conjunto de instrues
obedecendo a uma seqncia lgica chamado de programa ou sistemas.

COCEITO DE SISTEMA
Compreende-se por sistema a agremiao de determinadas funes ou informaes que
em conjuntos realizam determinada tarefa. Nas organizaes empresariais os sistemas so
interdependentes formando um grupo de aes que compe o sistema maior (geral) da empresa.
Os homens encarregados de fazer o planejamento estratgico de um sistema so
chamados de generalistas ou desenhistas de sistemas, sua principal competncia de sintetizar
problemas.
Tendo os sistemas surgidos do conceito de natureza e da decomposio dos organismos
humano interdependentes podemos citar como exemplo os seguintes exemplos.
- Sistema solar;
- Sistema sanguneo;
- Sistema cardiovascular;
- Sistema de transportes;
2

DIFERETES TIPOS DE LGICA


Lgica proposicional
Verifica-se a validade do argumento. Um argumento considerado vlido se todas as
suas instancias so vlidas. Entretanto no silogismo disjuntivo podemos afirmar que mesmo
quando os argumentos so verdadeiros se as premissas no forem verdadeiras a concluso pode
no ser verdadeira.
Ou seja, a partir do silogismo disjuntivo podemos ter argumentos vlidos que s podem
conduzir a uma concluso vlida se as premissas forem verdadeiras.
Exemplo
Os gatos e os ces so mamferos.
Eu sou um mamfero.
Eu no sou um co.
Logo eu sou um gato.
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:
Nenhum mamfero nasce de ovos.
Gatos so mamferos.
Portanto gatos no nascem de ovos.
Note que tanto a forma de argumento quanto a concluso so verdadeiras, entretanto a
concluso foi deduzida a partir de uma premissa falsa, pois a afirmao Nenhum mamfero
nasce de ovos no verdadeira o ornitorrinco (animal australiano) mamfero e nasce de ovos.
H ainda a possibilidade de encontrar argumentos que no levam a concluses
verdadeiras, neste caso dizemos que as premissas so verdadeiras apensar da concluso ser
falsa. Logo o argumento invlido.
Exemplo:
Se voc est estudando em marte, ento voc est vivo.
Voc est vivo.
Portanto voc est em marte.
Note: as premissas so verdadeiras, entretanto a concluso falsa. Portanto o argumento
invlido.

Lgica probabilstica
Em grande destaque na modelagem computacional est lgica probabilstica que
associao a lgica matemtica as inferncias probabilsticas, os clculos so baseados no
conceito de 0 ou 1 e no no conceito de 0 e 1 como no tradicional processamento de dados
caracterstico no tratamento quantitativo.
Utilizando-se do conceito probabilstico engenheiros planejam criar um chip capaz de
trabalhar realizar os processos de maneira mais dinmica gerando menor menos rudo e menor
consumo de energia.
3

Lgica Fuzzy
Diferentemente da aleatoriedade, certas variveis utilizadas em nosso cotidiano,
transmitidas e perfeitamente compreendidas lingisticamente entre interlocutores, tm
invariavelmente permanecido fora do tratamento matemtico tradicional. Este o caso de
variveis lingsticas oriundas da necessidade de se distinguir qualificaes por meio de
graduaes.
Para descrever certos fenmenos relacionados ao mundo sensvel, temos utilizado graus
que representam qualidades ou verdades parciais ou ainda padres do melhor (na linguagem
sofista). Este o caso do conceito de alto, fumante, infeccioso, presa, etc.
nesse tipo de incerteza que a lgica Fuzzy tem dado suas principais contribuies.
Usando o conceito de conjunto das pessoas, altas ou das doenas infecciosas, isto conjunto
definido por propriedades subjetivas ou atributos imprecisos.
Na modelagem Fuzzy associado um valor x(p) a uma proposio p, indicando o grau
de validade desta proposio, cujo conjunto imagem est entre 0% e 100%., permitindo uma
gama de infinitos valores possveis.
Um exemplo de proposies baseadas na Lgica Fuzzy o seguinte:
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
1 Milena alta, x(p) = 55%
2 Matheus alto, x(p) = 75%
3 Joo alto, x(p) = 100%
4 Nadine alta, x(p) = 0%

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:

Um programa lida tipicamente com a lgica de predicados ou proposicional, enquanto o


matemtico usa a lngua corrente associada a smbolos tpicos da matemtica.

Enquanto um matemtico utiliza-se de intuio, raciocnio e estratgias pessoais, o


programa se utilizada de uma instruo algortmica fixa.

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
Objetivo: Somar dois nmeros quaisquer.
Incio.
1. Escreva o primeiro nmero no retngulo A;
2. Escreva o segundo nmero no retngulo B;
3. Some o nmero do retngulo A com o nmero do retngulo B e coloque o resultado no
retngulo C.
Fim.

TPICO 04
USO DE LGICA APLICADA A IFORMTICA
Na informtica a lgica tratada como lgica de programao e seu trabalho
automatizar o pensamento de tal maneira que as atividades possam ser realizadas por uma
mquina.
O algoritmo utilizado na programao tem sua sub-diviso lgica na instruo. Em
linguagem comum entendemos por instruo o conjunto de regras, normas ou comandos
elementares pr-definidas com fins de realizar determinada tarefa.
importante ressaltar que uma ordem isolada no consiste na realizao de um
processo, mas o conjunto de instrues (sistema) encadeadas obedecendo a uma seqncia
lgica que realiza um processo.

PROBLEMAS COMPUTACIOAIS
Os problemas computacionais esto relacionados a manipulao da informao, ou seja
sempre haver uma pergunta de carter geral a ser respondida. Onde um problema descrito
especificando-se a entrada (quais so os possveis dados) e a condio (ou relaes) que a sada
deve satisfazer para uma determinada entrada.
O generalista, desenhista de sistema ou programador de computador, quando
encarregado de construir um algoritmo ou uma base de dados para certa aplicao tem a
problemtica de relacionar as informaes que devero ser tradadas com limitaes impostas
desde espao fsico quando um profissional programa um manipulador robtico, as relaes
ditadas pela interao empregados e empregador, clientes e fornecedores questes sociais e
econmicas at limitaes relacionadas ao sentido, raciocnio e intuio. Tal processo de
construo denominado modelagem.
Durante a anlise e construo do algoritmo computacional que dever conter entidades
matemticas tais como conjuntos, funes, grafos, relaes, equaes diferenciais, etc., o
profissional deve construir um modelo conceitual que, no apenas inclua todos os detalhes
necessrios a soluo do problema, mas tambm no inclua detalhes em excesso, que podero
comprometer a eficincia do processo computacional.

representa

OBJETO

REALIDADE

Abstrai

MODELAGEM

CONCEITO

NVEL CONCEITUAL

Denota

SMBOLO

Conjuntos, relaes, grafos,


Equaes diferenciais, etc.

FORMALIZAO

NVEL FORMAL

Linguagens de programao,
Linguagens de especificao formal
Lgica proposicional
Lgica estatstica
Lgica Fuzzy, etc.

TPICO 05
ALGORTMO APLICADA A IFORMTICA
O processo de clculo matemtico ou de resoluo de problemas semelhantes
conhecido por programa que composto por um conjunto de algoritmos interdependentes
trabalhando de maneira compreensvel para a mquina, proporcionando um passo a passo na
soluo de um problema.
No momento em que a tarefa passa a ser realizada seja parcial ou totalmente pela
mquina est sendo realizado um processo de automao. Este para obter xito em seu trabalho
necessita ser instrudo em todas as etapas do processo que realizar, esta instruo por sua vez
dever ser dada de maneira a realizar a tarefa com a maior eficincia e eficcia possveis.
O tratamento destas instrues dado pela capacidade de captar e transferir inteligncia
mediante os algoritmos que so construdas as mquinas que exibem comportamento
inteligente. Por conseguinte, o nvel de inteligncia demonstrada pela mquina fica limitada pela
inteligncia que um algoritmo capaz de transportar. Por outro lado, se no houver algoritmo
capaz de executar tal tarefa, ento a sua realizao excede a capacidade da mquina.
Estudos fundamentados em um conhecimento lingstico e gramatical com o objetivo
de criar algoritmos capazes de criar mquinas consideradas inteligentes conduziram a uma
grande diversidade de esquemas para a representao de algoritmos conhecidos como
linguagem de programao ou paradigmas de programao.
A busca de algoritmos para controlar as tarefas cada vez mais complexas que
possibilitem atribuir inteligncia a mquina conduziu a situaes relacionadas as limitaes do
algoritmo. A inexistncia de algoritmos que no tem soluo implica que o problema no pode
ser resolvido por uma mquina. Isto , as mquinas so capazes de resolver apenas problemas
passveis de soluo algortmica.
Para representar um algoritmo, so empregados diversos tipos ou tcnicas e cabe ao
profissional, utilizar aquele que se adqua as suas necessidades.
Existem algoritmos que apresentam passo a posso do processo apenas a nvel lgico, ou
seja, no especificam em detalhes a linguagem de programao que se utilizada, e outros que
tratam os passos do programa com maior riqueza de detalhes.
Na medida em que se avanou no estudo de algoritmos tornou-se necessrio normatizar
mtodos e ou tcnicas que possibilitaram um enfoque epistemolgico que principiam nos
seguintes questionamentos.
Quais problemas podero ser resolvidos por meio de processos algortmicos?
De que modo o processo de descoberta de algoritmos podem ser facilitados?
Como se pode melhorar as tcnicas de representao e comunicao de algoritmos?
Como o nosso conhecimento de algoritmos e da tecnologia pode ser aplicado na
obteno de mquinas algortmicas melhores?
De que maneira as caractersticas de diferentes algoritmos podem ser analisadas e
comparadas?
Que analiticamente so respondidos atravs do diagrama abaixo:
Limitaes de

Analise de

Delineamento de

Execuo de

Algoritmos

Comunicao de

Representao de

TPICO 06
PRICIPAIS MTODOS DE REPRESETAO DE UM ALGORITMO
Fluxograma e diagrama de blocos
Representao grfica do processo, ou seja, das instrues e ou mdulos do
processamento, que compem o algoritmo e que tambm conhecido como diagrama de blocos.
No planejamento o generalista ou desenhista de sistema tem uma poderosa
ferramenta de representao grfica que possibilita:
a)
b)
c)
d)

Rpida anlise durante o processo de planejamento e construo do sistema.


Identificao das atividades crticas para cada um dos processos.
Identificao dos subsistemas e suas ligaes que permitem a interdependncia.
Conhecimento da seqncia encadeada das atividades dando uma viso de luxo do
processo.
e) Documentao do processo para anlises futuras, adequao a normas e certificaes e
esclarecimento sobre o funcionamento para novos colaboradores no sistema.

Diagrama de blocos
Indica as atividades realizadas sem diferenci-las por tipo.
Visualizao rpida do processo.
Desenho horizontal ou vertical
Utiliza frases curtas que identifiquem as atividades realizadas.
Smbolos de fluxogramas (padro ASI)1
SIMBOLO
SIGNIFICADO
Operao

Movimento/transporte

Ponto de deciso

Inspeo

Documento impresso

Espera

Armazenagem

Sentido do fluxo

Conexo

Limites (incio, pare, fim)

Entrada de dados teclado

Observaes
1 - o uso de abreviaturas e siglas deve ser evitado.
2 - o tamanho dos retngulos para cada rgo pode variar conforme o nvel de hierarquia.
3 - podem-se variar cores, com fins de destacar determinado rgo da estrutura.

EXEMPLOS DE FLUXOGRAMA
Incio

Digite o
coeficiente a

Digite o
coeficiente b

No

a 0 ?

Imprime no
existe raiz

Sim

X = - (b/a)

Imprime valor
de x

Fim

DESCRIO ARRATIVA OU SEQUECIA LGICA


Largamente utilizado em manuais de instruo, por sua simplicidade de compreenso e
linguagem acessvel a todo usurio.
Exemplo.
1. Aperte o boto "ligar" do seu controle remoto;
2. No quadro canais, pressione a tecla correspondente ao canal que quer assistir;
3. Pressione seta para a se quer ou para a direta para selecionar o volume de seu aparelho;
4. ...
5. ...
O mtodo de descrio narrativo pouco usado na construo de algoritmos
computacionais devido a sua natureza lingstica, que pode proporcionar em diversos casos
interpretaes erradas do objetivo, pois na construo de um algoritmo (conjunto de regras) ele
deve ser claro e preciso, evitando tarefas que incorram em redundncia ou comandos subjetivos
em sua definio. Exemplo.

Acabamento final (O acabamento vem sempre no fim)


A avaliao foi antecipada para antes da data marcada (se foi antecipado foi para antes)
Ganhei inteiramente grtis (se ganhou foi grtis)

PORTUGOL (PSEUDO CDIGO)


Muito semelhante s linhas de cdigo de uma linguagem de programao, a tcnica
apresenta um algoritmo rico em detalhes, onde temos de definir variveis, rotinas, sub-rotinas,
etc... Ao contrrio do fluxograma que se utiliza de smbolos utilizamos comandos para solicitar
uma determinada tarefa. Sua sintaxe bsica :

Algoritmo <nome do algoritmo>


<declarao das variveis>
Incio da rotina
<instrues a serem seguidas>
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.

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.

- 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

Estrutura bsica de dados


A grande massa de informaes a serem processados representa de certo modo a
abstrao de uma parte da realidade. Enquanto a informao disponvel ao computador consiste
de um conjunto selecionado de dados a cerca do problema a ser resolvido. A partir dos quais
possvel obter-se os resultados desejados. (Polya Mtodo para soluo de problemas)
Os dados tm certas propriedades e caractersticas do objeto real que so desprezadas,
por serem inexpressivas ou irrelevantes para a soluo do problema corrente em particular.
Desta maneira, a abstrao pode ser tambm, visualizada como uma simplificao dos fatos.
Exemplo a altura de um indivduo em um determinada cadastro de crdito bancrio.
Na soluo de um problema, com ou sem o auxlio do computador, necessrio
escolher uma abstrao da realidade, isto , definir um conjunto de dados que iro representar
uma situao real. Esta escolha deve ser orientada segundo as caractersticas do problema a ser
resolvido.
A escolha da forma de representar os dados uma tarefa que no depende apenas do
problema a ser resolvido, mas depender dos recursos disponveis do ambiente interno e externo
e das operaes a serem realizadas.

Tipos de dados
Matematicamente fcil classificar as variveis que envolvem um problema com
caractersticas claras como variveis reais, complexas, lgicas, que representam valores
unitrios ou conjuntos de valores. No processamento de dados se faz necessrio que inclua
ainda caractersticas incorporadas s linguagens de programao, que so:

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.

Temos em C os seguintes tipos de dados:


1.
2.
3.
4.

char Caractere: O valor armazenado um caractere, geralmente so


armazenados em cdigos, com tamanho de 8 bits.
int Nmero inteiro: o tipo padro e o tamanho do conjunto que pode ser
representado normalmente depende da mquina em que o programa est rodando.
float Nmero em ponto flutuante: De preciso simples. So conhecidos
normalmente como nmeros reais.
double Nmero em ponto flutuante de preciso dupla

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:


Podem ser aplicados modificadores aos tipos bsicos, estes modificadores
correspondem ao mecanismo de alterao de tamanho do conjunto de valores que o tipo
pode representar. Estes modificadores so:
unsigned, short, long
Note: quando um destes modificadores utilizado sozinho os compiladores interpretam
que do tipo int. uma das aplicaes est no armazenamento de nmeros inteiros
maiores (n de caracteres) ou armazenar um nmero sem sinal.

Tamanho (bits)
1
1
4
4
2
2
4
4
4
8
10

Tipos de dados (padro ANSI C)


Tipo
Faixa
char
-127 a 127
unsigned char
0 a 255
int
-2.147.483.648 a 2.147.483.647
unsigned int
0 a 4.294.967.295
short int
-32.768 a 32.767
unsigned short int
0 a 65.535
long int
-2.147.483.648 a 2.147.483.647
unsigned long int
0 a 4.294.967.295
float
Seis dgitos de preciso
double
Dez dgitos de preciso
long double
Dez dgitos de preciso

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.
EXEMPLO.: Na expresso matemtica para obteno da nota final em determinada organizao
educacional temos:
Nf = ((N1 * 4)+(N2 * 6))
10
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)

Tipos de variveis e constantes


Classificam-se as variveis e as constantes por quatro tipos, numricas, caracteres,
alfanumricas e lgicas.

Numricas: armazenamento numrico, que podem ou no representar nmeros que


sero utilizados em clculos, podendo ser classificada como inteiras ou reais.

Caracteres: utilizando na representao de conjuntos no numricos. (por exemplo


nomes)

Alfanumricos: Dados que contenham letras e ou nmeros. Quando utilizando para


armazenar nmeros no podero ser utilizados em clculos.

14

Lgicos: Baseado na lgica booleana s pode armazenar dados do tipo true (verdadeiro)
1 ou false (falso) 0.

Nota: observe que 0 ou 1 significa exclusivo.

Bit e seu armazenamento


O armazenamento da informao em um computador feito no padro binrio, este
representado por 0 e 1, os quais, no necessariamente representam valores numricos mas
podem representar smbolos, caracteres, imagens e sons, ou seja representam dados
armazenados em um computador. Estes dados so gerados e administrados a partir da lgica
booleana que consiste em uma matriz binria que acessada (operaes) de maneira semelhante
aritmtica de produto e de soma.

Nota: Observe que 0 e 1 significa inclusivo.

Portas lgicas
Baseada na lgica booleana de true (verdadeiro) e false (falso), 1 para verdadeiro e 0
para falso, estudamos os operadores booleanos que nos permite agir conceitualmente sobre os
valores de true e false manipulando-os. importante notar que todo sistema de processamento
binrio dos computadores binrio.
Os operadores AND (e), OR (ou) e XOR (ou exclusivo), apresentam semelhana em por
operarem de forma semelhante a aritmtica que toma dois valores para produzir um terceiro
como resultado, enquanto o operador NOT (inverso) utiliza apenas uma entrada para produzir
uma sada, que consiste no inverso da entrada. Os quatro operadores so representados por
smbolos que facilitam o entendimento de projetos.
AND

Entrada

Sada

AND de significa em portugus E, e da mesma


maneira que no portugus, na lgica booleana
faz a juno de idias.

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

SADA
0
0
0
1

OR
Entrada

Sada

OR de significado em portugus OU, e da


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

SADA
0
1
1
1

XOR
Entrada

Sada

XOR de significado em portugus OU exclusivo


indica que uma exigncia de oposio.

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
Entrada

Sada

NOT de significado em portugus negao, e


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

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

Enquanto as duas entradas do circuito permanecerem com valores em 0, sua sada no


se alterar:
No entanto se variarmos as entradas ocorrer que podermos obter a sada igual a 1 ou a
0 dependendo dos valores das entradas.

17

TPICO 09

Comandos para atribuio de valor


Existem dois tipos de atribuio de valor um quando se impe uma igualdade, ou seja:
int a; /* atribuio de tipo para a varivel a */
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.
Um erro clssico em programao e confundir o operador lgico de igualdade = =
com o operador de atribuio =.
Exemplo:
int x = 0; // atribuio de valor para a varivel x
if (x==4); //Teste lgico if (se) que indica a verificao se x tem valor igual a 4
if (x = 0); /* no convm fazer uma atribuio em um teste lgico */

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:
Binrio: quando utilizados em operaes matemticas de radiciao, exponenciao, diviso,
multiplicao, adio e subtrao.
Unrio: quando atua na inverso do estado de um valor numrico, ou seja de positivo para
negativos e de negativo para positivo.
A tabela a seguir apresenta os operadores matemticos para uso em lgica descrevendo seu tipo.

Algoritmos lgica para desenvolvimento de programas de computadores - Manzano Erica:2010 pag 47

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

SIGNIFICADO
Adio
Subtrao
Multiplicao
Diviso (resto real)
Diviso (resto inteiro)
Resto da diviso

LINGUAGEM C
+
*
/

PORTUGOL
+
*
/
div

SIMB. NO PADRO ANSI


+
/
div

Exemplo:
Se escrevermos a funo:
a=11%4; // a varivel a ir conter 3 como resultado j que 4 o resta da diviso de 11 por 4.

19

Tpico 11

Operadores relacionais
Os operadores relacionais definem a maneira como as proposies podem ser
conectadas, podendo a proposio composta assumir um dos dois valores verdadeiro ou falso.
Tabela de operadores
Operador

Maior
Menor
Maior ou igual
Menor ou igual
Igual
Diferente

Smb
.

Exemp
.

Literal

Resultado
Binrio

>
<
>=
=<
=
<>

a>b
a<b
a>=
a=<
a=b
a<>b

V se a maior que b, seno F


V se a menor que b, seno F
V se a maior ou igual a b, seno F
V se a menor ou igual a b, seno F
V se a igual a b, seno F
V se a diferentes de b, seno F

1 se a maior que b, seno 0


1 se a menor que b, seno 0
1 se a maior ou igual a b, seno 0
1 se a menor ou igual a b, seno 0
1 se a igual a b, seno 0
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.

3 disjuno inclusiva

.ou.

4 disjuno exclusiva

.xou.

- Operador lgico de negao.


Corresponde a operao lgica de negao de rejeio ou a contradio do todo
ou de parte do todo.
O operador lgico de negao utiliza-se em Portugus estruturado dos
comandos:
se .no. (<condio 1>) ento
[ ao para condio no verdadeira]
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.

Diagrama de Venn para o operador de


conjuno.
O operado de conjuno .e. corresponde a
interseco de dois conjuntos (condio1 e 2)

O operador lgico de conjuno utiliza-se em Portugus estruturado dos


comandos:
se (<condio 1>) .e. (<condio 2>) ento
[ ao para condio 1 e condio 2 verdadeiras]
fim_se

Operador lgico de disjuno inclusiva.


Da lgica clssica se diz que o operador lgico de disjuno inclusiva
corresponde a relao entre duas proposio de tal modo que seu resultado lgico ser
verdadeiro quando pelo menos uma das duas proposies for verdadeira.
O operador lgico .ou. corresponde a operao entre duas ou mais condies
(proposies), representado na teoria de conjuntos como a unio entre conjuntos.

Diagrama de Venn para o operador de disjuno


inclusiva.
O operado de disjuno inclusiva .ou.
corresponde a unio de dois conjuntos
(condio1 e 2)

O operador lgico de disjuno inclusiva utiliza-se em Portugus estruturado dos


comandos:
se (<condio 1>) .ou. (<condio 2>) ento
[ ao para condio 1 e/ou condio 2 verdadeiras]
fim_se

Operador lgico de disjuno exclusiva.


Da lgica clssica se diz que o operador lgico de disjuno exclusiva
corresponde a relao entre duas proposio de tal modo que seu resultado lgico ser
verdadeiro quando uma e apenas uma das duas proposies for verdadeira.
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.
Diagrama de Venn para o operador de disjuno
exclusiva.
O operado de disjuno exclusiva .xou.
corresponde subtrao da unio de dois
conjuntos por sua interseco. (condio1 e 2)

O operador lgico de disjuno inclusiva utiliza-se em Portugus estruturado dos


comandos:

se (<condio 1>) .xou. (<condio 2>) ento


[ ao para condio 1 verdadeira e condio 2 falsa ou condio 1 falsa e condio 2
verdadeira]
fim_se

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:

1 - sendo orao, tem sujeito e predicado;


2 - declarativa (no exclamativa nem interrogativa);
3 - tem um, e somente um, dos dois valores lgicos: verdadeiro (v) ou falso(f).

Algumas Leis Fundamentais


Lei do meio excludo: Uma proposio falsa (F) ou verdadeira (V).
Lei da contradio: Uma proposio no pode ser, simultaneamente V e F.
Lei da Funcionalidade: O valor ( V ou F) de uma proposio composta unicamente
determinada pelos valores lgicos de suas proposies constituintes.

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:

TIPO

OPERADOR

SMBOLO

Proposio de negao

No verdade

ou ~

Conectivo de conjuno

Conectivo de disjuno

Ou

Implicao

Se ... ento

Bi-condicional

Se e somente se

Disjuno exclusiva

Ou exclusivo

23

egao ~
A partir de uma proposio p qualquer, sempre ser possvel
construir outra proposio, denominada negao de p e identificada
pelo smbolo ~p.

p ~p
V F
F V

A negao se classifica pelo seguinte postulado


A proposio ~p tem sempre o valor oposto de p, isto , ~p verdade quando p falsa e
~p falsa quando p verdadeira.

Proposio composta Conectivos


A partir de preposies dadas podemos construir novas
preposies mediante a utilizao de dois smbolos lgicos
chamados conectivos:

p q p^q
VV V
VF F

(l-se: e), conectivo que quando utilizando entre duas proposies


p q, denominada conjuno das sentenas.

FV F
F F F

A conjuno p q verdadeira se p e q so ambas verdadeiras; se ao menos uma delas


for falsa, ento p q falsa.

p q pvq
(l-se: ou), conectivo que quando utilizado entre duas
proposies p q, denominada disjuno das sentenas.

VV V
VF V

A disjuno p q verdadeira se ao menos uma


das proposies p ou q verdadeira; se p e q so
ambas falsas, ento p q falsa.

FV V
F F F

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

VV V
VF

O condicional p q falso somente quando p verdadeiro e p falsa;


caso contrrio pq verdadeiro.

FV V
F F

P q pq
VV V
VF

FV

F F

(l-se: se, e somente se), condicional (ou bi-condicional) que quando


utilizando entre duas proposies pq, onde p condio necessria e
suficiente para q e reciprocamente. (Equivalncia)
O condicional verdadeiro somente quando p e q so ambas
verdadeiras ou ambas faltas; se isso no acontecer, o condicional
falso.

Adaga de Quine (OR)

A B A
B AB

A conjuno verdadeira se e somente se os operandos so


falsos

VV V

VF V

FV V

F F

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:

~p

p~q

qp

(p~q) (qp)

Proposies logicamente falsas


Seja f 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 f
uma proposio logicamente falsa quando f tem o valor lgico F (falso)
independentemente dos valores lgicos de p, q, etc.
Assim, a tabela-verdade de uma proposio logicamente falsa f apresenta s F na coluna
de f.

Exemplo
p~p proposio logicamente falsa, pois:

~p

p~p

F
26

Tpico 14
PROGRAMAO ESTRUTURADA OU PROGRAMAO MODULAR
A tcnica mais importante no projeto da lgica de programao em algoritmos
denomina-se programao estruturada ou programao modular, estando em consonncia com o
pensamento, que estruturado e serve como base e fundamentao para o uso e estudo de outras
tcnicas, como a tcnica de programao orientada a objetos.
A tcnica utiliza a seguinte metodologia:
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:
1. Agilizar a codificao da escrita da programao;
2. Facilitar a depurao da leitura;
3. Permite a verificao de possveis falhas apresentadas pelos programas.
Procedimentos.
A ordem ideal de procedimentos corresponde a:
1 - Estabelecer a seqncia lgica do
projeto;

Durante esta fase de projeto o engenheiro dever ter em mente


que em geral necessrio trs processos.
Entrada ou leitura de dados.
Processamento dos dados.
Sadas dos dados.

2 - Construir o diagrama de blocos


(fluxograma) que represente o projeto;

Etapa em que se pode exigir retorno e reestruturao do


processo anterior.

3 - Escrever em linguagem de
programao ou em LPP.(linguagem
de projeto de programao)

Finalizao, que exige rigor no atendimento do planejado


anteriormente.

LIGUAGEM DE PROJETO DE PROGRAMAO - PSEUDOCDIGO


Para facilitar o trabalho com portugus estruturado adotamos o padro de linguagem de
projeto de programao, com seus comandos descritos abaixo. Descendente da tcnica PDL
(Program Design Language).
O portugus estruturado ou LPP, por ser uma linguagem de comunicao humanomquina hipottica, est formada com estruturas de verbos, substantivos, conjunes,
interjeies, preposies adjetivos, com fins de associar-se a outras linguagens (LUA,
PASCAL, C, C++, etc) estas de programao de alto nvel.
27

TABELA DE COMADOS ADOTADOS EM LPP


LPP
AT
AT_QUE
AT_SEJA
CADEIA
CARACTERE
CASO
CLASSE
CONJUNTO
CONST (constante)
CONTINUA
DE
EFETUE
ENQUANTO
ENQUANTO SEJA
ENTO
ESCREVA
FAA
FIM
FIM_AT_SEJA
FIM_CASO
FIM_CLASSE
FIM_ENQUANTO
FIM_FAA
FIM_LAO
FIM_PARA
FIM_REGISTRO
FIM_SE
FUNO
HERANA
INCIO
INTEIRO
LAO
LEIA
LGICO
OBJETO
PARA
PASSO
PRIVADA
PROCEDIMENTO
PROGRAMA
PROTEGIDA
PBLICA
REAL
REGISTRO
REPITA
SAIA_CASO
SE
SEO_PRIVADA
SEO_PROTEGIDA
SEO_PBLICA
SEJA
SENO
TIPO
VAR (varivel)
VIRTUAL

CLASSIFICAO SITTICA
Preposio
Conjuno (de acordo com seu equivalente em ingls-until)
Preposio com interjeio
Substantivo feminino
Substantivo feminino
Substantivo masculino
Substantivo feminino
Adjetivo
Adjetivo
Verbo (imperativo afirmativo)
Preposio
Verbo (imperativo afirmativo)
Conjuno
Conjuno com verbo
Advrbio
Verbo (imperativo afirmativo)
Verbo (imperativo afirmativo)
Substantivo masculino
Substantivo masculino com preposio e com interjeio)
Substantivo masculino com substantivo masculino
Substantivo masculino com substantivo feminino
Substantivo masculino com conjuno
Substantivo masculino com verbo
Substantivo masculino com substantivo masculino
Substantivo masculino com preposio
Substantivo masculino com substantivo masculino
Substantivo masculino com conjuno
Substantivo masculino
Substantivo feminino
Substantivo masculino
Adjetivo
Substantivo masculino
Verbo (imperativo afirmativo)
Adjetivo
Substantivo masculino
Preposio
Substantivo masculino
Substantivo feminino
Substantivo masculino
Substantivo masculino
Adjetivo
Adjetivo
Substantivo masculino
Substantivo masculino
Verbo (imperativo afirmativo)
Verbo imperativo afirmativo com substantivo masculino
Conjuno
Substantivo feminino com substantivo masculino
Substantivo feminino com adjetivo
Substantivo feminino com adjetivo
Interjeio
Conjuno
Substantivo masculino
Substantivo feminino
Adjetivo

28

Tpico 15 -17

Comandos de entrada e sada


Os procedimentos de entrada e sada correspondem a execues que ocorrem em quase
todos os tipos de programa (normalmente os programas so divididos em trs grades blocos
entrada de dadosprocessamento/procedimentossada de dados.
Exemplo:
Uma entrada poder ser atravs de teclado, sensor, modem, leitores pticos, disco e etc.

Utilizando-se do smbolo.

Entrada de dados

Uma sada poder ser atravs de vdeo ou formulrio (impresso).

Utilizando-se dos smbolos.

Sada em
vdeo

Sada em
relatrio

Sintaxe em portugol.
Entrada comando leia
Sada comando escreva

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.
As estruturas de controle so formadas por um cabealho seguido por um bloco de
comandos que indique seu objetivo e delimitado por um comando que indique o fim_<nome da
estrutura>.
Tais condies correspondem a expresses booleanas cujo resultado um valor lgico
falso ou verdadeiro, assim o estabelecimento de uma condio, ou seja, uma relao lgica entre
dois elementos feita a partir de operadores relacionais.

Caractersticas das estruturas se seleo:


a) Adota-se a sinalizao das linhas de fluxo indicando a direo de processamento;
b) Utiliza-se o smbolo de deciso decision com os rtulos S (sim) e N (no)
independentemente a esquerda ou a direita respectivamente;
c) Ao fim do processo de deciso utiliza-se o smbolo de conector connector;

29

Tpico 18
Estrutura de seleo simples
Corresponde a tomada de simples (desvio condicional), a principal caracterstica de um
bloco de deciso (seleo) simples corresponde ao fato de existir um bloco de operaes
somente se a condio for verdadeira.
Ao lado do rtulo S executam-se as instrues subordinadas para depois direcionar o
fluxo ao conector.
Na linguagem de projeto (portugus estruturado) utiliza-se apresentar as condies entre
parnteses (condio). Outra caracterstica o deslocamento de dois ou trs espaos a direita a
fim de evidenciar qual de fato o bloco subordinado e uma determinada condio e quais so as
instrues subordinadas.
A estrutura de seleo simples utiliza-se dos comandos se......ento e fim_se, que na
linguagem de programao C, corresponde aos comandos if ... then .
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.
a) Seqncia lgica (entendimento)
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.
b) Diagrama de blocos.

c) Cdigo
programa ADIO_DE_NMEROS_1
var
A, B, X : real
incio
leia A, B
XA+B
se (X > 10) ento
escreva X
fim_se
fim

30

Tpico 19
Estrutura de seleo composta.
Corresponde a tomada de deciso composta, que semelhantemente a seleo simples
refere-se operao booleana de verdadeiro ou falso, no entanto a tomada de deciso composta
(desvio condicional composto) corresponde a tomada de deciso que impe aes (instrues
subordinadas), tanto para a condio lgica S, quanto para a condio N, isso implica que sua
principal caracterstica a existncia de um bloco de operaes para cada um dos lados da
condio (deciso, decision).
Na estrutura de seleo composta utiliza-se dos comandos, se ....ento/seno/fim_se.,
que na linguagem de programao C, corresponde a if... then...else .
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.
a) Seqncia lgica (Entendimento)
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
se (X >= 10) ento
RX+5
seno
RX-7
fim_se
escreva R
fim
31

Anda mungkin juga menyukai