Você está na página 1de 55

LGICA DE

PROGRAMA
O

OBJETIVO

Desenvolver o raciocnio lgico do aluno modelado


s tcnicas e prticas recomendadas e atuais
para o desenvolvimento de programao de
computadores.

INTERDISCIPLINARIDAD
E

A disciplina possui ligao direta com a de


Linguagem de programao, pois interage na
forma do desenvolvimento do raciocnio lgico que
em seguida o aluno o aplica na criao de
programas,
atravs
da
linguagem
de
programao do mdulo.

COMEANDO...

O QUE LGICA?
Cincia

que estuda as leis do


raciocnio.

Correo/validao

do pensamento.

Encadeamento/ordem
Arte

de idias.

de bem pensar.

LINGUAGEM DE
PROGRAMAO

Tipos de Linguagens:
Programao Imperativa
Programao Funcional
Programao baseada em Lgica
Programao Orientada por Objetos

PROGRAMAO
IMPERATIVA

Orientada por aes


A Linguagem FORTRAN foi criada por um
grupo da IBM liderado por John Backus .
COBOL foi criada para aplicaes comerciais,
cujo objetivo era manipular ficheiros de
registros.
O ALGOL, criado nos anos 60, serviu de modelo
para o Pascal e C.
BASIC foi criada para ser simples e usada por
no-programadores.

PROGRAMAO
IMPERATIVA
PL/1 foi a 1 Linguagem Generalista, embarcando
conceitos do COBOL, FORTRAN e ALGOL.
O PASCAL derivou do ALGOL, a linguagem dos
anos 70 e 80.
A Linguagem C foi orginalmente desenhada para
programao de sistemas, hoje largamente
utilizadas nas aplicaes.

PROGRAMAO FUNCIONAL
Os conceitos bsicos das linguagens funcionais
originaram do LISP.
Utilizada para processamento simblico em:
Clculo diferencial e integral, teoria de circuitos
eltricos, resoluo de jogos, I.A.

PROGRAMAO BASEADA EM
LGICA
O PROLOG foi originalmente desenhado para
processamento de linguagem natural.
Tal como LISP usado para processamento
simblico em todas as reas da I.A.
Nessa linguagem no se descreve o algoritmo
para chegar ao resultado, mas a informao base
(fatos) e as regras para se pdoer deduzir o
resultado.

PROGRAMAO ORIENTADA A
OBJETOS
Quase todas as linguagens j existentes foram
modificadas para suportar o paradigma OO (C++,
MODULA 3, PROLOG++, etc.)
Algumas foram originalmente projetadas para
suporte
a
esse
paradgima
(SIMULA,
SMALLTALK, EIFELL, JAVA), so as
chamadas OO puras.

O ATO DE PROGRAMAR
Programar no um ato mecnico, consegue-se
atravs do estudo e principalmente do treino!!!!
O Conhecimento da linguagem necessrio, mas
no de todo suficiente. Programao o simples
ato de escrever idias ter essas idias, ser
criativo e engenhoso!

SEQUNCIA LGICA
Sequncia Lgica so passos executados at
atingir um objetivo ou soluo de um problema:

Chupar uma bala:


Pegar a bala
Retirar o papel
Chupar a bala
Jogar o papel no lixo

INSTRUES

Instrues so um conjunto de regras ou normas


definidas para a realizao ou emprego de algo.
Em informtica, o que indica a um computador
uma ao elementar a executar.

LINGUAGENS DE
PROGRAMAO

ALGORITMO

Algoritmo um conjunto finito de regras,


bem definidas, para a soluo de um
problema em um tempo finito e com um
nmero finito de passos.

CARACTERSTICAS DO
ALGORITMO

Finitude: um algoritmo tem de terminar ao fim


de um nmero finito de passos.
Definitude: cada passo do algoritmo tem de ser
definido com preciso.
Entrada: um algoritmo pode ter zero ou mais
entradas.
Sadas: um algoritmo tem uma ou mais sadas.
Eficcia: todas as operaes feitas por um
algoritmo tm de ser bsicas.

ALGORITMOS
Regras:
Variveis sos os nicos objetos manipulados
pelos algoritmos
Os algoritmos s podem memorizar valores em
variveis

VAMOS ENTENDER VARIVEL, COMO


UMA CAIXA, NA QUAL VOC PODE DAR O
NOME QUE LHE ACHAR CONVENIENTE,

seja, toda varivel


tem um nome,
e tipo.
EOu
GUARDAR
O CONTEDO
QUE valor
DESEJAR
Mas voc no falou de tipo, o que isso?
As variveis, podem sem classificadas em:
numrica (numeros reais ou inteiros);
caracteres (sequncias de texto);
booleanas (verdadeiro ou falso);

Em portugol, temos os tipos: real, inteiro, caractere


e logico

ENTO EU POSSO COLOCAR


QUALQUER NOME EM MINHA

Certas palavras, so reservadas para o uso da


VARIVEL?
linguagem,
SIM
E NO!ou seja, essas palavras no podem

ser utilizadas como um nome para sua varivel,


