Professional Documents
Culture Documents
OL!
SEJA BEM-VINDO AO CURSO DE
LGICA DE PROGRAMAO
Objetivo do curso:
Capacitar o aluno a conhecer um pouco do mundo da
lgica de programao para poder criar sites,
desenvolver games e programar robs.
SUMRIO
Introduo....................................................................................................................................4
Representaes
Representaes de um algoritmo........................................................................................12
VISUALG............................................................................................................................18
Tipos
Tipos de dados....................................................................................................................23
Variveis............................................................................................................................26
Expresses
Expresses aritmticas................................................................................................................33
Expresses literais.......................................................................................................................36
Expresses lgicas......................................................................................................................38
Estruturas
Estruturas de Condio...............................................................................................................46
Estruturas de Repetio..............................................................................................................50
Variveis indexadas.....................................................................................................................59
Reviso.......................................................................................................................................63
Contedo extra...........................................................................................................................70
INTRODUO
Boas Vindas!
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:
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.
10
10
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!
11
11
REPRESENTAES
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
12
12
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.
13
13
14
14
Fluxograma da Calculadora
15
15
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).
16
16
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?
17
17
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 o download do programa. O mesmo pode ser encontrado em:
http://sala.ead.sp.senai.br/pluginfile.php/166738/mod_scorm/content/2/assets/modulos/representacoes/
18
18
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.
19
19
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.
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").
20
20
21
21
22
22
TIPOS
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.
23
23
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.
24
24
25
25
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.
26
26
27
27
Variveis Regras
Regras para o nome da varivel:
nomes de variveis devem possuir como primeiro caractere uma letra ou sublinhado '_' (os outros caracteres podem ser
letras, nmeros e sublinhado);
28
28
assim que devemos declarar nossas variveis no VisuAlg para que funcione.
29
29
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.
30
30
Exemplo no VisuAlg:
31
31
Exemplo:
Ele ir jogar o valor que o usurio digitar para dentro da varivel "nome".
32
32
EXPRESSES
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:
+ Adio
- Subtrao
* Multiplicao
/ Diviso
33
33
At agora nada de novo, no ? Ento, veremos como podemos utilizar essas expresses em nossos algoritmos utilizando as
variveis.
34
34
2) Em seguida, inicio meu algoritmo e atribuo os valores que eu quero para as minhas variveis.
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:
35
35
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
36
36
Expresses literais recebem mais de um valor e resultam SEMPRE em um valor do tipo literal.
37
37
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.
38
38
84 = 24
12 < 12
44 < 64
39
39
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.
40
40
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:
41
41
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.
42
42
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.
43
43
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?
44
44
45
45
ESTRUTURA
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.
Saindo um pouco do cenrio real e indo para o ambiente computacional, temos a seguinte tarefa: Cadastrar pessoas maiores
de idade no sistema.
46
46
Para isso devemos fazer uma estrutura de condio para verificar a idade digitada. Veja no fluxograma abaixo 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.
47
47
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.
48
48
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.
49
49
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!
50
50
No VisuAlg temos disponveis trs estruturas de repetio para utilizarmos em nossos algoritmos. So elas:
Para...faa
Enquanto...faa
Repita...at
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.
51
51
Vamos utilizar o nosso exemplo de verificar se determinada pessoa maior ou menor de idade.
52
52
53
53
Exemplo:
54
54
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:
55
55
56
56
57
57
Um algoritmo que calcula a soma de um nmero digitado e mostre para o usurio at ele sair do programa.
58
58
Variveis Indexadas
Variveis indexadas so variveis que contm mais de um espao alocado em memria.
Variveis comuns possuem apenas um valor.
59
59
Os valores contidos nas variveis indexadas so organizados por ndices. 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:
60
60
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.
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:
61
61
Melhor? Menos cdigos? Economizamos mais cdigos e deixamos bem mais organizadas nossas variveis.
62
62
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.
63
63
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.
64
64
Expresses Aritmticas
Podemos trabalhar com as principais operaes matemticas, que so:
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
65
65
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.
66
66
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.
67
67
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.
68
68
Variveis Indexadas
Variveis indexadas so variveis que contm mais de um espao alocado em memria.
Exemplo:
69
69
Contedo Extra
Funes
Imagine que as funes so um algoritmo dentro de outro, que iro nos auxiliar a executar alguma tarefa comum.
Exemplo:
verificar se determinada varivel est preenchida;
imprimir os nmeros de 1 a 10;
verificar se determinada idade pertence a uma pessoa;
maior ou menor de idade.
As vantagens de se utilizar funes so a reutilizao e a economia de cdigo que teremos, ou seja, no precisamos ficar
digitando sempre o mesmo bloco de cdigo para imprimir os nmeros de 1 a 10 por exemplo, basta chamar a funo que
faz isso.
Pelo jeito voc gostou mesmo de trabalhar sua lgica, no mesmo? Voc um campeo s por ter chegado at aqui.
Ento, como recompensa, voc conhecer o mundo das funes, contedo bnus para agregar ainda mais ao seu
conhecimento.
Ento, aqui, iremos entender como funcionam os subalgoritmos ou funes.
70
70
No Visualg
Agora vamos ver na prtica como elas funcionam.
Vamos comear pelas funes nativas e depois veremos as definidas por ns.
No VisuAlg, est disponvel uma srie de funes que no temos a necessidade de criar.
71
71
72
72
Funes
Para utiliz-las basta chamar qualquer uma delas. Para exemplificar, utilizaremos uma funo que sorteia nmeros, como
listado abaixo:
Faa o teste escrevendo esse algoritmo no VisuAlg. Agora vamos entender as funes definidas pelo usurio.
Como so compostas
Identificador: nome da funo.
Parmetros: valores que nossa funo ir receber.
Tipo de retorno da funo: real, inteiro, lgico, literal.
Declarao de variveis locais: idntica declarao de variveis globais. As variveis declaradas localmente tm validade
apenas dentro do escopo da funo, ou seja, fora dela no conseguimos utiliz-la.
73
73
Retorne: local onde colocada a varivel de retorno que enviar o valor para onde a funo foi chamada.
Funo <identificador>(<lista de parmetros>: <tipo dos parmetros>): <tipo de retorno>.
Vamos utilizar o nosso exemplo de verificar se determinada pessoa maior ou menor de idade.
74
74
75
75
76
76