Anda di halaman 1dari 10

Lgica e Algoritmos

A lgica de programao necessria para pessoas que desejam trabalhar com desenvolvimento de
sistemas e programas, ela permite definir a sequncia lgica para o desenvolvimento. Ento o que
lgica?
Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo.
Seqncia Lgica Estes pensamentos, podem ser descritos como uma seqncia de instrues, que
devem ser seguidas para se cumprir uma determinada tarefa. Seqncia Lgica so passos
executados at atingir um objetivo ou soluo de um problema.
Instrues Na linguagem comum, entende-se por instrues "um conjunto de regras ou normas
definidas para a realizao ou emprego de algo".
2. Algoritmo Um algoritmo formalmente uma seqncia finita de passos que levam a execuo de
uma tarefa. Podemos pensar em algoritmo como uma receita, uma seqncia de instrues que do
cabo de uma meta especfica. Estas tarefas no podem ser redundantes nem subjetivas na sua
definio, devem ser claras e precisas. Como exemplos de algoritmos podemos citar os algoritmos
das operaes bsicas (adio, multiplicao, diviso e subtrao) de nmeros reais decimais.
Outros exemplos seriam os manuais de aparelhos eletrnicos, como um videocassete, que explicam
passo-a-passo como, por exemplo, gravar um evento. At mesmo as coisas mais simples, podem ser
descritas por seqncias lgicas.
Fases de um Algoritmo
Quando temos um problema e vamos utilizar um computador para resolve-lo inevitavelmente temos
que passar pelas seguintes etapas:
a) Definir qual o problema.
b) Realizar um estudo da situao atual e verificar quais a(s) forma(s) de resolver o problema.
c) Terminada a fase de estudo, utilizar uma linguagem de programao para escrever o programa
que dever a princpio, resolver o problema.
d) Analisar junto aos usurios se o problema foi resolvido.
Se a soluo no foi encontrada, dever ser retornado para a fase de estudo para descobrir onde est
a falha.
Estas so de forma bem geral, as etapas que um analista passa, desde a apresentao do problema
at a sua efetiva soluo. Iremos, neste curso, nos ater as etapas de estudo, tambm chamada de
anlise, e a etapa de programao. Mas antes vamos definir o seguinte conceito: Programar um
computador consiste em elaborar um conjunto finito de instrues, reconhecidas pela mquina, de
forma que o computador execute estas instrues.
Estas instrues possuem regras e uma Sintaxe prpria, como uma linguagem tipo portugus, ingls
ou espanhol, sendo isto chamadas de linguagem de computador.
No mundo computacional existe uma grande variedade de linguagens, Pascal, C, C++, Cobol,
Visual Basic, Delphi, etc. Ns iremos trabalhar com o Pascal.

Estruturas de Algoritmos
Antes de utilizarmos uma linguagem de computador, necessrio organizar as aes a serem
tomadas pela mquina de forma organizada e lgica, sem nos atermos as regras rgidas da Sintaxe
de uma linguagem. Para isto utilizaremos uma forma de escrever tais aes, conhecida como
algoritmo, ou pseudo-cdigo.
Conceituando: Algoritmo consiste em um conjunto lgico e finito de aes (instrues) que
resolvem um determinado problema.
Os algoritmos tero a seguinte estrutura:
ALGORITMO <Nome do algoritmo>
<definies>
INCIO
<Comandos>
FIM
Em Pascal ficaria da seguinte forma:
PROGRAM <Nome do programa>;
<definies>
BEGIN
<Comandos>;
END.

Constantes, Variveis e Tipos de Dados


Variveis e constantes so os elementos bsicos que um programa manipula. Uma varivel um
espao reservado na memria do computador para armazenar um tipo de dado determinado.
Variveis devem receber nomes para poderem ser referenciadas e modificadas quando necessrio.
Um programa deve conter declaraes que especificam de que tipo so as variveis que ele utilizar
e as vezes um valor inicial. Tipos podem ser por exemplo: inteiros, reais, caracteres, etc. As
expresses combinam variveis e constantes para calcular novos valores.
Constantes
Constante um determinado valor fixo que no se modifica ao longo do tempo, durante a execuo
de um programa. Conforme o seu tipo, a constante classificada como sendo numrica, lgica e
literal.
Variveis
Varivel a representao simblica dos elementos de um certo conjunto. Cada varivel
corresponde a uma posio de memria, cujo contedo pode se alterado ao longo do tempo durante
a execuo de um programa. Embora uma varivel possa assumir diferentes valores, ela s pode
armazenar um valor a cada instante Exemplos de variveis:
a+b+c+1=D
Vamos atribuir a cada letra um valor: letra a vale 1, b vale 2 e c vale 3, logo D = 7.
1+2+3+1=7