pois haveria um conflito na hora de interpretar o
cdigo.

Palavras reservadas do Portugol

No se preocupe em decorar essa tabela, no necessrio! A


medida em que voc for aprendendo a programar em portugol, voc
saber exatamente qual palavra , e qual no reservada pela
linguagem.

Outras restries para o nome de sua varivel :


O

primeiro caractere de sua varivel, deve ser necessariamente


letra ou underline _. No pode comear em nmeros
Nomes

de variveis no podem ter espaos em branco. Nada de


Coca Cola por exemplo. Uma varivel correta seria ArgoHost,
tudo junto e sem espaos.
Essa

aqui chega a ser difcil No permitido variveis com


mais de 127 caracteres (pasmem! quem criaria uma varivel desse
tamanho?)
E

por fim, em Portugol, diferente de outras linguagens de


programao, as variveis no so case sensivity, ou seja, elas
no diferenciam maisculas de minsculas. Logo, BrUnO = bruno.

A TABELA ABAIXO, EXEMPLIFICA


QUE TIPO DE CONTEDO VAI EM
CADA VARIVEL.

PSEUDOCDIGO
Os algoritmos so descritos em uma linguagem
chamada pseudocdigo, que uma aluso
posterior implementao em uma linguagem de
programao
Assim os algoritmos so independentes das
linguagens de programao.
Ao contrrio de uma linguagem de programao
no existe um formalismo rgido de como deve ser
escrito o algoritmo.

REGRAS PARA SE CRIAR O


ALGORITMO:
Usar somente um verbo por frase
Imaginar
que voc est desenvolvendo um
algoritmo para pessoas que no trabalham com
informtica
Usar frases curtas e simples
Ser objetivo
Procurar usar palavras que no tenham sentido
dbio

MONTAGEM DO ALGORITMO

ENTRADA: So os dados de entrada do


algoritmo
PROCESSAMENTO: So os procedimentos
utilizados para chegar ao resultado final
SADA: So os dados j processados

EXEMPLO 1
Os alunos faro 2 provas: P1 e P2.
Calcular a mdia dos alunos do 1 ano:
(P1+P2) / 2
Quais os dados de entrada?
Qual o processamento?
Qual o dado de sada?

TESTE DE MESA
Aps

desenvolver um algoritmo ele dever


sempre ser testado. Este teste chamado de
TESTE DE MESA, que significa, seguir
as instrues do algoritmo de maneira
precisa para verificar se o procedimento
utilizado est correto ou no.

Utilize a tabela abaixo:


P1

P2

Mdia

DIAGRAMA DE BLOCOS
O diagrama de blocos uma forma padronizada e
eficaz para representar os passos lgicos de um
determinado processamento.
Com o diagrama podemos definir uma sequncia
de smbolos, com significado bem definido,
portanto, sua principal funo a de facilitar a
visualizao dos passos de um processamento.

O DIAGRAMA DE BLOCOS

EXEMPLO 1 DE DIAGRAMA

EXEMPLO 2 DE DIAGRAMA

REPRESENTAO DE UM
ALGORITMO:
Algoritmo <nome_do_algoritmo>
<declarao_de_variveis>
<subalgoritmos>
Incio
<corpo_do_algoritmo>
Fim.

COMPUTACIONAL

NO COMPUTACIONAL

PSEUDOCDIGO:

Algoritmo Mdia
VAR N1, N2, Mdia : real
Incio
Leia N1, N2
Mdia <- (N1+N2)/2
Se (Mdia >= 7)
Escreva Aprovado Ento
Escreva Aprovado
Seno
Escreva Reprovado
Fim.

ESTRUTURAS BSICAS:
Tipos de Dados
Constantes
Variveis

TIPOS DE DADOS:

Inteiros:
So caracterizados por dados numricos positivos
ou negativos. Excluindo-se destes qualquer
nmero fracionrio. Como exemplo deste tipo de
dado, tem-se os valores: 35, 0, -56, 1024 entre
outros.

TIPOS DE DADOS:

Reais:
So os dados numricos positivos e negativos e
nmeros fracionrios. Como exemplo deste tipo
de dado, tem-se os valores: 35, 0, -56, 1.2, -45.987
entre outros.

TIPOS DE DADOS:

Caracteres:
So as sequncias contendo letras, nmeros e
smbolos especiais. Uma sequncia de caracteres
deve ser indicada entre aspas (). Este tipo de
dado tambm conhecido como alfanumrico,
string, literal ou cadeia. Como exemplo deste
tipo de dado, tem-se os valores: Programao,
Rua Alfa, 52 Apto 1, Fone 574-9988, 04387030, , 7 entre outros.

TIPOS DE DADOS:

Lgicos:
So os dados com valor verdadeiro e falso, sendo
que este tipo de dado poder representar apenas
um dos dois valores. Ele chamado por alguns de
tipo booleano, devido contribuio do filsofo e
matemtico ingls George Boole na rea da lgica
matemtica.

CONSTANTES:

Tm-se como definio de constante tudo aquilo


