Você está na página 1de 36

Boas Vindas!

Lgica

Seja muito bem-vindo(a), a partir de agora voc conhecer um pouco do mundo da lgica de programao.
Conseguir, por meio deste curso, desenvolver sua lgica para poder:

criar sites;
desenvolver games;
programar robs;

Voc ser desafiado a desenvolver uma calculadora at o fim do nosso contedo. Ento, atente-se ao que vem
por a!
Utilizando linguagens de programao temos um mundo de possibilidades, e voc ter a oportunidade de
entender como tudo isso funciona.
Calculadora
A nossa calculadora far o seguinte:
aceitar apenas dois nmeros reais;
far as operaes: adio, subtrao, diviso e multiplicao;
mostrar o resultado da operao ao usurio.
Esta nossa meta at o fim do curso: ter uma calculadora pronta e funcional.
Preparado (a)? Ento, que comece a nossa viagem pelo mundo da lgica de programao!
Algoritmos
Inicialmente, iremos entender o que um algoritmo, e quais os exemplos que vivenciamos todos os dias.
Em seguida, mudaremos o foco dos algoritmos do dia a dia para algoritmos na computao e programao,
veremos os tipos existentes de algoritmos e alguns exemplos prticos.
Depois que tivermos os primeiros conceitos prontos, daremos incio s partes funcionais da nossa calculadora!

O que algoritmo?

Um algoritmo uma sequncia de instrues que utilizamos para solucionar um ou vrios problemas, ou
at mesmo realizar tarefas do dia a dia.

Um algoritmo no necessariamente um programa computacional, pode ser passos que iremos tomar para
realizar determinada tarefa.

O algoritmo deve sempre chegar ao resultado final esperado, caso no chegue, o mesmo no pode ser
considerado finalizado.

Vamos exemplificar um pouco...

Exemplos de algoritmos do dia-a-dia

Preparar caf

Algoritmos
Mediante a estrutura apresentada anteriormente, fica mais fcil compreender a definio de um algoritmo,
caracterizando-se por ser um conjunto de instrues objetivas.
Embora a palavra algoritmo nos remeta a pensar em uma infinidade de coisas complexas, o mesmo se trata de um
conjunto de instrues que tem como objetivo resolver um problema. No quer dizer que no tenhamos algoritmos
complexos, isso ir depender da complexidade do problema em questo.

Todos os exemplos vistos anteriormente fazem parte do nosso dia a dia, so algoritmos que executamos sempre
que precisamos. Deixando um pouco o cotidiano de lado, iremos agora entrar de cabea no mundo
computacional.Let's go!
Ao decorrer do curso, voc navegar por meio dos cones encontrados no canto superior esquerdo da tela. Para
retornar tela de estrutura do curso, que onde voc ter acesso a todas as matrias, voc pode utilizar os
botes que possuem a imagem ao lado, ao clicar nele voc ser redirecionado para a pgina inicial do curso.
Os botes possuem posicionamentos estratgicos e dinmicos, ao acessar a ltima pgina de uma matria, o
boto que antes era utilizado para ir para a prxima pgina alterado para este boto.
A imagem ao lado representa a pgina do seu progresso no curso, ao clicar nos botes que possuem esta
imagem, voc ser redirecionado para a pgina de perfil, que onde voc ter acesso detalhado sobre o seu
desempenho, sua conquista e seu progresso no curso.
Atravs desta pgina voc tambm ser capaz de compartilhar seu progresso com seus amigos em suas redes
sociais favoritas.

Representaes de um algoritmo
Agora que tivemos uma introduo do que se trata os algoritmos, iremos entender como eles podem ser
representados.
Temos vrias formas de representar algoritmos, desde a mais simples, representada por formas, at as mais
detalhistas, contendo regras de implementao.
Abaixo, conheceremos os dois tipos mais utilizados: representados por formas que fazem aluso a tomadas de
decises (fluxograma) e por meio do pseudocdigo, sendo este mais utilizado para o ensino de lgica de
programao; por meio de linguagem de mquina criamos nossos algoritmos para os computadores processarem
e resolverem os problemas.

FLUXOGRAMA
PSEUDOCDIGO

Fluxograma

Representado por formas, tornam o entendimento de determinado algoritmo mais simples, pois uma figura
mais clara que vrias palavras.

