Escolar Documentos
Profissional Documentos
Cultura Documentos
CARTILHA LGICA DE
PROGRAMAO
Ministrio da
Educao
cartilha lgica
de programao
EDITORA IFB
Braslia-DF
2013
REITOR
Wilson Conciani
PR-REITORIA DE ADMINISTRAO
Valdelcio Pereira Ribeiro
PR-REITORIA DE ENSINO
Nilton Nlio Cometti
PR-REITORIA DE EXTENSO
Giano Luiz Copetti
EDITORA IFB
Braslia-DF
2013
2013 EDITORA IFB
Todos os direitos desta edio reservados Editora IFB.
Nenhuma parte desta publicao poder ser reproduzida ou transmitida de qualquer modo ou por qualquer meio, eletrnico ou
mecnico, incluindo fotocpia, gravao ou qualque tipo de sistema de armazenamento e transmisso de informao, sem prvia
autorizao, por escrito, da Editora do IFB.
Conselho Editorial Carlos Cristiano Oliveira de Faria Almeida Luciana Miyoko Massukado
Cristiane Herres Terraza Luciano Pereira da Silva
Daniela Fantoni Alvares Luiz Diogo de Vasconcelos Junior
Edilsa Rosa da Silva Marco Antnio Vezzani
Elisa Raquel Gomes de Sousa Moema Carvalho Lima
Francisco Nunes dos Reis Jnior Paulo Henrique de Azevedo Leo
Gabriel Andrade Lima de Almeida Castelo Branco Philippe Tshimanga Kabutakapua
Gabriel Henrique Horta de Oliveira Reinaldo de Jesus da Costa Farias
Gustavo Ablio Galeno Arnt Renato Simes Moreira
Jos Gonalo dos Santos Sheila Soares Daniel dos Santos
Josu de Sousa Mendes Tatiana de Macedo Soares Rotolo
Julie Kellen de Campos Borges Vanessa Assis Araujo
Juliana Rocha de Faria Silva (presidente) Veruska Ribeiro Machado
Ktia Guimares Sousa Palomo Vinicius Machado dos Santos
Tiragem 1.000
Bibliografia
ISBN 978-85-64124-09-7
CDU 004.421
Sumrio
APRESENTAO .......................................................................................................................... 7
AGRADECIMENTO ....................................................................................................................... 9
INTRODUO ............................................................................................................................ 11
6.1. Procedimentos............................................................................................................... 88
O contedo desta cartilha dirigido principalmente para ser utilizado como livro-texto
em disciplinas sobre algoritmos, apresentando uma linguagem simples e exerccios prticos
para serem aplicados em sala de aula.
INTRODUO 11
Na informtica, o algoritmo o projeto do programa, ou seja, antes de se fazer um
programa (Software) na Linguagem de Programao desejada (Pascal, C, Delphi etc.) deve-
se fazer o algoritmo do programa. J um programa, um algoritmo escrito numa forma
compreensvel pelo computador (atravs de uma Linguagem de Programao), onde todas
as aes a serem executadas devem ser especificadas nos mnimos detalhes e de acordo
com as regras de sintaxe da linguagem escolhida.
Esta cartilha adota como linguagem padro para codificao dos exemplos, o
Portugol, aplicado na ferramenta VisialG, que de livre distribuio e uso. Est disponvel
para download em <http://www.apoioinformatica.inf.br/o-visualg>.
12 INTRODUO
1. Definies de algoritmo
1. DEFINIES DE ALGORITMO 13
Tabela 1.1 - Comparao do aprendizado de algoritmos com andar de bicicleta.
Perfil do
Aprender algoritmos Aprender a andar de bicicleta
estudante
Uma das formas mais eficazes de aprender algoritmos atravs de muitos exerccios.
Vejam algumas dicas de como aprender e como no aprender algoritmos na tabela 1.2.
14 1. DEFINIES DE ALGORITMO
1.1. Conceitos
At mesmo as coisas mais simples, podem ser descritas por sequncias lgicas. Por
exemplo:
Exemplo 1:
1. DEFINIES DE ALGORITMO 15
Exemplo 2:
A B Resultado
16 1. DEFINIES DE ALGORITMO
Terminada a fase de estudo, utilizar uma linguagem de programao para
3
escrever o programa que dever, a princpio, resolver o problema.
a) Anlise preliminar
Onde temos:
1. DEFINIES DE ALGORITMO 17
b) Soluo
Desenvolver a sequncia lgica e finita de passos que levam a execuo de uma tarefa
para resolver o problema.
d) Alterao
e) Produto final
Exemplo:
Diviso 1:
Diviso 2:
18 1. DEFINIES DE ALGORITMO
Diviso 3:
1. Pegue a escada
2. Coloque a escada abaixo da lmpada queimada
3. Pegue a lmpada nova
4. Suba na escada
5. Retire a luminria
6. Retire a lmpada queimada
7. Coloque a lmpada nova
8. Coloque a luminria
9. Desa da escada
10. Jogue a lmpada queimada no lixo
11. Guarde a escada
EXERCCIOS DE FIXAO
2. Faa um algoritmo para somar dois nmeros e multiplicar o resultado pelo primeiro nmero.
1. DEFINIES DE ALGORITMO 19
1.5. Desenvolvimento estruturado
a) Descrio narrativa
Se a mdia for maior ou igual a 7, o aluno foi aprovado, seno ele foi reprovado
b) Fluxograma
20 1. DEFINIES DE ALGORITMO
O fluxograma permite visualizar os caminhos (fluxos) e as etapas de processamento
de dados possveis. Dentro destas etapas, os passos para a resoluo do problema utiliza
modelagem com uma linguagem visual para especificar o conjunto de instrues por meio
de formas geomtricas, facilitando a compreenso da lgica utilizada pelo profissional.
fim
incio
1. DEFINIES DE ALGORITMO 21
A seguir temos um exemplo de um fluxograma que l dois valores e mostra a soma
destes valores:
E finalizamos o fluxo.
incio
Leia valor 1
Leia valor 2
mostra resultado
fim
22 1. DEFINIES DE ALGORITMO
EXERCCIOS DE FIXAO
7. Ler a idade de uma pessoa expressa em anos, meses e dias e mostrar expressa
apenas em dias.
8. Ler um nmero qualquer e verificar se este nmero maior ou igual a 10. Para a
opo verdadeira mostrar a palavra Maior, seno mostrar Menor.
1. DEFINIES DE ALGORITMO 23
c) Pseudocdigo, tambm conhecido como Linguagem Estruturada ou Portugol.
Algoritmo Nome_Do_Algoritmo
Variveis
Declarao das variveis
Procedimentos
Declarao dos procedimentos
Funes
Declarao das funes
Inicio
Corpo do Algoritmo:
Entrada
Processamento
Saida
Fim
Exemplo:
24 1. DEFINIES DE ALGORITMO
A identao (deslocamento para a direita) de uma instruo significa que tal instruo
est subordinada instruo anterior e facilita em muito a compreenso e a manuteno do
algoritmo e dos cdigos-fontes em uma linguagem de programao.
a) Processamento sequencial
As instrues do algoritmo so executadas uma aps a outra, sem que haja desvio na
sequncia das instrues, sendo cada instruo executada uma nica vez.
1. Incio
2. Some as duas primeiras notas
3. Some a terceira nota com o resultado da instruo 2
4. Some a quarta nota com o resultado da instruo 3
5. Divida o resultado da instruo 4 por 4
6. Fim
1. Incio
2. 10 + 5 = 15
3. 15 + 8 = 23
4. 23 + 1 = 24
5. 24 / 4 = 6
6. Fim
b) Processamento condicional
1. DEFINIES DE ALGORITMO 25
Exemplo: Obter a mdia aritmtica das quatro notas. Se a mdia for maior ou igual a
sete, o aluno est aprovado, caso contrrio, est reprovado.
1. Incio
2. Some as duas primeiras notas
3. Some a terceira nota com o resultado da instruo 2
4. Some a quarta nota com o resultado da instruo 3
5. Divida o resultado daagor instruo 4 por 4
6. Se o resultado da instruo 5 for maior ou igual a 7
7. Aprove o aluno
8. Se o resultado da instruo 5 for menor que 7
9. Reprove o aluno
10. Fim
1. Incio
2. 10 + 5 = 15
3. 15 + 8 = 23
4. 23 + 1 = 24
5. 24 / 4 = 6
6. Resposta negativa
7. Resposta afirmativa - resultado < 7
8. Ento - aluno reprovado
9. Fim
Note que a instruo 6 foi executada. Como a resposta foi negativa (a mdia foi inferior a
sete), o aluno foi reprovado. No foi executada a instruo sete.
26 1. DEFINIES DE ALGORITMO
Exemplo: Obter a mdia aritmtica das quatro notas de todos os alunos da sala.
1. Incio
2. Para cada aluno da sala
3. Some as duas primeiras notas
4. Some a terceira nota com o resultado da instruo 3
5. Some a quarta nota com o resultado da instruo 4
6. Divida o resultado da instruo 5 por 4
7. Fim
Se existem dois alunos na sala e suas notas so: 10, 5, 8, 1 e 4, 6, 7, 3 a execuo das
instrues ficar da seguinte forma
10+5=15
15+8=23
23+1=24
24/4=6
4+6=10
10+7=17
17+3=20
20/4=5
Observe que um lao de repetio necessita sempre de uma condio de parada que
seja vlido, caso contrrio o programa entrar em um lao infinito.
1. DEFINIES DE ALGORITMO 27
Dados numricos positivos ou negativos, excluindo-se qualquer nmero fracionrio.
a) Tipo inteiro
Exemplo: 35, 0, -56
Podemos imaginar uma varivel como sendo um local onde se pode colocar qualquer
valor do conjunto de valores possveis para o tipo definido para a varivel.
O nome de uma varivel utilizado para sua identificao e posterior uso dentro de
um programa, sendo assim, necessrio estabelecer algumas regras de utilizao destas.
O primeiro caractere do nome de uma varivel deve ser sempre uma letra;
28 1. DEFINIES DE ALGORITMO
Qualquer caminho seguido no diagrama abaixo levar a um nome de varivel vlido.
letra
letra
dgito
Onde:
So identificadores vlidos:
So identificadores invlidos:
Para que os programas manipulem valores, estes devem ser armazenados em variveis
e para isso, devemos declar-las de acordo com a sintaxe:
<lista-de-variaveis>: <tipo-de-dado>
<lista-de-variaveis>:vetor [<lista-de-intervalos>] de <tipo-de-
dado>
1. DEFINIES DE ALGORITMO 29
Exemplo:
VARIVEIS a palavra-chave que dever ser utilizada uma nica vez na definio das
variveis e antes do uso destas;
Em uma mesma linha, quando quisermos definir variveis de mesmo tipo, deveremos
usar o smbolo de vrgula (,) para separ-las.
1.11. Constantes
30 1. DEFINIES DE ALGORITMO
EXERCCIOS DE FIXAO
a. ( ) certo b. ( ) *oi
c. ( ) oi! d. ( ) Lucio
e. ( ) sorte# f. ( ) i123453
g. ( ) Nota do Aluno h. ( )o
i. ( ) arquivox11 j. ( ) 1ate
5. Classifique os dados especificados abaixo de acordo com seu tipo, assinalando com
I os dados do tipo inteiro, com R os reais, com C os caracteres (literais), com B os
lgicos (booleanos) e com N aqueles para os quais no possvel definir o tipo
de dado.
a. ( ) -988786,987 b. ( ) 34,50
c. ( ) Casa do Titio d. ( ) .F.
e. ( ) site f. ( ) -33
g. ( ) .V. h. ( ) 0,5
i. ( ) .V. j. ( ) .F.
k. ( ) 12,89 l. ( ) 215333
1. DEFINIES DE ALGORITMO 31
1.12. Operaes bsicas:
a) Expresses
altura
base
Observe que, no exemplo acima, utilizamos trs variveis: altura, base e rea.
O resultado final armazenado na varivel AREA, ou seja, local de memria onde ser
armazenado o resultado da avaliao da expresso e o operador o sinal de * que em
linguagem de computador representa a multiplicao.
32 1. DEFINIES DE ALGORITMO
J que falamos em operadores, vamos ser um pouco mais claros neste tpico.
Unrios: quando tem influncia sobre um nico operando, indicando, por exemplo,
que este se trata de um nmero negativo e no vem acompanhado de nenhum outro
operando. Exemplo: ao representar o nmero quatro negativo podemos utilizar (-4).
Isso no quer dizer que queremos subtrair o nmero quatro de outro valor.
Cada uma das expresses vistas acima possui seus operadores em especfico. A seguir,
vamos mostrar uma tabela contendo esses operadores:
b) Operadores
1. DEFINIES DE ALGORITMO 33
Operador de Atribuio:
OU
Operadoradores Aritmticos:
Operador de mdulo (isto , resto da diviso inteira). Por exemplo, 8 MOD 3 = 2. Tem a
MOD ou %
mesma precedncia do operador de diviso tradicional.
34 1. DEFINIES DE ALGORITMO
Operadores Relacionais:
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.
Operadores Lgicos:
Operador que resulta VERDADEIRO quando um dos seus operandos lgicos for verdadeiro.
ou
Equivale ao OR do Pascal.
Operador que resulta VERDADEIRO somente se seus dois operandos lgicos forem
e
verdadeiros. Equivale ao AND do Pascal.
1. DEFINIES DE ALGORITMO 35
Tabela 1.6 Tabela verdade dos operadores .E. e .OU.
A B A.E.B A . OU . B
VERDADEIRO/ VERDADEIRO/ VERDADEIRO/ VERDADEIRO/
TRUE/.T./.V./1 TRUE/.T./.V./1 TRUE/.T./.V./1 TRUE/.T./.V./1
VERDADEIRO/ FALSO/ FALSO/ VERDADEIRO/
TRUE/.T./.V./1 FALSE/.F./0 FALSE/.F./0 TRUE/.T./.V./1
FALSO/ VERDADEIRO/ FALSO/ VERDADEIRO/
FALSE/.F./0 TRUE/.T./.V./1 FALSE/.F./0 TRUE/.T./.V./1
FALSO/ FALSO/ FALSO/ FALSO/
FALSE/.F./0 FALSE/.F./0 FALSE/.F./0 FALSE/.F./0
APROVADO?
REPROVADO?
36 1. DEFINIES DE ALGORITMO
Tabela 1.9 Tabela verdade do operador .NAO.
A nao(A)
1 0
0 1
PRIORIDADE DE OPERADORES:
2 - Efetuar Funes
5 - Operadores Relacionais
6 - Operadores Lgicos
OBS: O programador tem plena liberdade para incluir novas variveis, operadores
ou funes para adaptar o algoritmo as suas necessidades, lembrando sempre, que
estes devem ser compatveis com a linguagem de programao a ser utilizada.
1. DEFINIES DE ALGORITMO 37
EXERCCIOS DE FIXAO
38 1. DEFINIES DE ALGORITMO
Toda instruo, primitiva ou no, possui uma sintaxe, ou seja, uma regra que dever
ser seguida para a construo de seu cdigo. Caso esta regra no seja obedecida, o seu
programa pode simplesmente no funcionar.
Devemos saber tambm que o conjunto de aes que sero realizadas pelo computador
aps a execuo de um determinado comando conhecida como semntica.
EXERCCIOS DE FIXAO
31 % 4
1. DEFINIES DE ALGORITMO 39
EXERCCIOS DE FIXAO
Mostre quais os valores armazenados em cada uma das variveis aps a execuo de
cada um dos comandos do algoritmo acima.
X Y Z W Q
V 2 4 1,50 PROVA
a. (2 * (5 MOD 3) + Y + W * 2) > Z ou
(Y < Z -1) e nao((Z * (Y 1) + Y) < 100) ( )
b. (X ou .V.) ou (Z * 2 % Y < W * Y) ( )
c. F. e X = nao(.V.) ou Y < Z ( )
d. Y + 4 * (Z MOD 3 + 1) ( )
e. (3 + W (Y + 1) / 2) + 1,5 ( )
40 1. DEFINIES DE ALGORITMO
EXERCCIOS DE FIXAO
B1, B2 : lgico
I1 9 R3 6.0
I2 7 L1 Ol
I3 6 L2 A1
R1 5.5 B1 VERDADEIRO
R2 3.92 B2 VERDADEIRO
(c) L1 <> L2
1. DEFINIES DE ALGORITMO 41
EXERCCIOS DE FIXAO
42 1. DEFINIES DE ALGORITMO
2. Comandos de entrada e sada
leia (<lista-de-variaveis>)
escreva (<lista-de-expressoes>)
Este comando escreve o contedo de cada uma das expresses que compem a
<lista-de-expresses> nos dispositivos de sada, para que o usurio possa visualiz-lo (as
expresses dentro desta lista devem estar separadas por vrgulas).
escreval (<lista-de-expressoes>)
Idem ao anterior, com a nica diferena de que este provoca o pulo de uma linha em
seguida.
Execuo:
1. Escreva um algoritmo que leia dois nmeros, calcule o produto entre eles, mostre
o resultado e os nmeros recebidos.
2. Crie um algoritmo que receba a idade de trs pessoas, calcule e mostre a mdia
das idades.
4. Leia dois valores para as variveis A e B, efetue a troca dos valores de forma
que a varivel A passe a ter o valor da varivel B e que a varivel B, o valor da
varivel A. Apresentar os valores trocados.
5
Obs.: C ( F 32 )
9
6. Uma empresa de energia eltrica calcula o valor da conta de luz de acordo com o
consumo em Kw/h. Faa um algoritmo que receba o nmero da conta, a leitura
anterior e a leitura atual, calcule o valor a ser pago, sabendo que a tarifa do
Kw/h de 0.20725. Mostre o nmero da conta, o valor da conta e o consumo
de luz de um usurio.
45
2. COMANDOS DE ENTRADA E SADA
EXERCCIOS DE FIXAO
10. Faa um programa para calcular e imprimir o salrio bruto a ser recebido por
um funcionrio em um ms. O algoritmo dever utilizar os seguintes dados:
nmero de horas que o funcionrio trabalhou no ms, valor recebido por hora
de trabalho e nmero de filhos com idade menor do que 14 anos (para adicionar
o salrio famlia). Considerar o valor do salrio famlia por filho.
se <expressao-logica> entao
<sequencia-de-comandos>
fimse
47
3. TOMADA DE DECISES
letra
Instrues executadas
quando a condio
verdadeira
Instrues executadas
quando a condio
for falsa ou aps ser
verdadeira
Observe que teremos que testar o valor do salrio, para saber se o reajuste ser
aplicado ou no.
48 3. TOMADA DE DECISES
Observe que, durante a execuo do pseudocdigo, aps obtermos, atravs de uma
instruo de entrada de dados, o valor do salrio do funcionrio, efetuamos um teste se.
A instruo ser executada somente se o teste for verdadeiro. A instruo fimse termina
o bloco de testes. No caso de ser falso, o bloco de teste no ser executado.
se <expressao-logica> entao
<sequencia-de-comandos-1>
senao
<sequencia-de-comandos-2>
fimse
Condio
Instrues Instrues
executadas executadas
quando a quando a condio
condio falsa verdadeira
49
3. TOMADA DE DECISES
Vamos imaginar a seguinte situao: em uma empresa, ser solicitado o salrio de
um determinado funcionrio para se calcular seu novo salrio, sendo que, se este tiver um
salrio inferior a R$ 1000,00, o reajuste ser de 8%, caso contrrio o reajuste ser de 5%.
se <condicao1> entao
<instrucoes condio1 verdadeira>
senao
se <condicao2> entao
<instrues condicao2 verdadeira e condicao1 falsa>
senao
<instrucoes condicao2 e condicao1 falsa>
fimse
fimse
50 3. TOMADA DE DECISES
Em vrias situaes, necessrio analisar sucessivamente diversas condies para se
realizar uma tomada de deciso, estabelecendo condies dentro de condies. Chamados
de aninhamentos ou encadeamentos, esse tipo de estrutura poder ser constitudo de
diversos nveis de condies.
Condio 1
Instrues
executadas quando
Condio 2 a condio 1
verdadeira
escolha <expressao-de-selecao>
caso <exp11>, <exp12>, ..., <exp1n>
<sequencia-de-comandos-1>
caso <exp21>, <exp22>, ..., <exp2n>
<sequencia-de-comandos-2>
...
outrocaso
<sequencia-de-comandos-extra>
fimescolha
51
3. TOMADA DE DECISES
Para a tomada de uma deciso, existem casos em que no bastam apenas os desvios
condicionais (verdadeiro ou falso), mas uma srie de testes sobre um mesmo bloco. Este tipo
de estrutura chamado de estrutura de deciso do tipo ESCOLHA.
No fluxograma, o smbolo que representa cada uma das condies acima o mesmo
que o smbolo que representa a estrutura de deciso. Veja a sintaxe da estrutura de deciso
de escolha no fluxograma:
Instrues
Condio 1
condio 1
Condio 2
Instrues
condio 2
Condio 3
Instrues
condio 3
Vejamos o exemplo a seguir, que ilustra bem o que faz este comando:
52 3. TOMADA DE DECISES
Observe que temos aqui uma novidade, ou seja, em uma nica condio, estamos na
verdade realizando vrios testes, isto , verifica se a varivel time Inter ou Grmio
ou Flamengo ou Vasco ou ... e assim sucessivamente.
EXERCCIOS DE FIXAO
Seleo Simples
3. Faa um algoritmo que receba um nmero e mostre a sua quinta parte somente
quando ela for menor que cinquenta ou maior que mil.
6. Crie um algoritmo que receba dois nmeros e mostre a diferena somente quando
o primeiro for maior que o segundo.
53
3. TOMADA DE DECISES
EXERCCIOS DE FIXAO
10. Faa um algoritmo que receba nome, idade e altura, exiba somente o nome
da pessoa com 1,70m e idade acima de 17 anos.
13. Faa um algoritmo que receba nome, turma e trs notas do aluno. Calcule a
mdia ponderada considerando: primeira nota peso um, segunda nota peso
dois e terceira nota peso trs, informar o nome, a turma e a mdia do aluno
que a mdia for inferior a sete.
54 3. TOMADA DE DECISES
EXERCCIOS DE FIXAO
Seleo Composta
17. Crie um algoritmo que leia um nmero inteiro. Se o nmero lido for positivo,
escreva uma mensagem indicando se ele par ou mpar.
18. Construa um algoritmo que receba dois nmeros e mostre quando o primeiro
for maior e quando for menor que o segundo.
19. Elabore um algoritmo que receba dois nmeros e mostre quando o primeiro for
maior, quando for menor e quando for igual ao segundo.
20. Faa um algoritmo que receba trs nmeros e mostre quando o nmero estiver
na situao de maior nmero digitado.
21. Escreva um algoritmo que receba dois nmeros e informe a diferena do maior
pelo menor.
55
3. TOMADA DE DECISES
EXERCCIOS DE FIXAO
22. Faa um algoritmo que receba a matrcula e duas notas do aluno. Calcular a
mdia e mostrar a matrcula do aluno com as seguintes mensagens de acordo
com os dados a seguir:
MDIA MENSAGEM
Mdia > 7,0 Aluno Aprovado
Mdia = 7,0 Aluno em Recuperao
Mdia < 7,0 Aluno Reprovado
TAMANHO DESCONTO
G 10%
M 20%
P 30%
SALRIO INSS IR
At 500,00 3,00% 2,00%
De 500,01 at 950,00 5,00% 4,00%
Acima de 950,00 7,00% 6,00%
56 3. TOMADA DE DECISES
EXERCCIOS DE FIXAO
SALRIO GRATIFICAO
At 500,00 15,00%
De 500,01 at 1.000,00 10,00%
Acima de 1.000,00 5,00%
27. Faa um algoritmo que receba um nmero e informe quando ele for maior e
menor que o nmero 100.
28. Crie um algoritmo que receba dois pesos e mostre quando o primeiro peso for
maior que o segundo.
29. Construa um algoritmo que receba duas idades e mostre quando a primeira
idade for maior, quando for igual e quando for menor que a segunda idade
(mostrar separadamente)
57
3. TOMADA DE DECISES
EXERCCIOS DE FIXAO
30. Faa um algoritmo que receba trs alturas e informe quando a altura que
estiver na situao de maior altura.
31. Escreva um algoritmo que receba o nome e o sexo de uma pessoa. Informar o
nome quando masculino e quando feminino.
SALRIO GRATIFICAO
Acima de R$ 300,00 5%
Abaixo de R$ 300,00 10%
R$ 300,00 6%
58 3. TOMADA DE DECISES
4. Estruturas de repetio
Para que se possam abstrair estas estruturas, considere um algoritmo que deva executar
n vezes um determinado trecho de instrues. Com o conhecimento que estudamos at
o presente momento, com certeza voc ir escrever o mesmo trecho, repetindo-o o nmero
de vezes necessrias. Em vez de se fazer isto, existem estruturas de repetio apropriadas
para executar um determinado trecho de instrues, o nmero de vezes necessrio, fazendo
com que o algoritmo passe a ter um tamanho reduzido, de fcil alterao na quantidade de
repeties e com melhor compreenso.
4. ESTRUTURAS DE REPETIO 59
4.1. Repetio determinada
Onde:
uma expresso que especifica o valor mximo que a varivel contadora pode
<valor-limite>
alcanar.
opcional. Quando presente, precedida pela palavra passo, uma expresso que
especifica o incremento que ser acrescentado varivel contadora em cada repetio
do lao. Quando esta opo no utilizada, o valor padro de <incremento> 1.
<incremento> Vale a pena ter em conta que tambm possvel especificar valores negativos para
<incremento>. Por outro lado, se a avaliao da expresso <incremento > resultar
em valor nulo, a execuo do algoritmo ser interrompida, com a impresso de uma
mensagem de erro.
Indica o fim da sequncia de comandos a serem repetidos. Cada vez que o programa
chega neste ponto, acrescentado varivel contadora o valor de <incremento >,
e comparado a <valor-limite >. Se for menor ou igual (ou maior ou igual,
fimpara
quando <incremento > for negativo), a sequncia de comandos ser executada mais
uma vez; caso contrrio, a execuo prosseguir a partir do primeiro comando que
esteja aps o fimpara.
60 4. ESTRUTURAS DE REPETIO
A seguir apresentada uma representao em fluxograma da repetio determinada:
V de I at L
passo P
Condio
Instrues
Exemplo:
Importante:
62 4. ESTRUTURAS DE REPETIO
4.2. Repetio Indeterminada
63
4. ESTRUTURAS DE REPETIO
A seguir apresentada uma representao em fluxograma da repetio indeterminada
com validao inicial:
Condio
Instrues
Sendo a condio for falsa, o controle da aplicao passa para a prxima linha
aps o fimenquanto.
Exemplo:
64 4. ESTRUTURAS DE REPETIO
4.2.2 Repetio Indeterminada com Validao Final
repita
<sequencia-de-comandos>
ate <expressao-logica>
Esta estrutura repete uma sequncia de comandos at que uma determinada condio
(especificada por meio de uma expresso lgica) seja satisfeita.
65
4. ESTRUTURAS DE REPETIO
Instrues
Condio
Exemplo:
66 4. ESTRUTURAS DE REPETIO
EXERCCIOS DE FIXAO
Repetio determinada
1. Construa um algoritmo que receba trinta nmeros e mostre a soma total dos
nmeros recebidos.
4. Construa um algoritmo que leia cem nmeros e mostre qual o maior nmero
que foi lido.
67
4. ESTRUTURAS DE REPETIO
EXERCCIOS DE FIXAO
9. Escreva um algoritmo que receba 100 nmeros, e conte quantos deles esto
no intervalo [10, 20] e quantos deles esto fora do intervalo, escrevendo estas
informaes.
10. Faa um algoritmo que receba o peso, a idade e a altura de cem pessoas,
calcule e informe os valores de: maior peso, menor peso, maior altura, menor
altura, maior idade e menor idade deste grupo.
11. Escrever um algoritmo que leia 50 nmeros e informe quantos destes valores
so negativos.
12. Uma loja tem 150 clientes cadastrados e deseja mandar uma correspondncia a
cada um deles anunciando um bnus especial. Escreva um algoritmo que leia o
nome, o endereo do cliente e o valor de suas compras e calcule um bnus de
10% se o valor das compras for menor ou igual a R$ 500.000,00 e de 15 %,
se superior a este valor.
13. Faa um algoritmo que receba o salrio-base dos 1.200 funcionrios de uma
fbrica e calcule os descontos com vale transporte (vt) 2% e vale refeio (vr)
3%. Mostrar o total dos descontos efetuados separadamente.
68 4. ESTRUTURAS DE REPETIO
EXERCCIOS DE FIXAO
Repetio Indeterminada
17. Construa um algoritmo que leia vrios nmeros e mostre quantos nmeros
foram lidos. O algoritmo encerra quando digitado o nmero zero.
18. Faa um algoritmo que receba vrios nmeros e mostre a mdia dos nmeros
recebidos. O final conhecido pelo nmero zero.
19. Escreva um algoritmo que receba vrios nmeros, calcule e informe a mdia,
a soma e a quantidade de nmeros recebidos. O algoritmo encerra quando
digitado o nmero zero.
21. Elabore um algoritmo que recebe o sexo dos alunos de um determinado colgio
e informe o nmero de alunas e alunos separados e o nmero de digitaes
invlidas. O algoritmo encerra quando digitado fim.
69
4. ESTRUTURAS DE REPETIO
EXERCCIOS DE FIXAO
23. Foi feita uma pesquisa entre os habitantes de uma regio. Foi coletado o salrio
de cada habitante. Calcule e informe:
a) a mdia de salrio;
70 4. ESTRUTURAS DE REPETIO
EXERCCIOS DE FIXAO
26. Construa um algoritmo que receba o peso dos bois de uma determinada fazenda,
calcule e informe a quantidade de bois, o maior peso e o menor peso. Encerrar
quando for digitado o peso 0.
27. Crie um algoritmo que receba a altura de um grupo de pessoas, calcule e informe
a maior altura e a menor altura.
28. Foi feita uma pesquisa de audincia de canal de televiso em vrias casas de uma
determinada cidade. Ser fornecido o nmero da casa e o do canal de televiso
que estiver ligado no momento, caso a televiso esteja desligada fornecido
o nmero zero, bem como para a residncia fechada. Calcular e informar: a
quantidade de residncias fechadas, televises desligadas e a quantidade de
residncias com a televiso sintonizada no canal dois. Encerrar a pesquisa quando
for fornecido para o nmero da residncia um valor negativo.
71
4. ESTRUTURAS DE REPETIO
5. Estruturas de dados compostas
A sua distino se d pela diviso da varivel, que possui uma posio de armazenamento
dentro de seu conjunto, sendo que a alterao ou a leitura do seu valor realizada por meio
de ndices, da o nome indexado. Existem dois tipos de variveis indexadas:
5.1. Vetores
Nesta figura, podemos perceber que um vetor composto por vrias clulas que
podem armazenar um determinado tipo de dado. Estas clulas podem ser acessadas por
meio de um endereo que as identifica e ordena, chamado ndice.
No exemplo acima, criamos, na verdade, cinco variveis nomes, porm elas esto
divididas da seguinte forma:
Cada uma das dimenses poder armazenar um valor diferenciado para um ou mais
caracteres. Sendo assim, para acessarmos um dos elementos do vetor, temos que indicar
qual elemento queremos obter, utilizando o nome da varivel e o ndice da posio conforme
o cdigo a seguir.
75
5. ESTRUTURAS DE DADOS COMPOSTAS
CodigoProduto[1,6] CodigoProduto[2,6] CodigoProduto[3,6]
77
5. ESTRUTURAS DE DADOS COMPOSTAS
Veja abaixo o resultado da execuo do cdigo anterior:
EXERCCIOS DE FIXAO
Conforme j foi dito anteriormente, quando trabalharmos com variveis indexadas, poderemos
entre outros criar ndices, ou seja, ordenar os vetores para que eles sejam apresentados em uma
determinada ordem. Este procedimento tambm conhecido, em sua forma mais simples, como Bolha
de Classificao. Sua lgica consiste na leitura de todos os elementos de um vetor, comparando os
valores de seus elementos vizinhos, e neste momento empregada a seguinte sequncia:
2. Na primeira varredura, verificamos que o elemento do vetor j se encontra em seu devido lugar;
79
5. ESTRUTURAS DE DADOS COMPOSTAS
Veja abaixo o resultado da execuo do cdigo anterior:
Exemplo:
Iremos efetuar a leitura de 100 nomes, em seguida, ser solicitado um nome qualquer
e, iremos verificar se, entre os 100 nomes entrados, existe o nome que foi solicitado na
pesquisa. Veja este algoritmo a seguir:
81
5. ESTRUTURAS DE DADOS COMPOSTAS
EXERCCIOS DE FIXAO
1. Faa um algoritmo que carregue um vetor com 150 nmeros reais, determine e
mostre o seu elemento mximo (maior valor) e a posio na qual ele se encontra.
2. Faa um algoritmo que carregue um vetor com 150 nmeros inteiros, determine e
mostre o seu elemento mnimo (menor valor) e a posio na qual ele se encontra.
A B
7 8 4 9 6 9 11 15
2 1 7 3 32 19 3 4
11. Calcular o produto dos elementos A[1, 2], A[3, 1], B[2, 2], B[4, 2].
83
5. ESTRUTURAS DE DADOS COMPOSTAS
EXERCCIOS DE FIXAO
12. Construa um algoritmo que carregue 100 nmeros inteiros positivos (deve ser feito
o teste para garantir a no incluso de nmeros invlidos utilize o lao repita
at neste teste). O programa deve calcular a mdia dos nmeros do vetor e, ao
final, mostrar todos os nmeros que so maiores que a mdia.
13. Faa um algoritmo que carregue um vetor com 50 nomes, ordene e mostre o
vetor ordenado.
14. Faa um algoritmo que carregue um vetor com 50 nomes, depois solicite ao
usurio um nome e verifique se este existe no vetor ou no (mostrar o nome e
a posio no vetor, caso exista, e uma mensagem indicativa, caso no exista). A
solicitao deve ser repetida at que o usurio digite a palavra fim.
15. Faa um algoritmo que carregue um vetor com 100 nmeros inteiros, verifique
cada nmero, se este for par, multiplique por 3 e atualize o seu valor no vetor. Ao
final, mostre todos os elementos do vetor.
16. Faa um algoritmo que carregue um vetor com 150 nmeros inteiros, gere um
segundo vetor com todos os nmeros do primeiro vetor multiplicados por 2.
Mostre ambos os vetores.
17. Faa um algoritmo que carregue uma matriz de dimenso 5x5, calcule e mostre
a soma de todos os elementos e uma listagem com cada um dos elementos da
matriz.
18. Faa um algoritmo que carregue duas matrizes de dimenso 6x6. Gere uma
terceira matriz com a soma das duas anteriores e mostre seus valores.
19. Faa um algoritmo que carregue um vetor com 60 posies, calcule e mostre a
soma de todos os elementos das posies pares e impares do vetor.
20. Faa um algoritmo que carregue uma matriz de dimenso 10x10, calcule e
mostre a soma de cada uma das linhas e de cada uma das colunas da matriz.
21. Faa um algoritmo que: o usurio preencha com quaisquer valores inteiros um
vetor de trinta posies e que calcule a mdia deles. Os valores menores que
a mdia devem ser copiados em outro vetor, os quais devem ficar em ordem
crescente. Liste os dados do primeiro vetor e tantos quantos houver no segundo
vetor. Use mensagens claras para o usurio tomar conhecimento dos passos
sendo executados.
22. Faa um algoritmo que: o usurio preencha com quaisquer valores inteiros um
vetor de trinta posies e que calcule a mdia deles. Os valores maiores que
a mdia devem ser copiados em outro vetor, os quais devem ficar em ordem
crescente. Liste os dados do primeiro vetor e tantos quantos houver no segundo
vetor. Use mensagens claras para o usurio tomar conhecimento dos passos
sendo executados. O fluxograma e o portugol devem ser entregues passados a
limpo. Consulte apenas o seu material.
85
5. ESTRUTURAS DE DADOS COMPOSTAS
EXERCCIOS DE FIXAO
25. Faa um algoritmo que leia e armazene 30 valores reais positivos, determine
a sua mdia e gere um segundo vetor, no qual cada elemento calculado a
partir do elemento correspondente ao primeiro vetor, mais 30%, caso seja
menor que a mdia, seno mais 20%. Mostre os dois vetores. O clculo de
30% corresponde a multiplicar por 1,3 e 20% por 1,2.
26. Faa um algoritmo que leia e armazene setenta valores reais positivos,
determine a sua mdia e mostre-a. Gere um segundo vetor, no qual cada
elemento calculado a partir do elemento correspondente do primeiro vetor
subtrado da mdia determinada para o primeiro vetor. Calcule o somatrio
dos valores negativos do segundo vetor e mostre-o. Mostre os dois vetores.
Neste caso, a utilizao de uma rotina de validao permite que o cdigo seja descrito
somente uma nica vez, podendo ser utilizado em vrias partes do sistema. Imaginando que
tal situao se repete por 20 vezes no sistema. Teramos que escrever 20 vezes o mesmo
trecho de cdigo? No, para isso teramos uma rotina subalgoritmo que teria esta funo.
Este subalgoritmo teria um nome e, sempre que fosse necessria a verificao do CPF,
bastaria invocar, chamar, este subalgoritmo.
funes;
procedimentos.
6.1. Procedimentos
Exemplo - Procedimento para realizar a soma de dois valores, sem a passagem de parmetros.
Exemplo - Procedimento para realizar a soma de dois valores, com passagem de parmetros.
89
6. MODULARIZANDO ALGORITMOS: PROCEDIMENTOS E FUNCES
6.2. Funes
Uma funo um subprograma que retorna um valor, assim, as funes devem sempre
utilizar um comando que permita este retorno de valores. No nosso caso, usaremos a clusula
retorne. De modo anlogo aos procedimentos, sua declarao deve estar entre o final da
declarao de variveis e a linha incio do programa principal. Segue a sintaxe abaixo:
Exemplo - Funo para realizar a soma de dois valores, com passagem de parmetros.
4. Escreva um algoritmo que leia dois nmeros e a operao aritmtica para ser
efetuada com estes nmeros, sendo: a adio; s subtrao; m multiplicao;
d diviso; e p potenciao. Utilizando funes para efetuar a operao
indicada, mostre o resultado da operao indicada.
91
6. MODULARIZANDO ALGORITMOS: PROCEDIMENTOS E FUNCES
REFERNCIAS BIBLIOGRFICAS
93
REFERNCIAS BIBLIOGRFICAS
Esta obra foi composta por Ernesto Henrique Radis Steinmetz e Roberto Duarte Fontes.
Fonte Famlia Frutiger LT std, corpo 11, Famlia Caecilia LT std e impressa pela grfica
AGBR em papel couche fosco 115g.