Escolar Documentos
Profissional Documentos
Cultura Documentos
RADIS STEINMETZ
doutorando em Cincia
da informao pela
Universidade de Braslia
(UnB), mestre em Gesto
do Conhecimento e da
Tecnologia da
Informao pela
Universidade Catlica de
Braslia (UCB).
Atualmente
Coordenador Geral do
Plo EaD e docente da
rea de Informao e
Comunicao do IFB Campus Braslia.
ROBERTO DUARTE
FONTES mestre em
Computao pela
Universidade Federal do
Rio e bacharel em
Cincia da Computao
e Grande do Sul
(UFRGS). Atualmente se
dedica rea acadmica,
na Coordenao de
Pesquisa e Extenso e na
Coordenao Adjunta
PRONATEC do IFB
Campus Taguatinga.
CARTILHA LGICA
DE PROGRAMAO
Ministrio da
Educao
CARTILHA LGICA DE
PROGRAMAO
cartilha lgica
de programao
Ernesto Henrique Radis Steinmetz
Roberto Duarte Fontes
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
cartilha lgica
de programao
Ernesto Henrique Radis Steinmetz
Roberto Duarte Fontes
EDITORA IFB
Braslia-DF
2013
EDITORA
Conselho Editorial
Coordenao de Publicaes
Produo executiva
Grfica
Tiragem
S823c
Sumrio
APRESENTAO .......................................................................................................................... 7
AGRADECIMENTO ....................................................................................................................... 9
INTRODUO ............................................................................................................................ 11
1. DEFINIES DE ALGORITMO ................................................................................................ 13
1.1. Conceitos ....................................................................................................................... 15
1.2. Fases de um algoritmo ................................................................................................. 16
1.3. Como Construir um algoritmo ..................................................................................... 17
1.4. Decomposio (Top-Down) .......................................................................................... 18
1.5. Desenvolvimento estruturado ..................................................................................... 20
1.6. Formas de representao de um algoritmo ................................................................ 20
1.7. Tipos de processamento ............................................................................................... 25
1.8. Tipos de dados .............................................................................................................. 27
1.9. Variveis (identificadores) ............................................................................................ 28
1.10. Declarao de variveis .............................................................................................. 29
1.11. Constantes ................................................................................................................... 30
1.12. Operaes bsicas: ...................................................................................................... 32
1.13. Primeiras instrues ................................................................................................... 38
2. COMANDOS DE ENTRADA E SADA .................................................................................... 43
2.1. Comando de entrada de dados ................................................................................... 43
2.2. Comando de sada de dados ........................................................................................ 43
3. TOMADA DE DECISES ........................................................................................................ 47
Apresentao
Agradecimento
Introduo
11
12
INTRODUO
1. Definies de algoritmo
1. DEFINIES DE ALGORITMO
13
iniciantes
Aprender algoritmos
intermedirios
avanados
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.
Tabela 1.2 - Como aprender algoritmos.
14
Algoritmos no se aprendem
Algoritmos se aprendem
Copiando algoritmos
Construindo algoritmos
Testando algoritmos
1. DEFINIES DE ALGORITMO
1.1. Conceitos
Os conceitos apresentados neste tpico derivam do entendimento de professores
da rea (citados no agradecimento), que contriburam para estas definies em conversas
cotidianas informais e trocas de experincias sobre os assuntos abordados, bem como,
foram elaborados com base na bibliografia utilizada na construo desta cartilha.
At mesmo as coisas mais simples, podem ser descritas por sequncias lgicas. Por
exemplo:
Exemplo 1:
Chupar uma bala
1. Pegar a bala.
2. Retirar o papel.
3. Chupar a bala.
4. Jogar o papel no lixo.
1. DEFINIES DE ALGORITMO
15
Exemplo 2:
Somar dois nmeros quaisquer
1. Escreva o primeiro nmero no crculo A.
2. Escreva o segundo nmero no crculo B.
3. Some o nmero do crculo A com nmero do crculo B e coloque o
resultado no retngulo.
Resultado
16
1. DEFINIES DE ALGORITMO
Entrada
Processamento
Sada
Onde temos:
ENTRADA: So os dados de entrada do algoritmo informados pelo usurio.
PROCESSAMENTO: So os procedimentos utilizados para chegar ao resultado.
SADA: So os dados j processados, apresentados ao usurio.
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.
c) Teste de qualidade (Teste de mesa)
Ideal testar o algoritmo com o mximo de combinaes possveis.
d) Alterao
Caso o resultado do algoritmo no seja satisfatrio, altere-o e submeta a um novo teste.
e) Produto final
Algoritmo concludo e testado.
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
1. Crie uma sequencia lgica para tomar banho.
2. Faa um algoritmo para somar dois nmeros e multiplicar o resultado pelo primeiro nmero.
3. Descreva com detalhes a sequencia lgica para Trocar um pneu de um carro.
1. DEFINIES DE ALGORITMO
19
20
1. DEFINIES DE ALGORITMO
incio
fim
Entrada de dados
Lao Condicional
(se-seno-ento)
Sada de dados
Processamento
Conector
Laos de repetio
1. DEFINIES DE ALGORITMO
21
E finalizamos o fluxo.
incio
Leia valor 1
Leia valor 2
mostra resultado
fim
22
1. DEFINIES DE ALGORITMO
EXERCCIOS DE FIXAO
Desenhe um fluxograma para as seguintes situaes:
1.
2.
3.
4.
5.
6.
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.
9.
10.
1. DEFINIES DE ALGORITMO
23
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.
b) Processamento condicional
Um conjunto de instrues (pode ser apenas uma instruo) executado ou no
dependendo de uma condio. Se a condio que estiver sendo testada tiver resposta
afirmativa, o conjunto de instrues executado.
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
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.
c) Processamento com repetio
Conjunto de instrues (pode ser apenas uma) que executado um determinado
nmero de vezes, sendo determinada uma condio de parada.
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
a) Tipo inteiro
b) Tipo real
c) Tipo caractere
d) Tipo lgico
28
O primeiro caractere do nome de uma varivel deve ser sempre uma letra;
1. DEFINIES DE ALGORITMO
letra
letra
dgito
Onde:
Letra: Qualquer letra do alfabeto [a...z, A...Z]
Dgito: Dgitos de [0...9]
So identificadores vlidos:
NOMEUSUARIO, FONE1, X, DELTA25, Z4, Idade, X1, MODELODEVeiculo.
So identificadores invlidos:
*nome, 2Fone, NOME/USUARIO, mODELO-DE-VEICULO, Nota do Aluno.
1. DEFINIES DE ALGORITMO
29
Exemplo:
1.11. Constantes
Tudo aquilo que fixo ou estvel.
Exemplo: o valor do = 3,14159
30
1. DEFINIES DE ALGORITMO
EXERCCIOS DE FIXAO
1. Identifique os Atributos e declare variveis para um objeto automvel.
2. Identifique os Atributos e declare variveis para um objeto Pessoa.
3. Identifique os atributos e declare variveis para um objeto Eleitor.
4. Assinale com C os nomes corretos de varivel e com I os incorretos. Explique o que
est errado nos nomes incorretos.
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
altura
base
Figura 1.6 Grfico explicativo do clculo da rea de um tringulo.
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
Na soluo da grande maioria dos problemas, necessrio que as variveis tenham
seus valores consultados ou alterados e para isto, devemos definir um conjunto de
OPERADORES, sendo eles:
1. DEFINIES DE ALGORITMO
33
Operador de Atribuio:
NomeDaVariavel Valor ou Expresso Atribuda.
OU
NomeDaVariavel = Valor ou Expresso Atribuda
ATENO: usaremos o smbolo para atribuio.
Operadoradores Aritmticos:
+, -
+, -, *, /
MOD ou %
Operador de mdulo (isto , resto da diviso inteira). Por exemplo, 8 MOD 3 = 2. Tem a
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:
nao
ou
Operador que resulta VERDADEIRO quando um dos seus operandos lgicos for verdadeiro.
Equivale ao OR do Pascal.
Operador que resulta VERDADEIRO somente se seus dois operandos lgicos forem
verdadeiros. Equivale ao AND do Pascal.
1. DEFINIES DE ALGORITMO
35
B
VERDADEIRO/
TRUE/.T./.V./1
FALSO/
FALSE/.F./0
A.E.B
VERDADEIRO/
TRUE/.T./.V./1
FALSO/
FALSE/.F./0
A . OU . B
VERDADEIRO/
TRUE/.T./.V./1
VERDADEIRO/
TRUE/.T./.V./1
FALSO/
FALSE/.F./0
FALSO/
FALSE/.F./0
VERDADEIRO/
TRUE/.T./.V./1
FALSO/
FALSE/.F./0
FALSO/
FALSE/.F./0
FALSO/
FALSE/.F./0
VERDADEIRO/
TRUE/.T./.V./1
FALSO/
FALSE/.F./0
B
1
0
1
0
AeB
1
0
0
0
B
1
0
1
0
A ou B
1
1
1
0
36
1. DEFINIES DE ALGORITMO
nao(A)
0
1
PRIORIDADE DE OPERADORES:
Durante a execuo de uma expresso que envolve vrios operadores, necessrio a
existncia de prioridades, caso contrrio poderemos obter valores que no representam o
resultado esperado.
A maioria das linguagens de programao utiliza as seguintes prioridades de
operadores:
1 - Efetuar operaes embutidas em parnteses mais internos
2 - Efetuar Funes
3 - Efetuar multiplicao e/ou diviso
4 - Efetuar adio e/ou subtrao
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
1. Na expresso A*B - C, qual ser a sequncia de execuo?
2. Na expresso (A*B) - C, qual ser a sequncia de execuo?
3. Na expresso A*(B - C), qual ser a sequncia de execuo?
4. Na expresso ( A*(B - C*(D/E))), qual ser a sequncia de execuo?
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
1. Quais os valores das expresses a seguir:
2 + 3 * 6
12 / 3 * 2 5
31 / 4
31 MOD 4
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.
3. Faa o teste de mesa do algoritmo a seguir:
Y
2
Z
4
W
1,50
Q
PROVA
a. (2 * (5 MOD 3) + Y + W * 2) > Z ou
40
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
1. DEFINIES DE ALGORITMO
EXERCCIOS DE FIXAO
5. Dada a declarao de variveis:
I1, I2, I3 : inteiro
R1, R2, R3 : real
L1, L2 : literal
B1, B2 : lgico
I1 9
I2 7
I3 6
R1 5.5
R3 6.0
L1 Ol
L2 A1
B1 VERDADEIRO
R2 3.92
B2 VERDADEIRO
1. DEFINIES DE ALGORITMO
41
EXERCCIOS DE FIXAO
6. Faa o teste de mesa dos algoritmos a seguir:
42
1. DEFINIES DE ALGORITMO
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.
43
Exemplo:
Execuo:
44
EXERCCIOS DE FIXAO
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.
3.
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 )
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.
7.
45
EXERCCIOS DE FIXAO
8.
9.
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.
11.
12.
13.
46
3. Tomada de decises
<expressao-logica> entao
<sequencia-de-comandos>
fimse
3. TOMADA DE DECISES
47
letra
Instrues executadas
quando a condio
verdadeira
Instrues executadas
quando a condio
for falsa ou aps ser
verdadeira
48
3. TOMADA DE DECISES
No desvio condicional composto, se o resultado do teste da <expressaologica> for VERDADEIRO, todos os comandos da <sequencia-de-comandos-1> sero
executados, e a execuo continua depois do fimse. Se o resultado for FALSO, todos os
comandos da <sequencia-de-comandos-2> (SENAO) sero executados, e a execuo
continua depois do fimse.
Condio
Instrues
executadas
quando a
condio falsa
Instrues
executadas
quando a condio
verdadeira
3. TOMADA DE DECISES
49
50
3. TOMADA DE DECISES
Condio 1
Instrues
executadas quando
a condio 1
verdadeira
Condio 2
Instrues
executadas quando
condio 1 e
condies 2 so falsa
Instrues executadas
quando condio 1
falsa, mas a condies
2 verdadeira
3. TOMADA DE DECISES
51
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:
Condio 1
Instrues
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
1.
2.
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.
4.
5.
6.
Crie um algoritmo que receba dois nmeros e mostre a diferena somente quando
o primeiro for maior que o segundo.
7.
3. TOMADA DE DECISES
53
EXERCCIOS DE FIXAO
54
8.
9.
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.
11.
12.
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.
14.
3. TOMADA DE DECISES
EXERCCIOS DE FIXAO
15.
16.
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.
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.
3. TOMADA DE DECISES
55
EXERCCIOS DE FIXAO
22.
23.
24.
56
MENSAGEM
Aluno Aprovado
Aluno em Recuperao
Aluno Reprovado
DESCONTO
G
M
P
10%
20%
30%
INSS
IR
At 500,00
De 500,01 at 950,00
Acima de 950,00
3,00%
5,00%
7,00%
2,00%
4,00%
6,00%
3. TOMADA DE DECISES
EXERCCIOS DE FIXAO
25.
26.
COMISSO
At 100,00
Acima 100,00 at 350,00
Acima 350,00
0,00%
5,00%
10,00%
GRATIFICAO
At 500,00
De 500,01 at 1.000,00
Acima de 1.000,00
15,00%
10,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.
3. TOMADA DE DECISES
57
EXERCCIOS DE FIXAO
58
30.
Faa um algoritmo que receba trs alturas e informe quando a altura que
estiver na situao de maior altura.
31.
32.
Elabore um algoritmo que receba a matrcula e o salrio do funcionrio. Sabese que, de acordo com o salrio, h uma gratificao conforme tabela abaixo.
Informar a matrcula e a gratificao.
SALRIO
GRATIFICAO
Acima de R$ 300,00
Abaixo de R$ 300,00
R$ 300,00
5%
10%
6%
3. TOMADA DE DECISES
4. Estruturas de repetio
4. ESTRUTURAS DE REPETIO
59
60
<variavel>
<valor-inicial>
<valor-limite>
uma expresso que especifica o valor mximo que a varivel contadora pode
alcanar.
<incremento>
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.
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.
fimpara
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,
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.
4. ESTRUTURAS DE REPETIO
V de I at L
passo P
Condio
Instrues
<valor-inicial>
atribudo
61
Importante:
Se, logo no incio da primeira repetio, o <valor-inicial> for maior que o
<valor-limite> (ou menor, quando o <incremento> for negativo), o lao no ser
executado nenhuma vez. O exemplo a seguir no imprime nada.
62
4. ESTRUTURAS DE REPETIO
<expressao-logica>
menquanto
4. ESTRUTURAS DE REPETIO
63
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
Esta estrutura repete uma sequncia de comandos at que uma determinada condio
(especificada por meio de uma expresso lgica) seja satisfeita.
Tabela 4.3 Elementos do comando de repetio indeterminada.
repita
at <expressao-logica>
4. ESTRUTURAS DE REPETIO
65
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.
2.
3.
4.
Construa um algoritmo que leia cem nmeros e mostre qual o maior nmero
que foi lido.
5.
6.
7.
8.
4. ESTRUTURAS DE REPETIO
67
EXERCCIOS DE FIXAO
68
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.
11.
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.
14.
15.
4. ESTRUTURAS DE REPETIO
EXERCCIOS DE FIXAO
Repetio Indeterminada
16.
17.
18.
Faa um algoritmo que receba vrios nmeros e mostre a mdia dos nmeros
recebidos. O final conhecido pelo nmero zero.
19.
20.
21.
22.
4. ESTRUTURAS DE REPETIO
69
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;
b) o maior e o menor salrio.
Encerre a entrada de dados quando for digitado o salrio zero.
24. Foi realizada uma pesquisa de algumas caractersticas fsicas da populao de
certa regio, a qual coletou os seguintes dados referentes a cada habitante para
serem analisados:
- sexo (masculino e feminino)
- olhos (claros e pretos)
- cabelos (louros, castanhos ou pretos)
Faa um algoritmo que calcule e informe a quantidade de pessoas do sexo
feminino, com olhos claros e cabelos louros. O final do conjunto de habitantes
reconhecido pelo sexo em branco .
25. Faa um algoritmo que receba a idade e a altura de um conjunto de pessoas.
Calcule e informe a mdia de altura e de idade das pessoas. Para encerrar a
entrada de dados, digite a idade igual a 0.
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.
4. ESTRUTURAS DE REPETIO
71
5.1. Vetores
O nmero de ndices dentro de uma varivel denominado dimenso. Vetor um
conjunto de variveis, no qual cada uma pode armazenar uma informao diferente, mas
todas compartilham o mesmo nome. So associados ndices a esse nome, que representam
as posies do vetor, permitindo, assim, individualizar os elementos do conjunto.
73
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.
Para se definir uma varivel indexada, utilizamos a seguinte sintaxe:
<variaveis>: vetor[<intervalos>] de <tipo-de-dado>
Veja a seguir alguns exemplos de definio de variveis indexadas:
vet: vetor [1..10] de real
nomes: vetor [1..5] de caracter
No exemplo acima, criamos, na verdade, cinco variveis nomes, porm elas esto
divididas da seguinte forma:
nomes[1], nomes[2], nomes[3], nomes[4], nomes[5].
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.
74
5.2. Matrizes
Uma matriz corresponde a vrios vetores colocados um abaixo do outro, formando,
assim, uma tabela composta por vrias linhas e vrias colunas.
Veja a seguir alguns exemplos de definio de variveis indexadas:
matriz: vetor [0..4,0..10] de inteiro
codigoProduto: vetor [1..3,1..10] de inteiro
CodigoProduto[2,1]
CodigoProduto[3,1]
CodigoProduto[1,2]
CodigoProduto[2,2]
CodigoProduto[3,2]
CodigoProduto[1,3]
CodigoProduto[2,3]
CodigoProduto[3,3]
CodigoProduto[1,4]
CodigoProduto[2,4]
CodigoProduto[3,4]
CodigoProduto[1,5]
CodigoProduto[2,5]
CodigoProduto[3,5]
75
CodigoProduto[1,6]
CodigoProduto[2,6]
CodigoProduto[3,6]
CodigoProduto[1,7]
CodigoProduto[2,7]
CodigoProduto[3,7]
CodigoProduto[1,8]
CodigoProduto[2,8]
CodigoProduto[3,8]
CodigoProduto[1,9]
CodigoProduto[2,9]
CodigoProduto[3,9]
CodigoProduto[1,10]
CodigoProduto[2,10]
CodigoProduto[3,10]
76
175
225
10
9000
3,7
4,75
9,8
100
363
432
156
18
3
4
40
402
301
4211
30,2
7213
6381
992
1
442
0
7321
21
1
3
2
2
3
1
4
9000
5
2000
6
77
EXERCCIOS DE FIXAO
1.
2.
78
79
80
81
EXERCCIOS DE FIXAO
82
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.
3.
4.
5.
6.
7.
8.
EXERCCIOS DE FIXAO
a. Intercale os elementos destes dois vetores formando um novo vetor de 50
elementos;
b. exiba os nmeros do novo vetor.
9.
8
1
4
7
B
9
3
6
32
9
19
11
3
10.
Calcular o conjunto C = A + B.
11.
Calcular o produto dos elementos A[1, 2], A[3, 1], B[2, 2], B[4, 2].
15
4
83
EXERCCIOS DE FIXAO
84
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.
14.
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.
EXERCCIOS DE FIXAO
19.
20.
21.
22.
23.
85
EXERCCIOS DE FIXAO
deste. Apresente ao usurio a opo de pesquisar um valor qualquer em
V, informando sua localizao ou declarando que no existe tal valor no
vetor. Repetir o procedimento de consulta, at que o usurio decida encerrar
a execuo do algoritmo.
86
24.
25.
26.
87
funes;
procedimentos.
6.1. Procedimentos
Um procedimento, tambm conhecido como sub-rotina, composto por um conjunto
de instrues que realiza uma determinada tarefa especfica. Procedimento no retorna
nenhum valor. Sua declarao, que deve estar entre o final da declarao de variveis e a
linha inicial do programa principal, segue a sintaxe abaixo:
88
Exemplo - Procedimento para realizar a soma de dois valores, com passagem de parmetros.
89
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:
Funo <nome-de-funcao> [(<sequencia-de-declaracoes-de-parametros>)]:
<tipo-de-dado>
// Seo de Declaraes Internas
inicio
// Seo de Comandos
retorne
fimfuncao
Exemplo - Funo para realizar a soma de dois valores, com passagem de parmetros.
90
EXERCCIOS DE FIXAO
1.
2.
3.
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
REFERNCIAS BIBLIOGRFICAS
BENEDUZZI, H. M.; METZ, J. A. Lgica e linguagem de programao: introduo
ao desenvolvimento de software. Editora do Livro Tcnico Curitiba, PR, 2010.
FORBELLONEE A.; EBERSPACHER H. Lgica de programao, Ed. Pearson, So
Paulo, SP, 2005.
MANZANO, J. A. N. G. & OLIVEIRA, J. F. Algoritmos. Lgica para
Desenvolvimento de Programao de Computadores. Ed. rica. So Paulo, SP,
2011.
PUGA, S.; RISSETTI, G. Lgica de programao e estrutura de dados, com
aplicaes em Java. Pearson. So Paulo, 2011.
SALVETTI, D. D. & BARBOSA, L. M. Algoritmos. Makron Books. So Paulo, SP,
2004.
REFERNCIAS BIBLIOGRFICAS
93
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.