a+b+c+1=D
Observe que nesse exemplo a, b, c so variaveis e o valor 1 fixo, ou seja constante.
Pois o valor de D vai depender dos valores que vou atribuir as demais letras + 1 ( constante ).
Formao de Variveis
Uma varivel formado por uma letra ou ento por uma letra seguida de letras ou dgitos, em
qualquer nmero. No permitido o uso de espaos em branco ou de qualquer outro caractere, que
no seja letra ou dgito, na formao de um identificador.
Na formao do nome da varivel de um nome significativo, para que se possa ter idia do seu
contedo sem abri-l. Se utilizar palavras para compor o nome da varivel utilize o "_ " underline
para separar as palavras.
Contedo de uma Varivel
Dados - Elementos conhecidos de um problema
Informao - Um conjunto estruturado de dados, transmitido conhecimento
Para fixarmos uma ideia de variavel, pense em um supermercado, shopping ou um grande
estacionamento.
Cada vaga tem seu determinado nome, ex.: Setor B n 20, ou seja a vaga nmero 20 pertencente
ao setor B do estacionamento.
Agora imagine que alguem estaciona o carro ali, logo essa vaga vai estar ocupada por esse carro.
O que acabamos de mostrar nada mais do que um exemplo simples e pratico de uma variavel.
Observe que a vaga nmero 20 do setor B nossa variavel que poderiamos chamar de B e o carro
que estaciona nela o valor que atribuimos a ela, que poderiamos chamar de 1. Nesse caso B = 1.
Tipos de Variveis
Considere a frmula matemtica simples de uma equao de 1 grau:
2x + 3 = 0
onde se encontram:
1- valores que podem ser classificados como:
a) valores constantes, invariantes em todas as aplicaes da frmula, no caso dos valores x e aos 2 e
3 denomina-se constantes;
b) valores a serem substitudos na frmula, em cada aplicao; a representao destes valores,
usualmente feita atravs de letras, que recebem o nome de variveis e tornam a frmula genrica,
possvel de ser aplicada para resolver uma certa classe de problemas e no apenas um problema
especfico.
2- Operaes a serem feitas sobre determinados operandos (Valores), para a obteno da soluo do
problema.

No caso do exemplo acima, observe a aplicao das variaveis 1 e 2


f(x) = 2x + 3 = 0
f(1) = 2(1) + 3 = 5
f(2) = 2(2) + 3 = 7

Tipos de Dados
O Pascal exige que no momento que formos trabalhar com variveis, indiquemos o tipo de
informao que uma varivel pode conter, isto , se uma dada posio de memria armazenar um
nmero ou uma letra etc.
Para isto, a linguagem Pascal possui definido alguns tipos que devero ser usados quando formos
trabalhar com variveis. Alguns tipos so:
Algoritmo Pascal Descrio:
a) Inteiro (INTEGER) : Representa nmeros entre -32768 at +32767. ocupa 2 bytes na memria;
b) Real (REAL): Representa os nmeros entre 2.9 x 10 -39 at 1.7 x 1038 . Ocupa 6 bytes na
memria;
e) Caracter (CHAR) Representa um dos caracteres, da tabela ASCII. Ocupa 1 byte na memria;
d) Cadeia (STRING): Conjunto de caracteres (CHAR). Ocupa de 1 a 255 bytes na memria;
g) Lgica (BOOLEAN): Valor lgico. Assuma somente dois valores: TRUE(Verdade) ou
FALSE(Falso). ocupa 1 byte na memria;
c) WORD: Nmeros de 0 at 65535. Ocupa 2 bytes na memria;
d) BYTE: Nmeros de 0 at 255. Ocupa 1 byte na memria;
h) Shor Int: Representa os nmeros entre -128 at 128 . Ocupa 1 bytes na memria;
i) LongInt: Representa os nmeros entre - 2.147.483.648 at 2.147.483.648 . Ocupa 4 bytes na
memria;
j) Single: Representa os nmeros entre 1.5 x 10 -45 at 3.4 x 1038 . Ocupa 4 bytes na memria;
l) Double: Representa os nmeros entre 5 x 10 -324 at 1.7 x 10308 . Ocupa 8 bytes na memria.
Iremos gradativamente trabalhar com cada um destes tipos e mostrar as suas caractersticas.

