UNIDADE 2
2
UNINASSAU EAD –
LÓGICA DE PROGRAMAÇÃO
UNIDADE 2
Apresentação
Antes de prosseguir com esse texto, leia o capítulo 2 do livro-texto da disciplina. De-
pois disso, volte a este ponto para continuar o nosso estudo.
Agora que você já leu o segundo capítulo do nosso livro-texto, vamos iniciar os nos-
sos estudos.
2. 1 Estruturas de Repetição
Vamos lá.
1
2.1.1 Estrutura de Repetição Determinada
Para começar, insira o algoritmo abaixo no Visualg e depois execute usando F9:
ALGORITMO “REPETICAO DETERMINADA”
var
I : inteiro
INICIO
FIMALGORITMO
Essa variável de controle pode ter qualquer nome, mas normalmente usamos o
nome “i”. Lembramos mais uma vez que no caso do Visualg (e algumas outras
linguagens, como o Pascal), essa variável tem que ser do tipo inteiro. Se você
tentar usar uma variável REAL para controlar o PARA, o Visualg não aceitará –
dará erro.
A grande maioria das linguagens funciona dessa forma. Existem linguagens, con-
tudo, que admitem outras formas de indexação, mas esse assunto não será abor-
dado nesta disciplina. Por ora, vamos nos ater ao uso de inteiros nas variáveis de
controle das estruturas de repetição.
2
1 até 100 pulando de um em um, tudo o que estiver dentro da repetição vai ser
feito cem vezes. No caso da repetição determinada, é simples assim. Fácil, não
é?
Vamos ver mais uma repetição determinada. Insira o algoritmo abaixo no visualg
e execute.
var
I : inteiro
INICIO
FIMALGORITMO
Legal, não é? Isso nos dá uma grande flexibilidade na hora de escrever os al-
goritmos que usam repetição determinada. Caso você se lembre das aulas de
matemática do ensino médio, vai lembrar que é assim que criamos uma PA (pro-
gressão aritmética).
Agora vamos pensar um pouco: já que podemos contar para frente, ou seja,
progressivamente, será que podemos contar para trás, ou seja, recuando de um
número maior em direção a um número menor, de forma regressiva? Vamos ver
isso acontecendo no algoritmo a seguir:
var
I : inteiro
INICIO
FIMALGORITMO
3
Você percebeu que foi possível fazer uma contagem regressiva com a variável i
variando de 100 até 1, recuando de -1 em -1? Ou seja: a repetição determinada é
muito flexível, permitindo variar o passo de contagem para mais ou para menos.
Não tem que ser necessariamente recuando de -1 em -1: pode ser qualquer va-
lor. É importante que para usar um passo negativo, o valor inicial deve ser maior
do que o valor final. Se não for assim, não fará sentido usar um passo negativo.
Vamos ver um exemplo disso. Insira o algoritmo abaixo no Visualg e execute com
F9:
I : inteiro
INICIO
FIMALGORITMO
Mas vamos trabalhar com repetição determinada da forma que nos interessa. Ela
é extremamente útil, pois podemos fazer várias coisas usando a repetição deter-
minada.
Por exemplo, como faríamos para mostrar os valores das frações ½, ¼, 1⁄6, 1⁄8 e
assim por diante até 1⁄20? Vamos ver um algoritmo que faz isso:
ALGORITMO “fracionando”
Var
i : inteiro
INICIO
FIMALGORITMO
4
A saída, ou seja, o que o algoritmo vai exibir na tela serão, sucessivamente, os
valores equivalentes a ½, ¼, 1/6, 1/8, 1/10, 1/12, 1/14, 1/16, 1/18 e 1/20.
Sabemos, ainda, que para achar o próximo múltiplo de 3, basta somar 3 ao ante-
rior. Assim, descobrimos que o passo é 3. Para encerrar a repetição, o último nú-
mero é 100. Podemos inclusive terminar antes, já que o último múltiplo de 3 entre
1 e 100 é 99.
ALGORITMO “MULTIPLOSDE3”
Var
i : inteiro
INICIO
FIMALGORITMO
ALGORITMO “LENDO5NUMEROS”
Var
i : inteiro
numero : real
5
INICIO
FIMALGORITMO
Da mesma forma que podemos ler números usando estruturas de repetição, tam-
bém podemos ler nomes inseridos via teclado. Vamos ver um exemplo disso no
algoritmo abaixo, que lê cinco nomes digitados via teclado.
ALGORITMO “LENDONOMES”
Var
i : inteiro
nome : literal
INICIO
FIMALGORITMO
ALGORITMO “LENDO_NOMES_E_IDADES”
Var
i : inteiro
nome : literal
idade : inteiro
INICIO
FIMALGORITMO
6
Para construir repetições determinadas, você viu que usamos um comando PARA.
Assistiu ao vídeo?
Então vamos continuar nosso trabalho. Depois que você viu esses exemplos, vamos
estudar mais detalhadamente as estruturas de repetição determinada.
Var
I: inteiro
Valor_inicial, Valor_final: inteiro
INICIO
FIMALGORITMO
ALGORITMO “LENDO_NOMES_E_IDADES”
Var
i : inteiro
nome : literal
idade : inteiro
INICIO
FIMALGORITMO
7
Analisando detalhadamente o algoritmo acima, vemos que com ele podemos re-
ceber o nome e idade de um conjunto de pessoas.
Claro que algoritmos que apenas recebem dados e não fazem nada são de pou-
ca utilidade, tem pouca serventia. Seria muito mais interessante, por exemplo, se
pudéssemos contar quantas pessoas são consideradas por lei maiores de idade,
ou seja, têm idade maior ou igual a 18 anos, já que no Brasil, a maioridade é atin-
gida aos 18 anos. Portanto, se a pessoa tem idade maior ou igual a 18 anos, ela
pode ser considerada adulta.
Var
i : inteiro
nome : literal
idade : inteiro
qtdmaior : inteiro
INICIO
FIMALGORITMO
Neste código que acabamos de executar, temos uma novidade: uma variável
contadora. As variáveis contadoras são extremamente úteis e são usadas em
8
praticamente todas as situações do dia a dia. Vamos falar nesse assunto no pró-
ximo item.
Da mesma forma, se você faz uma compra nesse mesmo supermercado, normal-
mente, no final da nota de pagamento tem a quantidade de itens. Esse tipo de
variável, chamada tecnicamente de CONTADOR, serve para isso. No algoritmo
acima, a variável Qtdmaior tem esse papel.
Var
i : inteiro
idade : inteiro
nome : literal
qtdmaior, qtdmenor : inteiro
INICIO
FIMALGORITMO
Não é interessante? Vamos fazer algo semelhante, agora contando quantas pes-
soas foram aprovadas e quantas foram reprovadas em uma turma:
9
ALGORITMO “LENDO_NOMES_E_CONTANDO APROVADOS”
Var
i : inteiro
nome : literal
media : inteiro
qtdap, qtdrep : inteiro
INICIO
FIMALGORITMO
Nesse algoritmo, as variáveis qtap e qtdrep contam quantas pessoas foram apro-
vadas e quantas foram reprovadas, respectivamente. A variável “media” recebe
via teclado o valor da média de cada aluno.
Como vimos acima, podemos colocar vários contadores num programa. Existe
outro tipo de variável, bastante útil, que chamamos de acumuladores. Veremos
agora um exemplo do uso deles:
Suponha que você foi a um supermercado e fez uma compra com vários itens,
cada um com nome e preço. Suponha que comprou uma unidade de cada item.
Ao final da compra, você pagará um valor total, que corresponde à soma daque-
les itens.
§ Nome : literal
§ Preço : real
Vamos contar quantos produtos foram comprados, usando uma variável qtd do tipo
inteiro, e somar os valores pagos, com uma variável soma do tipo Real. Suponha
ainda que você comprou cinco itens dessa vez.
10
O algoritmo fica assim (insira ele no Visualg e teste – lembre que a variável “preço”
deve ser declarada como “preco”, ou seja, sem cedilha (ç), pois o visualg não aceita
caracteres especiais no nome de variáveis):
ALGORITMO “somavalores”
Var
i : inteiro
nome : literal
preco, soma : real
INICIO
FIMALGORITMO
A variável soma é utilizada para guardar (armazenar) o valor total a ser pago, ou
seja, somou os valores das pessoas. Esse tipo de variável é chamada “acumulado-
ra”.
Esse tipo de variável é muito útil, além de guardar a soma, para permitir saber a mé-
dia de preço, da seguinte forma: sabemos que a média de preço é igual à soma total
dividida pela quantidade de itens. No algoritmo acima, sabemos que a quantidade de
itens é igual a cinco. Portanto, se colocarmos o comando abaixo (antes de FIMAL-
GORITMO), poderá exibir essa média.
Insira a linha abaixo no código, rode (execute) o programa e verifique como funcio-
na.
Legal, não é? Com esse tipo de variáveis, o céu é o limite, ou seja, podemos tratar
um conjunto muito grande de situações que vivenciamos no dia a dia.
No vídeo abaixo, que tem a duração de 7 minutos e 35 segundos, você pode ver um
exemplo do uso de contadores.
O link é https://www.youtube.com/watch?v=oWqE1ir8Kbo
11
Agora, que tal colocar em prática o que você aprendeu? Com base no programa aci-
ma, construa um algoritmo (programa no Visualg) que recebe o nome, sexo, idade e
salário de um grupo de cinco pessoas. Receba esses dados usando uma repetição
determinada.
Dentro da repetição, calcule os seguintes dados utilizando as variáveis apropriadas:
Caso tenha dúvida na elaboração desse algoritmo, peça ajuda ao seu professor tutor
no fórum da disciplina.
Agora que você já realizou o exercício acima, você viu que é possível contabilizar
dados sobre um conjunto determinado de pessoas. Não é extremamente útil?
Então vamos em frente. Agora vamos falar de um tipo de repetição que não tem
uma quantidade definida previamente.
Sabemos, observando o nosso dia a dia, que normalmente em algum lugar que
atende pessoas, como uma loja, não se sabe inicialmente quantas pessoas serão
atendidas, ou quantas pessoas chegarão àquela loja num dado dia. O mesmo pode-
mos dizer sobre hospitais, ruas, enfim, qualquer situação que receba pessoas.
12
Insira o código abaixo no visualg e execute para experimentar. Nesse algoritmo, su-
ponha que você está num supermercado onde compra um conjunto de produtos (1
unidade de cada).
ALGORITMO “comprasupermercado”
VAR
produto : literal
preco :real
soma : real
qtdcomprados : inteiro
INICIO
FIMALGORITMO
13
soma : real , ou seja, vai acumular os preços de todos os produtos numa única
soma exibida no final do programa. Por fim, temos a variável qtd comprados : in-
teiro , que conta quantos produtos foram comprados.
Legal, não é?
ALGORITMO “estatisticaalunos”
VAR
INICIO
14
qtdalunos := qtdalunos +1
escreval(“informe idade do aluno”)
leia(idade)
soma:= soma + idade
escreval(“informe sexo do aluno m ou f”)
leia(sexo)
FIMALGORITMO
Muito interessante, não é? Com esse tipo de estrutura, você consegue tratar a
maior parte dos casos que encontramos no dia a dia das empresas. Tente criar
variações desse algoritmo e teste. É testando que se aprende!
Depois volte para este texto para continuarmos nosso assunto, vendo uma estru-
tura extremamente interessante chamada VETOR. Vamos em frente!
2.2 Vetores.
15
Você deve ter percebido que o uso de variáveis simples, numa repetição, não permi-
te que você recupere dados inseridos anteriormente. Vamos ver isso na prática?
Suponha que você queira ler, via teclado, cinco nomes e depois listá-los na ordem
em que foram lidos.
ALGORITMO “LENDONOMES”
VAR
I : inteiro
nome : literal
INICIO
FIMALGORITMO
ALGORITMO “LENDOELISTANDONOMES”
VAR
I : inteiro
nome : literal
INICIO
FIMALGORITMO
Você perceberá que o nome é exibido cinco vezes, ou seja, a variável “nome’
guardou apenas o último nome.
16
Isso acontece porque essa variável guarda apenas um nome por vez. E se pu-
déssemos usar uma estrutura que permitisse guardar nela tudo o que digitamos?
Para ter um primeiro contato com vetores, insira o algoritmo abaixo no Visualg e
o execute.
ALGORITMO “PRIMEIROVETOR”
VAR
I : inteiro
nomes: vetor [1..5] de literal
INICIO
FIMALGORITMO
Essa é uma das maiores vantagens em usar vetores. É importante salientar que
os dados são armazenados na memória RAM, ou seja, não estão guardados em
disco.
O uso de vetores é bastante amplo e você pode usar mais de um vetor em cada
programa. Vamos ver mais um exemplo abaixo, adaptado do programa que aca-
bamos de fazer. Lembramos novamente da importância de você inserir esse al-
goritmo no Visualg e testar.
Vamos lá!
17
ALGORITMO “DOISVETORES”
VAR
I : inteiro
nomes: vetor [1..5] de literal
idades : vetor[1..5] de literal
INICIO
Fimpara
Para i:=1 ate 5 faca
Escreval(nomes[i], “tem “ , idades[i] , “anos”)
Fimpara
FIMALGORITMO
VAR
Onde “inicio” é a primeira posição daquele vetor e “fim” é a posição final. Normal-
mente começamos com 1 e finalizamos em algum número desejado.
Por exemplo:
A declaração acima diz que o vetor “nomes” tem cinco áreas de armazenamento
para guardar textos (literais). Diz que essas áreas vão de 1 até 5.
18
PSEUDOCÓDIGO 2.25
Algoritmo “Vetor_Média”
Var
Valores : vetor [1..10] de reais
Soma, media : real
i : inteiro
INICIO
soma:= 0
Para i de 0 ate 9 Faça
Leia (Valores [i])
Soma := Soma + Valores [i]
Fimpara
Media := Soma/10
Escreva(“O valor da média é: “, Media)
FIMALGORITMO
Da mesma forma que nas variáveis comuns, temos duas formas de inserir valo-
res em um vetor: pelo comando LEIA ou pela atribuição, que pode ser da forma
← ou usando “:=”
Ok?
RESUMO
Aproveite para realizar os exercícios de fixação do livro. Insira suas dúvidas nos
fóruns da disciplina.
19