Apostila Algoritmos-1
Apostila Algoritmos-1
Apostila Algoritmos-1
UNIFASAR
CÉSAR, ADOLFO e RONAN
1
SUMÁRIO
CAPÍTULO 1 - CONCEITOS
1.1 – O Computador ..............................................................................
1.2 – Algoritmo ........................................................................................
1.3 – Linguagem de Programação ...........................................................
1.4 – Conceitos Básicos ..........................................................................
2
3.2.2 – Alternativa Simples e Exercícios .............................
3.2.3 – Alternativa Composta e Exercícios .........................
Bibliografia ....................................................................
3
ALGORITMOS
OBJETIVO GERAL
4
CAPÍTULO 1
Objetivos Específicos
• conceituar algoritmo;
1.1) O Computador
Computador é uma máquina que processa informações de forma automática, sob o
controle de grupos de instruções previamente definidas, com grande eficácia.
1.2) Algoritmo
• Conceito
Um algoritmo nada mais é que um texto contendo comandos (instruções) que
devem ser executados numa determinada ordem. Esse texto em si não nos
interessa mas, sim, seu significado, ou seja, aquilo que ele representa.
• Definição
Algoritmo é um conjunto de instruções, como uma receita de bolo, constituído
de um número finito de passos.
1.4) Conceitos
• Bit (Binary digit): menor porção de informação entendível pelo computador. São
os zeros e uns.
• Byte (Binary term): conjunto de bits. Memórias são medidas em bytes. Cada
caracter é um byte. Ex.: A
5
• Palavra: conjunto de bytes. Ex.: Maria
6
CAPÍTULO 2
Objetivos Específicos
• Real: qualquer número real, positivo, negativo ou nulo. Ex.: 3,4; -3,4; 0,0.
7
• Caracter: qualquer conjunto de caracteres alfanuméricos. Ex.: “ABC”,
“SORRISO”, “ABACATE”.
Constantes
Uma constante é determinado valor fixo que não se modifica ao longo do tempo de
execução de um programa. Uma constante pode ser: um número, um valor lógico ou
uma sequência de caracteres quaisquer com algum significado para o problema em
estudo. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica ou
literal.
Constante numérica
A representação de uma constante numérica nos algoritmos é feita no sistema
decimal.
Ex.: 10; -8; 5,3; 2,02x10²
Constante Lógica
É um valor lógico, isto é, só pode ser falso ou verdadeiro.
Constante Literal
Uma constante literal pode ser qualquer sequência de caracteres. Toda constante
literal que aparece no algoritmo será colocada entre aspas, para que não seja confundida
com outro item qualquer.
Ex.: “ABCD”, “JOSÉ”, “IFMG”
8
2.3.1) Exercícios Resolvidos
1 – Identificar o tipo de cada uma das constantes abaixo:
a) 12 – numérica
b) “AMOR” – literal
c) “falso” – literal
d) 3,81x10² – numérica
e) Verdadeiro – lógica
• Em relação ao Exercício 1:
Talvez tenha surgido uma dúvida na letra c. Veja, a palavra “falso” está entre
aspas. Portanto, independente do conteúdo, as aspas indicam ser um
conteúdo de constante literal.
• Em relação ao Exercício 2:
Veja que nas letras a e d, os identificadores possuem apenas letras e número,
começando sempre por letra. Portanto, são identificadores válidos. Em
relação às letras b, c e e, alguns caracteres inviabilizam o uso destes
identificadores como as aspas ( “ ) na letra b, o número 3 iniciando o
identificador na letra c e os espaços vazios (em branco) na letra e.
9
d) “Maria” –
2 – Marque com um X os identificadores válidos:
a) ( ) “X
b) ( ) X1Y
c) ( )N
d) ( ) ?VB
e) ( ) CASA BRANCA
2.4) Comentários
É um instrumento utilizado para facilitar o entendimento do algoritmo. Ele é um texto,
ou simplesmente uma frase, que aparece delimitado por chaves em qualquer parte do
programa. Não é interpretado pelo compilador.
10
Nome Resultado fornecido
- conjunção: e
- disjunção: ou
- negação: não
e xx ou
V V V V V V
Não V = F
V F F V F V
Não F = V
F V F F V V
F F F F F F
Operadores relacionais
Os operadores relacionais indicam a comparação a ser realizada entre os termos da
relação.
11
São eles:
> , < , > = , < = , < > ( ≠ ), = .
12
2.5.5) Exercícios Resolvidos
1) Supondo que as variáveis X, Y, K sejam numéricas e possuam os valores 3 ; 6,7 e 7,
respectivamente; a variável ENDER seja caracter e possua o conteúdo “Rua Alfa” e a
variável Z seja do tipo lógico e possua o conteúdo falso, responda:
a) ENDER = “Rua Alfa” e Z
b) X + Y = 9 ou não Z
c) quociente(K , X); resto(K , X)
d) arredonda(Y - X); trunca(Y – X)
e) ABS(X - K)
Solução
a) Substituindo os valores das variáveis na expressão:
“Rua Alfa” = “Rua Alfa” e falso
Veja, entre o operador relacional “igual” ( = ) e o lógico falso, resolve-se
primeiro o relacional. A expressão fica assim, então:
verdadeiro e falso
Agora temos dois operandos lógicos e um operador também lógico. Como
resposta temos: (veja tabela em Expressões Lógicas e Operadores)
falso
13
c) quociente(K , X)
Substituindo os valores das variáveis na expressão:
quociente(7 , 3)
Faz-se a divisão inteira de 7 por 3 obtendo 2 como quociente.
resto(K , X)
Substituindo os valores das variáveis na expressão:
Faz-se a divisão inteira de 7 por 3 obtendo 1 como resto.
d) arredonda(Y - X);
Substituindo os valores das variáveis na expressão:
arredonda(6,7 - 3)
arredonda(3,7)
e) ABS(X - K)
Substituindo os valores das variáveis na expressão:
ABS(3 - 7)
ABS(-4)
4
O absoluto de um número é ele próprio em módulo, ou seja, sem sinal.
14
2.5.6) Exercícios Propostos
1) Dadas as variáveis numéricas A, B e C contendo os valores 3, 6 e 9, respectivamente;
a variável literal (caracter) NOME, contendo o literal “JOAO” e a variável lógica TEM,
contendo o valor lógico falso, responda:
a) A + B > C e NOME = “JOAO”
b) TEM ou B > = A
c) não TEM e quociente (C, B) + 1 = A
d) NOME = “MARCOS” e TEM ou A^2 < C + 10
15
CAPÍTULO 3
Objetivos Específicos
16
início
caracter: NOME1, NOME2
escreva (“Digite um nome:”)
leia (NOME1)
escreva (“Digite outro nome:”)
leia (NOME2)
escreva (NOME1, NOME2)
fim
Explicando: Todo algoritmo começa com a palavra “início” e termina com a palavra
“fim”. Em seguida à palavra início, faz-se a declaração das varáveis do programa, ou
seja, do algoritmo. Neste exemplo, temos duas varáveis do tipo caracter, pois irão
armazenar na memória do computador dois nomes. Declarando as variáveis, o
computador reconhece a existência de tais variáveis e elas podem ser utilizadas em todo
o programa a partir desse momento. Sendo assim, pode-se entrar com os dados, isto é,
as informações para NOME1 e NOME2. O comando utilizado para isto é o leia. Mas,
seria interessante que aparecesse uma mensagem na tela antes de entrar com cada
informação para que o usuário deste programa possa ter certeza de qual informação,
qual dado ele deverá digitar. Para isto, utiliza-se o comando de saída escreva já que esse
texto deverá ser impresso na tela do computador. Em seguida, faz-se a leitura da
variável, ou seja, digita-se os nomes desejados, um de cada vez, pressionando enter
assim que digitar cada um deles. Por fim, através do comando escreva, são mostrados na
tela os nomes digitados.
2) Fazer um algoritmo para calcular e imprimir a média aritmética das notas de um
grupo de três alunos. As notas deverão ser lidas, uma para cada aluno, através de uma
unidade de entrada qualquer.
início
real: NOTA1, NOTA2, NOTA3, MEDIA
escreva (“Digite uma nota:”)
leia (NOTA1)
escreva (“Digite a segunda nota:”)
leia (NOTA2)
escreva (“Digita a terceira nota:”)
leia (NOTA3)
MEDIA (NOTA1 + NOTA2 + NOTA3) / 3
escreva (“MEDIA=” , MEDIA)
fim
17
Veja que neste exercício tivemos que criar três variáveis para receber as notas e outra
para fazer o cálculo da média. Todas são do mesmo tipo, real, porque são números
fracionários. Seguindo o critério adotado no exercício anterior, fizemos a leitura dos
dados. Em seguida, efetuamos o cálculo solicitado e a impressão do mesmo.
18
Algoritmo Fluxograma NS Fluxograma Tradicional
início
(sequência de
comandos)
fim
19
Fluxograma NS Fluxograma Tradicional
20
Sintaxe Fluxograma NS Fluxograma Tradicional
se <condição V>
então <comandos>
fim se
21
Exemplo de um trecho de programa:
A 2
B 3
se A < B
então C A+B
fim se
22
3.2.2.1) Exercícios Resolvidos
1) Fazer um algoritmo que leia 2 números inteiros A e B. Imprimir uma mensagem
informando de A é maior que B.
Início
Inteiro: A, B
Escreva (“Digite um número inteiro:”)
Leia (A)
Escreva (“Digite outro número inteiro:”)
Leia (B)
Se A > B
Então escreva (“A é maior que B”)
Fim se
Fim
Explicando:
Inicialmente, declaramos as variáveis A e B do tipo inteiro, como foi dito no enunciado.
Em seguida, fizemos a leitura dos dados. Posteriormente, utilizamos a estrutura
condicional simples para verificar se o valor armazenado na variável A é maior do que o
armazenado na variável B. Portanto, só será impresso a mensagem “A é maior que B”
se a condição for verdadeira, ou seja, se A for maior que B.
2) Ler o sexo de uma pessoa (M,F) e imprimir a mensagem “É homem” caso seja do
sexo masculino.
Início
caracter: SEXO
Escreva (“Digite o sexo (M=masculino,F=feminino):”)
Leia (SEXO)
Se SEXO = “M”
Então escreva (“É homem”)
Fim se
Fim
3) Ler a altura em centímetros de uma garota e imprimir uma mensagem caso esteja
acima de 1,80m.
23
Início
real: ALTURA
Escreva (“Digite a altura da garota em centímetros:”)
Leia (ALTURA)
ALTURA ← ALTURA / 100 {para transformar a altura para metros}
Se ALTURA > 1,80
Então escreva (“Essa garota é muito alta”)
Fim se
Fim
4) Fazer um programa que leia o raio de um círculo, determine e imprima a área
correspondente. Imprimir a mensagem “Área pequena” se for menor que 5 cm2. Dado:
A= x R2.
Início
real: AREA, RAIO
Escreva (“Digite o raio do círculo em centímetros:”)
Leia (RAIO)
AREA ← 3,1416 * (RAIO * RAIO) {π = 3,1416, aproximado}
Escreva (“Área = ”, AREA)
Se AREA < 5
Então escreva (“Área pequena”)
Fim se
Fim
24
real: B,J,K
A32;
C2;
I5
JC*3/4
se (B>J)
então KA+I/A-I
fim se
escreva(B,J,K)
fim.
3) Sendo dadas 2 variáveis (A e B) literais, verificar se as mesmas possuem os
conteúdos “AGUA” e “TERRA”, respectivamente. Se isto ocorrer, imprimir a
mensagem “TUDO OK”.
25
Fluxograma NS Fluxograma Tradicional
26
Fluxograma NS Fluxograma Tradicional
3) Elaborar um algoritmo que leia o sexo e a altura de uma pessoa e imprima o peso
ideal.
Dados: Peso ideal para o sexo masculino: altura(cm)*0.95-95
Peso ideal para o sexo feminino: altura(cm)*0.85-85
Início
real: ALTURA, PESO
caracter: SEXO
28
Escreva (“Digite a altura (cm):”)
Leia (ALTURA)
Escreva (“Digite o sexo (M,F):”)
Leia (SEXO)
Se SEXO = “M”
Então PESO ← ALTURA * 0,95 - 95
Senão PESO ← ALTURA * 0,85 - 85
Fim se
Escreva (“Peso Ideal: ”, PESO)
Fim
Xresto(N,2)
se (X=0)
início
caracter: QUALE
inteiro: num
leia(NUM)
29
se (NUM > 0)
4) Implementar um algoritmo que leia uma letra. Se a letra for uma vogal, imprimir a
mensagem “VOGAL”, caso contrário, imprimir a mensagem “CONSOANTE”.
30
CAPÍTULO 4
Objetivos Específicos
• conhecer as estruturas de repetição enquanto ... faça, para ... faça e repita ... até e
suas diferenças;
Sintaxe
Enquanto <condição> faça
< sequência de comandos>
fim enquanto
31
Fluxograma NS Fluxograma Tradicional
32
Fluxograma NS Fluxograma Tradicional
S0
33
I 1
enquanto I < = 10 faça
SS+I
II+1
escreva (I)
fim enquanto
escreva (S)
fim.
Solução:
Primeiramente são declaradas as variáveis I e S que serão utilizadas no programa. Em
seguida, inicializamos as variáveis S e I com os valores zero e um, respectivamente.
Pretendemos fazer o comando de repetição (laço de repetição) executar dez vezes as
instruções internas a ele. Por isso, ele deverá variar de 1 a 10. No final, quando a
condição I < = 10 não for mais satisfeita, ou seja, quando a variável I atingir o valor 11,
abandona-se o comando de repetição e passa-se para a próxima instrução (escreva (S)).
Sendo assim, este programa irá a cada laço de repetição somar o valor de I com o
anterior, isto é, após as dez iterações, teremos a soma de dos números inteiros de 1 a 10.
Na variável I é acrescentado o valor 1 (um) a cada laço de repetição e impresso este
valor. Esta variável, cujo valor inicial é 1 (um) variará de 1 a 10 dentro do comando de
repetição e, quando atingir o valor 11, a condição I < = 10 se tornará falsa fazendo com
que o laço seja abandonado.
Por último, será impresso o valor armazenado na variável S.
2) Construir um algoritmo para calcular a média de um conjunto de 100 valores inteiros
fornecidos em uma unidade de entrada qualquer.
Solução:
Início
Inteiro: NUM, I, SOMA
Real: MEDIA
I←1
SOMA ← 0
enquanto I < = 100 faça
escreva (“Digite um número”)
leia (NUM)
34
SOMA ← SOMA + NUM
I←I+1
Fim enquanto
MEDIA ← SOMA / 100
Escreva (“Média = ”, MEDIA)
Fim
Observe que em todos os algoritmos é necessário declarar as variáveis que serão
utilizadas no algoritmo. Em seguida faz-se a inicialização dessas variáveis. A partir daí,
trabalha-se o laço de repetição. É quase sempre assim. Neste exercício, temos de somar
todos os números. Por isso essa etapa é feita dentro do comando de repetição. Então
temos que ler o número, somá-lo com o que se tinha, ou seja, com aquele valor que
estava armazenado na variável SOMA e incrementar o contador I somando mais 1 (um).
Este contador serve para contarmos quantos números serão lidos. Quando atingir 101, a
condição se tornará falsa e o comando de repetição será abandonado. Saindo do laço de
repetição, calcula-se a média aritmética e a imprime em seguida.
3) Fazer um algoritmo que calcule e escreva o valor de S.
S = 1 + 3 + 5 + 7 + ... + 99 (50 termos)
1 2 3 4 50
Solução
Início
Inteiro: NUM, DEN, I
Real: S
I←1
NUM ← 1
DEN ← 1
S←0
Enquanto I < = 50 faça
S ← S + NUM / DEN
NUM ← NUM + 2
DEN ← DEN + 1
I←I+1
Fim enquanto
35
Escreva (“Soma = ”, S)
Fim
Neste exercício temos de somar frações. Veja que há uma lógica entre elas. O
numerador é incrementado de 2 e o denominador de 1. Temos 50 frações e não temos
que ler nada neste exercício. A cada iteração alteramos os valores das variáveis NUM
(numerador), DEN (denominador) e I (contador de termos). Ao final, imprimimos o
valor da soma (S).
4) O departamento de Educação Física deseja informatizar este setor e colocou à
disposição os seguintes dados de 40 alunos:
Matrícula, sexo (M,F), altura (cm) e status físico (1=BOM, 2=REGULAR, 3=RUIM)
Estes dados deverão ser lidos através de uma unidade de entrada qualquer.
Imprimir :
a) a quantidade de alunos do sexo feminino com altura superior a 170 cm;
b) a % de alunos do sexo masculino (em relação ao total de alunos do sexo
masculino) cujo status físico seja ‘BOM’.
Solução:
Início
Inteiro: ALTURA, STATUS, CONTF170, CONTH, CONTHB, I
Caracter: SEXO, MATRICULA
Real: P
CONTF170 ← 0; CONTH ← 0; CONTHB ← 0; I ← 1
Enquanto I < = 40 faça
Escreva (“Digite a matrícula(999.999-99):”)
Leia (MATRICULA)
Escreva (“Digite a altura(cm):”)
Leia (ALTURA)
Escreva (“Digite o status físico(1-bom, 2-regular, 3=ruim):”)
Leia (STATUS)
Escreva (“Digite o sexo(M,F):”)
Leia (SEXO)
Se (SEXO = “F”) e (ALTURA > 170)
36
Então CONTF170 ← CONTF170 + 1
Fim se
Se SEXO = “M”
Então CONTH ← CONTH + 1
Fim se
Se (SEXO = “M”) e (STATUS = 1)
Então CONTHB ← CONTHB + 1
Fim se
I←I+1
Fim enquanto
P ← (CONTHB / CONTH) * 100
Escreva (“Quantidade de alunos do sexo feminino com altura
superior a 170 cm: ”, CONTF170 )
Escreva (“Porcentagem de alunos do sexo masculino com status
físico BOM: ”, P)
Fim
5) Construir um algoritmo para calcular a média de um conjunto de valores inteiros
fornecidos em uma unidade de entrada qualquer.
Solução:
Início
Inteiro: NUM, SOMA, CONT
Real: MEDIA
Caracter: OP
SOMA ← 0; CONT ← 0; OP ← “S”
enquanto OP = “S” faça
escreva (“Digite um número”)
leia (NUM)
SOMA ← SOMA + NUM
CONT ← CONT + 1
37
Escreva (“Deseja continuar? (S/N):”)
Leia (OP)
Fim enquanto
MEDIA ← SOMA / CONT
Escreva (“Média = ”, MEDIA)
Fim
Neste exercício, não sabemos quantos elementos existem. Por isso, criamos uma
variável (OP) do tipo caracter inicializada com o valor “S”. A cada laço de repetição,
perguntamos ao usuário se ele quer continuar entrando com dados, ou seja, digitando
novas informações. Se sim, digita-se “S”. Caso contrário, digita-se “N”. Portanto, a
condição será em função desta variável (OP). Digitando “S” o laço continua. Digitando
“N” encerra-se o laço de repetição e passa-se para a próxima instrução depois do fim do
laço.
Como não sabemos quantos dados existem, temos de criar uma variável contadora
(CONT, por exemplo) para que possamos calcular a média. Saindo do laço de repetição,
calcula-se a média aritmética e a imprime em seguida.
Obs.: Toda vez que o “fim para” é encontrado, a variável de controle é incrementada de
1 (um) automaticamente e o teste é feito.
Solução
Início
Inteiro: NUM, DEN, I
Real: S
NUM ← 1
DEN ← 1
S←0
para I de 1 até 100 faça
S ← S + NUM / DEN
NUM ← NUM * 2
DEN ← DEN + 1
40
Fim para
Escreva (“Soma = ”, S)
Fim
Neste exercício temos de somar frações. O numerador é multiplicado por 2 e o
denominador é incrementado de 1. São 100 frações e não temos que ler nada neste
exercício. A cada iteração alteramos os valores das variáveis NUM (numerador) e DEN
(denominador) Ao final, imprimimos o valor da soma (S).
41
c) calcule e imprima a nota média da turma (média da turma);
d) calcule e imprima o total de alunos reprovados;
e) imprima para cada aluno o número de matrícula, a freqüência, a nota final e o código
(aprovado ou reprovado).
Repita
Exemplo:
I←1
Repita
Escreva (“I = “, I)
I←I+1
Até I > 3
Solução
43
Início
Inteiro: NUM1, NUM2, DEN, I
Real: S
I←1
NUM ← 37
NUM2 ← 38
DEN ← 1
S←0
Repita
S ← S + (NUM1 * NUM2) / DEN
NUM1 ← NUM1 – 1
NUM2 ← NUM2 - 1
DEN ← DEN + 1
I←I+1
Até I > 37
Escreva (“Soma = ”, S)
Fim
C4
A C D E X Valor(es) Escrito(s)
E1
D C/2 - E
enquanto A < = 3 faça
X X + ( A + D) / 2
DD*2
AA+1
fim enquanto
CC*2
escreva ( “ D = ” , D )
escreva ( “ C = ”, C)
45
escreva ( “ X = “, X)
fim.
3) Escreva um algoritmo que leia as notas de vários alunos. Calcule e imprima a média
da turma, bem como a situação (mensagem) de cada um deles, conforme critério
apresentado abaixo:
“Aprovado”, caso a nota seja superior a 6,0;
“Final”: se a nota estiver compreendida entre 4,0 e 6,0;
“Reprovado”: se a nota for inferior a 4,0.
46
CAPÍTULO 5 – Procedimento e Função
Objetivos Específicos
5.1) Procedimento
I) Definição
Um procedimento é um bloco de programa, contendo início e fim e será identificado por
um nome, através do qual será referenciado em qualquer parte do programa principal.
II) Características
- É um sub-programa dentro do programa maior;
- Pode usar as variáveis do programa - variáveis globais (*);
- Pode ter suas próprias variáveis - variáveis locais (**);
- Pode ter todas as partes de um programa inclusive outro procedimento;
- Todo Procedimento possui um nome.
(*) – variável global: quando é declarada no início de um programa principal, podendo
ser utilizada por qualquer sub-rotina subordinada (procedimento e função)
(**) – variável local: quando é declarada dentro de uma sub-rotina (procedimento e
função) e é somente válida dentro da rotina à qual está declarada.
III) Sintaxe
Procedimento <nome> [(parâmetros:tipos)] {cabeçalho}
[variáveis locais:tipos]
início
<instruções>
Fim {<nome>}
Ex: procedimento SOMAR (A,B:inteiro)
R: inteiro
47
Início {passagem de parâmetro por valor}
R←A+B
Escreva (“Resultado=”,R)
Fim
48
R: inteiro {variável local}
Início
R←A+B
Escreva (“Resultado=”,R)
Fim {SOMAR}
{Programa Principal}
I←1
enquanto I < = 3 faça
escreva (“Digite 2 números inteiros:”)
leia (X, Y)
SOMAR (X, Y) {passagem de parâmetro por valor}
I←I+1
fim enquanto
fim
Explicando:
No exercício anterior, foi criado um procedimento para calcularmos a soma de dois
números quaisquer. Primeiramente, declaramos as variáveis globais, aquelas que podem
ser utilizadas em todo o programa (X, Y, I). Em seguida, declaramos o procedimento
que foi denominado de SOMAR. Ele possui dois parâmetros, já que pretendemos somar
dois números inteiros. Estes parâmetros, portanto, devem ser do tipo inteiro.
No procedimento, criamos uma variável local para fazer o cálculo da soma (R). Em
seguida, fizemos o cálculo da soma e imprimimos o resultado.
Tudo que for calculado dentro de um procedimento com passagem de parâmetro(s) por
valor e que você quiser imprimir tem que ser impresso dentro do referido procedimento.
Não pode ser devolvido ao programa principal. O mesmo não ocorre quando a
passagem de parâmetro é por referência.
2) Resolver o exercício anterior utilizando “passagem de parâmetro por referência”
início
inteiro X, Y, Z, I
Procedimento SOMAR (A,B: inteiro; var R:inteiro)
AUX: inteiro
início
49
AUX ← A + B
R ← AUX
Fim {SOMAR}
{Programa Principal}
I←1
enquanto I < = 3 faça
escreva (“Digite 2 números inteiros:”)
leia (X, Y)
SOMAR (X, Y, Z)
Escreva (“RESULTADO =”, Z)
I←I+1
fim enquanto
fim
Explicando
Observe que, diferentemente do exercício anterior, onde o procedimento era com
passagem de parâmetro(s) por valor, criamos um parâmetro com passagem por
referência (var R:inteiro). O parâmetro R irá corresponder com o parâmetro Z, da
chamada do procedimento. Os dois apontam para a mesma referência na memória. Por
isso, o que acontece com um, acontece com o outro. Tudo por causa daquela palavrinha
var que precede o parâmetro R.
Então, não há necessidade de se imprimir o cálculo da soma dentro do procedimento.
Isso pode ser feito no corpo do programa principal através do parâmetro Z.
Uma vantagem de se utilizar procedimento com passagem de parâmetro(s) por
referência é que se pode utilizar o resultado devolvido pelo procedimento para se fazer
outro tipo de operação. Imagine se quiséssemos acumular o resultado de todas as
somas? Isso seria perfeitamente possível neste algoritmo. Bastaria criar uma variável
global inteira S, por exemplo, e, no programa principal, após a chamada do
procedimento, fazer o cálculo (S ← S + Z). Não se poderia esquecer de zerar a variável
S antes do comando de repetição “enquanto ... faça”.
V) Exercícios Propostos
1) Fazer um algoritmo que leia 100 números inteiros calcule e imprima o CUBO de
cada um deles. Utilizar procedimento com passagem de parâmetros por valor.
2) Fazer um algoritmo que leia 100 números inteiros, dois a dois (50 pares), e faça a
troca do primeiro pelo segundo, em cada par. (passagem de parâmetros por referência).
50
3) Fazer um algoritmo que leia 50 pares de números inteiros, referentes a catetos de
triângulos retângulos, calcule e imprima a hipotenusa de cada um dos triângulos.
(passagem por valor e referência)
5.2) Função
I) Definição
Uma função é um bloco de programa, contendo início e fim e será identificado por um
nome, através do qual será referenciado em qualquer parte do programa principal.
II) Características e diferenças em relação a procedimento:
→ a função possui, obrigatoriamente, parâmetro;
→ um procedimento é usado como um comando qualquer;
→ uma função sempre fará parte de uma expressão;
→ uma função sempre devolverá um resultado.
III) Sintaxe
Função <nome>[(parâmetros:tipos)]:<tipo da função>
[(variáveis : tipos)]
início
<instruções>
<nome>:<expressão ou resultado>
Fim {<nome>}
54
Bibliografia
5- SALVETTI, Dirceu Douglas & BARBOSA, Lisbete Madsen. Algoritmos. São Paulo:
Makron-Books.
55