Exemplo Prtico
Podemos pensar como exemplo de declarao de valores o mesmo estacionamento do
supermercado, que foi citado no exemplo anterior.
Lembre-se que cada vaga tem sua identificao e tambm o seu determinado tamanho, quando os
engenheiros construram o estacionamento cada vaga foi medida cuidadosamente para caber um
carro, agora imagine se algum tenta-se colocar um caminho ?
Ser que daria certo?
O exemplo acima nada mais do que um exemplo claro de declarao de tamanho de campos, ou
seja, se voc vai trabalhar com um determinado "caminho" voc precisa criar um estacionamento
prprio para caminho.
Em um sistema seria a mesma coisa, se voc vai trabalhar com um campo de 200 caracteres, voc
precisa declarar que aquele determinado campo vai receber at 200 caracteres.
Comando de atribuio
Quando definimos uma varivel natural atribuirmos a ela uma informao. Uma das formas de
colocar um valor dentro de uma varivel, conseqentemente colocado este dado na memria do
computador, atravs da atribuio direta, do valor desejado que a varivel armazena. Para isto
utilizaremos o smbolo ": =" em Pascal, que significa: recebe, ou seja, a posio, de memria que
uma varivel representa, receber uma informao, a qual ser armazenada no interior desta
varivel.
Exemplo ( entre parenteses o formato em Pascal ):
ALGORITMO Teste ( PROGRAM Teste; )
VARIVEIS VAR
Nmero: INTEIRO ( Nmero: INTEGER; )
INICIO ( BEGIN )
Nmero 10 ( Nmero: =10; )
FIM ( END. )
O Exemplo acima nos informa que:
a) Foi definido uma varivel, a qual demos o Nome de "Nmero", e informamos que esta varivel,
ou posio de memria, s poder aceitar dados, que sejam numricos e que estejam entre -32768 a
+32767 ( tipo INTEGER ).
b) Atribumos varivel "Nmero" o valor 10.
A memria se comportaria da seguinte forma, de acordo com os itens acima:
a) Varivel Contedo
Nmero indefinido
b) Varivel Contedo
Nmero 10

Variveis do tipo CHAR(Caracter) e STRING(Cadeia)


As definies de variveis como sendo do tipo CHAR e STRING, possuem algumas curiosidades
que merecem um cuidado especial por parte do usurio.
Uso das aspas ( ' ): Quando estivermos fazendo a atribuio de um valor para uma varivel do tipo
CHAR (Caracter) ou STRING (Cadeia), temos que ter o cuidado de colocar o valor ( dado ) entre
aspas ( ' ), pois esta a forma de informar que a informao caracter.
Exemplo:
ALGORITMO Teste
VARIVEIS
Letra : CARACTER
Nome : CADEIA
INICIO
Letra 'A'
Nome 'Joo'
FIM
Manipulao de caracteres individuais em STRING's (Cadeias): Muitas vezes necessrio
manipular caracteres individuais em uma STRING (Cadeia) . O Pascal possui uma forma toda
especial de permitir tal operao, atravs do uso de colchetes( [ ] ) logo aps o Nome da varivel do
tipo STRING (Cadeia) , e o nmero do caracter que se deseja manipular entre os colchetes.
Exemplo: Atribuir o primeiro caracter de uma STRING a uma varivel do tipo CHAR.
ALGORITMO AtribuiString;
VARIVEIS
letra : CARACTER
Nome : CADEIA
INICIO
Nome 'Joao'
letra Nome[1]
FIM
Quando definimos uma varivel como sendo do tipo STRING no estamos alocando 1 posio de
memria apenas (uma caixa, pela analogia inicial), mas na verdade, estamos alocando at 255
caixas, uma para cada caracter da STRING (lembre-se que uma STRING pode ter no mximo 255
caracteres). Ao utilizarmos o smbolo de colchete, estamos na verdade indicando qual o caracter
(qual a caixa) desejamos manipular.
De acordo com o Exemplo acima, teramos na memria a seguinte situao:
a) Alocamos 255 bytes ( caracteres ) na memria. A estas posies de memria dado o Nome de
"Nome". Inicialmente estas posies de memria ( Caixas ) possuem o contedo indefinido.
b) Alocamos 1 byte ( caracter ) na memria. A este caracter dado o Nome de "Letra". Inicialmente
esta posio de memria possu o contedo indefinido.
c) Na memria temos a seguinte situao:
d) Atribumos a varivel "Nome" o valor "Mesa", obtendo na memria a seguinte configurao:

e) Atribumos a varivel "Letra" o primeiro caracter da varivel "Nome", ou seja, o contedo da


primeira posio de memria (caixa). Na memria teremos a seguinte configurao:
Obs.: possvel definir variveis do tipo STRING (Cadeia) com menos de 255 caracteres. Para isto,
basta colocar, aps a palavra STRING (Cadeia), o nmero de caracteres desejados entre colchetes
( [ ] ).
Exemplo:
ALGORITMO Define
VARIVEIS
Nome: CADEIA[80]
INICIO
FIM
Desta forma, o espao ocupado por uma varivel STRING (Cadeia) passa de 255 bytes para apenas
80 bytes, na memria.

