SUMRIO
1. O QUE ALGORITMO?.......................................................................................................... 4
1.1. ALGORITMO COMPUTACIONAL..................................................................................................4
1.2. ESTRUTURA DE UM ALGORITMO COMPUTACIONAL.................................................................4
2. TIPOS DE DADOS, VARIVEIS E CONSTANTES.............................................................. 6
2.1. TIPOS DE DADOS PRIMITIVOS.....................................................................................................6
2.1.1. INTEIRO......................................................................................................................................6
2.1.2. REAL..........................................................................................................................................6
2.1.3. CARACTERE................................................................................................................................6
2.1.4. LGICO.......................................................................................................................................6
2.2. VARIVEL.....................................................................................................................................7
2.2.1. REGRAS PARA FORMAO DE NOMES PARA VARIVEIS...........................................................7
2.2.2. DECLARAO DE VARIVEIS.....................................................................................................8
2.3. CONSTANTE..................................................................................................................................9
2.3.1. DECLARAO DE CONSTANTES.................................................................................................9
3. INSTRUES BSICAS........................................................................................................... 9
3.1. ENTRADA DE DADOS (COMANDO DE LEITURA).......................................................................10
3.2. SADA DE DADOS (COMANDO DE ESCRITA)..............................................................................10
3.3. COMANDO DE ATRIBUIO.......................................................................................................12
4. OPERADORES......................................................................................................................... 14
4.1. OPERADORES ARITMTICOS.....................................................................................................14
4.2. OPERADORES RELACIONAIS.....................................................................................................15
4.3. OPERADORES LGICOS.............................................................................................................15
4.3.1. TABELAS VERDADE..................................................................................................................15
4.3.1.1. Tabela Verdade do Operador Lgico E...............................................................................16
4.3.1.2. Tabela Verdade do Operador Lgico OU...........................................................................16
4.3.1.3. Tabela Verdade do Operador Lgico NO........................................................................16
5. ESTRUTURAS DE CONTROLE............................................................................................ 17
5.1. ESTRUTURAS DE SELEO........................................................................................................17
5.1.1. SELEO SIMPLES....................................................................................................................17
5.1.2. SELEO COMPOSTA...............................................................................................................18
5.1.2.1. O Comando Entao..............................................................................................................19
5.1.2.2. O Comando Senao..............................................................................................................19
5.1.3. SELEO DE MLTIPLA ESCOLHA...........................................................................................20
5.2. ESTRUTURAS DE REPETIO....................................................................................................22
5.2.1. ESTRUTURA DE REPETIO PARA............................................................................................22
5.2.2. ESTRUTURA DE REPETIO ENQUANTO..................................................................................23
5.2.3. ESTRUTURA DE REPETIO REPITA.........................................................................................25
1. O QUE ALGORITMO?
uma seqncia de passos que devem ser executados sequencialmente, visando
atingir um objetivo bem definido em um tempo finito.
Os algoritmos so comuns no cotidiano das pessoas, como por exemplo, uma
receita de bolo. Em uma receita, est descrita uma srie de ingredientes necessrios, uma
seqncia de diversos passos - aes - a serem executados para que se consiga fazer
determinado tipo de bolo, que o objetivo definido.
Segundo WIRTH (1978), programas so formulaes concretas de algoritmos
abstratos, ou seja, programar basicamente construir algoritmos.
De acordo com SZWARCFITER & MARKENZON (1994), um algoritmo um
processo sistemtico para a resoluo de um problema.
algoritmo "semnome"
{
rea de declaraes (variveis, constantes e tipos)
}
inicio
{
instrues
}
fimalgoritmo
algoritmo "calculaMedia"
{
variveis
}
inicio
{
instruo 1
instruo 2
instruo 3
instruo 4
...
instruo n
}
fimalgoritmo
2.1.1. INTEIRO
Toda e qualquer informao numrica que pertena ao conjunto dos nmeros
inteiros, independendo de ser negativo ou positivo.
2.1.2. REAL
Toda e qualquer informao numrica que pertena ao conjunto dos nmeros reais,
fracionrios, independendo de ser negativo ou positivo.
2.1.3. CARACTERE
Toda e qualquer informao composta de apenas um caractere, compreendendo
qualquer smbolo da tabela ASCII.
2.1.4. LGICO
Toda e qualquer informao que pode assumir apenas duas situaes, que so
VERDADEIRO e FALSO.
TIPO DE DADOS
Inteiro
Real
Caractere
Lgico
PODEM CONTER
Nmeros inteiros
Nmeros inteiros e/ou com casas decimais
Qualquer smbolo da tabela ASCII
Verdadeiro (V) ou Falso (F)
2.2. VARIVEL
A memria principal de um computador organizada em uma seqncia de Bytes,
cada um com seu endereo, onde possvel armazenar ou ler valores armazenados.
Para acessar essas posies de memria, criam-se nomes que so associados a estas
posies de memria.
Estes nomes so nomes do qual chamamos de variveis. Ento, uma varivel vai
representar uma posio de memria.
O contedo de uma varivel ser representado pelos valores que podem ser
armazenados na posio de memria correspondente a varivel.
NOME
I
Nmero
Numero
Abc123
123abc
Ab!cd
CPF_Cliente
xyz12abc
CERTO/ERRADO
Certo
Errado
Certo
Certo
Errado
Errado
Certo
certo
var
nome_varivel: tipo de dado
var
matricula: inteiro
teste, trab, conc, prova: real
sexo: caractere
aprovado: logico
algoritmo "calculaMedia"
var
matricula: inteiro
teste, trab, conc, prova: real
sexo: caractere
aprovado: logico
inicio
{
instrues
}
fimalgoritmo
2.3. CONSTANTE
Uma informao constante quando ao contrrio das variveis, no sofre nenhuma
variao no decorrer do algoritmo.
const
nome_constante = valor da constante
const
matricula = 5533
sexo = M
aprovacao = VERDADEIRO
algoritmo "calculaMedia"
const
matricula = 5533
sexo = M
aprovacao = VERDADEIRO
var
teste, trab, conc, prova: real
inicio
{
instrues
}
fimalgoritmo
3. INSTRUES BSICAS
10
leia (nome_varivel)
leia (matricula)
leia (trab, teste, prova)
leia (conc)
leia (sexo)
leia (aprovado)
escreva (nome_variavel)
escreva (mensagem de texto)
escreva (matricula)
11
Existe ainda uma variao para o comando escreva, que o escreval, que faz com
que o prximo texto impresso na tela venha na linha de baixo. Observe o exemplo a seguir:
algoritmo "calculaMedia"
var
matricula: inteiro
teste, trab, conc, prova: real
sexo: caractere
aprovado: lgico
inicio
12
13
var
matricula: inteiro
teste, trab, conc, prova: real
sexo: caractere
aprovado: logico
inicio
matricula <- 4422
teste <- 8.5
trab <- 6
prova <- 9
conc <- 1.75
sexo <- "M"
aprovado <- verdadeiro
escreval ("A matrcula ", matricula)
escreval ("A nota de trabalho ", trab)
escreval ("A nota de teste ", teste)
escreval ("A nota de prova ", prova)
escreval ("A nota de conceito ", conc)
escreval ("O sexo ", sexo)
escreval ("A aprovao ", aprovado)
fimalgoritmo
algoritmo "calculaMedia"
var
matricula: inteiro
teste, trab, conc, prova: real
sexo: caractere
aprovado: logico
inicio
matricula <- 4422
sexo <- "M"
escreva ("Digite a notas de trabalho, teste e prova: ")
leia (trab, teste, prova)
escreva ("Digite a nota de conceito: ")
leia (conc)
escreva ("Digite a situao de aprovao: ")
leia (aprovado)
escreval ("A matrcula ", matricula)
escreval ("A nota de trabalho ", trab)
escreval ("A nota de teste ", teste)
escreval ("A nota de prova ", prova)
escreval ("A nota de conceito ", conc)
escreval ("O sexo ", sexo)
escreval ("A aprovao ", aprovado)
fimalgoritmo
14
4. OPERADORES
4.1. OPERADORES ARITMTICOS
Os operadores aritmticos representam um conjunto de smbolos que apresentam as
operaes bsicas da matemtica, permitindo a execuo de operaes aritmticas entre as
variveis. Os operadores aritmticos so:
OPERADOR
+
*
OPERAO
Adio
Subtrao
Multiplicao
OPERADOR
/
div
mod
OPERAO
Diviso
Diviso inteira
Resto da diviso
algoritmo "calculaMedia"
var
nota1, nota2, nota3: real
inicio
escreva ("Digite a primeira nota: ")
leia (nota1)
escreva ("Digite a segunda nota: ")
leia (nota2)
escreva ("Digite a terceira nota: ")
leia (nota3)
escreva ("A mdia ", (nota1 + nota2 + nota3)/3)
fimalgoritmo
algoritmo "calculaMedia"
var
nota1, nota2, nota3, media: real
inicio
escreva ("Digite a primeira nota: ")
15
leia (nota1)
escreva ("Digite a segunda nota: ")
leia (nota2)
escreva ("Digite a terceira nota: ")
leia (nota3)
media <- (nota1 + nota2 + nota3)/3
escreva ("A mdia ", media)
fimalgoritmo
OPERADOR
=
<>
>
NOME
Igual
Diferente
Maior
OPERADOR
<
>=
<=
NOME
Menor
Maior ou igual
Menor ou igual
SMBOLO
FUNO
E
Conjuno
OU
Disjuno
NO
Negao
16
condio 1
V
V
F
F
condio 2
V
F
V
F
(condio 1) E (condio 2)
V
F
F
F
condio 2
V
F
V
F
(condio 1) OU (condio 2)
V
V
V
F
NO (condio 1)
F
V
EXPRESSO
(i >= 10) E (j < 4)
(num < 0) OU (NO (fim))
((n >= 0.0) E (n <= 10.0) OU (i <= 10.0))
VALOR DE
i=4
num = 3
n = 10.5
VALOR DE
j=5
fim = falso
i=4
AVALIAO
F
V
V
17
5. ESTRUTURAS DE CONTROLE
Na criao de algoritmos, utiliza-se os conceitos de bloco lgico, entrada e sada de
dados, variveis, constantes, atribuies, operadores lgicos, relacionais e aritmticos, bem
como comandos que traduzam estes conceitos de forma a representar o conjunto de aes.
Para que esse conjunto de aes se torne vivel, deve existir uma perfeita relao
lgica intrnseca ao modo pelos quais essas aes so executadas, ao modo pelo qual
regido o fluxo de execuo.
Atravs das estruturas bsicas de controle do fluxo de execuo (seleo e
repetio) e da combinao delas, pode-se criar um algoritmo para solucionar qualquer
problema.
Estruturas de controle so instrues especiais permitem controlar a seqncia de
execuo de um algoritmo de acordo com o resultado de testes, em forma de expresses
condicionais, usados por essas instrues.
se <condio> entao
{instrues}
18
fimse
Observe o exemplo a seguir, com uma estrutura de seleo simples, que se o valor
da varivel idade for igual ou maior do que 18, imprime a mensagem Maior de idade e se
for menor do que 18, no executa nada:
algoritmo "verificaIdade"
var
idade: inteiro
inicio
escreva ("Digite a idade: ")
leia (idade)
se idade >= 18 entao
escreva ("Maior de idade")
fimse
fimalgoritmo
5.1.2. SELEO COMPOSTA
Similar a seleo simples, s que neste tipo de seleo, quando o resultado da
condio for falso, ao invs de encerrar a estrutura, executa as instrues contidas no
comando senao. Sua sintaxe a seguinte:
se <condio> entao
{instrues}
seno
{instrues}
fimse
19
Observe o exemplo a seguir, com uma estrutura de seleo composta, que se o valor
da varivel idade for igual ou maior do que 18, imprime a mensagem Maior de idade e se
for menor do que 18, imprime a mensagem Menor de idade:
algoritmo "verificaIdade"
var
idade: inteiro
inicio
escreva ("Digite a idade: ")
leia (idade)
se idade >= 18 entao
escreva ("Maior de idade")
senao
escreva ("Menor de idade")
fimse
fimalgoritmo
5.1.2.1. O Comando Entao
Destina-se a receber uma ou mais instrues, que sero executadas caso o resultado
do teste seja verdadeiro.
20
escolha <varivel>
caso lista de valores 1
{ instrues }
caso lista de valores 2
{ instrues }
caso lista de valores 3
{ instrues }
...
caso lista de valores n
{ instrues }
outrocaso
{ instrues }
fimescolha
Observe o exemplo a seguir, com uma estrutura de seleo de mltipla escolha, que
verifica se existe algum comando caso com valor igual a da varivel dia, caso exista, ele
imprime o nome do dia da semana correspondente ao nmero, caso no exista, ele imprime
a mensagem Dia invlido:
escolha dia
caso 1
escreva ("Domingo")
caso 2
escreva ("Segunda-feira")
caso 3
21
escreva ("Tera-feira")
caso 4
escreva ("Quarta-feira")
caso 5
escreva ("Quinta-feira")
caso 6
escreva ("Sexta-feira")
caso 7
escreva ("Sbado")
outrocaso
escreva ("Dia invlido")
fimescolha
Observe o exemplo a seguir, com a estrutura de seleo de mltipla escolha no
contexto de um algoritmo que realiza a leitura de um nmero e imprime o nome do dia da
semana correspondente ao nmero lido ou imprime a mensagem Dia invlido, caso o
nmero esteja fora do intervalo de 1 e 7:
algoritmo "verificaDia"
var
dia: inteiro
inicio
escreva ("Digite o nmero do dia da semana: ")
leia (dia)
escolha dia
caso 1
escreva ("Domingo")
caso 2
escreva ("Segunda-feira")
caso 3
escreva ("Tera-feira")
caso 4
escreva ("Quarta-feira")
caso 5
escreva ("Quinta-feira")
caso 6
escreva ("Sexta-feira")
caso 7
escreva ("Sbado")
outrocaso
escreva ("Dia invlido")
fimescolha
fimalgoritmo
22
23
algoritmo "calculaMedia"
var
i: inteiro
nota1, nota2, nota3, media: real
inicio
para i de 1 ate 10 faca
escreva ("Digite a primeira nota: ")
leia (nota1)
escreva ("Digite a segunda nota: ")
leia (nota2)
escreva ("Digite a terceira nota: ")
leia (nota3)
media <- (nota1 + nota2 + nota3)/3
escreval ("A mdia ", media)
fimpara
fimalgoritmo
5.2.2. ESTRUTURA DE REPETIO ENQUANTO
Consiste em uma estrutura de controle de repetio que permite executar diversas
vezes um mesmo trecho do algoritmo, verificando sempre, antes de cada execuo se
permitido repetir o mesmo trecho.
Para que essa repetio se realize, utiliza-se a estrutura enquanto, que permite que
um bloco de instrues ou mesmo uma nica instruo seja repetida enquanto uma
determinada condio seja verdadeira.
24
i <- 1
enquanto i <= 10 faca
escreva ("Digite a primeira nota: ")
leia (nota1)
escreva ("Digite a segunda nota: ")
leia (nota2)
escreva ("Digite a terceira nota: ")
leia (nota3)
media <- (nota1 + nota2 + nota3)/3
escreval ("A mdia ", media)
i <- i + 1
fimenquanto
Observe o exemplo a seguir, com a estrutura de repetio para no contexto de um
algoritmo que realiza a leitura das 3 notas e calcula, armazena e imprime a mdia de 10
alunos:
algoritmo "calculaMedia"
var
i: inteiro
nota1, nota2, nota3, media: real
inicio
i <- 1
enquanto i <= 10 faca
escreva ("Digite a primeira nota: ")
leia (nota1)
25
repita
{
instrues
}
ate <condio>
Observe o exemplo a seguir, que ir ler as 3 notas e calcular, armazenr e imprime a
mdia de 10 alunos.
26
i <- 1
repita
escreva ("Digite a primeira nota: ")
leia (nota1)
escreva ("Digite a segunda nota: ")
leia (nota2)
escreva ("Digite a terceira nota: ")
leia (nota3)
media <- (nota1 + nota2 + nota3)/3
escreval ("A mdia ", media)
i <- i + 1
ate i > 10
Observe o exemplo a seguir, com a estrutura de repetio para no contexto de um
algoritmo que realiza a leitura das 3 notas e calcula, armazena e imprime a mdia de 10
alunos:
algoritmo "calculaMedia"
var
i: inteiro
nota1, nota2, nota3, media: real
inicio
i <- 1
repita
escreva ("Digite a primeira nota: ")
leia (nota1)
escreva ("Digite a segunda nota: ")
leia (nota2)
escreva ("Digite a terceira nota: ")
leia (nota3)
media <- (nota1 + nota2 + nota3)/3
escreval ("A mdia ", media)
i <- i + 1
ate i > 10
fimalgoritmo
27
6.1. VETOR
uma varivel com capacidade para armazenar diversos valores sendo todos eles
de um mesmo tipo de dado. Para ter acesso a cada um dos valores, usamos um ndice que
permite selecionar qual dos valores ser utilizado.
var
nome_varivel: vetor [pi..pf] de tipo_dado
Onde nome_varivel o nome do vetor, vetor a declarao de que um vetor, pi
o ndice da primeira posio, pf o ndice da ltima posio e tipo_dado o tipo de
dados de todas as posies do vetor.
Observe o exemplo a seguir, com a declaro de um vetor com 5 posies que iro
armazenar nmeros inteiros:
var
n: vetor [1..5] de inteiro
6.1.2. ACESSANDO UMA POSIO DO VETOR
Para leitura de valores em vetores, deve-se colocar no comando leia o nome da
varivel, seguida da posio do vetor entre colchetes.
Observe o exemplo a seguir:
28
leia(n[1])
leia(n[2])
leia(n[3])
leia(n[4])
leia(n[5])
Para impresso de valores de vetores, deve-se colocar no comando escreva o nome
da varivel, seguida da posio do vetor entre colchetes.
Observe o exemplo a seguir:
escreva (n[1])
escreva (n[2])
escreva (n[3])
escreva (n[4])
escreva (n[5])
Para atribuio de valores em vetores, deve-se colocar o nome da varivel, seguida
da posio do vetor entre colchetes recebendo o valor.
Observe o exemplo a seguir:
n[1] <- 38
n[2] <- 17
n[3] <- 26
n[4] <- 23
n[5] <- 3
algoritmo "utilizacaoVetor"
var
n: vetor [1..5] de inteiro
inicio
escreva ("Digite um valor para a posio 1 do vetor: ")
leia(n[1])
escreva ("Digite um valor para a posio 2 do vetor: ")
29
leia(n[2])
escreva ("Digite um valor para a posio 3 do vetor: ")
leia(n[3])
escreva ("Digite um valor para a posio 4 do vetor: ")
leia(n[4])
escreva ("Digite um valor para a posio 5 do vetor: ")
leia(n[5])
escreval ("O valor da posio 1 ", n[1])
escreval ("O valor da posio 2 ", n[2])
escreval ("O valor da posio 3 ", n[3])
escreval ("O valor da posio 4 ", n[4])
escreval ("O valor da posio 5 ", n[5])
fimalgoritmo
Observe o exemplo a seguir, com a utilizao de vetor no contexto de um algoritmo
que realiza a leitura de 5 valores e armazena em um vetor e que imprime todos os valores
do vetor, utilizando estrutura de repetio:
algoritmo "utilizacaoVetor"
var
n: vetor [1..5] de inteiro
i: inteiro
inicio
para i de 1 ate 5 faca
escreva ("Digite um valor para a posio ", i, " do vetor: ")
leia(n[i])
fimpara
para i de 1 ate 5 faca
escreval ("O valor da posio ", i, " ", n[i])
fimpara
fimalgoritmo
6.2. CADEIA
Como nos algoritmos reais necessrio lidar com a leitura de nomes e endereos de
pessoas, por exemplo, conveniente utilizar algum tipo de dado especfico para
armazenamento de seqncias de caracteres.
possvel, ento, criar dois novos tipos de dados para essa finalidade:
30
cadeia
cadeia[n]
Onde n um nmero que indica quantos caracteres sero armazenados. Observe a
sintaxe a seguir:
var
nome_varivel: cadeia
Onde nome_varivel uma varivel do tipo cadeia de caracteres, com capacidade
para armazenar qualquer quantidade de caracteres que for necessrio. Observe a sintaxe a
seguir:
var
nome_varivel: cadeia[n]
Cria uma varivel do tipo cadeia de caracteres com capacidade para armazenar a
quantidade de caracteres definida por n.
Observe o exemplo a seguir, com a declaro de uma varivel que ir armazenar o
nome de uma pessoa com at 30 caracteres e outra que ir armazenar o endereo com a
quantidade mxima de caractere indefinida:
var
nome: cadeia[30]
endereco: cadeia
6.2.1. LEITURA, ESCRITA E ATRIBUIO DE CADEIAS
Para leitura de valores em cadeias, deve-se colocar no comando leia o nome da
cadeia. Observe o exemplo a seguir:
leia(nome)
leia(endereco)
31
escreva (nome)
escreva (endereco)
Para atribuio de valores em cadeias, deve-se colocar o nome da cadeia recebendo
o valor. Observe o exemplo a seguir:
algoritmo "utilizacaoCadeia"
var
nome: cadeia[30]
endereco: cadeia
inicio
escreva ("Digite o nome: ")
leia (nome)
escreva ("Digite o endereo: ")
leia (endereco)
escreval ("O nome ", nome)
escreval ("O endereo ", endereco)
fimalgoritmo
6.3. MATRIZ
Assim como os vetores, uma varivel com capacidade para armazenar diversos
valores sendo todos eles de um mesmo tipo de dado, mas nas matrizes para cada posio
existe uma nova diviso em novas posies.
32
var
nome_varivel: vetor [pi..pf, pi..pf] de tipo_dado
Onde nome_varivel o nome da matriz, vetor a declarao de que um vetor
que ser uma matriz, pi o ndice da primeira posio, pf o ndice da ltima posio da
linha e da coluna e tipo_dado o tipo de dados de todas as posies da matriz.
Observe o exemplo a seguir, com a declaro de uma matriz 3x2, ou seja, uma
matriz com 3 linhas e 2 colunas, tendo no total 6 posies que iro armazenar nmeros
inteiros:
var
n: vetor [1..3, 1..2] de inteiro
6.3.2. ACESSANDO UMA POSIO DA MATRIZ
Para leitura de valores em matrizes, deve-se colocar no comando leia o nome da
varivel, seguida da posio da linha e da coluna separada por vrgula e entre colchetes.
Observe o exemplo a seguir:
leia(n[1, 1])
leia(n[1, 2])
33
leia(n[2, 1])
leia(n[2, 2])
leia(n[3, 1])
leia(n[3, 2])
Para impresso de valores de matrizes, deve-se colocar no comando escreva o nome
da varivel, seguida da posio da linha e da coluna separada por vrgula e entre colchetes.
Observe o exemplo a seguir:
n[1, 1] <- 38
n[1, 2] <- 17
n[2, 1] <- 26
n[2, 2] <- 23
n[3, 1] <- 3
n[3, 2] <- 42
algoritmo "utilizacaoMatriz"
var
n: vetor[1..3, 1..2] de inteiro
inicio
escreva ("Digite o valor para a posio 1,1 da matriz: ")
leia (n[1, 1])
34
algoritmo "utilizacaoMatriz"
var
n: vetor[1..3, 1..2] de inteiro
i, j: inteiro
inicio
para i de 1 ate 3 faca
para j de 1 ate 2 faca
escreva ("Digite o valor para a posio ", i, ",", j, " da matriz: ")
leia (n[i, j])
fimpara
fimpara
para i de 1 ate 3 faca
para j de 1 ate 2 faca
escreval ("O valor da posio ", i, ",", j, " ", n[i, j])
fimpara
fimpara
fimalgoritmo
35
7.1. REGISTROS
comum a necessidade, nos algoritmos, de representar dados sobre pessoas ou
empresas, por exemplo. Observamos que estes dados so de naturezas distintas, tais como
cadeia[30] para o nome de uma pessoa e inteiro para o nmero de dependentes de uma
pessoa.
Para isto, cria-se uma estrutura de dados heterognea, isto , uma estrutura formada
por dados de diferentes tipos. Esta estrutura chamada de registro e formada por campos,
onde cada campo corresponde a um tipo de dados. Para criar uma varivel com tipos de
dados registro conveniente criarmos primeiramente um novo tipo de dado para servir de
modelo para a criao de variveis. Em seguida, criamos as variveis necessrias ao
funcionamento do algoritmo.
Com este novo tipo de dados usa-se a palavra tipo para a criao de novos tipos de
dados e a palavra registro para indicar que um tipo de dados um registro.
36
Onde tipo, define a criao de um novo tipo de dados, cadastro, o nome do novo
tipo de dados, registro, indica que este tipo de dados um registro, cpf, nome, email e
telefone, so os nomes dos campos, inteiro e cadeia, so os tipos de dados dos campos,
fimregistro, indica o fim da declarao e pessoa uma varivel do tipo registro e formada
por quatro campos, que so aqueles definidos na declarao de cadastro.
Observao: tipos de dados no tem endereo de memria e a varivel tem
endereo de memria.
A manipulao de entrada e sada para variveis de tipo registro somente pode ser
feita por campo, isto , no se pode ler ou escrever os dados de um registro de uma s vez.
Usaremos um ponto para permitir o acesso a cada campo de um registro. Observe os
exemplos abaixo:
leia (pessoa.cpf)
leia (pessoa.nome)
escreva (pessoa.telefone)
Combinao de registros
tipo
tendereco = registro
rua: cadeia[20]
numero: inteiro
complemento: cadeia[30]
bairro: cadeia[25]
fim-registro
cadastro = registro
cpf: inteiro
nome: cadeia[30]
e_mail: cadeia[50]
telefone: inteiro
endereco: tendereco
fim-registro
var
pessoa: cadastro
37
var
pessoa: vetor [1 .. 100] de cadastro
Como armazenar 987 no campo nmero do endereo do 17 registro de pessoa?
algoritmo cadastramento
tipo
cadastro = registro
matricula: inteiro
nome: cadeia[30]
endereco: cadeia[35]
fim-registro
var
aluno: vetor [1 .. 100] de cadastro
i: inteiro
incio
para i de 1 ate 100 faca
escreva (digite a matrcula)
leia (aluno[i].matricula)
escreva (digite o nome)
leia (aluno[i].nome)
escreva (digite o endereo)
leia (aluno[i].endereco)
fimpara
fimalgoritmo
38
8. REFERNCIAS BIBLIOGRFICAS
FORBELLONE & EBERSPCHER, Andr Luiz Villar & Henri Frederico. Lgica de
Programao - A Construo de Algoritmos e Estrutura de Dados. So Paulo: Makron
Books, 1996.
GUIMARES & LAGES, ngelo de Moura & Newton Alberto de Castilho. Algoritmos e
Estruturas de Dados. Rio de Janeiro: LTC, 1994.
SALVETTI & BARBOSA, Dirceu Douglas & Lisbete Madsen. Algoritmos. So Paulo:
Pearson Makron Books, 1998.
SZWARCFITER & MARKENZON, Jayme Luiz & Lilian. Estruturas de Dados e seus
Algoritmos. Rio de Janeiro: LTC, 1994.