Escolar Documentos
Profissional Documentos
Cultura Documentos
CAMPUS
EUNPOLIS
CURSO TCNICO
DE INFORMTICA
APOSTILA DE ALGORITMOS
Construir algoritmos o objetivo fundamental de toda a
programao, esta apostila ensina atravs de um processo
lgico como resolver problemas computacionais atravs da
construo de Algoritmos usando o Portugus Estruturado.
SUMRIO
PARTE 1: CONCEITOS INICIAIS ............................................................................................. 3
PARTE 2: ESTRUTURAS DE DECISO .................................................................................. 15
PARTE 3: ESTRUTURAS DE REPETIO .............................................................................. 34
PARTE 4: ESTRUTURA DE DADOS HOMOGNEAS: MATRIZES........................................... 49
PARTE 5: SUB-ROTINAS (PROCEDIMENTOS E FUNES) .................................................. 63
Pgina
LGICA DE
PROGRAMAO
PARTE 1:
Conceitos
Iniciais
CONCEITOS
INICIAIS
SEQUNCIA LGICA
ALGORITMO
INSTRUES BSICAS
VARIVEIS E TIPOS DE DADOS
OPERADORES ARITMTICOS
Pgina
1.1.
CONCEITOS INICIAIS
1.2.
ALGORITMOS
Pgina
1.3.
TIPOS DE DADOS
Pgina
1.4.
VARIVEIS
Pgina
Pgina
Nessa parte do
algoritmo dever
existir apenas a
Pgina
1.5.
OPERADORES ARITMTICOS
OPERAO
+
*
/
\
^
MOD
ADIO
SUBTRAO
MULTIPLICAO
DIVISO
DIVISO INTEIRA
EXPONNCIAO
RESTO DA DIVISO
Pgina
poderia
ser
1.6.
INSTRUES BSICAS
Pgina
10
digitar a tecla ENTER, o valor informado ser gravado na varivel e poder ser
utilizado em qualquer momento do programa
Para exibir alguma informao na tela, usamos o comando escreva. Veja o
exemplo abaixo:
escreva(Digite um Valor)
escreval (O RESULTADO DA OPERAO :)
Ao utilizar o comando escreva, o contedo que estiver entre aspas duplas ser
exibido no prompt de comando. Quando utilizamos o comando escreval, significa que
o texto ser exibido na tela e ser pulado uma linha para a prxima execuo de um
comando.
OBSERVAO IMPORTANTE: TODOS OS COMANDOS DE LEITURA E ESCRITA
DE DADOS DEVERO EST LOCALIZADOS NO BLOCO QUE LIMITA O INICIO E FIM DE
UM ALGORITMO.
Considere o seguinte exemplo: Deve ser criado um programa que faa a leitura
de dois valores numricos. Realize a operao de soma entre os dois valores e
apresente o resultado obtido.
A ordem de execuo do algoritmo acima seria:
1. Ler dois valores, no caso as variveis A e B
2. Efetuar a soma das variveis A e B, cujo resultado ser representado
pela varivel X
3. Apresentar o valor da varivel X aps a operao de soma dos dois
valores fornecidos
Para comear a escrever o cdigo em Portugus Estruturado para o problema,
devemos relacionar quais so as variveis e os tipos de dados dessas variveis. Veja
como fica em Portugol:
algoritmo SOMAR_NUMEROS
var
x: inteiro
a: inteiro
b: inteiro
Pgina
11
1.7.
EXEMPLOS
a) Desenvolver a lgica para um programa que calcule a rea de uma
circunferncia, e apresente a medida da rea calculada.
algoritmo "AREA_CIRCULO"
var
a: real
r: real
inicio
leia (r)
a <- 3.14159 * r ^ 2
escreva (a)
fimalgoritmo
algoritmo "SALARIO_PROFESSOR"
var
HT: inteiro
VH, PD, TD, SB, SL: real
inicio
Pgina
12
leia (HT)
leia (VH)
leia (PD)
SB <- HT * VH
TD <- (PD/100) * SB
SL <- SB - TD
escreva (SB)
escreva (SL)
fimalgoritmo
1.8.
EXERCCIOS
QUESTO 01. Classifique os dados abaixo com I para Inteiro, R para Real, C para
Caractere e L para Lgico.
Exemplo:
( R ) -1,87
( ) 1000
( ) -475
( )0
( ) 009
( ) IF
BAHIA
(
(
(
(
(
) 0.898
) -100
) #9CJSH
) 45685
) Verdadeiro
(
(
(
(
(
) Falso
)92,32
)-10
) Cinco
)-283
( ) NOME_USUARIO
( ) SEXO-USUARIO
( ) _1NOME
( ) SALARIOEMR$
( ) NOME USUARIO
( ) _TELEFONE
( ) ENDEREO
( ) 21BRASIL
( ) TELEFONE&RESIDENCIAL
b) 20 15\2 * 3 + 9
e) 35 mod 6 + 2 ^ 5
c) 2*5/20 + 30/15*2
f) 35 \8 + 6 2 * 10 / 3
Pgina
13
Pgina
14
LGICA DE
PROGRAMAO
PARTE 2:
Estruturas de
Deciso
Pgina
15
2.1.
ESTRUTURAS DE DECISO
2.2.
DESVIO SIMPLES
A tomada de deciso simples utiliza a instruo:
Pgina
16
: ", resultado_soma)
fimse
fimalgoritmo
No algoritmo acima, aps a definio dos nomes e tipos de variveis (bloco
var), solicitada a leitura dos valores para as variveis valor1 e valor2 atravs do
comando leia. Depois esses valores so implicados na varivel resultado soma, a qual
possui o resultado da adio dos dois valores. Em seguida, questiona-se no programa
uma condio que permitir imprimir o resultado da soma caso ela seja maior que 10,
e no sendo, o programa encerrado sem apresentar a referida soma, uma vez que a
condio falsa.
2.3.
OPERADORES RELACIONAIS
Ao usar uma instruo de tomada de deciso, necessrio definir para ela uma
condio, que o estabelecimento de uma relao lgica entre dois elementos,
podendo ser: varivel X varivel ou varivel X constante. No exemplo anterior a relao
lgica estabelecida foi se o valor armazenado na varivel resultado_soma maior que
10 (resultado_soma > 10).
Para que uma relao lgica seja definida, passa a ser necessrio usar de um
dos operadores relacionais existentes, os quais se encontram definidos na tabela a
seguir:
So seis os operadores lgicos presentes no portugus estruturado:
Pgina
17
OPERADOR
SIGNIFICADO
=
>
<
IGUAL
MAIOR QUE
MENOR QUE
>=
<=
<>
MAIOR OU IGUAL A
MENOR OU IGUAL A
DIFERENTE DE
Pgina
18
Pgina
19
Pgina
20
limites. Dessa forma existe a possibilidade de usar uma condio dentro de outra
condio, o que leva a uma estrutura de deciso encadeada ou aninhada.
Podemos representar um desvio condicional aninhado no portugus
estruturado da seguinte forma:
fimse
Observe que dentro da estrutura seno da primeira condio, existe uma outra
estrutura se. Uma observao neste ponto que o programador dever encerrar as
estruturas de condio uma de cada vez, neste caso primeiro colocamos o fimse da
segunda condio e por ltimo o fimse da primeira condio.
Considere o seguinte problema: Elaborar um programa que efetue o clculo
do reajuste de salrio de um funcionrio. Considere que o funcionrio deve receber
um reajuste de 15% caso seu salrio seja menor que 500. Se o salrio for maior ou
igual a 500, mas menor ou igual a 1000, seu reajuste ser de 10%; caso seja ainda
maior que 1000, o reajuste ser de 5%.
No portugus estruturado representamos os passos acima atravs do seguinte
algoritmo abaixo:
algoritmo "Reajusta Salario"
var
salario,novo_salario: real
Pgina
21
inicio
escreva ("Digite o salario atual do empregado: ")
leia (salario)
se (salario < 500) entao
novo_salario <- salario * 1.15
senao
se (salario <= 1000) entao
novo_salario <- salario * 1.10
senao
novo_salario <- salario * 1.05
fimse
fimse
escreva ("O empregado teve o salario reajustado para:
", novo_salario)
fimalgoritmo
Pgina
22
2.6.
OPERADORES LGICOS
Pgina
23
Pgina
24
Pgina
25
//trecho de cdigo
condies sejam falsas
fimse
ser
executado
caso
todas
as
OBSERVAO: Para que o resultado lgico seja verdadeiro, apenas uma das
condies tem que ser verdadeiras.
Considere o seguinte exemplo: Em um programa de computador feito um
teste para verificar se o usurio informou o seu estado civil de forma correta no
sistema. O sistema apenas aceita os seguintes valores: solteiro e casado.
Com a utilizao do operador lgico ou, o algoritmo verifica se um dos
valores acima foi digitado. Caso um dos valores seja verdadeiro o sistema emite uma
mensagem: Estado civil vlido; caso os dois valores sejam falsos mostrado uma
mensagem informando que o estado civil invlido.
Veja como fica a representao do problema acima no portugus estruturado.
(estado_civil
Pgina
26
fimalgoritmo
Por ltimo temos o operador lgico nao. Este operador faz com que seja
executada uma determinada ao de uma deciso invertendo o seu resultado lgico.
Se a condio for verdadeira e possuir a sua frente o operador nao, esta ser
automaticamente considerada falsa, o inverso ocorrer para uma condio falsa que
possua a sua frente o operador nao, que ser automaticamente considerada
verdadeira.
Resumindo, o operador nao faz com que seja executada uma determinada
operao, invertendo o resultado lgico da condio.
No portugus estruturado, este operador representado da seguinte forma:
Pgina
27
OPERADOR
OPERAO
PRIORIDADE
No
E
Ou
Negao
Conjuno
Disjuno
1
2
3
Respostas:
a)V
b)V
Pgina
28
c)F
2.7.
Pgina
29
EXERCCIOS
Pgina
30
QUESTO 01. Um usurio deseja um algoritmo onde possa escolher que tipo de mdia
deseja calcular a partir de 3 notas. Faa um algoritmo que leia as notas, a opo
escolhida pelo usurio e calcule a mdia.
As opes podem ser:
1 - aritmtica
2 - ponderada (3, 3,4)
QUESTO 02. Faa um algoritmo que leia um n inteiro e mostre uma mensagem
indicando se este nmero par ou mpar, e se positivo ou negativo.
QUESTO 03. A prefeitura de Eunpolis abriu uma linha de crdito para seus
servidores. O valor mximo da prestao no poder ultrapassar 30% do salrio bruto.
Atravs do salrio bruto e do valor da prestao, informar se o emprstimo pode ou
no ser concedido.
QUESTO 04. Escreva um programa em que calcule o valor a ser pago por produtos de
uma loja, considerando o preo final da compra e a escolha da condio de
pagamento. Os cdigos da tabela abaixo devem ser seguidos para ler qual a condio
de pagamento escolhida e a efetuao do clculo.
Pgina
31
QUESTO 07. Uma fruteira est vendendo frutas com a seguinte tabela de preos:
no (X > 3) ( )
(X < 1) e no (B > D) ( )
no (X >3) ou (C < 7) ( )
(A > B) ou (C > B) ( )
(A > B) ou no (C > B) ( )
no (D > 3) ou no (B < 7) ( )
(D < 0) ou (C > 5) ( )
QUESTO 09. Ler trs valores para os lados de um tringulo, considerando lados
como: A, B e C. Verificar se os lados formam um triangulo e se for verdadeiro, deve ser
indicado qual tipo de tringulo foi formado: issceles, escaleno ou eqiltero.
Obs.: um tringulo uma forma geomtrica composta de trs lados e o valor de cada
lado deve ser menor que a soma dos valores dos outros dois lados.
Pgina
32
Para obter estes valores da classificao a operao que se deve realizar peso
dividido pela altura ao quadrado. O valor obtido desta operao deve ser aplicado
tabela apresentada acima. Apresentar a situao de cada pessoa que est sendo
consultada.
QUESTO 12. Calcular o valor do salrio e, o desconto de Imposto de Renda, com base
na tabela abaixo.
Pgina
33
LGICA DE
PROGRAMAO
PARTE 3:
Estruturas de
Repetio
Pgina
34
3.1.
ESTRUTURAS DE REPETIO
1x
2x
leia (x)
resultado <- x * 3
escreva (resultado)
3x
leia (x)
resultado <- x * 3
escreva (resultado)
4x
leia (x)
resultado <- x * 3
escreva (resultado)
5x
Pgina
35
3.2.
Pgina
36
Pgina
37
Pgina
38
Pgina
39
Pgina
40
Esse fato pode tambm ocorrer com as estruturas de lao. E nesse ponto pode
ocorrer o encadeamento de um tipo de estrutura de lao com outro tipo de estrutura
de lao.
Essas ocorrncias vo depender do problema a ser selecionado. Dessa forma
podemos ter uma estrutura repita...ate dento de uma estrutura enquanto...faca, ou
uma estrutura para...faca dentro de uma estrutura enquanto...faca, etc.
Alguns exemplos dessas estruturas encadeadas so:
1. enquanto ... faca
enquanto (condio1) faca
//instrues
enquanto (condio2) faca
//instrues
fimenquanto
fimenquanto
enquanto (condio1) faca
//instrues
repita
//instrues
ate (condio 2)
fimenquanto
enquanto (condio1) faca
//instrues
para <var> de <inicio> ate <fim> passo <incr> faca
//instrues
fimpara
fimenquanto
2. repita ... ate
repita
//instrues
repita
//instrues
ate (condio 2)
Pgina
41
ate (condio 1)
repita
//instrues
enquanto (condio 2) faca
//instrues
fimenquanto
ate (condio 1)
repita
//instrues
para <var> de <inicio> ate <fim> passo <incr> faca
//instrues
fimpara
ate (condio1)
Pgina
42
3.6.
EXERCCIOS DE APRENDIZAGEM
Exemplo 01. Escrever um programa que apresente o total da soma dos cem primeiros
nmeros inteiros (1+2+3+4+5...+100)
Para resolver o problema acima, teramos que obter cada um dos nmeros de 1 a 100
e som-los medida que cada nmero for encontrado. Para isso escreveremos uma
estrutura de repetio usando uma varivel contador que assumir cada um desses
valores, e para cada valor encontrado iremos armazen-lo na varivel soma. A varivel
soma responsvel por acumular a soma dos valores encontrados.
OBS: No problema a varivel contador incrementada de 1 em 1(contador <contador + 1) para encontrar os nmeros de 1 a 100.
Veja a resoluo deste problema:
algoritmo "soma"
var
contador,soma:inteiro
inicio
contador <-1
soma <- 0
enquanto contador <= 100 faca
soma <- soma + contador
contador <- contador + 1
fimenquanto
escreva("SOMA DOS 100 PRIMEIROS NUMEROS: ",soma)
fimalgoritmo
Exemplo 02. Faa um algoritmo para ler uma quantidade de nmeros. Depois de ler
todos os nmeros o algoritmo deve apresentar na tela o maior dos nmeros lidos e a
mdia dos nmeros lidos.
Para resolver o problema acima, teramos que obter vrios nmeros e som-los
medida que cada nmero for informado pelo usurio. Para isso escreveremos uma
estrutura de repetio usando uma varivel resposta que confirmar ou no se o
Pgina
43
usurio continuar inserindo novos valores. Utilizaremos tambm uma varivel para
guardar a soma dos valores informados e uma varivel maior, que tem a funo de
verificar se um nmero informado maior que o atual valor da varivel maior. Caso
verdadeiro, substituiremos o valor. Ao final, quando o usurio decidir no inserir mais
dados, o algoritmo exibir os resultados.
Veja a resoluo deste problema:
algoritmo "soma"
var
soma,numero,maior,contador:inteiro
resposta:caractere
inicio
soma <- 0
maior <- 0
contador <- 0
repita
escreva("INFORME UM NMERO: ")
leia(numero)
se numero > maior entao
maior <- numero
fimse
soma <- soma + numero
contador <- contador + 1
escreva("DESEJA CONTINUAR A INSERIR NOVOS VALORES: ")
leia(resposta)
ate resposta = "n"
escreval("MAIOR NMERO: ", maior)
escreval("MDIA: ", soma/contador)
fimalgoritmo
Pgina
44
Para resolver o problema acima, teremos que criar uma estrutura de repetio para
solicitar cada um dos dados(altura e sexo). A cada entrada de dados o algoritmo
calcular os resultados: menor altura, mdia, nmero de homens e sexo da pessoa
mais alta. Ao final da leitura dos 15 dados, o algoritmo apresentar os resultados.
OBS: Apesar do exemplo abaixo ter sido desenvolvido com a estrutura repita ... ate,
comum os programadores utilizarem a estrutura para ... de ... ate nessas situaes.
<-
soma_altura_mulheres
Pgina
45
fimalgoritmo
3.7.
EXERCCIOS
2X1=2
2X2=4
2X3=6
....
Pgina
46
QUESTO 04. Com base no exemplo anterior, elaborar um programa que efetue o
clculo da fatorial de um nmero qualquer informado pelo usurio.
QUESTO 05. Elaborar um programa que apresente no final o somatrio dos valores
pares existentes em uma faixa de valores informado pelo usurio. Exemplo: de 1 at
500
QUESTO 06. Escreva um algoritmo utilizando a estrutura para...ate que l um valor n
inteiro e positivo e que calcula a seguinte soma:
S = 1 + 1/3 + 1/5 + 1/7 + ... + 1/n
O algoritmo deve escrever cada termo gerado e o valor final de S.
QUESTO 07. Faa um algoritmo que mostre os 20 primeiros termos de uma srie e
calcule o somatrio destes termos.
Os primeiros termos da srie so: 1, -1/2, 1/3, -1/4, 1/5 etc
QUESTO 08. Faa um algoritmo que receba 10 idades, pesos e alturas, calcule e
mostre:
Pgina
47
Pgina
48
LGICA DE
PROGRAMAO
PARTE 4:
Estrutura de
Dados
Homogneas:
Matrizes
Pgina
49
4.1.
Pgina
50
Pgina
51
Pgina
52
Podemos ainda utilizar uma estrutura de repetio para ler e escrever todos os
elementos de uma matriz. Veja como ficaria a leitura dos dados
para i de 1 ate 8 faca
leia (media[i])
soma <-soma + media[i]
fimpara
Agora veja como ficaria para escrever todos os dados na tela:
para i de 1 ate 8 faca
escreva(media[i])
fimpara
No exemplo anterior a leitura processada uma por vez. Desta forma o vetor
controlado pelo nmero do ndice que faz com que cada entrada acontea em uma
posio diferente da outra. Ao fina da leitura, dizemos que a matriz est preenchida.
Se houver a necessidade de calcular um nmero maior de valores, basta
dimensionar a matriz e mudar o valor final da instruo para para o valor desejado.
OBS: Tenha cuidado para no confundir o ndice com o elemento. O ndice o
endereo, enquanto o elemento o contedo armazenado em um determinado
endereo.
4.2.3 EXEMPLOS RESOLVIDOS DE MATRIZES UNIDIMENSIONAIS
EXEMPLO 01. Ler 8 elementos de um vetor A. Construir um vetor B de mesma
dimenso com os elementos do vetor A multiplicados por 3. Dessa forma o elemento
B[1] deve ser implicado pelo elemento A[1] * 3, o elemento B[2] deve ser implicado
pelo elemento A[2] * 3. No final voc dever apresentar a matriz B.
algoritmo "EXEMPLO 01"
var
a:vetor[1..8] de inteiro
b:vetor[1..8] de inteiro
posicao: inteiro
inicio
Pgina
53
algoritmo "semnome"
var
a:vetor[1..5] de inteiro
b:vetor[1..5] de inteiro
c:vetor[1..5] de inteiro
j: inteiro
inicio
para j de 1 ate 5 faca
escreva("a[",j,"] = ")
leia(a[j])
escreva("b[",j,"] = ")
leia(b[j])
c[j] <- a[j] - b[j]
fimpara
escreval("O VETOR C FORMADO : ")
para j de 1 ate 5 faca
escreval("c[",j,"] = ",c[j])
Pgina
54
fimpara
fimalgoritmo
4.3.
Pgina
55
Pgina
56
Para realizar a leitura dos dados, ser necessrio realizar um mecanismo para
ler as 4 mdias de cada aluno. Para isso usaremos duas estruturas de repetio
conforme exemplo abaixo:
Para a escrita dos dados, tambm dever ser utilizado o mesmo mecanismo
apresentado nos slides anterior. Veja exemplo:
Pgina
57
escreva("a[",i,",",j,"] = ")
leia(a[i])
fimpara
//preenchendo a primeira e segunda linha da matriz C
para j de 1 ate 5 faca
c[1,j] <- a[j] * 2
c[2,j] <- b[j] - 5
fimpara
escreval("ESCREVENDO OS NOVOS VALORES DA MATRIZ ...")
para i de 1 ate 2 faca
para j de 1 ate 5 faca
escreval("c[",i,",",j,"] = ", c[i,j])
fimpara
fimpara
fimalgoritmo
EXEMPLO 02. Escreva um algoritmo que l uma matriz M(5,5) e calcula as somas:
a)
b)
c)
d)
e)
da linha 4 de M
da coluna 2 de M
da diagonal principal
da diagonal secundria
de todos os elementos da matriz M
Pgina
58
<-
soma_diagonal_principal
j <- 4
//soma_diagonal_secundaria
para i de 1 ate 4 faca
soma_diagonal_secundaria <- soma_diagonal_secundaria +
a[i,j]
j <- j -1
fimpara
//soma_linha_4
para i de 1 ate 4 faca
soma_linha_4 <- soma_linha_4 + a[4,i]
fimpara
//soma_coluna_2
para i de 1 ate 4 faca
soma_coluna_2 <- soma_coluna_2 + a[i,2]
fimpara
para i de 1 ate 4 faca
para j de 1 ate 4 faca
soma_elementos <- soma_elementos + a[i,j]
fimpara
fimpara
escreval("A
SOMA
",soma_linha_4)
DOS
ELEMENTOS
DA
LINHA
Pgina
59
escreval("A
SOMA
DOS
ELEMENTOS
DA
COLUNA
2
=
",soma_coluna_2)
escreval("A SOMA DOS ELEMENTOS DA DIAGONAL PRINCIPAL DA
MATRIZ = ",soma_diagonal_principal)
escreval("A SOMA DOS ELEMENTOS DA DIAGONAL SECUNDRIA DA
MATRIZ = ",soma_diagonal_secundaria)
escreval("A
SOMA
DOS
ELEMENTOS
DA
MATRIZ
=
",soma_elementos)
fimalgoritmo
4.4.
EXERCCIOS
QUESTO 01. Escreva um algoritmo que leia dois vetores de 10 posies e faa a
multiplicao dos elementos de mesmo ndice, colocando o resultado em um terceiro
vetor. Mostre o vetor resultante.
QUESTO 02. Faa um algoritmo que leia um vetor S[20] e uma varivel A. A seguir,
mostre o produto da varivel A pelo vetor.
QUESTO 03. Escreva um algoritmo que leia e mostre um vetor de 20 nmeros. A
seguir, conte quantos valores pares existem no vetor.
QUESTO 04. Faa um programa que leia dois vetores: F[20] e G[20]. Calcule e
mostre, a seguir, o produto dos valores de F por G.
QUESTO 05. Faa um programa que leia um vetor K[30]. Troque a seguir, todos os
elementos de ordem mpar do vetor com os elementos de ordem par imediatamente
posteriores.
QUESTO 06. Escreva um programa que leia um vetor de 20 posies e mostre- o. Em
seguida, troque o primeiro elemento com o ltimo, o segundo com o penltimo, o
terceiro com o antepenltimo, e assim sucessivamente. Mostre o novo vetor depois da
troca.
QUESTO 07. Dados dois vetores, um contendo a quantidade e o outro o preo de 20
produtos, elabore um algoritmo que calcule e exiba o faturamento que igual a
quantidade x preo. Calcule e exiba tambm o faturamento total que o somatrio de
todos os faturamentos, a mdia dos faturamentos e quantos faturamentos esto
abaixo da mdia.
Pgina
60
QUESTO 08. Ler uma matriz A de duas dimenses com 3 linhas e 4 colunas. Construir
um vetor B de uma dimenso que seja formado pela soma de cada linha da matriz A.
Ao final apresentar o somatrio dos elementos da matriz B.
QUESTO 09. Escreva um algoritmo que l uma matriz M(5,5) e calcula as somas:
a) da linha 4 de M
b) da coluna 2 de M
c) da diagonal principal
d) da diagonal secundria
e) de todos os elementos da matriz M
Escrever essas somas e a matriz.
QUESTO 10. Desenvolver um programa de agenda que cadastre o nome, endereo,
CEP, bairro e telefone de 10 pessoas. Aps a leitura dos dados, o programa dever
permitir que seja consultado os dados da agendar a partir de um nome.
Exemplo: Se o usurio digitar REGILAN, caso REGILAN exista na agenda dever
apresentar o endereo, CEP, bairro e telefone do mesmo
QUESTO 11. O Museu de Carros Antigos da Bahia est conduzindo um levantamento
dos carros antigos do estado. Para cada carro so fornecidas as seguintes informaes:
o fabricante (um cdigo inteiro de zero a trinta), o ano do carro (de 1900 a 1950) e as
condies do carro (inteiros de 1 a 4 para ruim, regular, boa e excelente,
respectivamente). Ao todo o museu de carros antigos da Bahia tem em seu acervo
2000 carros.
Faa um algoritmo que:
a) Leia um conjunto de dados e depois fornea as seguintes estatsticas:
b) Os nmeros de carros feitos antes de 1910 cujas condies so
classificadas como boas ou excelentes;
c) Fabricante mais popular, escolhido a partir do nmero registrado de
todos os fabricantes;
d) Identificar o fabricante cujos carros parecem estar nas melhores
condies mdias
Pgina
61
Pgina
62
LGICA DE
PROGRAMAO
PARTE 5: Subrotinas
(Procedimentos
e Funes)
OS
CONCEITOS
INICIAIS
PROCEDIMENTOS
FUNES
Pgina
63
5.1.
SUB-ROTINAS
Rotina 1
Rotina 1.1
Rotina 2
Rotina 1.2
Rotina 2.1
Existem
xistem dois tipos de rotinas. Entre esses dois tipos existem algumas
diferenas, mas o conceito o mesmo para ambas.Para cada uma das sub-rotinas
sub
ser
usada uma nova instruo que identifique em portugus estruturado uma sub-rotina,
sub
sendo: procedimento e funo.
funo
5.2.
PROCEDIMENTOS
Pgina
64
Programa
Principal
Adio
Subtrao
Multiplicao
Diviso
Pgina
65
Pgina
66
algoritmo "CALCULADORA"
var
opcao: inteiro
inicio
repita
escreval ("MENU DE OPES: ")
escreval ("Digite 1 para adio")
escreval ("Digite 2 para subtrao")
escreval ("Digite 3 para multiplicao")
escreval ("Digite 4 para diviso")
escreval ("Digite 5 para sair")
escreva ("OPCO: ")
leia (opcao)
escolha opcao
caso 1
adicao()
caso 2
subtracao()
caso 3
Pgina
67
multiplicacao()
caso 4
divisao()
outrocaso
escreval ("Digite um
opes!")
fimescolha
valor
disponivel
no
menu
de
ate (opcao = 5)
fimalgoritmo
PARMETROS
Os parmetros so utilizados como um ponto de comunicao entre uma subrotina e o programa principal. Atravs da passagem de parmetros, podemos passar o
valor de uma varivel que est no programa principal para a sub-rotina, ou passar o
valor de uma varivel que est em uma sub-rotina para outra sub-rotina. Os
Pgina
68
Pgina
69
5.4.
FUNES
Pgina
70
Para exemplificar vamos construir uma funo sem parmetros que soma dois
valores. Ela tambm utiliza uma varivel local aux para armazenar provisoriamente o
resultado deste clculo, antes de atribu-lo varivel global res:
Pgina
71
5.5.
EXERCCIOS
QUESTO 01. Criar um procedimento que calcule uma prestao em atraso. Para
tanto, utilize a frmula PREST = VALOR + (VALOR * (TAXA/100) * TEMPO). Apresentar o
valor da prestao.
QUESTO 02. Elaborar um programa que por meio de uma sub-rotina de
procedimento apresente o valor da converso em real (R$) de um valor lido em dlar.
Deve ser solicitado por meio do programa principal o valor da cotao do dlar e a
quantidade de dlar disponvel.
QUESTO 03. Faa um procedimento que recebe a idade de um nadador por
parmetro e retorna, tambm por parmetro, a categoria desse nadador de acordo
com a classificao abaixo:
a) 5 a 7 anos: Infantil A
b) 8 a 10 anos: Infantil B
c) 11-13 anos Juvenil A
d) 14-17 anos Juvenil B
e) Maiores de 18 anos (inclusive) Adultos
QUESTO 04. Desenvolva um programa que crie uma funo para calcular e
apresentar o valor de uma potncia de um nmero qualquer. Ou seja, ao informar
para a funo o nmero e sua potncia, deve ser apresentado o seu resultado. Por
exemplo, se for mencionado no programa principal a funo Potencia(2,3), deve ser
apresentado o valor 8.
QUESTO 05. Um determinado estabelecimento far uma venda com descontos nos
produtos A e B. Se forem comprados apenas os produtos A ou apenas os produtos B, o
desconto ser de 10%. Caso sejam comprados os produtos A e B, o desconto ser de
15%. O custo da unidade e a quantidade de cada produto dever ser informado ao
programa. Elaborar um programa que por meio de uma funo calcule e apresente o
valor da despesa do fregus na compra dos produtos.
Pgina
72