Beruflich Dokumente
Kultur Dokumente
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.
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
Pseudocdigo
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.
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.
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
nomes de variveis devem possuir como primeiro caractere uma letra ou sublinhado '_'
(os outros caracteres podem ser letras, nmeros e sublinhado);
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.
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
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
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.
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
Falso
Sentena
Resultado
Verdadeiro
Falso
Falso
Sentena
Resultado
0 (=) 0
Verdadeiro
1 (=) 0
Falso
0 (=) 1
Falso
1 (=) 1
Verdadeiro
Operao
Resultado
(5=5) e (6<8)
Verdadeiro
(5>5+9) e (1<7)
Falso
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
Verdadeiro
Verdadeiro
Falso
Sentena
Resultado
0 (=) 0
Falso
0 (=) 1
Verdadeiro
1 (=) 0
Verdadeiro
1 (=) 1
Verdadeiro
Operao
Resultado
(5=4) ou (6<8)
Verdadeiro
(15>5+9) ou (1<0)
Verdadeiro
Verdadeiro
(2=1) ou (5<>5)
Falso
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.
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
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
Quando utilizaremos?
Para exemplificar, usaremos uma varivel chamada cont para ser o nosso contador de
vezes que o algoritmo repetir um determinado bloco de cdigo.
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
Variveis Indexadas
Variveis indexadas so variveis que contm mais de um espao alocado em memria.
Variveis comuns possuem apenas um valor.
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
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