Buscar

Algoritmos II - UFGD

Prévia do material em texto

Univ. Federal da Grande Dourados
EaD UFGD
Formadora: Janaína R. Loureiro
Tutor: Luiz Fernando Stopa Arcenio
Rio Brilhante/MS
2017
Avisos
•Próxima aula: 27 e 28/10.
•Serão ofertados as disciplina do 1° 
semestre em breve para os portadores de 
diploma.
•A avaliação final será online.
Tipos de Dados
• Numérico: 
• Inteiro (int): 1, -1, 0
• Real (float): 1.1, -1.3
• Literal (char): ‘a’
• Literal (String – Vetor de char): 
“Seu nome”
• Lógico (bool): Verdadeiro ou Falso
Nome Variáveis
• Nunca começar o nome da variável com um símbolo ou número.
• Declare aux: inteiro
• Variáveis de mesmo tipo podem ser declaradas na mesma linha 
separadas por vírgula.
• Declare aux1, aux2, Cont: inteiro
• Variáveis de tipos diferentes não podem ser declaradas na mesma 
linha.
• declare i: inteiro
• declare j: real
• O nome de uma variável não pode ter espaço, mas pode ter _.
• Declare notas_p1: inteiro
• O nome de uma variável não pode ter acento.
• Se você já usou um nome de variável, ele deve ser único.
Entradas e Saídas
•Entrada: comando leia
• leia (x)
• Importante: x já deve ter sido declarado e eu 
devo ler um tipo correto. 
• Declare x: inteiro
• Ou seja, você vai ler um inteiro e salvar em x.
•Saída: comando escreva
• escreva(“O valor é: ”, x)
• Você vai imprimir um valor inteiro que estava 
salvo em x.
Entradas e Saídas
•Entrada: comando leia
• leia (x)
• Importante: x já deve ter sido declarado e eu 
devo ler um tipo correto.
•Saída: comando escreva
• escreva(“O valor é: ”, x)
Em C: 
leia => scanf
escreva => 
printf
-Inteiro: %d
-Float: %f
-Char: %c
Leia/Escreva - Exemplo
Em C
…
int A;
scanf (“%d”, &A);
A = 15;
printf(“O valor é: 
%d”, A);
…
…
declare A: inteiro
leia(A)
A <- 15
escreva(“O valor é: “, A)
…
Exercício
• Escreva um programa que calcule a média de um 
aluno que fez duas provas.
Algoritmo “Media”
declare x, y: real
Início
escreva (“Digite as duas notas do aluno:")
leia (x,y)
x<-(x+y)/2
escreva (“A média do aluno é: ”, x)
FimAlgoritmo
Exercício
• Uma loja está em promoção. Você deve ajudar o 
vendedor a calcular o preço final de um produto sabendo 
o valor do produto e o desconto sugerido.
Algoritmo “Promocao”
declare x, y, desc: real
Início
escreva (“Digite o valor do produto:")
leia (x)
 escreva (“Digite o valor do desconto:")
leia (y)
desc <- (x*y)/100
 x <- x - desc;
escreva (“O preço final do produto é: ”, x)
FimAlgoritmo
Condicionais
Sintaxe Se (decisão simples)
se (<condição>) então
<conjunto de comandos internos à 
estrutura condicional>
fimSe
Condicionais
Sintaxe Se/Senão (decisão composta)
se (<condição>) então
<conjunto de comandos a serem 
executados se condição for verdadeira>
senão
<conjunto de comandos a serem 
executados se condição for falsa>
fimSe
Condicionais
se (10==11) então
escreva (“10 é igual a 11!”)
senão
 escreva (“10 é diferente de 11!”)
FimSe if(10==11){
printf(“10 é igual a 11!”);
}
else{
printf(“10 é diferente de 
11!”);
}
Condicionais Aninhados
se (10==11) então
escreva (“10 é igual a 11!”)
senão
se(10<11) então
 escreva (“10 menor que 11!”)
 FimSe
FimSe
if(10==11){
printf(“10 é igual a 11!”);
}
else{
If(10<11){
printf(“10 menor 
que11!”);
}
}
Faça um algoritmo que recebe duas notas e avalia se o 
aluno está aprovado ou reprovado. Considere 
aprovação em caso de nota igual ou superior a 6.
Algoritmo “Aprovado”
declare x, y: real
Início
escreva (“Digite as duas notas do aluno:")
leia (x,y)
x <- (x+y)/2
se (x >= 6) então
escreva (“Aluno Aprovado!")
senão
escreva (“Aluno Reprovado!")
fimSe
fimAlgoritmo
.
Faça um algoritmo que recebe um valor e indica 
se ele é divisível por 5 e por 13.
Algoritmo “Divisivel”
declare x: inteiro
Início
escreva (“Entre com um número:")
leia(x)
se ((x%5==0) E (x%13==0)) então
escreva (“É divisível por 5 e 13.”)
senão
escreva(“Não é divisível por 5 e 13.”)
fimSe
FimAlgoritmo
.
Faça um algoritmo que recebe três valores e indica qual 
o maior entre eles
Algoritmo “MaiorValor”
declare x, y, z: inteiro
Início
escreva (“Entre com três valores:")
leia (x, y, z)
se ((x>y) E (x>z)) então
escreva (“Maior valor: ”, x)
senão
se ((y>x) E (y>z)) então
escreva (“Maior valor: ”, y)
senão
escreva (“Maior valor: ”, z)
fimSe
fimSe
fimAlgoritmo
Laços de Repetição
Sintaxe laço Para
para i <- <início> até <fim> faça
<código interno ao laço que será 
repetido>
fimPara
i: variável numérica
início: valor inicial de i
fim: valor final de i
Laços de Repetição
Algoritmo “Imprime1a4”
declare x: inteiro
Início
para x <- 1 até 4 faça
escreva (“Número:”, x)
fimPara
FimAlgoritmo Para x = 1 Número: 1
Para x = 2 Número: 2
Para x = 3 Número: 3
Para x = 4 Número: 4
Laços de Repetição
Sintaxe laço Enquanto
enquanto (teste condicional) faça
<código interno ao laço que será 
repetido>
fimEnquanto
teste condicional: expressão lógica ou 
relacional que tem valor verdadeiro ou 
falso
Laços de Repetição
Algoritmo “Imprime1a4”
declare x: inteiro
Início
x <- 1
enquanto (x <= 4) faça
escreva (“Número:”, x)
x <- x + 1
fimEnquanto
FimAlgoritmo
X=1 1<=4?V Número: 1
X=2 2<=4?V Número: 2
X=3 3<=4?V Número: 3
X=4 4<=4?V Número: 4
X=5 5<=4?F
Laços de Repetição
Sintaxe laço Repita
enquanto (teste condicional) faça
<código interno ao laço que será 
repetido>
fimEnquanto
teste condicional: expressão lógica ou 
relacional que tem valor verdadeiro ou 
falso
Laços de Repetição
Algoritmo “Imprime1a4”
declare x: inteiro
Início
x <- 0
repita
x <- x + 1
escreva (“Número:”, x)
até (x < 4) 
FimAlgoritmo
X=1 Número: 1 1<4?V
X=2 Número: 2 2<4?V
X=3 Número: 3 3<4?V
X=4 Número: 4 4<4?F
Variáveis Compostas - Vetores
Sintaxe da declaração de um Vetor
declare
<nome do vetor> : vetor [ <coluna 
inicial> .. <coluna final>] de <tipo de 
dado>
nome do vetor: deve respeitar as regras de nomes 
de variáveis
coluna inicial: a primeira coluna do vetor
coluna final: a última coluna
tipo de dado: um dos tipos primitivos
declare
meuVetor: vetor[1..10] de inteiro
//declara um vetor de inteiros 
chamado de meuVetor de 10 posições
vetorzao: vetor[1..5000] de real
//declara um vetor de reais chamado 
de vetorzao de 5000 posições
Variáveis Compostas - Vetores
Sintaxe da leitura, escrita e atribuição de 
um Vetor
leia <nome da variável> [<índice>]
escreva <nome da variável> [<índice>]
<nome da variável>[<índice>] <- <valor> 
Variáveis Compostas - Vetores
meuVetor
1 2 3 4 5 6 7 8 9 10
meuVetor[1] <- 5
meuVetor[2] <- 10
meuVetor[3] <- 15
meuVetor[4] <- 20
meuVetor[5] <- 25
.
5 101520253035404550
Variáveis Compostas - Vetores
meuVetor[6] <- 30
meuVetor[7] <- 35
meuVetor[8] <- 40
meuVetor[9] <- 45
meuVetor[10] <- 50
Algoritmo “MultiplosDe3”
declare meuVetor: vetor [1..10] de inteiro
declare i, mult: inteiro
Início
mult <- 0
para i de 1 até 10 faça
mult <- mult + 3
meuVetor[i] <- mult
fimPara
para i de 1 até 10 faça
escreva (meuVetor[i])
 fimPara
FimAlgoritmo
Variáveis Compostas - Vetores
Sintaxe da declaração de uma Matriz
declare
<nome da matriz> : matriz[ <linha 
inicial> .. <linha final>, <coluna inicial> .. 
<coluna final>] de <tipo de dado>
nome da matriz: deve respeitar as regras de nomes de variáveis
linha inicial: a primeira linha da matriz
linha final: a última linha
coluna inicial: a primeira coluna da matriz
coluna final: a última coluna
tipo de dado: um dos tipos primitivos
Variáveis Compostas - Matrizes
declare
minhaMatriz: matriz[1..3, 1..10] de 
inteiro
//declara uma matriz de inteiros chamada 
de minhaMatriz de 3 linhas e 10 colunas = 
30 posições
superMatriz: matriz[1..100, 1..500] de 
real
//declara uma matriz de reais chamada de 
superMatriz de 100 linhas e 500 colunas = 
50000 posições
Variáveis Compostas - Matrizes
Sintaxe da leitura, escrita e atribuição de uma 
Matriz
leia <nome da variável> [<linha>, <coluna>]
escreva <nome da variável> [<linha>, <coluna>]
<nome da variável>[<linha>, <coluna>] <- <valor> 
Variáveis Compostas - Matrizes
minhaMatriz
1 2 3 4 5 6 7 8 9 101
2
3
minhaMatriz[2,7] <- 8
minhaMatriz[1,3] <- 4
8
4
5
1
Variáveis Compostas - Matrizes
minhaMatriz[3,2] <- 5
minhaMatriz[2,10] <- 1
Exercício Revisão
Considere que você está 
escrevendo um algoritmo que 
recebe um vetor de 15 inteiros 
como entrada e o armazena 
em vet. Como deve ser o laço 
de impressão para que seja 
mostrado o vetor na ordem 
inversa?
Exercício Revisão
Algoritmo “OrdemInversa”
Início
declare vet: vetor [1..15] de inteiro
declare i: inteiro
para i <- 1 até 15 faça
leia(vet[i])
FimPara
enquanto i > 0 faça
escreva(vet[i])
i = i - 1
FimEnquanto
FimAlgoritmo
Variáveis compostas heterogêneas 
Registro
• Estrutura de dados utilizada para 
representar tipo de dados diferentes.
• Podem diversos campos e cada campo pode 
ser de um tipo diferente, permitindo assim 
que variáveis declaradas como sendo desse 
tipo (registro) sejam consideradas variáveis 
compostas heterogêneas. 
A declaração do registro tem a seguinte sintaxe
Tipo <nome_to_tipo> = Registro
lista de campos 1: Tipo_primitivo 1;
lista de campos 2: Tipo_primitivo 2;
. . .
lista de campos n: Tipo_primitivo n;
fim_registro
Onde:
nome_do_tipo é o nome da variável para guardar os 
dados do registro;
Lista de campos : campos que serão utilizados no 
registro;
Tipo_primitivo: é o tipo de dado dos campos de cada 
lista.
Registro
• Existe vetor de Registro? SIM!
• Exemplo:
tipo dados = registro 
Nome : literal 
RGA : inteiro 
fim_registro 
Dentro do corpo do algoritmo você deve declarar o 
vetor próximo as outras declarações:
• declare aluno : conjunto [1..10] de dados 
Para acessar cada posição do vetor, colocar índice 
logo após o nome do vetor de registro: 
aluno[indice].campo
Exercício 1 - Registro 
• Crie um registro com os seguintes dados:
• Nome, idade, sexo e altura (em centímetros).
tipo infos = registro 
Nome: literal
Idade: inteiro
Sexo: literal
Altura: inteiro
fim_registro
. 
LEITURA​​​​DE​​​​REGISTRO
Para realizarmos a entrada de dados para a variável A, 
precisamos lembrar que A possui dois campos, então temos que 
indicar para qual campo da variável estamos lendo um dado, 
devemos usar o comando leia
conforme abaixo:
leia( nome_da_variável.nome_do_campo).
Para a leitura dos dados da variável A, declarada no exemplo 2, 
e ilustrada na figura 2, devemos escrever:
leia(A . nome)
leia(A . idade)
ESCRITA​​​​DE​​​​REGISTRO
A escrita dos dados em registros é semelhante a leitura dos 
dados,ou seja, ao desejar mostrar os dados armazenado dentro 
de uma variável do tipo registro, devemos usar o comando 
escreva da seguinte maneira:
escreva(nome_variavel . nome_do_campo)
Para a escrita dos dados da variável A declarada no exemplo 2, 
e ilustrada na figura 2, devemos escrever:
escreva (A . nome)
escreva (A . idade)
Algoritmo Boletim_Aluno
Tipo Boletim =Registro
Nome : Alfanumérico;
Nota1, Nota2 : numérico;
Matricula, Conclusao : Lógico;
Fim_Registro
Declare
X boletim;
inicio
X.Nome ←“Buck Ramel”;
X.Matricula ←V;
X.Conclusao ← F;
Escreva (“Forneça a 1ª nota:”);
Leia (X.Nota1);
Escreva (“Forneça a 1ª nota:”);
Leia (X.Nota2);
// apresentação do Relatório
Escreva (“Relatório do Estudante”);
Escreva (X.nome);
Escreva(X. Matricula);
Fim.
X.Nome = Buck Ramel
X.Matricula = V
X.Conclusão = F
Leia(X.Nota1); X.Nota1 = 7
Leia(X.Nota2); X.Nota2 = 8
Escreva(X.Nome); Buck Ramel
Escreva(X.Matricula); V
VETOR​​​​DE​​​​REGISTRO
Declaração​​​​de​​​​um​​​​vetor​​​​de​​​​registro
tipo date = registro
nome literal
idade inteiro
fim_registro
declare
aluno : conjunto [1..10] de date
CADASTRO​​​​DE​​​​DADOS​​​​PARA​​​​VETOR​​​​DE​​​​REGISTRO
Para se cadastrar dados na posição 1 do vetor aluno, é 
preciso usar o seguinte comando.
leia (aluno[1].nome, aluno[1].idade)
Para se cadastrar dados na posição 2 do vetor aluno, é 
preciso usar o seguinte comando.
leia (aluno[2].nome, aluno[2].idade)
e assim por diante…
leia (aluno[10].nome, aluno[10].idade)
LISTAGEM​​​​DOS​​​​DADOS​​​​DE​​​​UM​​​​VETOR​​​​DE​​​​REGISTRO
Para mostrar os dados da posição 1 do vetor aluno, é preciso 
usar o seguinte comando.
escreva (aluno[1].nome, aluno[1].idade)
Para mostrar os dados da posição 2 do vetor aluno, é preciso 
usar o seguinte comando.
escreva (aluno[2].nome, aluno[2].idade)
e assim por diante...
escreva (aluno[10].nome, aluno[10].idade)
Algoritmo “cadastro_e_listagem”
tipo date = registro
nome literal
idade inteiro
fim_registro
declare
aluno: conjunto​​[1..10] de date
i inteiro
início
para i ← 1 até 10 faça {cadastramento dos dados}
leia (aluno[i].nome, aluno[i].idade)
fim-para
para i ← 1 até 10 faça {listagem dos dados}
escreva (aluno[i].nome, aluno[i].idade)
fim_para
fim_algoritmo
Exercício 2 - Registro 
• Crie um vetor chamado pessoa com 10 posições 
do registro criado no exercício anterior e o 
preencha. Depois verifique qual a pessoa com 
maior altura.
Algoritmo “altura”
Início
declare pessoa : conjunto [1..10] de infos 
declare I, maior: inteiro
para i <- 1 até 10 faça
leia(pessoa[i]. nome)
leia(pessoa[i]. idade)
leia(pessoa[i]. sexo)
leia(pessoa[i]. altura)
FimPara
maior= pessoa[1].altura
para i <- 2 até 10 faça
se (pessoa[i].altura>maior) então
maior= pessoa[i].altura
FimPara
escreva (“Pessoa mais alta:”, maior)
FimAlgoritmo
A modularização é uma estratégia utilizada para 
facilitar a solução de problemas grandes e 
complexos. Esse método consiste na divisão de 
problemas maiores em pequenas trechos, que são 
chamados de módulos, subprogramas ou subrotinas.
Modularização
Uma das vantagens da modularização é a 
possibilidade de diferentes programadores 
trabalharem simultaneamente na solução de 
um mesmo problema, através da codificação 
separada dos diferentes módulos. 
Outra vantagem é a reutilização de código, 
porque sempre que houver a necessidade de 
um usar um código basta chamar aquele 
módulo.
Modularização
PROCEDIMENTO
Procedimento possui um nome, uma lista opcional de parâmetros, um bloco de 
declarações e um bloco de comandos.
Um procedimento é um programa com vida própria, com suas variáveis locais, e 
tem que ser solicitado por algum dos outros módulos do algoritmo. 
Os procedimentos devem ser declarados antes de serem chamados, ou devem 
ser codificados antes do bloco principal.
Procedimentos não retornam valores ao final de sua execução.
procedimento <nome_do_procedimento> ([parametros_opcionais tipo_dados])
<declarações de variáveis locais ao procedimento>
Inicio
<instruções desse procedimento.
fim_procedimento
Modularização
Algoritmo “exemplo_procedimento”
procedimento​​​​calc_imposto(​​​​)​​​​​​​​​ ​{ inicio do procedimento }
imposto ← p * 0.17 { a variável imposto que é global 
recebe o valor do 
imposto}
fim_procedimento​ {fim do procedimento}
declare p, imposto: real { variáveis globais }
início {início do bloco principal}
escreva (“digite o preço”)
leia (p)
calc_imposto( ) {o procedimento cal_imposto é chamado e quando 
ela terminar de executar a variável imposto receberá 
o resultado do 
cálculo}
escreva ('Preço: “, p , “ Imposto:” , imposto)
fim_algoritmo { fim do bloco principal}
 
Modularização
FUNÇÃO
Uma função devolve um valor ao módulo que a chamou. Após a execução da função, 
juntamente com o nome da função, é retornado um valor. Veja no exemplo 1 que um 
valor pode ser armazenado no próprio nome da função, pois a mesma funciona como 
se fosse uma variável.Em uma função, além de informar o nome da função, é preciso informar também o tipo 
do dado que será retornado para quem chamou essa função.
função <nome_da _função> ([parametros_opcionais tipo_dados]): <tipo_de_retorno>
<declarações de variáveis locais à função>
início
<instruções dessa função.
fim_função
Modularização
Algoritmo “exemplo_função”
função​​​​calc_imposto(​​​​):​​​​real​​​​​​​​ {função que retorna um valor real}
calc_imposto ← p * 0.17 {o próprio nome da função funciona como uma 
variável}
fim_função​ {fim da função e o valor armazenado no nome da função é retornado
declare p real {variáveis globais }
início {bloco principal}
imposto real {imposto é uma variável local ao bloco 
principal}
escreva (“digite o preço”)
leia (p)
imposto ← calc_imposto( ) {a função cal_imposto é chamada e quando ela 
terminar de executar o valor retornado por essa função é atribuído no 
bloco principal, para a variável 
imposto}
escreva ('Preço: “, p , “ Imposto:” , imposto)
fim_algoritmo
Modularização
PASSAGEM​​​​DE​​​​PARÂMETRO
Quando uma variável é local a um determinado bloco, nenhum outro bloco pode 
acessar essa variável(variável simples, um vetor ou uma matriz), a não ser que 
ela seja passada como parâmetro para o bloco que irá acessá-la. Esse 
processo chamado de passagem de parâmetro.
Há duas formas de se passar uma ou mais variáveis como parâmetro:
- Passagem de parâmetro por valor
- Passagem de parâmetro por referência
Modularização
PASSAGEM​​​​DE​​​​PARÂMETRO​​​​POR​​​​VALOR
Na passagem de parâmetro por valor é passada uma cópia do valor da(s) 
variável(eis) para o bloco que é chamado e o seu valor original não pode ser 
alterado pelo módulo chamado.
Declaração do procedimento:
 procedimento <nome_do_procedimento> ( <parâmetros_e_tipos> )
Modularização
Modularização
PASSAGEM​​​​DE​​​​PARÂMETRO​​​​POR​​​​REFERÊNCIA
Com a passagem de parâmetro por referência é possível alterar o valor de uma 
variável a um bloco através de outro bloco (módulo). Isso é possível porque o 
endereço da variável é passado como parâmetro e não uma cópia do valor da 
variável, como feito anteriormente na passagem de parâmetro por valor. Para 
transformar um argumento formal numa referência proceda a declaração da(s) 
variável(eis) com a palavra chave ref.
Declaração
procedimento <nome_do _procedimento>( ref <nomes_variáveis <tipos> )
Modularização
Modularização
procedimento troca( ref x, y inteiro ) {x referência de a e y a referência de b}
declare z inteiro {z é uma variável local ao procedimento}
inicio
z ← x {z recebe o que x referência que é o valor de a=100}
x ← y {x é referência de a recebe o que está em y que é a referência de 
b=200}
y ← z {y que é a referência de b recebe o que está em z=100}
escreva (z)
fim_procedimento
declare a, b inteiro { variáveis locais ao bloco principal }
início {início do bloco principal}
a← 100
b← 200
troca(a, b) {chama o procedimento troca e passa os endereços das variáveis a e b}
escreva (a, b) {os valores de a e b (variáveis locais) foram alteradas por troca 
porque os parâmetros foram passados por 
referência}
fim {fim do bloco principal}
Ponteiros
Com os ponteiros é possível usar partes 
da memória sem precisar declarar uma 
variável para cada parte usada e 
estruturar dados de forma mais 
complexa.
Um ponteiro é uma variável que 
armazena um endereço de memória e 
deve ser declarada como qualquer outra 
variável.
OPERADORES​​​​PARA​​​​PONTEIROS
Existem dois operadores especiais para trabalhar com 
ponteiros. São eles:
↑ : Conteúdo do endereço apontado por um ponteiro.
& : Endereço de uma variável.
DECLARAÇÃO​​​​DE​​​​UM​​​​PONTEIRO
↑nome_variável < tipo >
declare
↑p inteiro {p armazena um endereço de memória de um inteiro}
↑q real
​​Operadores​​​​para​​​​ponteiros
declare 
a, ↑ q inteiro { a variável a e o ponteiro q são do tipo inteiro}
q← &a { q recebe o endereço de a, então, q aponta para a}
a← 10 { 10 é atribuído á variável a}
escreva ( ↑ q ) { mostra o conteúdo do endereço armazenado em q}
escreva ( q ) { mostra o endereço do endereço armazenado em q}
escreva ( a ) { mostra o conteúdo da variável a}
​​ACESSO​​​​A​​​​​REGISTRO​​​​POR​​​​MEIO​​​​DE​​​​PONTEIRO
tipo dados = registro
nome literal
idade inteiro
fim​​​​registro
declare
x, ↑ q dados
q ← &X
inicio
leia (q→ nome) { leia para q apontando para nome }
leia (q→ idade) { leia para q apontando para nome }
escreva (q→ nome) {mostra o que esta armazenado no campo nome}
escreva (q→ idade) {mostra o que esta armazenado no campo idade}
fim_algoritmo
Algoritmo “soma”
Declare x, y : inteiro;
Inicio
leia (x, y); //leitura dos dados de X e Y
P,Q: ↑inteiro; //declaração do ponteiro para inteiro
P ←&x; //o ponteiro p recebe o endereço de X
Q ← &y; //O ponteiro Q recebe o endereço de Y
Escreva (↑P + ↑Q); // o comando escreva mostra a soma dos 
valores armazenado nos endereços guardados em P e em Q)
Fim-algoritmo
Arquivos
Todas as estruturas de armazenamento 
utilizadas (vetores, matriz e registros) são 
variáveis simples ou compostas que 
possuem a limitação que é a quantidade 
de informação que pode ser armazenada. 
Nós arquivos essa limitação é apenas do 
meio físico onde os dados são 
armazenados.
DECLARAÇÃO​​​​DE​​​​ARQUIVOS
A declaração de uma variável do tipo do arquivo deve ser feita da 
seguinte forma:
declare​ <nome_variavel> arquivo​​​​​organização​​​​de​​ < nome_do_registro>
onde
● declare , arquivo e de : são palavras reservadas
● nome_variável: é o nome da que será usado para se referir ao 
arquivo.
● organização: indica o tipo de organização que é sequencial ou 
direta.
​​DECLARAÇÃO​​​​DE​​​​REGISTRO​​​​E​​​​​ARQUIVO
{declaração do registro}
tipo dados = registro
nome literal
idade inteiro
fim_registro
declare​​​​
arq1​​​​arquivo​​​​sequencial​​​​de​​​​dados
Um arquivo contém um grupo de registros 
armazenados em alguma ordem, normalmente 
sequencial. Assim, o arquivo é composto do inicio do 
arquivo, um ou mais registros e do final do arquivo.
Vários são os comando que devem manipular os 
arquivos. 
Onde: nome_arquivo: é o nome da variável do 
arquivo
abra ( nome_arquivo ); //abre arquivo
feche ( nome_arquivo ) ; //fecha o arquivo
copie ( nome_arquivo , var_aux ) ; //copia os dados do arquivo 
para var_aux que é uma variável do mesmo tipo do registro do arquivo)
guarde ( nome_arquivo, var_aux ) ; //guarda os dados da 
variável aux no arquivo).
avance ( nome_arquivo ) ; // vai para o próximo registro do arquivo.
retroceda ( nome_arquivo ) ; //retorna para o um registro anterior 
ao registro corrente.
IDA ( nome_arquivo ) ; //testa de a posição correnteé o início do 
arquivo)
FDA ( nome_arquivo ) ; //testa se a posição corrente é o fim do arquivo)
Algoritmo​usando​comandos​de​manipulação​de​arquivos.
Algoritmo “gravar_arquivo”
tipo dados = registro {declaração do tipo}
nome literal
idade inteiro
fim_dados
declare
arq arquivo​​​​sequencial​​​​de​​ dados {declaração do arquivo}
A dados {declaração da variável auxiliar}
inicio
escreva (“digite o nome”)
leia (A.nome)
escreva (“digite a idade”)
leia (A.idade)
abra (arq)
guarde (arq, A) {armazenamento dos dados de A no arquivo arq}
feche (arq)
fim_algoritmo
Obrigado!
•Dúvidas?
• janrloureiro@gmail.com
• Espaço “Dúvidas e 
Orientações" ambiente UFGD
mailto:janrloureiro@gmail.com
 Um Um 
abraço abraço 
para para 
todos todos 
e e 
bons estudos!bons estudos!
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47
	Slide 48
	Slide 49
	Slide 50
	Slide 51
	Slide 52
	Slide 53
	Slide 54
	Slide 55
	Slide 56
	Slide 57
	Slide 58
	Slide 59
	Slide 60
	Slide 61
	Slide 62
	Slide 63
	Slide 64
	Slide 65
	Slide 66
	Slide 67
	Slide 68
	Slide 69
	Slide 70
	Slide 71
	Slide 72
	Slide 73

Continue navegando