Você está na página 1de 21

Apostila de Introduo a Lgica de Programao

Usando Visualg
por

MsC. Jaqueline Souza de Oliveira Valladares


Caros Alunos,

Essa apostila de Introduo a Lgica de programao parte da disciplina Introduo a


Informtica destinada aos alunos do Primeiro Ano do Curso Tcnico em Informtica do
IFBA, Campus Santo Amaro.
O objetivo facilitar o aprendizado de introduo a lgica de programao de forma ldica
e interativa. Inicializando conceitos bsicos de lgica de programao e a estrutura
linear/sequencial de um programa simples.
Para ilustrar os conceitos referentes a introduo a lgica de programao ser utilizado o
programa Visualg 2.0.
Um programa ideal para estudantes por ser simples e bastante intuitivo. Visualg no
depende de componentes como DLLs e OCXs. Ao ser instalado, seus arquivos no so
copiados para nenhuma outra pasta que no seja a que ele tenha sido instalado. Exige
aproximadamente 1Mb de espao em disco e pode ser executado em sistemas
operacionais Windows 95 ou superiores.
A verso 2.0 conta com:
Criao de subprogramas (com procedimentos e funes)
Criao de variveis locais
Passagem de parmetros por referncia
Envio de algoritmo por e-mail, diretamente do programa
Converso automtica de algoritmos para TurboPascal
O programa pode ser encontrado na seguinte URL para fazer o download gratuitamente:
http://www.baixaki.com.br/download/Visualg.htm
Espero que possam interagir e solucionar os exerccios propostos na apostila. Bom
Estudo!!

Jaqueline Oliveira
Introduo a Lgica de Programao

Para que serve a Lgica de Programao?

Necessria para pessoas que desejem trabalhar com desenvolvimento de sistemas e


programas, ela permite defini a sequencia lgica para o seu desenvolvimento.
a tcnica de encandear pensamentos, atravs de uma seqncia lgica, para atingir
um determinado objetivo de um sistema. Estes pensamentos podem ser descritos como
uma seqncia de instrues, que devem ser seguidas para se cumprir uma
determinada tarefa.

Mas o que vem a ser uma Seqncia Lgica?

So os passos executados at atingir um objetivo ou soluo de um problema. Convm


ressaltar que uma ordem isolada no permite realizar o processo completo, para isso
necessrio um conjunto de instrues colocadas em ordem seqencial lgica.

Ateno:

Em informtica, a informao que indica a um computador uma ao elementar a


executar. Uma instruo tomada em separado no tem muito sentido; para obtermos o
resultado, precisamos colocar em prtica o conjunto de todas as instrues, na ordem
correta.

Antes de iniciarmos a escrita de um programa necessrio conhecer alguns conceitos


bsicos:
Constantes e Variveis
a) Contante

Segundo Farrer et all (2011, p. 29) contante um determinado valor fixo que no se
modifica ao longo do tempo, durante a execuo de um programa. Conforme o seu tipo
pode ser classificada em: Numrica, Lgica ou Literal.

Por exemplo: O nmero fixo (2) usado para calcular a mdia aritmtica (Media)
considerado uma constante numrica.
Media <- (N1+N2)/2
As constantes no precisam ser declaradas num programa.

b) 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.

Segundo Venancio (1997, p.5) variveis de memria so endereos da memria RAM


(Randomic Access Memory) do computador, onde so armazenados temporariamente os
dados utilizados por um programa durante seu processamento, e que como diz o prprio
nome, podem ter seus contedos alterados durante o processamento do programa.

Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a
cada instante.

As variveis podem ser de quatro tipos:

Numricas

Especficas para armazenamento de nmeros, que posteriormente podero ser utilizados


para clculos

Podem ser ainda classificadas como Inteiras ou Reais

Caracteres

Especficas para armazenamento de conjunto de caracteres que no contenham nmeros


(literais)

Exemplo: nomes