definido por uma srie de smbolos, em conjunto com desenhos geomtricos que representam os passos
do algoritmo,

Tais como: incio, entrada e sada de dados, tomada de decises, estruturas de repetio e final do
algoritmo.

Smbolo

Descrio

O crculo alongado utilizado para dar inicio ou terminar um fluxograma.

O retngulo utilizado para fazer uma ao ou uma instruo no fluxograma.

O losango utilizado para uma deciso em um fluxograma.

Pseudocdigo

Diferente do fluxograma, o pseudocdigo, tambm conhecido como portugol ou portugus estruturado,


utiliza PDL - Program Design Language (Linguagem de Projeto de Programao).

Ou seja, uma espcie de narrao do que o programa deve fazer. Para isso, utilizaremos o
pseudocdigo em um programa chamado VisuAlg, que abordaremos em nossa prxima lio.

O pseudocdigo a base que todos devem ter para aprender uma linguagem de programao, pois
ele que intermedia a linguagem falada (humana) para a linguagem de programao (computacional).

Exercitando
Pegue um papel e uma caneta e faa o seguinte algoritmo:
Chupar bala - Utilizando fluxograma demonstre as etapas necessrias para chupar a bala, lembrando que
voc ainda no a possui.
Ser que voc consegue?

Fluxograma da Calculadora

VisuAlg
Conhecemos os tipos de representaes de algoritmos, e, agora, iremos conhecer o programa que executar
nossos pseudocdigos.
Os pseudocdigos podem ser escritos facilmente em uma folha de papel ou em um bloco de notas, mas para
tornar isso prtico vamos adotar o VisuAlg como nosso software para escrever nossos algoritmos na forma de
pseudocdigo e ver na hora o seu resultado.

O que o VisuAlg?
um software criado na Universidade de Caxias do Sul no estado do Rio Grande do Sul, com a finalidade de
oferecer aos alunos uma forma de exercitar o conhecimento adquirido.
Para utiliz-lo necessrio fazer odownload do programa. O mesmo pode ser encontrado em:
Clique aqui para baixar

O visuAlg um interpretador simples de pseudocdigo utilizado por professores para o ensino de lgica de
programao.
Seu objetivo no criar softwares, mas auxiliar o aluno a entender a execuo de seu algoritmo.

VisuAlg
Entendendo um pouco melhor
Para a criao de um algoritmo, necessria a utilizao de palavras-chave. Abaixo, seguem as trs
principais para o funcionamento:
algoritmo: comando que ir definir o nome do programa; deve ser feito em aspas duplas;
var: comando que especifica a rea em que as variveis sero declaradas. aqui que colocaremos as
variveis que iremos utilizar;
inicio: comando que informa o incio do programa; nesse bloco que ficaro os comandos e a lgica que
utilizaremos para criar nosso algoritmo.
fimalgoritmo: comando que informa que o final do algoritmo.

VisuAlg
Dentro do nosso algoritmo utilizaremos palavras-chave que iro ler o que for digitado e escrever na tela para
informar algo ao usurio.
escreva: esse comando ir escrever na tela alguma informao ao usurio. Ex.: Escreva("Digite seu nome").
Leia: esse comando ir ler o que foi digitado pelo usurio. Ex.: Leia(nome). Esse nome entre parnteses
uma das variveis que deve estar declarada no bloco var que vimos anteriormente.
Escreval: esse comando idntico ao escreva, a no ser pelo fato de que ele pula uma linha. Ex.:
Escreval("Digite seu nome").

VisuAlg

Tipos de Dados
Anteriormente, vimos que os algoritmos fazem parte do nosso dia a dia, tambm conhecemos
como e o que um algoritmo e quais as representaes que ele pode ter, alm da ferramenta
que utilizaremos em nosso curso.
Agora comearemos a mergulhar na parte computacional, entender como os algoritmos
funcionam aplicados em um sistema de computador.

Quando criamos um programa computacional, temos que levar em conta quais os tipos de dados
que podero ser inseridos no sistema. a que entram os Tipos de Dados. So eles que diro o
que poder ser digitado ou quais valores nosso algoritmo aceitar.
Ento, vamos ver quais so os tipos de dados e quais informaes eles aceitam.
Tipo de Dado Inteiro
Aceitam somente nmeros inteiros positivos e negativos.
No aceitam nmeros decimais.

