Conceito
7. ARQUIVOS
A CADA VEZ QUE TEMOS UM PROBLEMA A RESOLVER, EXECUTAMOS UM PROGRAMA. A CADA VEZ QUE EXECUTAMOS ESTE PROGRAMA, PRECISAMOS OBTER OS DADOS DE ENTRADA E FORNECER OS DADOS DE SAÍDA DA ANÁLISE. O que temos feito até agora???
Conceito
7. ARQUIVOS
A CADA VEZ QUE TEMOS UM PROBLEMA A RESOLVER, EXECUTAMOS UM PROGRAMA. A CADA VEZ QUE EXECUTAMOS ESTE PROGRAMA, PRECISAMOS OBTER OS DADOS DE ENTRADA E FORNECER OS DADOS DE SAÍDA DA ANÁLISE. O que temos feito até agora??? Em geral, pedimos ao usuário que digite os dados de entrada a cada execução do programa, e fornecemos os dados de saída na tela (janela de comandos do MATLAB).
Conceito
7. ARQUIVOS
A CADA VEZ QUE TEMOS UM PROBLEMA A RESOLVER, EXECUTAMOS UM PROGRAMA. A CADA VEZ QUE EXECUTAMOS ESTE PROGRAMA, PRECISAMOS OBTER OS DADOS DE ENTRADA E FORNECER OS DADOS DE SAÍDA DA ANÁLISE. O que temos feito até agora??? Em geral, pedimos ao usuário que digite os dados de entrada a cada execução do programa, e fornecemos os dados de saída na tela (janela de comandos do MATLAB).
Imaginemos o seguinte problema:
Um programa deve armazenar os nomes e as notas dos alunos da UFAL, ao longo do semestre, e calcular a média de cada aluno ao final do semestre. neste caso:
- Existe uma grande quantidade de dados a armazenar;
- Como as notas devem ser fornecidas a medida que elas são obtidas, então
é necessário a execução do programa inúmeras vezes;
Conceito
7. ARQUIVOS
A CADA VEZ QUE TEMOS UM PROBLEMA A RESOLVER, EXECUTAMOS UM PROGRAMA. A CADA VEZ QUE EXECUTAMOS ESTE PROGRAMA, PRECISAMOS OBTER OS DADOS DE ENTRADA E FORNECER OS DADOS DE SAÍDA DA ANÁLISE. O que temos feito até agora??? Em geral, pedimos ao usuário que digite os dados de entrada a cada execução do programa, e fornecemos os dados de saída na tela (janela de comandos do MATLAB).
Imaginemos o seguinte problema:
Um programa deve armazenar os nomes e as notas dos alunos da UFAL, ao longo do semestre, e calcular a média de cada aluno ao final do semestre. neste caso:
- Existe uma grande quantidade de dados a armazenar;
- Como as notas devem ser fornecidas a medida que elas são obtidas, então
é necessário a execução do programa inúmeras vezes;
A seguinte pergunta nos vem à cabeça...
Como é possível armazenar tais informações permanentemente no computador se os dados armazenados na memória RAM são voláteis.
Conceito
7. ARQUIVOS
Um arquivo de dados é um conjunto de dados armazenados em um dispositivo de memória secundária (por exemplo, o disco rígido do computador).
O fato do arquivo ser armazenado em uma memória secundária o torna independente em relação aos programas computacionais. Ou seja, um arquivo pode ser criado, consultado, processado e eventualmente removido por programas computacionais distintos.
*lembremos dos arquivos do Word®, Excel®, etc... Eles são criados, processados e removidos a qualquer tempo.
Conceito
7. ARQUIVOS
Um arquivo de dados é um conjunto de dados armazenados em um dispositivo de memória secundária (por exemplo, o disco rígido do computador).
O fato do arquivo ser armazenado em uma memória secundária o torna independente em relação aos programas computacionais. Ou seja, um arquivo pode ser criado, consultado, processado e eventualmente removido por programas computacionais distintos.
*lembremos dos arquivos do Word®, Excel®, etc... Eles são criados, processados e removidos a qualquer tempo.
São 4 as operações possíveis num arquivo de dados: inserção de informações obtenção de informações modificação de informações exclusão de informações
Concepção
7. ARQUIVOS
Quando criamos um arquivo, usamos determinado padrão de comportamento que estabelece o modo pelo qual os dados são armazenados no arquivo. A maneira como esses dados são dispostos no arquivo pode facilitar certas operações . Quanto ao tipo de concepção, os arquivos podem ser classificados em duas variantes:
Concepção
7. ARQUIVOS
Quando criamos um arquivo, usamos determinado padrão de comportamento que estabelece o modo pelo qual os dados são armazenados no arquivo. A maneira como esses dados são dispostos no arquivo pode facilitar certas operações . Quanto ao tipo de concepção, os arquivos podem ser classificados em duas variantes:
- Arquivos de concepção sequencial: os dados são obtidos ou inseridos no arquivo de forma sequencial. Ex: Para achar a nota de José, precisa-se percorrer todo o arquivo
Matrícula Nome P1 P2 Média
000000001 João 000001001 Maria 000002002 José 000003221 Sebastião
Classificação
7. ARQUIVOS
Quando criamos um arquivo, usamos determinado padrão de comportamento que estabelece o modo pelo qual os dados são armazenados no arquivo. A maneira como esses dados são dispostos no arquivo pode facilitar certas operações . Quanto ao tipo de concepção, os arquivos podem ser classificados em duas variantes:
- Arquivos de concepção sequencial: os dados são obtidos ou inseridos no arquivo de forma sequencial. Ex: Para achar a nota de José, precisa-se percorrer todo o arquivo
- Arquivos de concepção direta: o acesso aos dados do arquivo é realizado em ordem aleatória. Uma informação inicial indica a posição no arquivo onde determinada informação está localizada. Ex: os dados de José estão numa linha previamente
estabelecida no arquivo.
Matrícula Nome P1 P2 Média
000000001 João 000001001 Maria 000002002 José 000003221 Sebastião João 1 Maria 2 José 3 Sebastião 4 Matrícula P1 P2 Média 000000001 000001001 000002002 000003221
Arquivos Sequenciais
7. ARQUIVOS
1. ABRINDO ARQUIVOS: Não se pode obter qualquer informação de um arquivo sem antes abri-lo. Em qualquer linguagem computacional, os comandos responsáveis pela abertura de arquivos necessitam do nome do arquivo a ser aberto e retornam uma referência para o arquivo aberto.
MATLAB
fp = fopen('nome_do_arquivo', 'tipo_do_arquivo')
onde:
nome_do_arquivo – é o nome do arquivo a ser aberto;
tipo_do_arquivo – indica qual ação será realizada sobre o arquivo
leitura (r); gravação (w);
inserção em um arquivo já existente (a).
fp – referência para o arquivo. Se fp for igual a -1, algum erro ocorreu na abertura
deste arquivo.
Exemplo:
fp = fopen( 'c:/temp/exemplo01.dat', 'r' );
obs: Caso o arquivo de dados já exista ou esteja sendo criado na mesma pasta onde o código “.m” está salvo, não há necessidade de indicar todo o caminho do arquivo.
Arquivos Sequenciais
7. ARQUIVOS
2. FECHANDO ARQUIVOS: Todo arquivo aberto deve ser fechado para evitar que os dados fiquem expostos a agentes externos.
MATLAB fclose(referência_para_o_arquivo) Exemplo: fclose(fp);
Arquivos Sequenciais
7. ARQUIVOS
2. FECHANDO ARQUIVOS: Todo arquivo aberto deve ser fechado para evitar que os dados fiquem expostos a agentes externos.
MATLAB fclose(referência_para_o_arquivo) Exemplo: fclose(fp);
3. GRAVANDO DADOS NUM ARQUIVO: Como dito anteriormente, na concepção seqüencial, os dados são gravados no arquivo de forma contínua.
MATLAB
fprintf( fp, 'especificações de formato para cada variável da lista', 'lista de variáveis')
sendo a especificação de formato da forma % I1.I2tipo
I1 é um número inteiro indicando o quanto de espaço existe para escrever o número; I2 é um número inteiro indicando o quanto deste espaço definido por I1 será
considerado como a parte decimal;
Arquivos Sequenciais
7. ARQUIVOS
Arquivos Sequenciais
7. ARQUIVOS
Exemplo 60: Fazer um programa para ler o nome de 5 alunos e suas respectivas médias e armazená-las em um arquivo de dados. As informações sobre os alunos devem ser armazenadas em registros.
Arquivos Sequenciais
7. ARQUIVOS
Exemplo 60: Fazer um programa para ler o nome de 5 alunos e suas respectivas médias e armazená-las em um arquivo de dados. As informações sobre os alunos devem ser armazenadas em registros.
Arquivos Sequenciais
7. ARQUIVOS
Exemplo 60: Fazer um programa para ler o nome de 5 alunos e suas respectivas médias e armazená-las em um arquivo de dados. As informações sobre os alunos devem ser armazenadas em registros.
Nesse momento, cria-se um novo arquivo de dados, chamado arquivo_01.dat’
Arquivos Sequenciais
7. ARQUIVOS
4. LENDO ARQUIVOS: A leitura de dados em um arquivo é feita de forma contínua, sequencial
MATLAB
a = fscanf( fp, 'especificações de formato para cada variável da lista', num_dados)
sendo a especificação de formato da forma %tipo
tipo assume os seguintes valores: d, i, o, u, x, X, f, e, E, g, G, c, s.
Exemplo:
fp = fopen('nome_do_arquivo', 'tipo_do_arquivo') a = fscanf(fp , ‘%s’, 1 );
Arquivos Sequenciais
7. ARQUIVOS
Exemplo 61: Criar um programa que leia um arquivo de dados contendo dois números, e faça a soma destes.
4 5
arquivo “s.dat” (formato binário) *dados podem ser separados por espaço, tabulação, linha
4 5 4 5
fclose(fp);
O arquivo pode ter qualquer extensão (*.dat, *. dados, *.res, ...etc), mas sempre terá o formato binário
Arquivos Sequenciais
7. ARQUIVOS
Exemplo 62: Fazer um
programa para ler o nome de 5 alunos e suas respectivas médias a partir de um
arquivo de dados. As
informações sobre os alunos devem ser armazenadas em registros. Na sequência, calcular a média da turma e imprimir na tela.
Arquivos Sequenciais
7. ARQUIVOS
Exemplo 62: Fazer um
programa para ler o nome de 5 alunos e suas respectivas médias a partir de um
arquivo de dados. As
informações sobre os alunos devem ser armazenadas em registros. Na sequência, calcular a média da turma e imprimir na tela.
Arquivos Sequenciais
7. ARQUIVOS
Exemplo 62: Fazer um
programa para ler o nome de 5 alunos e suas respectivas médias a partir de um
arquivo de dados. As
informações sobre os alunos devem ser armazenadas em registros. Na sequência, calcular a média da turma e imprimir na tela.
%leitura dos dados
M
Arquivos Sequenciais
7. ARQUIVOS
Exemplo 62: Fazer um
programa para ler o nome de 5 alunos e suas respectivas médias a partir de um
arquivo de dados. As
informações sobre os alunos devem ser armazenadas em registros. Na sequência, calcular a média da turma e imprimir na tela.
%leitura dos dados
Joao 8.1 Jose 5.8 Maria 9.0 Carla 7.5 Ivan 4.6 M arquivo “arquivo_01.dat”
*FUNÇÃO sprintf.m
Converte valores numéricos quaisquer em formato string.
Permite compor “frases” mais elegantes para a saída de dados.
NOSSOS PROBLEMAS ACABARAM!!!!!!!
Trecho do help da função sprintf.m
A=sprintf('%0.5g',(1+sqrt(5))/2) A=‘1.618’
B=sprintf('%0.5g',1/eps) B=‘4.5036e+15’
C=sprintf('%15.5f',1/eps) C=‘4503599627370496.00000’ D=sprintf('%d',round(pi)) D=‘3’
E=sprintf('%s','hello') E=‘hello’
F=sprintf('The array is %dx%d.',2,3) E=‘The array is 2x3.’