Alfanumricas

Especficas para dados que contenham letras e/ou nmeros

Pode em determinados momentos conter somente dados numricos ou somente literais

OBS: Se usado somente para armazenamento de nmeros, no poder ser utilizada para
operaes matemticas

Lgicas

Armazenam somente dados lgicos que podem ser Verdadeiro ou Falso

O Visualg aceita cinco tipos de variveis, que so:


TIPO DE VARIVEL DESCRIO
INTEIRO define variveis numricas do tipo inteiro, ou seja,
sem casas decimais.

REAL define variveis numricas do tipo real, ou seja,


com casas decimais.
CARACTER define variveis do tipo string, ou seja, cadeia de
caracteres.
LOGICO define variveis do tipo booleano, ou seja, com
valor VERDADEIRO ou FALSO.

VETOR so uma maneira de armazenar vrios dados num


mesmo nome de varivel atravs do uso de
ndices numricos. Declara-se vetores de maneira
muito semelhante declarao de variveis
normais. A nica diferena que depois do nome
da varivel deve ser informada a quantidade de
elementos do vetor.

Por exemplo:

Figura 1 Exemplo de declarao de variveis no Visualg

Nesse exemplo so criadas cinco variveis: nome, sexo, numero, A e raiz. Todas elas
foram declaradas na rea destinada a declarao: var. Cada uma delas possui um tipo
diferente. Conforme Farrer et all (2011, p.31) no momento em que se declara uma
varivel, feita a associao do nome escolhido, ou identificador, com a respectiva
posio de memria que o mesmo assa a simbolizar.

Ateno:

Todas as variveis a serem utilizadas num programa, precisam serem declaradas,


informando o seu tipo. A fim de que o sistema possa alocar na memria seu
armazenamento.

Nomes de Variveis e sua Declarao

Os nomes das variveis devem comear por uma letra e depois conter letras, nmeros ou underline, at um
limite de 30 caracteres. As variveis podem ser simples ou estruturadas (na verso atual, os vetores podem
ser de uma ou duas dimenses). No pode haver duas variveis com o mesmo nome, com a natural
exceo dos elementos de um mesmo vetor.

A seo de declarao de variveis comea com a palavra-chave var, e continua com as seguintes
sintaxes:

<lista-de-variveis> : <tipo-de-dado>
<lista-de-variveis> : vetor "["<lista-de-intervalos>"]" de <tipo-de-dado>

Na <lista-de-variveis>, os nomes das variveis esto separados por vrgulas. Na <lista-de-intervalos>, os


<intervalo> so separados por vrgulas, e tm a seguinte sintaxe:

<intervalo>: <valor-inicial> .. <valor-final>

Na verso atual do VisuAlg, tanto <valor-inicial> como <valor-final> devem ser inteiros. Alm disso, exige-
se evidentemente que <valor-final> seja maior do que <valor-inicial>.

Exemplos:

var a: inteiro
Valor1, Valor2: real
vet: vetor [1..10] de real
matriz: vetor [0..4,8..10] de inteiro
nome_do_aluno: caractere
sinalizador: logico

Note que no h a necessidade de ponto e vrgula aps cada declarao: basta pular linha. A declarao
de vetores anloga linguagem Pascal: a varivel vet acima tem 10 elementos, com os ndices de [1] a
[10], enquanto matriz corresponde a 15 elementos com ndices [0,8], [0,9], [0,10], [1,8], [1,9], [1,10], ... at
[4,10]. O nmero total de variveis suportado pelo VisuAlg 500 (cada elemento de um vetor contado
individualmente).
Operadores

Meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados


dentro do computador.

Tipos de operadores:

Operadores Aritmticos : Utilizados para obter resultados numricos

As principais operaes so: Adio, Subtrao, Multiplicao, Diviso e


Exponenciao.