Tipo de Dado Real


Podem ser valores positivos e negativos.
Podem ser nmeros decimais e inteiros.

No VisuAlg, o separador decimal o ponto, no a vrgula.


Tipo de Dado Literal
Podem ser letras, nmeros ou caracteres especiais, ou seja, podem ser qualquer tipo de valor.

Os valores deste tipo devem estar dentro de aspas duplas ("").


Tipo de Dado Lgico
So respostas para uma pergunta, a qual dever ter apenas duas possveis respostas: sim ou
no.
Porm, sempre resultam como VERDADEIRO ou FALSO.

Variveis
Varivel onde iremos guardar dados essenciais para o funcionamento do nosso
algoritmo/programa.
Uma varivel guarda um valor informado em uma posio de memria, seu contedo pode
sempre ser alterado, como o prprio nome j diz "varivel".
Uma varivel s pode ter UM valor dentro dela.

Imagine as variveis como se fossem gavetas.


Em uma gaveta podemos colocar diversas coisas, mas e se rotularmos uma gaveta, ou
seja, colocarmos uma legenda, ou um papel informando o que deve ter na gaveta ?
Uma gaveta informando que ir ter meias, dentro dela dever ter apenas meias.
Possivelmente, algum poder colocar algo diferente (camiseta), onde deveria ter apenas meias.
Nos algoritmos computacionais isso no acontece, uma vez que determinado que uma
varivel do tipo inteiro, ela s poder ter nmeros inteiros.
Variveis tm trs passos principais para serem criadas, so eles:
Ter um nome
TODA varivel criada em um programa deve ter um nome para que possa ser
identificada.
Ter um tipo de dado vinculado
Vimos, na lio anterior, os tipos de dados, e aqui que iremos utiliz-los. Ou seja, aqui
que diremos qual tipo de dado pode conter em nossa varivel.
Ter um valor atribudo
No tem por que eu criar uma varivel sem ter a inteno de colocar algum dado dentro
dela.

Variveis - Regras
Agora vamos ver isso na prtica:
O que so: espaos da memria do computador destinados ao armazenamento de dados.
Como usar: no programa, deve-se dar um nome a ela e informar qual o seu tipo de dado. E, no
decorrer do algoritmo, atribuir o valor a ela necessrio.
var
nomeDaVariavel: TipoDeDado

Regras para o nome da varivel:


nomes de variveis no podem ser iguais a palavras reservadas;

nomes de variveis devem possuir como primeiro caractere uma letra ou sublinhado '_'
(os outros caracteres podem ser letras, nmeros e sublinhado);

nomes de variveis devem ter no mximo 127 caracteres;

nomes de variveis no podem conter espaos em branco.

Saiba mais: Palavras Reservadas


Essas so as regras para nossas variveis funcionarem no programa.
Abaixo esto listados exemplos de variveis:
nome1
meuNome (Sempre que tivermos palavras separadas, removemos o espao e deixamos a
primeira letra de cada palavra em maisculo).
Para definir o tipo de dado de uma varivel, primeiro declaramos a varivel dentro do bloco de
variveis do nosso programa, em seguida colocamos dois pontos (:) e o tipo de dado (inteiro,
literal, lgico ou real).
Exemplo:
var
nomeDaVariavel: TipoDeDado
var
idade: inteiro
assim que devemos declarar nossas variveis no VisuAlg para que funcione.

Variveis - Atribuindo Valor


Para atribuir um valor a uma varivel, precisamos usar o operador de atribuio que <Exemplo:
var
nomeDaVariavel <- "SENAI"
Nesse exemplo eu estou dizendo que a varivel "nomeDaVariavel" ir receber o valor "SENAI"
como literal.
A varivel deve ter sido declarada com o tipo literal para que aceite tal tipo.

Exemplo no VisuAlg:
algoritmo "nome"

var
idade: Inteiro
dataNascimento: Literal
maiorIdade: Logico
salario: Real

inicio
idade <- 24
dataNascimento <-"16/03/1986"
maiorIdade <- VERDADEIRO
salario <- 600.50

Para atribuir um valor a uma varivel, precisamos usar o operador de atribuio que <leia (nome)