1) Para declarar que uma variavel vai receber um nome devemos usar:
a) STRING ( CADEIA )
b) CARACTER ( CHAR )
2) Para declarar a idade a variavel deve ser do tipo:
a) Inteiro (INTEGER)
b) Caracter (CHAR)
3) Ao trabalharmos com uma informao:
a) devemos apenas declarar o valor
b) devemos usar aspas entre o valor
4) Ao declarar um valor numerico usamos:
a) aspas entre o valor
b) chaves entre o valor
Operadores
Os operadores so meios pelo qual incrementamos, decrementamos, comparamos e avaliamos
dados dentro do computador. Temos trs tipos de operadores:
Operadores Aritmticos
Operadores Relacionais
Operadores Lgicos
Operadores Matemticos
Exemplo:

ALGORITMO Concatena
VARIVEIS
Letra1, Letra2 : CARACTER
Nome1, Nome2, Nome : CADEIA
INICIO
Letra1 'D'
Letra2 'a'
Nome1 'Joao'
Nome2 'Silva'
Nome Nome1 + Letra1 + Letra2 + Nome2
FIM
As instrues acima resultaro no armazenamento do Nome 'Joo Da Silva" na varivel rotulada de
"Nome".
Operadores Logicos
Os operadores logicos so utilizados para comparar String de caracteres e nmeros.
Os valores a serem comparados podem ser caracteres ou variveis.
TOTAL = PRECO * QUANTIDADE
1 + 7 * 2 ** 2 -1 = 28
3 * (1 - 2) + 4 * 2 = 5
Estes operadores sempre retornam valores lgicos (verdadeiro ou falso/ True ou False)
Para estabelecer prioridades no que diz respeito a qual operao executar primeiro, utilize os
parnteses.
Os operadores relacionais so:
Descrio Smbolo Igual a =
Diferente de <> ou # Maior que >
Menor que < Maior ou igual a >=
Menor ou igual a <=
Exemplo:
Tendo duas variveis A = 5 e B = 3 Os resultados das expresses seriam:
Expresso Resultado
A = B Falso
A <> B Verdadeiro
A > B Verdadeiro
A < B Falso
A >= B Verdadeiro
A <= B Falso

Comandos de Entrada e Sada


O computador no uma mquina isolada, pois ele precisa se comunicar com o mundo exterior
com vdeo, impressora, teclado, discos, fitas etc. Para realizar esta comunicao existem comandos
que permitem que informaes sejam exibidas, por Exemplo, no vdeo, como tambm existem
comandos que permitem que informaes sejam colocadas na memria do computador atravs do
teclado do PC.

Os comandos que iremos ver so os comandos LEIA e ESCREVA, respectivamente, comando de


entrada e de Sada (em Pascal escreve-se READ e WRITE ).
Exemplo 1: Escrever um algoritmo para ler um valor numrico do teclado e atribu-lo a uma
varivel do tipo numrica.
ALGORITMO LeNmero
VARIVEIS
Num : INTEIRO
INICIO
LEIA(Num)
FIM
O algoritmo acima, executar os seguintes comandos:
Define uma varivel rotulada "Num", a qual s poder armazenar dados numricos, que estejam
compreendidos entre -32768 a +32767 (INTEIRO), sendo que inicialmente o contedo desta
varivel est indefinido.
interrompe o processamento at que uma informao seja digitada, seguida do pressionamento da
tecla ENTER. Caso a informao seja digitada seja compatvel com o tipo INTEGER (INTEIRO),
este valor ser armazenado dentro da varivel "Num".
Exemplo 2: Fazer um algoritmo para escrever no vdeo do PC uma mensagem qualquer.
ALGORITMO EscreveMsg
INICIO
ESCREVA ('Alo Mundo')
FIM
Obs.: A mensagem est entre aspas porque representa uma cadeia de caracteres.
perfeitamente possvel mandar escrever o contedo de variveis no vdeo. Desta forma, o
Exemplo acima poderia ser escrito do seguinte modo:
ALGORITMO EscreveMsg
VARIVEIS
Msg: : CADEIA
INICIO
Msg 'Alo Mundo'
ESCREVA (Msg)
FIM
Obs.: Em Pascal, o Exemplo ficaria como mostrado abaixo
PROGRAM EscreveMsg;
VAR
Msg : STRING;
BEGIN
Msg : = 'Alo Mundo';
WRITE (Msg);
END.

Obs.: Em Pascal, quando usamos os comandos READ e WRITE, o cursor continuar posicionado
na mesma linha. Para evitar tal situao, devemos pular para nova linha. Isto obtido acrescentando
as letras LN ( de LINE NEW, ou seja, linha nova ) no final dos comandos READ e WRITE. Desta
forma os comandos tero a seguinte grafia: READLN e WRITELN.