Operadores Descrio
+,- Operadores unrios, isto , so aplicados a um nico operando. So os operadores
aritmticos de maior precedncia. Exemplos: -3, +x. Enquanto o operador unrio -
inverte o sinal do seu operando, o operador + no altera o valor em nada o seu valor.

\ Operador de diviso inteira. Por exemplo, 5 \ 2 = 2. Tem a mesma precedncia do


operador de diviso tradicional

. +,-,*,/ Operadores aritmticos tradicionais de adio, subtrao, multiplicao e diviso. Por


conveno, * e / tm precedncia sobre + e -. Para modificar a ordem de avaliao
das operaes, necessrio usar parnteses como em qualquer expresso
aritmtica

MOD ou % Operador de mdulo (isto , resto da diviso inteira). Por exemplo, 8 MOD 3 = 2.
Tem a mesma precedncia do operador de diviso tradicional. Ele segura o resto da
diviso.

^ Operador de potenciao. Por exemplo, 5 ^ 2 = 25. Tem a maior precedncia entre


os operadores aritmticos binrios (aqueles que tm dois operandos).

Operadores Lgico: Utilizados para combinar resultados de expresses, retornando


se o resultado final verdadeiro ou falso

Os operadores lgicos so:

E / AND

Uma expresso AND (E) verdadeira se todas as condies forem verdadeiras

OU/OR
Uma expresso OR (OU) verdadeira se pelo menos uma condio for verdadeira

Nao/NOT

Um expresso NOT (NO) inverte o valor da expresso ou condio, se verdadeira


inverte para falsa e vice-versa.

Operadores Relacionais: So utilizados para comparar string de caracteres e


nmeros

Os valores a serem comparados podem ser caracteres ou variveis

Sempre retornam valores lgicos

Verdadeiro/True

Falso/False

Para estabelecer prioridades no que diz respeito a qual operao executar primeiro, utilize
os parnteses

Operadores Descrio
=, <, >, <=, >=, <> Respectivamente: igual, menor que, maior que,
menor ou igual a, maior ou igual a, diferente de. So
utilizados em expresses lgicas para se testar a
relao entre dois valores do mesmo tipo. Exemplos:
3 = 3 ( 3 igual a 3?) resulta em VERDADEIRO ; "A"
> "B" ("A" est depois de "B" na ordem alfabtica?)
resulta em FALSO.

Lembrete:

Hierarquia das Operaes Aritmticas:


1 ( ) Parnteses
2 Exponenciao
3 Multiplicao, diviso (o que aparecer primeiro)
4 + ou (o que aparecer primeiro)
Atividade:
1) Sabendo que A=3, B=7 e C=4, informe se as expresses abaixo so verdadeiras ou
falsas

a) (A+C) > B

b) B >= (A + 2)

c) C = (B A)

d) (B + A) <= C

e) (C+A) > B

2) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expresses abaixo so verdadeiras
ou falsas

a) (A > C) AND (C <= D)

b) (A+B) > 10 OR (A+B) = (C+D)

c) (A>=C) AND (D >= C)

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. O teste de mesa seria a
simulao da execuo do programa. Esse teste visa identificar a existncia de erros de
lgica.
O Visualg possui um campo que realiza o teste de mesa automaticamente ao solicitar a
execuo passo a passo. Ao digitar o valor correspondente ao nmero o valor da
varivel ira modificar de 0 para o numero 10 que fora digitado pelo usurio. Conforme
ilustrado na figura 2.

Figura 2- Campo do teste de Mesa

Comandos Bsicos

Cada linguagem de programao contm um conjunto de comandos previamente


definidos para a estruturao de um programa.

Comando de Entrada: O comando de entrada de dados obtm um ou mais


valores e coloca-os em variveis.
Sintaxe: leia identificador [identificador..]

Ex.: Leia n

No visualg o programa ficaria conforme figura 3.


Figura 3- Exemplo de programa usando comando de entrada

Ateno