Exemplo:
escreva(Informe seu nome: ")
leia(nome)

Ele ir jogar o valor que o usurio digitar para dentro da varivel "nome".

Expresses Aritmticas
Agora faremos a relao da lgica de programao com a to temida matemtica. Voc pode
estar se perguntando, qual o sentido dessa relao?
Veja bem, no algoritmo resolvemos problemas humanamente difceis, custosos ou repetitivos,
sendo, em sua maioria, rotinas de clculos. Portanto a matemtica estar inserida em nossas
instrues a fim de nos auxiliar a resolver problemas. Por exemplo, um computador consegue
fazer a mdia de 15+18+43+50+2+44+78 muito mais rpido do que um humano.

Ento, assim como na matemtica, expresses aritmticas em algoritmo so basicamente a


mesma coisa, ou seja, so um conjunto de smbolos que representam as operaes bsicas da
matemtica, que so: + - * /
Ok, ento recapitulamos o que so os operadores e do que se tratam as expresses aritmticas.
Agora vamos aos exemplos:
2+3+4+1-9 = 1
10*3-5 = 25
(3-1)*(3+2)/2 = 5
22-10*(8-4) = -18
At agora nada de novo, no ? Ento, veremos como podemos utilizar essas expresses em
nossos algoritmos utilizando as variveis.
var
n1,n2,n3,media: Real
1) Primeiramente, declaramos as variveis que iremos utilizar no nosso algoritmo.
inicio
n1 <- 10
n2 <- 8
n3 <- 7.5
2) Em seguida, inicio meu algoritmo e atribuo os valores que eu quero para as minhas variveis.
media <- (n1+n2+n3) /3
escreva(media)
fimalgoritmo
3) Feito isso, eu posso criar minha expresso aritmtica, no exemplo acima estou fazendo a
mdia de trs notas, em seguida mostrando na tela.
Ento nosso algoritmo ficar da seguinte forma:
algoritmo "aritmetica"

var
n1,n2,n3,media: Real
inicio
n1 <- 10
n2 <- 8
n3 <- 7.5
media <- (n1+n2+n3) /3
escreva (media)
fimalgoritmo
Expresses aritmticas so aquelas que, utilizando operadores aritmticos, resultam em um
valor inteiro ou real. Ou seja, o resultado sempre ser um nmero, seja ele do tipo real ou do
tipo inteiro.
Ento, vimos como so e como aplicar expresses aritmticas em nossos algoritmos.
Nossa calculadora ser baseada em expresses aritmticas com todos os operadores vistos
aqui.

Expresses Literais
Expresses literais so expresses de concatenao, ou seja, elas juntam valores por meio do
operador de concatenao, que, no VisuAlg, a vrgula (,). Exemplo:
Meu nome Anderson
Meu sobrenome Aguiar
Meu nome completo Anderson Aguiar
O nome completo resultado de uma expresso literal.

Expresses Literais
var
nome, sobrenome, completo: Literal
inicio

nome <- "Anderson"


sobrenome <- "Aguiar"
completo <- nome," ", sobrenome
Expresses literais recebem mais de um valor e resultam SEMPRE em um valor do tipo literal.

Expresses Lgicas
Vamos agora conhecer nosso ltimo tipo de expresso, que so as expresses lgicas.
Essa expresso a que ir requerer uma ateno especial, pois iremos trabalhar com alguns
operadores lgicos, e de extrema importncia que, ao final desta lio, saibamos o que
significa cada um deles.
Ansioso para conhecer?
Ento vamos l!
As expresses lgicas servem para compararmos valores e dizer se o resultado VERDADEIRO
ou FALSO.
Essas expresses SEMPRE resultam em um dado do tipo lgico. Utilizam os operadores
relacionais lgicos (maior, menor, igual, diferente etc.).
Alm disso, expresses lgicas podem conter expresses aritmticas dentro delas, veremos a
seguir.
muito importante que consigamos entender cada um dos operadores lgicos.
Operadores relacionais lgicos:

Smbol Operado
o
r
>

Maior

<

Menor

>=

Maior
igual

<=

Menor
Igual

Igual

<>

Diferente

Exemplo com inteiros:


