Escolar Documentos
Profissional Documentos
Cultura Documentos
Christian J. Pereira
Joinville, 2011
Sumrio
2 - Linearizao de Expresses
Para a construo de algoritmos que realizam clculo matemticos, todas as expresses
aritmticas devem ser linearizadas, ou seja, colocadas em linhas, devendo tambm ser feito o
mapeamento dos operadores da aritmtica tradicional para os do Portugol, a tabela a seguir mostra um
exemplo.
{ [ 2/3 - ( 5 - 3 )]+1} . 5
Tradicional
Computacional
Portugol
+
*
/
\
^ ou Exp(<base>,<expoente>)
%
Portugol
>
<
>=
<=
=
<>
Portugol
E
Significado
Resulta VERDADEIRO quando ambas as
partes forem verdaderas.
Adio Lgica
Ou
Negao
Nao
Prioridade
3 (Maior)
2
1 (Menor)
Prioridade
3
2
1
(2>3) ou (3<2) e (2<3) resulta em FALSO, (2>3) e (3<2) ou (2<3) resulta em VERDADEIRO.
Tambm existe prioridade entre as categorias dos operadores.
Operador
Aritmticos
Relacionais
Lgicos
Prioridade
3
2
1
4 - Variveis
Uma varivel pode ser vista como uma caixa com um rtulo ou nome colado a
ela, que num dado instante guarda um determinado objeto. O contedo desta caixa no
algo fixo, permanente. Na verdade, essa caixa pode ter seu contedo alterado diversas
vezes. Contudo, o contedo deve ser sempre do mesmo tipo.
Variveis so palavras que tem um significado bem especfico em um algoritmo.
Para que o computador possa executar comandos que envolvem variveis da maneira
correta, ele deve conhecer os detalhes das variveis que pretendemos usar. Esses detalhes
so: o identificador desta varivel e o tipo de valores que essa varivel ir conter. Precisamos assim, de
uma maneira de especificar esses detalhes e comunic-los ao computador. Para isso
devemos declarar nossas variveis logo abaixo da expresso VAR que tem a seguinte forma:
VAR
<identificador 1>, <identificador 2>, ..., <identificador n>: <tipo das variveis>
onde <identificador
determina que tipo de valor
usados para referenci-las
precisos, dando uma idia
a.
b.
c.
d.
e.
f.
e
eco
enquanto
entao
escolha
escreva
exp
faca
falso
fimalgoritmo
fimenquanto
fimescolha
fimfuncao
fimpara
fimprocedimento
fimrepita
fimse
funo
grauprad
inicio
int
interrompa
leia
literal
log
logico
logn
maiusc
mensagem
minusc
nao
numerico
numpcarac
ou
outrocaso
para
passo
pausa
pi
pos
procedimento
quad
radpgrau
raizq
rand
randi
repita
se
sen
senao
timer
tan
verdadeiro
xou
Tipo
Descrio
Inteiro
Real ou Numrico
Literal ou Caractere
Lgico
5 - Operador de Atribuio
Para colocar um valor em uma varivel dentro de um algoritmo, utilizamos o
operador de atribuio. O operador de atribuio representado por uma seta (<-)
apontando para a esquerda.
Exemplo
Peso <- 78.7 // Este comando atribui varivel Peso o valor 78.7.
Nome <- "Joo da Silva" // Este comando atribui varivel Nome o valor "Joo da Silva".
Achei <- FALSO // Este comando atribui varivel Achei o valor FALSO.
importante lembrar que s se pode atribuir s variveis valores do mesmo
tipo da varivel. Assim, o seguinte comando seria invlido:
VAR
salario: REAL
INICIO
salario <- "Insuficiente"
Deve estar claro, tambm, que sempre esquerda do comando
deve haver um (e somente um) identificador de varivel. Assim, so
seguintes comandos:
de atribuio
incorretos os
6 - Linhas de Comentrio
Os comentrios so declaraes no compiladas que podem conter qualquer informao textual
que voc queira adicionar ao cdigo-fonte para referncia e documentao de seu
programa.
Uma Linha
So representados por duas barras normais ( // ). Todo o texto que voc digitar aps as duas
barras ser comentrio.
Exemplo
// Este mtodo calcula o fatorial de n...x <- y;
OBS.: No Visualg existem dois comandos escreva com finalidades diferentes quando
usado consecutivamente.
Escreval (<expresso ou identificador ou constante>) //Mostra o primeiro resultado na
mesma linha depois em linhas diferentes.
Escreva (<expresso ou identificador ou constante>) //Mostra o resultado na mesma
linha, mas em colunas diferentes.
Exemplo
X <- 3.5
Y <- 4
Escreva ("O valor de X ", X)
Escreva (" E o valor de Y ", Y)
Escreva (" A soma de X e Y ", X+Y)
Escreval ("O valor de X ", X)
Escreval ("E o valor de Y ", Y)
Escreval ("A soma de X e Y ", X+Y)
Faria com que aparecesse na tela:
O valor de X 3.5 E o valor de Y 4 A soma de X e Y 7.5
O valor de X 3.5
E o valor de Y 4
A soma de X e Y 7.5
Nem todos os dados que um algoritmo manipula so gerados por ele. Um
algoritmo (programa) de caixa automtico, por exemplo, tem que obter do usurio o nmero da conta, a
senha, a opo de servio desejada, etc. Assim, deve haver um meio para que sejam digitados (ou
fornecidos de outra maneira) dados para o algoritmo. Mais uma vez, todas as linguagens de programao
permitem isto, e no nosso Portugus Estruturado usamos o comando leia. A sintaxe deste comando :
Leia (<identificador>)
Exemplo
leia (NumeroConta)
leia (NumeroAgencia)
leia (NomeCliente)
Voc pode mandar uma mensagem antes para o usurio, assim ele sabe qual
o contedo que deve ser colocado, ou seja, digitado.
Exemplo
Escreva ("Digite seu nome: ")
Leia (nome)
Escreva ("Digite sua agencia: ")
Leia (NumeroAgencia)
Escreva ("Digite sua conta: ")
Leia (NumeroConta)
Deve estar claro que sempre direita do comando leia haver um identificador
de varivel. Assim, so incorretos os seguintes comandos:
leia (NumeroConta+60)
leia (12345)
leia (NomeCliente+Sobrenome)
5
8 - Estruturas Seqenciais
De forma genrica, a construo de um algoritmo se resume s seguintes etapas:
a)
entendimento do problema;
b)
elaborao da soluo algortmica; e
c)
codificao da soluo no Portugus Estruturado;
Geralmente a etapa 2 a mais complexa, pois depende da engenhosidade e experincia do
construtor.
Exemplo
Enunciado: Faa um programa que leia dois valores numricos, e calcule e exiba
a sua mdia aritmtica.
Etapa 1
Simples, hein? Dos tempos de escola lembramos que a mdia aritmtica de dois
valores calculada como (a+b)/2, e sendo assim a primeira etapa j est pronta.
Etapa 2
Os dados necessrios sero os dois valores, que colocaremos em duas variveis A e B, do tipo
numrico, e uma terceira varivel, que chamaremos Mdia, que armazenar a mdia aritmtica calculada.
Etapa 3
A obteno dos dados neste programa simples e direta. Basta pedir ao usurio que digite os
valores.
Etapa 4
O processamento aqui o clculo da mdia, usando o mtodo citado acima, na etapa 1. O
resultado do clculo ser armazenado na varivel Mdia.
Etapa 5
Basta exibir o contedo da varivel Mdia.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
9 - Estrutura Condicional
Na vida real tomamos decises a todo o momento baseadas em uma situao existente. Em um
algoritmo, chamamos esta situao de condio. Associada a uma condio, existir uma
alternativa possvel de aes.
Exemplo
"se tiver R$ 10,00 sobrando ento irei ao cinema hoje noite.
A condio nesta frase "tiver R$ 10,00 sobrando". Ela uma expresso lgica, pois a pergunta
"Tenho R$ 10,00 sobrando?" Pode (tem que) ser respondida com "Sim" ou "No".
Lembre-se, ento: em um algoritmo, toda condio tem que ser uma expresso lgica, algo que possase pensar como isto VERDADEIRO ou isto FALSO. Se a condio for 6
verdadeira, a ao a ser executada "irei ao cinema", se a resposta pergunta "Tenho
dinheiro suficiente?" for "Sim". Ento, em um algoritmo, as aes so um ou mais comandos que sero
realizados apenas se a avaliao da condio resulta VERDADEIRO.
Vamos colocar agora a frase do exemplo anterior em outra forma, mais parecida
com o Portugol:
se "tiver R$ 10,00 sobrando" entao
"irei ao cinema"
fimse
Veja que grifamos trs palavras: se, entao e fimse. Elas so muito importantes na
estrutura dos comandos de deciso. Como prximo passo, vamos generalizar a estrutura que criamos
acima:
se <condio> entao
<aes (uma ou mais) a serem realizadas se a condio for verdadeira>
fimse
Para terminar a nossa comparao, devemos lembrar que os comandos de um
algoritmo so sempre indispensvel, e que o computador s lida com quantidades
definidas (ou seja, ele no sabe o que "ter R$ 10,00 sobrando"). Para aproximar mais nossa frase de um
algoritmo, poderemos ter a seguinte forma:
se Dinheiro >= 10 entao
Ir_ao_Cinema <- VERDADEIRO
Fimse
O exemplo acima poderia ser estendido para o caso do sujeito no ter dinheiro
sobrando: "se tiver R$ 10,00 sobrando irei ao cinema hoje noite, mas se no tiver
ficarei vendo TV em casa". Neste caso, uma codificao possvel para esse algoritmo seria:
se Dinheiro >= 10 entao
Ir_ao_Cinema <- VERDADEIRO
Ver_TV <- FALSO
Fimse
se Dinheiro < 10 entao
Ir_ao_Cinema <- FALSO
Ver_TV <- VERDADEIRO
Fimse
importante frisar que sempre direita do comando se dever parecer uma
expresso lgica, e uma expresso cujo resultado VERDADEIRO ou FALSO. Assim,
os seguintes comandos so incorretos:
se A <- B entao // uma atribuio e no uma expresso
...
fimse
se A + B entao // uma expresso aritmtica e no uma expresso
...
fimse
Por outro lado, esto corretos os seguintes comandos:
se (A > B) e (A > C) e (B <> C) entao
...
fimse
se nao Achou entao // Correto se Achou foi declarada como logico
...
fimse
Seja o algoritmo abaixo:
Faa um Algoritmo para calcular a rea de um circulo, fornecido o valor do
raio, que deve ser positivo.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
10 - Escolha...Caso
Em algumas situaes necessrio termos vrias solues ligadas a respostas
diferentes, neste caso o comando de alternativa simples ou composta no uma soluo
prtica, isto porque obrigar o programador a escrever muitas linhas de programa, alm de ter que criar
vrios comandos de alternativas compostas e verificar a validade de suas condies para que o comando
execute o caminho correto para uma determinada condio. Temos ento o comando de alternativa de
mltipla escolha. O funcionamento deste comando obedece a seguinte regra:
escolha < expresso-de-seleo >
caso < exp 1 > , < exp 2 >, ... , < exp n >
< lista-de-comandos-1 >
caso < exp 1 > , < exp 2 >, ... , < exp n >
< lista-de-comandos-2 >
outrocaso
< lista-de-comandos-3 >
fimescolha
Exemplo
Um determinado clube de futebol pretende classificar seus atletas em categorias e para isto ele
contratou um programador para criar um programa que executasse esta tarefa. Para isso o clube
criou uma tabela que continha a faixa etria do atleta e sua categoria. A tabela est
demonstrada abaixo:
IDADE CATEGORIA
De 05 a 10 Infantil
De 11 a 15 Juvenil
De 16 a 20 Junior
De 21 a 25 Profissional
Construa um programa que solicite o nome e a idade de um atleta e imprima a sua categoria.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
11 - Estrutura de Repetio
Nos exemplos e exerccios que vimos at agora sempre foi possvel resolver os
problemas com uma seqncia de instrues onde todas eram necessariamente executadas
uma nica vez. Os algoritmos que escrevemos seguiam, portanto, apenas uma seqncia
linear de operaes.
Veja, por exemplo, um algoritmo para ler os nomes e as notas
das provas de trs alunos e calcular suas mdias harmnicas. Uma possvel soluo seria repetir o
trecho de cdigo do algoritmo trs vezes.
Exemplo
Algoritmo que l os nomes dos alunos de uma turma de trs alunos e as
notas de suas trs provas; o algoritmo calcula
e exibe as
mdias harmnicas das
provas de cada aluno.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Algoritmo "MediaHarmonica"
VAR
a, b, c, MH: REAL
NOME: caractere
inicio
escreva ("Entre com o nome do aluno: ")
leia (nome)
escreval ("Entre com as notas das trs provas")
escreva ("Digite a primeira nota: ")
leia (a)
escreva ("Digite a segunda nota: ")
leia (b)
escreva ("Digite a terceira nota: ")
leia (c)
MH <- 3/(1/a + 1/b +1/c)
escreval ("A mdia harmnica do aluno: ", NOME, " ", MH)
escreva ("Entre com o nome do aluno: ")
leia (nome)
escreval ("Entre com as notas das trs provas")
escreva ("Digite a primeira nota: ")
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
leia (a)
escreva ("Digite a segunda nota: ")
leia (b)
escreva ("Digite a terceira nota: ")
leia (c)
MH <- 3/(1/a + 1/b +1/c)
escreval ("A mdia harmnica do aluno: ", NOME, " ", MH)
escreva ("Entre com o nome do aluno: ")
leia (nome)
escreval ("Entre com as notas das trs provas")
escreva ("Digite a primeira nota: ")
leia (a)
escreva ("Digite a segunda nota: ")
leia (b)
escreva ("Digite a terceira nota: ")
leia (c)
MH <- 3/(1/a + 1/b +1/c)
escreval ("A mdia harmnica do aluno: ", NOME, " ", MH)
fimalgoritmo
A soluo acima vivel apenas para uma turma de poucos alunos; para uma turma de 40
alunos, a codificao da soluo seria por demais trabalhosa. Nesta seo, veremos um
conjunto de estruturas sintticas que permitem que um trecho de um algoritmo (lista de
comandos) seja repetido um determinado nmero de vezes, sem que o cdigo correspondente tenha
que ser escrito mais de uma vez. Em Portugol possui trs estruturas de repetio:
repita...ate, enquanto...faca e para...faca.
12 - Comando repita...Ate
Nessa estrutura, todos os comandos da lista so executados e uma expresso lgica
avaliada. Isto se repete at que a avaliao da condio resulte em FALSO, quanto
ento o prximo comando a ser executado o comando imediatamente aps o ate. Cada repetio da
lista de comandos tambm chamada de iterao e essa estrutura tambm chamada de lao
de repetio. Sua forma geral :
repita
<lista de comandos>
ate <expresso lgica ou relacional>
Exemplo
Algoritmo que escreve os nmeros de 1 a 10.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
algoritmo "DemonstraRepeticao"
VAR
i: INTEIRO
inicio
i<- 1
repita
escreva (i)
i<- i + 1
ate i > 10
fimalgoritmo
13 - Comando Enquanto..faca
Na estrutura enquanto..faca, a expresso lgica avaliada e, se ela for verdadeira, a lista de
comandos executada. Isso se repete at que a condio seja falsa. Veja a sua forma geral:
enquanto <expresso lgica ou relacional> faca
<lista de comandos>
fimenquanto
algoritmo comEnquanto
var
i: numerico
inicio
leia (i)
enquanto i >=0 faca
escreva (i^0.5)
leia (i)
fimenquanto
fimalgoritmo
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
algoritmo comRepita
var
i: numerico
inicio
repita
leia (i)
se i >=0 entao
escreva (i^0.5)
fimse
ate i<0
fimalgoritmo
14 - Comando para..faca
O comando para...faca tambm permite a descrio, dentro de um algoritmo, de uma
estrutura de repetio. Sua forma geral :
para <varivel de controle> de <valor inicial> ate <valor final> [passo <incremento>] faca
<lista de comandos>
fimpara
1.
2.
3.
Algoritmo "Positivos"
var
i, numero: inteiro
inicio
para i de 1 ate 5 passo 1 faca
escreval ("Digete um numero")
leia (numero)
se numero>0 entao
escreva (numero)
fimse
fimpara
fimalgoritmo
Neste algoritmo so utilizadas duas variveis, cada uma com uma funo bem definida. A
varivel i usada para controlar o nmero de repeties e a varivel numero utilizada para armazenar
cada um dos valores lidos. Ao escrever um algoritmo, importante ter bem clara a funo de cada
varivel. Como sero lidos 5 nmeros diferentes, a leitura de numero deve ser feita dentro do lao.
12
1.
2.
3.
4.
5.
6.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Algoritmo "vetores"
VAR
NUMERO: VETOR [1..6] DE REAL
I, conta_neg: INTEIRO
inicio
conta_neg <- 0
para i de 1 ate 6 faca
leia (NUMERO[i])
se NUMERO[i] < 0 entao
conta_neg <- conta_neg + 1
fimse
fimpara
para i de 1 ate 6 faca
escreval (NUMERO[i])
fimpara
escreva ("Total de nmeros negativos: ", conta_neg)
fimalgoritmo
Exemplo
PESSOAS[1,3]<- Joao
Exemplo
Algoritmo que l uma matriz v Valores(3,3) e calcula as somas:
a) da linha 3 de Valores;
b) da coluna 2 de Valores;
c) da diagonal principal;
d) da diagonal secundria; e
e) de todos os elementos da matriz.
1.
2.
3.
4.
5.
6.
7.
8.
Algoritmo "Matriz"
VAR
VALORES : VETOR [1..3,1..3] DE REAL
somaLinha3, somaColuna2, somaDiagPrinc, somaDiagsecu, somaTudo: REAL
i, j: INTEIRO //os ndice sempre inteiro
inicio
somaLinha3 <- 0
somaColuna2 <- 0
13
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
somaDiagPrinc <- 0
somaDiagsecu <- 0
somaTudo <- 0
Para i de 1 ate 3 faca
Para i de 1 ate 3 faca
Escreva("Digite um valor para a matriz")
Leia (VALORES[i,j])
somaTudo <- VALORES[i,j] + somaTudo
se i=3 entao
somaLinha3 <- VALORES[i,j]+ somaLinha3
fimse
se j=2 entao
somaColuna2 <- VALORES[i,j]+ somaColuna2
fimse
se i=j entao
somaDiagPrinc <- VALORES[i,j]+ somaDiagPrinc
fimse
se j=4-i entao
somaDiagsecu <- VALORES[i,j]+ somaDiagsecu
fimse
fimpara
fimpara
Para i de 1 ate 3 faca
para j de 1 ate 3 faca
escreval (VALORES[i,j])
fimpara
fimpara
escreval ("Soma de todos os elementos ", somaTudo)
escreval ("Soma dos elementos da linha 3 ", somaLinha3)
escreval ("Soma dos elementos da coluna 2 ", somaColuna2)
escreval ("Soma dos elementos da diagonal principal ", somaDiagPrinc)
escreval ("Soma dos elementos da diagonal secundria ", somaDiagsecu)
fimalgoritmo
16 - Subalgoritmos
So trechos de algoritmos que efetuam um ou mais clculos determinados. Ao invs de escreverse um algoritmo grande, escrevem-se vrios algoritmos menores, os quais, no isoladamente,
mas em conjunto, resolvem o problema proposto. conveniente utiliz-los quando uma
determinada tarefa efetuada em diversos lugares no mesmo algoritmo. Ao invs de escrever-se um
trecho diversas vezes, escreve-se um sub-algoritmo e chama-se-o diversas vezes.
- Eles reduzem o tamanho do algoritmo.
- Facilitam a compreenso e visualizao do algoritmo.
- So declarados no incio do algoritmo e podem ser chamados em qualquer ponto aps sua declarao.
- Eles podem ser Funes que retorna algum valor ou Procedimento (Subrotina) que no
retorna nada.
16.1 - Funes
Uma funo um instrumento (Esttico) que tem como objetivo retornar um valor ou uma
informao. A chamada de uma funo feita atravs da citao do seu nome seguido
opcionalmente de seus argumentos iniciais entre parnteses. As funes podem ser
predefinidas pela linguagem ou criadas pelo programador de acordo com o seu interesse.
Funes Predefinidas do Visualg
O visulag vem com bibliotecas de funes predefinidas que voc pode utilizar em seus programas.
Veja a tabela abaixo:
Funo
Abs(valor: real) : real
Arccos(valor: real): real
Arcsen(valor: real): real
Arctan(valor: real) : real
Asc(s: caracter): inteiro
Compr(c: caracter): inteiro
Descrio
Valor Absoluto
Arco cosseno
Arco seno
Arco tangente
Retorna o cd ASCII
Retorna a dimenso do caracter
14
Exemplo
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Criando Funes
A criao de uma Funo deve ser declarada, com os demais objetos, no incio
do programa. Este tipo de subalgoritmo sempre retornam um e apenas um valor ao algoritmo que lhe
chamou. Cada funo tem associada ao seu valor de retorno um tipo explcito. Da mesma maneira com
que os parmetros so fixos para todas as chamada o retorno tambm fixo.
Algoritmo "<nome do algoritmo>"
var
<declarao de variveis globais>
<definio da funo>
inicio
< lista de comandos>
fimalgoritmo
Sintaxe da Funo
funcao <identificador> ([var]<parmetros>) <tipo de retorno>
var
<declarao de variveis locais>
15
inicio
<lista de comandos>
retorne <varivel de retorno>
fimfuncao
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Exemplo
ALGORITMO "Funes Personalizadas"
var
Valor_1,Valor_2, soma: real
FUNCAO FSoma(Recebe_valor1, Recebe_valor2: Real):Real
var
total : real
Inicio
total<-Recebe_valor1+Recebe_valor2
retorne total
fimfuncao
INICIO
("Valor_1 : ")
LEIA (Valor_1)
Escreva ("Valor_2 : ")
LEIA (Valor_2)
soma<-FSoma(Valor_1,Valor_2)
ESCREVA ("Soma das vaiveis ", soma)
FIMALGORITMO
16
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
ALGORITMO "Procedimento"
var
A,B,C,D,CONT,AUX:Inteiro
Procedimento TROCA(var x, y: inteiro)
var
Aux : inteiro
INICIO
Aux <- x
x <- y
y <- Aux
FIMProcedimento
INICIO
LEIA (A,B,C,D)
Enquanto
NAO((A<=B) e (B<=C) e (C<=D)) faca
se (D<C) entao
TROCA(D,C)
FIMSE
SE C<B ENTAO
TROCA(C,B)
FIMSE
SE B<A ENTAO
TROCA(A,B)
FIMSE
FIMENQUANTO
ESCREVA (A," ",B," ",C," ",D)
FIMALGORITMO
17
Exerccios
Captulo 8
Exerccio 1
Faa um algoritmo que leia o nome de um piloto, uma distncia percorrida em km e o
tempo que o piloto levou para percorr-la (em horas). O programa deve calcular a
velocidade mdia em km/h, e exibir a seguinte frase:
A velocidade mdia do <piloto> foi <velocidade mdia> km/h.
Exerccio 2
Em uma pizzaria, cada tulipa de chopp custa R$ 0,80 e uma pizza mista grande custa
R$10,00 mais R$1,50 por tipo de cobertura pedido (queijo, presunto, banana, etc). Uma
turma vai pizaria e pde uma determinada quantidade de chopps e uma pizza grande
com uma determinada quantidade de coberturas. Faa um algoritmo que calcule e conte
e, sabendo quantas pessoas esto mesa, quanto que cada um deve pagar (no esqueca
dos 10% do garom).
Exerccio 3
Escreva um algoritmo que calcule o nmero de notas que deve ser dado de troco para
um pagamento efetuado. O algoritmo deve ler o valor a ser pago, e o valor realmente
pago. Supor que o troco seja dado em notas de 50, 20, 10, 5, 2 e 1 real, dando sempre a
menor quantidade de notas.
Captulo 9 e 10
Exerccio 1
Escreva um programa que leia um nmero inteiro. Se o nmero lido for positivo,
escreva uma mensagem indicando se ele par ou mpar. Se o nmero for negativo,
escreva a seguinte mensagem: Nmero Negativo!.
Exerccio 2
Faa um algoritmo que receba o valor do salrio de uma pessoa e o valor de um
financiamento pretendido. Caso o financiamento seja menor ou igual 5 vezes o salrio
da pessoa, o algoritmo dever escrever Financiamento Concedido, seno, ele dever
escrever Financiament Negado. Independente de conceder ou no o financiamento, o
algoritmo escrever depois a frase: Obrigado por nos consultar.
Exerccio 3
Faa um programa que l 4 valores, I, A, B, C, onde I um nmero inteiro positivo e A,
B e C so quaisquer valores reais. O programa deve escrever os valores lidos e:
Se I = 1, Escrever A, B e C em ordem crescente;
Se I = 2, Escrever A, B e C em ordem decrescente;
Se I = 3, Escrever A, B e C de forma que o maior valor fique entre os outros;
Se I no for um dos trs valores acima, dar uma mensagem indicando isto.
Captulo 11 14
18
Exerccio 1
Escrever um algoritmo que l um nmero desconhecido de valores, um de cada vez, e
conta quantos deles esto em cada um dos intervalos [0,25], (25,50], (50,75], (75,100].
Exerccio 2
Escrever um algoritmo que leia informaes sobre um grupo de 250 pessoas e calcule
alguns dados estatsticos. Para cada pessoa do grupo deve ler o nome da pessoa, a altura,
o peso e o sexo. Calcular e escrever:
A quantidade total de homens e mulheres e o percentual de cada.
A mdia de peso das pessoas (somatrio dos pesos de todas as pessoas pela quantidade
de pessoas)
O nome da pessoa mais alta.
Exerccio 3
Escrever um algoritmo que l um nmero no determinado de valores para m, todos
inteiros e positivos, um de cada vez. Se m for par, verificar quantos divisores possui e
escrever esta informao. Se m for mpar e menor do que 12, calcular e escrever o
fatorial de m. Se m for mpar e maior ou igual 12, calcular e escrever a soma inteiros
de 1 at o nmero lido.
Exercio 4
Escrever um algoritmo que gera e escreve os 4 primeiros nmeros perfeitos. Um
nmero perfeito aquele que igual soma dos seus divisores. Ex: 28 = 1+2+4+7+14.
Exerccio 5
Faa um algoritmo que gere uma tabela com os nmeros de 1 a 10 e mostre o seu
quadrado, cubo, fatorial, nmero de divisores e uma mensagem dizendo se ele primo
ou no, a cada 20 linhas deve ser escrito o cabealho novamente:
Nmero
1
2
Quadrado
1
4
Cubo
1
8
Fatorial
1
2
Divisores
1
2
Primo
Sim
Sim
Exerccio 6
Escrever um algoritmo que l um conjunto no determinado de pares de valores a, b,
todos inteiros e positivos, e para cada par lido, obtm o MDC e o MMC de a, b,
escrevendo-os juntamente com os valores lidos.
Captulo 15
Exerccio 1
Escrever um algoritmo que l um vetor de 13 posies que o gabarito de um teste de
loteria esportiva, contendo os valores 1, 2 ou 3. Ler, a seguir, para cada apostador, o
nmero de seu carto e um vetor de respostas. Verificar para cada apostador o nmero
de acertos e escrev-lo na tela, caso tenha 13 acertos, aparecer tambm a mensagem:
GANHADOR, PARABNS!.
Exerccio 2
Escrever um algoritmo que l um vetor de 15 posies e o escreve. Ordene a seguir os
elementos do vetor em ordem crescente e escreva novamente o vetor na tela.
Exerccio 3
Escrever um algotirmo que l, para um vetor de 30 posies, vinte valores que ocuparo
19
Captulo 16
Exerccio 1
Escreva uma funo que receba um vetor literal de 1000 posies e retorne o nmero de
palavras do vetor. As palavras so separadas por espaos em branco.
Exerccio 2
faa uma subrotina que receba uma matriz 10x10, o nmero de uma linha, o nmero de
uma coluna e retorne uma matriz 9x9, resultante da remoo da coluna e da linha
informados.
20