Ao fazer a leitura de um dado (uso do comando leia), o computador ir armazenar na


varivel que foi declarada para tal.
Observe que ao solicitar um nmero ao usurio, quando digitado o valor vai ser
armazenado na rea destinada a varivel, conforme figura 4.

Figura 4 Espao destinado a alocao das variveis


Comano de Sada: O comando de sada de dados exibe o valor de uma
expresso.

Sintaxe: Escreva expresso[expressao...]

Ex.: Escreva media

Escreva ( reprovado)

O comando ESCREVA pode ser usado para mostrar uma varivel ou uma expresso.
Quando for mostrar uma expresso esta dever estar entre parentese, conforme a figura
5.

Figura 5 Utilizao do comando Escreva no Visualg

Comando de atribuio: O comando de atribuio armazena em uma varivel o


resultado da avaliao de uma expresso.

Sintaxe: identificador expresso

Ex.: media (n1+n2+n3)/3


Figura 6 Programa em visualg que calcula a mdia aritmtica de dois nmeros

Observe que o programa utiliza comando de entrada para receber os valores


correspondentes a n1 e n2. Executa o clculo da mdia atravs do comando de
atribuio.(Figura 6)

Estruturas de Controle: Sequencia e Seleo

1- Sequencia

Estrutura bsica de qualquer algoritmo e determina a execuo de passos consecutivos.

A sequencia estabelece uma ordenao temporal da execuo.

2- Seleo
Comandos de Deciso : Conduzem a estruturas de programas que no so totalmente
seqenciais.

Com as instrues de SALTO ou DESVIO pode-se fazer com que o programa proceda de
uma ou outra maneira, de acordo com as decises lgicas tomadas em funo dos dados
ou resultados anteriores.

Principais estruturas de deciso

Se Ento - Seleo Simples


Se determinada condio for satisfeita pelo comando SE/IF ento execute determinado
comando.

Figura 7 Exemplo de Programa utilizando a seleo simples

Se ento Seno - Seleo Composta

caso a condio seja verdadeira o comando da condio ser executado, caso contrrio
o comando da condio falsa ser executado

Figura 8- Exemplo de um programa usando a seleo composta


Escolha Caso - seleo Multipla
Utilizada para testar, na condio, uma nica expresso, que produz um resultado, ou,
ento, o valor de uma varivel, em que est armazenado um determinado contedo.
Compara-se o resultado obtido no teste com os valores fornecidos em cada clusula
Caso. (Figura 9)

Figura 9 Exemplo de programa usando a seleo mltipla

Atividades

1)Desenvolva um programa que:

Leia 4 (quatro) nmeros;

Calcule o quadrado de cada um;

Se o valor resultante do quadrado do terceiro for >= 1000, mostre-o e finalize;

Caso contrrio, mostre os valores lidos e seus respectivos quadrados.

2)Elabore um programa que dada a idade de um nadador classifique-o em uma das


seguintes categorias:

Infantil A = 5 a 7 anos
Infantil B = 8 a 11 anos

Juvenil A = 12 a 13 anos

Juvenil B = 14 a 17 anos

Adultos = Maiores de 18 anos

Estrutura de Repetio

Utilizado quando desejamos que um determinado conjunto de instrues ou comandos


sejam executados um nmero definido ou indefinido de vezes, ou enquanto um
determinado estado de coisas prevalecer ou at que seja alcanado.

Principais estruturas de repetio do Visualg

Repetio com condio testada no incio

O bloco de operaes ser executado enquanto a condio x for verdadeira

O teste da condio ser sempre realizado antes de qualquer operao.

Enquanto a condio for verdadeira o processo se repete

Sintaxe:Enquanto< x> faa

Fimenquanto

Figura 10- Exemplo de programa usando Enquanto


Obs.: A varivel n utilizada na figura 10, utilizada como um contador, por isso
necessrio que ele seja acrescido de um para que possa ser dado o giro no lao de
repetio, caso contrrio ele entrar em loop (repetio infinita).