23 > 42
O inteiro 23 maior que o inteiro 42?
Falso
84 = 24
O inteiro 84 igual ao inteiro 24?
Falso
12 < 12
O inteiro 12 menor que o inteiro 12?
Falso
44 < 64
O inteiro 44 menor que o inteiro 64?
Verdadeiro
Exemplo com inteiros:
23+10 > 42-2
Falso

84/2 = 24
Falso
640+3 <= 643
Falso
54+5 <> 52-5
Verdadeiro
Todos esses exemplos ns podemos colocar no VisuAlg e ver se o resultado realmente o
esperado. Veremos na tela a seguir.
Abra o VisuAlg e coloque as expresses lgicas dentro dos parnteses e aperte a tecla F9 para
executar o algoritmo e exibir o resultado.

Agora, para fazer o teste dos operadores lgicos, montaremos um pequeno programa que faz a leitura de dois
nmeros fazendo as devidas comparaes entre eles.

Exemplo com variveis:

Expresses lgicas so expresses que recebem dois ou mais valores, alm de poder ter outras expresses
dentro dela, mas no final elas sempre retornam dados lgicos (VERDADEIRO ou FALSO).
Na tabela abaixo, mostramos de forma detalhada a execuo do algoritmo, e, tambm, o motivo do resultado
alcanado.
Expres
so 1

Compar
ador

Expres
so 2

Resulta
do

Motivo

2+3

FALSO

5 diferente
de 6

2+3

VERDAD
EIRO

5 igual a 5

>

FALSO

2 menor
que 3

<>

VERDAD
EIRO

2 diferente
de 3

FALSO

2 diferente
de 3

>=

FALSO

2 no
maior 3

Operadores de sentena: E
O operador E refere-se comparao binria de termos, ou seja, 1+1 E 3-1 verdadeiro ou
falso? Verdadeiro, ambos os resultados so 2. Remete combinao verdadeiro + verdadeiro =
verdadeiro.

Sentena

Resultado

Verdadeiro (E) Verdadeiro

Verdadeiro

verdadeiro (E) Falso

Falso

Sentena

Resultado

Verdadeiro (E) Verdadeiro

Verdadeiro

Falso (E) Verdadeiro

Falso

Falso (E) Falso

Falso

Sentena

Resultado

0 (=) 0

Verdadeiro

1 (=) 0

Falso

0 (=) 1

Falso

1 (=) 1

Verdadeiro

Exemplo com inteiros:

Operao

Resultado

(5=5) e (6<8)

Verdadeiro

(5>5+9) e (1<7)

Falso

(2>1) e (2>=2) e (1<>11)

Verdadeiro

(2=1) e (5<>5)

Falso

Operadores de sentena: OU
O operador OU refere-se comparao binria de termos. Remete combinao verdadeiro +
falso = verdadeiro. Se qualquer um dos termos estiver correto a expresso verdadeira 1+1=2
OU 3+1=6?

Sentena

Resultado

Verdadeiro (OU) Verdadeiro

Verdadeiro

verdadeiro (OU) Falso

Verdadeiro

Falso (OU) Verdadeiro

Verdadeiro

Falso (OU) Falso

Falso

Sentena

Resultado

0 (=) 0

Falso

0 (=) 1

Verdadeiro

1 (=) 0

Verdadeiro

1 (=) 1

Verdadeiro

Exemplo com inteiros:

Operao

Resultado

(5=4) ou (6<8)

Verdadeiro

(15>5+9) ou (1<0)

Verdadeiro

(2>1) ou (2>2) ou (1<>11)

Verdadeiro

(2=1) ou (5<>5)

Falso

Colocou todas as expresses no VisuAlg?


isso a! Em nossas perguntas valendo medalha recomendado que voc coloque-as no VisuAlg
para obter os resultados.
Sero dadas cinco expresses para serem colocadas no VisuAlg. Com isso voc dever informar
seu resultado. (Verdadeiro ou Falso).

Preparado(a) para conquistar mais uma medalha?


Vamos s perguntas ento!

Estruturas de Condio
Agora iremos conhecer as estruturas de condio, que servem para nos auxiliar na tomada de
alguma deciso. So definidas por expresses lgicas, em que o programa ir executar a
estrutura de acordo com as respostas (VERDADEIRO ou FALSO).
Considerando um cenrio real e cotidiano, elas so as vrias decises que tomamos no nosso dia
a dia.
Vamos imaginar que estamos saindo de casa, e, de repente, comea a chover. O que devemos
fazer?
Se est chovendo = pegar um guarda-chuva. Se no est chovendo = no preciso de um
guarda-chuva.
Isto foi uma condio que determinar o que eu deveria levar comigo.