que fixo ou estvel. Existiro vrios momentos
em que este conceito dever estar em uso, quando
desenvolvermos programas.
EX: CONST pi = 3.14159

VARIVEIS:

Todas as variveis utilizadas em algoritmos


devem ser definidas antes de serem utilizadas.
Isto se faz necessrio para permitir que o
compilador reserve um espao na memria para as
mesmas.
Ex:
VAR nome: caracter[30]
idade: inteiro
salrio: real
tem_filhos: lgico

EXPRESSES E
OPERADORES:

Operadores Aritmticos:

Hierarquia das Operaes Aritmticas:


1 ( ) Parnteses
2 Exponenciao
3 Multiplicao, diviso (o que aparecer
primeiro)
4 + ou (o que aparecer primeiro)

EXPRESSES E
OPERADORES:

Operadores Operacionais:

EXPRESSES E
OPERADORES:
Operadores Lgicos:
E-AND, OU-OR, NO-NOT

EXERCICIO 1: CALCULAR A
REA DE UM RETNGULO
A rea de uma figura geomtrica retangular calculada pela frmula rea
= largura x altura
As variveis de entrada so altura e largura, do tipo real, pois pode haver
medida com parte fracionria
Poderamos criar uma varivel de sada para a rea, porm podemos
calcular e mostrar o resultado sem usar essa varivel
O esboo da soluo em linguagem natural seria:
o Solicitar valor da largura e altura
o Calcular rea e mostrar resultado

EXERCICIO 2 -ARMAZENAR DOIS NMEROS EM VARIVEIS E


TROCAR OS VALORES DAS VARIVEIS

Para fazer a troca de valores de duas


variveis necessrio uma varivel
auxiliar pois se fizermos a troca direta,
um dos valores ser perdido

EXERCICIO 3 -CALCULAR AS RAZES DE UMA EQUAO DO SEGUNDO GRAU

EXERCICIO 4 ANLISE DO TRINGULO

Faa uma algoritmo que leia trs valores que


representam os trs lados de um tringulo e verifique:
Se o tringulo vlido
Se um tringulo equiltero, issceles ou escaleno.
Propriedades de um tringulo:
A soma de dois lados no pode ser menor que a do
terceiro lado (ou o comprimento de cada lado deve ser
menor que a soma dos outros dois lados)
Equiltero: trs lados iguais
Issceles: dois lados iguais
Escaleno: trs lados diferentes

EXERCICIO 5 - CALCULAR A SOMA DOS NMEROS MPARES ENTRE UM INTERVALO


INFORMADO

Variveis de entrada: valor inicial (ini), limite (tipo


inteiro)
Varivel de contagem: i
Variveis de processamento e sada: soma (inteiro)

EXERCICIO 6 - CALCULAR O FATORIAL DE UM NMERO

N ! = N * (n-1) * (n-2)... * 1 Ex: 5! = 5 * 4 * 3 * 1 = 60


Podemos observar na frmula do fatorial que precisaremos fazer multiplicaes
sucessivas,
onde o resultado da ltima multiplicao ser multiplicado novamente por um outro
nmero (ex: 5*4 = 20; 20 * 3 = 60 ; 60 * 1 = 60). Essa multiplicao pode ser feita de
forma similar varivel acumuladora, s que em vez de somar, multiplicando.
Ex: resl <res * num.
Precisaremos de uma estrutura PARA p/ obter os multiplicadores, que podem estar tanto
em
ordem crescente como decrescente
Um pequeno detalhe do algoritmo que precisamos iniciar a varivel acumuladora dos
produtos com 1 ou com o primeiro nmero das multiplicaes (conforme o algoritmo a ser
usado), seno estaremos multiplicando por zero
Variveis de entrada: nmero a calcular o fatorial (num) (tipo inteiro)
Varivel de contagem: c
Variveis de processamento e sada: fatorial (inteiro)

DESAFIO:
Escreva, utilizando um fluxograma, um possvel algoritmo para o jogo
Travessia do Rio disponvel online em diversos sites (ex:
http://www.aulavaga.com.br/jogos/raciocinio/travessia-do-rio/).
O jogo consiste em atravessar todos os personagens de uma margem
outra do rio seguindo as
seguintes regras:
1. Somente o pai, a me e o policial sabem pilotar o barco;
2. A me no pode ficar sozinha com os filhos;
www.facebook.com/k19treinamentos 33
ALGORITMOS 34
3. O pai no pode ficar sozinho com as filhas;
4. O prisioneiro no pode ficar com nenhum membro da famlia sem o
policial;
5. O barco pode transportar, no mximo, duas pessoas por vez;
6. Voc pode fazer quantas viagens deseja

COMPILADOR PORTUGOL
Projeto MACP - http://portugol.sourceforge.net/
Download :
http://sourceforge.net/projects/portugol/files/latest/download?
source=files
Seguir o manual de configurao:
http://ufpr.dl.sourceforge.net/project/portugol/manual/Manualde-Configuracao-v.2012.pdf

DVIDAS

Você também pode gostar