Repetio testada no final do bloco

O bloco de operaes ser executado enquanto a condio x for verdadeira

O teste da condio ser sempre realizado ao final do bloco de operaes.

Repete at que a condio seja satisfeita.

Sintaxe: Repita ...at que <x>

Figura 11- Exemplo de programa usando Repita

Ateno

Os comandos Enquanto e Repita realizam a mesma funo porm o que muda o teste
da condio. No enquanto o teste realizado no inicio e no repita no final.
-Repetio com nmero determinado

Repete a execuo do bloco um nmero definido de vezes, pois ela possui limites fixos
Sintaxe:Para ... de.. At ...

Fimpara

Figura 12 Exemplo de repetio usando para

Atividades
1) Escreva um programa que pergunte nome, idade e sexo Mostre sua idade daqui a
50 anos.
2) Determine o maior e o menor valor de um conjunto de nmeros inteiros positivos.
Considere que o conjunto de dados de entrada termina quando fornecido o nmero 5.
3) Faa um algoritmo que conte de 1 a 100 e a cada mltiplo de 10 emita uma
mensagem: Mltiplo de 10.
4) Elabore um programa que leia uma massa de dados contendo SEXO, IDADE e
ESTADO CIVIL (Casado/ Solteiro/Divorciado/ Outros) de um grupo de 100 pessoas e
determine, ao final:
a)Mdia de idade das mulheres
b)Estado civil mais relevante entre os entrevistados.
5) Faa um algoritmo que leia dois nmeros e identifique se so iguais ou diferentes.
Caso eles sejam iguais imprima uma mensagem dizendo que eles so iguais. Caso sejam
diferentes, informe qual nmero o maior, e uma mensagem que so diferentes.
6) Escrever um algoritmo que leia trs valores inteiros distintos e os escreva em ordem
crescente
7) Escrever um algoritmo que leia trs valores inteiros e verifique se eles podem ser os
lados de um tringulo. Se forem, informar qual o tipo de tringulo que eles formam:
equiltero, isscele ou escaleno. Propriedade: o comprimento de cada lado de um
tringulo menor do que a soma dos comprimentos dos outros dois lados.
8) Escreva um programa que leia um nmero e se for par imprima nmero par, se for
mpar imprimir nmero impar.
9) Escreva um programa que pergunte trs nomes diferentes e os imprima em ordem
alfabtica.
10) Um autdromo necessita de um programa para verificar qual o carro mais rpido em
uma competio. Considerando que dois carros participam da competio, o programa
pergunta qual o comprimento da pista(em metros) e quanto tempo (em segundos) cada u
dos carros levou para percorrer a pista, e informa a velocidade do carro mais rpido.
Considere que em uma corrida no existe dois carros com tempos de percurso
exatamente iguais.

Principais Funes
Todo programa vem com um conjunto de funes para facilitar a vida do programador,
como se fosse uma caixa preta que resolve o clculo proposto. Estas funes realizam os
clculos aritmticos, trigonomtricos e de manipulao e converso de dados mais
comuns; assim, o programador no tem que reinventar a roda a cada programa que faz. A
este grupo de funes d-se s vezes o nome de biblioteca.
As funes podem ser atribudas a uma varivel.
Funes numricas, algbricas e trigonomtricas