Estruturas de Condio

Saindo um pouco do cenrio real e indo para o ambiente computacional, temos a seguinte
tarefa: Cadastrar pessoas maiores de idade no sistema.
Para isso devemos fazer uma estrutura de condio para verificar a idade digitada. Veja no
fluxograma ao lado um exemplo de condio.
No cadastro no podem ser cadastradas pessoas menores de idade.

Demonstrada a importncia de fazer comparaes em seu algoritmo, iremos evoluir para


aprender como faremos em linguagem de mquina, pois o que sabemos at agora em relao
aos operadores, estes, por sua vez, nos auxiliam a comparar. Por exemplo: podemos comparar
se o 15 maior do que 16; o nosso algoritmo ir retornar falso.
Como escrever uma estrutura condicional em algoritmo?
se <expresso lgica> entao
//aes para executar caso a expresso seja verdadeira
fimse

No exemplo anterior, vimos como entrar em uma condio caso ela d VERDADEIRA, e se for
necessrio tratar se a expresso for falsa? Para isso utilizamos a clusula SENAO.
se <expresso lgica> entao
//aes para executar caso a expresso seja verdadeira
senao
//aes para executar caso a expresso seja verdadeira
fimse

Nas estruturas condicionais, temos a possibilidade de fazer condies sequenciais/consecutivas


sempre que necessrio.
Podemos utilizar qualquer expresso lgica, dessa forma, as estruturas de condies servem
para controle de aes, valores e variveis do sistema.

Estruturas de Repetio
Estamos chegando ao final do nosso curso, esta ser nossa penltima lio. Ser que voc vai
conseguir o trofu?!
Acredito que, se voc chegou at aqui, no est para brincadeira!
Agora, iremos aprender sobre as estruturas de repetio, elas iro nos economizar MUITO cdigo
na hora de escrevermos nossos algoritmos, ento vamos l!
No VisuAlg temos disponveis trs estruturas de repetio para utilizarmos em nossos
algoritmos. So elas:

Para...faa

Enquanto...faa

Repita...at

Ento o que so exatamente estruturas de repetio?

So conjuntos de comandos que repetem instrues em uma quantidade predeterminada


ou no. Ou seja, so blocos de cdigos que se repetiro sempre que se enquadarem nos
blocos condicionais a eles atribudos.

Quando utilizaremos?

Sempre que precisarmos fazer coisas repetitivas.

Para exemplificar, usaremos uma varivel chamada cont para ser o nosso contador de
vezes que o algoritmo repetir um determinado bloco de cdigo.

Vamos utilizar o nosso exemplo de verificar se determinada pessoa maior ou menor de


idade.
var
idade: inteiro
inicio
escreva("Informe sua idade:")
leia(idade)
se(idade) >= 18 entao
escreva("Voc maior de idade!")
senao
escreva("Voc menor de idade!")
fimse
Mas, se fossem trs pessoas?
Exemplo: Verificar se trs pessoas so maiores ou menores de idade.
inicio
escreva("Informe sua idade:")
leia(idade1)

se(idade1) >= 18 entao


escreva("Voc maior de idade!")
senao
escreva("Voc menor de idade!")
fimse
escreva("Informe sua idade:")
leia(idade2)
se(idade2) >= 18 entao
escreva("Voc maior de idade!")
senao
escreva("Voc menor de idade!")
fimse
escreva("Informe sua idade:")
leia(idade3)
se(idade3) >= 18 entao
escreva("Voc maior de idade!")
senao
escreva("Voc menor de idade!")
fimse
fimalgoritmo
Note a quantidade de cdigo que tivemos que digitar para verificar a idade de trs pessoas.
Poderia ser mais simples, no ?
Com certeza!
a que entram as estruturas de repetio.
A estrutura de repetio para..faa utilizada da seguinte forma:
para variavel* de inicio** ate final*** faca
// Instrues para repetir
fimpara
* Nome da varivel que ir controlar a repetio
** Valor da varivel onde iniciar a repetio
*** Valor da varivel onde terminar a repetio

Exemplo:
para i de 1 ate 3 faca
// Instrues para repetir
fimpara
A varivel que ir controlar a repetio deve estar definida no bloco de variveis.
algoritmo "semnome"
var
cont,idade: Inteiro
inicio
para cont de 1 ate 10 faca
escreval("Informe sua idade:")
leia(idade)
se(idade) < 20 entao
se(idade) < 15 entao
escreval("Voc uma criana!")
fimse
fimse
fimpara
fimalgoritmo

Estruturas de Repetio - Para...faa


Lembra do exemplo que utilizamos l no incio para verificar a idade de trs pessoas e dizer se
maior ou menor de idade? Vejamos como fica utilizando a estrutura de repetio para..faa:
var
idade,i:inteiro
inicio
para i de 1 ate 3 faca
escreva("Informe sua idade:")
leia(idade)
se(idade) >= 18 entao

escreva("Voc maior de idade!")


senao
escreva("Voc menor de idade!")
fimse
fimpara
fimalgoritmo
Bem melhor, no acha?
Ento, a essncia para se utilizar as estruturas de repetio identificar onde h blocos que se
repetem mais de uma vez no nosso algoritmo.

Estruturas de Repetio - Enquanto...faa


Na estrutura "Para Faa", ela repete durante a iterao de um valor, ou seja, repete-se at
chegar no nmero informado. H outras estruturas que repetem a partir de uma condio
(expresso lgica), que o caso do enquanto..faa
Estrutura "Enquanto Faa":
enquanto <expresso lgica> faca
// Comandos para repetir
fimenquanto
Os comandos so executados enquanto a expresso lgica for verdadeira.
algoritmo "triplo"
var
numero:Inteiro
inicio
numero <- -1
enquanto ( numero <> 0) faca
escreva("Digite um nmero: ")
leia(numero)
escreva("Triplo: " ,numero*3)
fimenquanto
fimalgoritmo

Estruturas de Repetio - Repita...at

A estrutura "Repita...at" segue o mesmo princpio da "Enquanto Faa", porm a verificao


condicional realizada no final da repetio, deste modo pelo menos uma vez a estrutura
executada.
repita
// Comandos que sero repetidos
at <expresso lgica>
Um algoritmo que calcula a soma de um nmero digitado e mostre para o usurio at ele sair do
programa.
algoritmo "repita"
var
op:Literal
num, soma:Real
inicio
soma <-0
repita
escreva("Informe o nmero para o clculo:")
leia(num)
soma <- soma + num
escreva("Soma = ", soma)
escreva("Deseja continuar? (s/n) ")
leia(op)
ate ( op = "n") OU op = "N")
fimalgoritmo

Variveis Indexadas
Variveis indexadas so variveis que contm mais de um espao alocado em memria.
Variveis comuns possuem apenas um valor.

Variveis indexadas possuem mais de um valor.

Os valores contidos nas variveis indexadas so organizados porndices. Ou seja, so


identificados por um nmero que corresponde ao seu endereo em memria.

Vamos considerar que estamos criando um algoritmo que precise cadastrar oito nomes de
pessoas, trs salrios e seis idades. Para declarar essas variveis, seria mais ou menos dessa
forma:
var
nome1, nome2, nome3, nome4, nome5, nome6, nome7, nome8 :Literal
salario1, salario2, salario3 : Real
idade1, idade2, idade3, idade4, idade5, idade6:Inteiro
Correto? Teramos que criar vrias variveis para receber os diversos valores. E, se eu no
soubesse o limite? Se fossem 100 variveis, 1000 variveis? J pensou no trabalho que
teramos? a que entram as variveis com ndices, as chamadas variveis indexadas.
a que entram as variveis com ndices, as chamadas variveis indexadas.
Vamos ver como elas funcionam?

Ento uma varivel indexada deve ser declarada da mesma forma que uma varivel simples,
como j foi visto na lio de variveis.
Sua declarao ficaria da seguinte forma:
var
nomes: vetor [1..8] de Literal
salarios: vetor [1..3] de Real
idades: vetor [1..6] de Inteiro

Melhor? Menos cdigos? Economizamos mais cdigos e deixamos bem mais organizadas nossas
variveis.