Abs( expresso) - Retorna o valor absoluto de uma expresso do tipo inteiro ou real.
Equivale a | expresso | na lgebra.
ArcCos( expresso) - Retorna o ngulo (em radianos) cujo co-seno representado por
expresso.
ArcSen( expresso) - Retorna o ngulo (em radianos) cujo seno representado por
expresso.
ArcTan( expresso) - Retorna o ngulo (em radianos) cuja tangente representada por
expresso.
Cos( expresso) - Retorna o co-seno do ngulo (em radianos) representado por
expresso.
CoTan( expresso) - Retorna a co-tangente do ngulo (em radianos) representado por
expresso.
Exp( base, expoente) - Retorna o valor de base elevado a expoente, sendo ambos
expresses do tipo real.
GraupRad( expresso) - Retorna o valor em radianos correspondente ao valor em graus
representado por expresso.
Int( expresso) - Retorna a parte inteira do valor representado por expresso.
Log( expresso) - Retorna o logaritmo na base 10 do valor representado por expresso.
LogN( expresso) - Retorna o logaritmo neperiano (base e) do valor representado por
expresso.
Pi - Retorna o valor 3.141592.
Quad( expresso) - Retorna quadrado do valor representado por expresso.
RadpGrau( expresso) - Retorna o valor em graus correspondente ao valor em radianos
representado por expresso.
RaizQ( expresso) - Retorna a raiz quadrada do valor representado por expresso.
Rand - Retorna um nmero real gerado aleatoriamente, maior ou igual a zero e menor
que um.
RandI( limite) - Retorna um nmero inteiro gerado aleatoriamente, maior ou igual a zero e
menor que limite.
Sen( expresso) - Retorna o seno do ngulo (em radianos) representado por expresso.
Tan( expresso) - Retorna a tangente do ngulo (em radianos) representado por
expresso.
Os valores que esto entre parnteses, representados pelas palavras como expresso,
base e expoente, so os parmetros, ou como dizem alguns autores, os argumentos que
passamos para a funo para que realize seus clculos e retorne um outro, que usaremos
no programa. Algumas funes, como Pi e Rand, no precisam de parmetros, mas a
maioria tem um ou mais. O valor dos parmetros naturalmente altera o valor retornado
pela funo.
Funes para manipulao de cadeias de caracteres (strings)

Asc (s : caracter) : Retorna um inteiro com o cdigo ASCII do primeiro caracter da


expresso.
Carac (c : inteiro) : Retorna o caracter cujo cdigo ASCII corresponde expresso.
Caracpnum (c : caracter) : Retorna o inteiro ou real representado pela expresso.
Corresponde a StrToInt() ou StrToFloat() do Delphi, Val() do Basic ou Clipper, etc.
Compr (c : caracter) : Retorna um inteiro contendo o comprimento (quantidade de
caracteres) da expresso.
Copia (c : caracter ; p, n : inteiro) : Retorna um valor do tipo caracter contendo uma
cpia parcial da expresso, a partir do caracter p, contendo n caracteres. Os caracteres
so numerados da esquerda para a direita, comeando de 1. Corresponde a Copy() do
Delphi, Mid$() do Basic ou Substr() do Clipper.
Maiusc (c : caracter) : Retorna um valor caracter contendo a expresso em maisculas.
Minusc (c : caracter) : Retorna um valor caracter contendo a expresso em minsculas.
Numpcarac (n : inteiro ou real) : Retorna um valor caracter contendo a representao
de n como uma cadeia de caracteres. Corresponde a IntToStr() ou FloatToStr() do Delphi,
Str() do Basic ou Clipper.
Pos (subc, c : caracter) : Retorna um inteiro que indica a posio em que a cadeia subc
se encontra em c, ou zero se subc no estiver contida em c. Corresponde funcionalmente
a Pos() do Delphi, Instr() do Basic ou At() do Clipper, embora a ordem dos parmetros
possa ser diferente em algumas destas linguagens.
Sugesto: Teste essas funes criando programas no Visualg, seja criativo e bom
estudo !
Referncias

ARAUJO, Everton Coimbra. Algoritmos: Fundamento e Prtica. Florianpolis: Visual


Books, 2007.
FARRER, Harry et all. Algoritmos Estruturados. Rio de Janeiro: LTC, 2011.
VENANCIO, C.F.; Desenvolvimento de Algoritmos; Editora Erica.

Você também pode gostar