Reviso
Antes de mostrar tudo que voc aprendeu no curso, que tal fazer uma breve reviso de tudo que
vimos? Topa? Ento vamos l!

Representao de um algoritmo
Temos dois tipos de representaes, que so:
fluxograma e Pseudocdigo

Fluxograma representado por formas grficas, e o pseudocdigo representado como uma


narrativa do que est acontecendo, ele a ponte entre a linguagem falada e a linguagem de
mquina(programao).

Tipo de dados
Temos quatro tipos principais de dados, que so:
inteiro, real, lgico e literal.

Tipo de dados
Inteiro: aceitam somente nmeros inteiros positivos e negativos e NO aceitam nmeros reais.
Ex.: 0 1 4 35 -54.
Reais: aceitam valores positivos e negativos Podem ser nmeros reais, ou inteiros. Ex.: 1.3 2 4.0
-5.4.
Literal: podem ser letras, nmeros ou caracteres especiais. Ou seja, pode ser qualquer tipo de
valor desde que esteja entre aspas duplas. Ex.: "Algoritmo" "Senai" "3432" "43Ab" "&sp3c1@l".
Lgico: so respostas para uma pergunta, em que dever ter apenas duas possveis respostas:
sim ou no. Porm sempre resultam como VERDADEIRO ou FALSO. Exemplo: Est Chovendo? Sim
(Verdadeiro), Maior de idade? 0 (Falso).

Variveis
O que so: espaos de memria do computador destinados ao armazenamento de dados.
Como usar: no programa, eu devo dar um nome a ela e informar qual o seu tipo de dado. E, no
decorrer do algoritmo, atribuir o valor a ela quando necessrio.
var
nomeDaVariavel:TipoDeDado

Expresses Aritmticas
Podemos trabalhar com as principais operaes matemticas, que so:

Expresses Aritmticas
Expresses aritmticas so as expresses que, utilizando operadores aritmticos, resultam em
um valor inteiro ou real. Ou seja, o resultado sempre ser um nmero, seja ele do tipo real ou do
tipo inteiro.
Exemplos:
2+3+4+1-9 =1
10*3-5 = 25
(3-1)*(3+2)/2 = 5

Expresses Literais
Expresses literais so expresses de concatenao, ou seja, elas juntam valores atravs do
operador de concatenao que, no VisuAlg, a virgula (,).
Exemplos:
Meu nome Anderson
Meu sobrenome Aguiar
Meu nome completo Anderson Aguiar
Expresses Lgicas
As expresses lgicas servem para compararmos valores e dizer se o resultado VERDADEIRO
ou FALSO.
No programa, eu devo dar um nome a ela e informar qual o seu tipo de dado. E, no decorrer do
algoritmo, atribuir o valor a ela quando necessrio.
Alm disso, expresses lgicas podem conter expresses aritmticas dentro delas.
Expresses Lgicas
Operadores relacionais lgicos:

Smbolo

Operador

>

Maior

Menor

>=

Maior igual

<=

Menor Igual

Igual

<>

Diferente

Estrutura de Condio
So aes que devemos tomar, e so definidas por expresses lgicas, em que o programa ir
executar a estrutura de acordo com as respostas (VERDADEIRO ou FALSO).
Se est chovendo = pegar um guarda-chuva.
Seno = no preciso de um guarda-chuva

Estrutura de Repetio
Temos trs principais estruturas de repetio, que so:

Para...faa
Enquanto...faa
Repita...at

O que so? So conjuntos de comandos que repetem instrues em uma quantidade


predeterminada ou no. Ou seja, so blocos de cdigos que se repetiro sempre que se
enquadrarem nos blocos condicionais a eles atribudos.
Quando utilizaremos? Sempre que precisarmos fazer coisas repetitivas.
Variveis Indexadas
Variveis indexadas so variveis que contm mais de um espao alocado em memria.
[tamanhoInicial..tamanhoFinal]:tipoDeDado
Exemplo
var
nomes:vetor[1..8] de Literal
salarios:vetor[1..3] de Real
idades:vetor[1..6] de Inteiro
inicio

nomes[1] <- "Anderson"


nomes[2] <- "Senai"
nomes[3] <- "Joo"
nomes[4] <- "Maria"
escreval(nomes[1]) //ir imprimir "Anderson"