Programaçao Basica Em Java Parte 15

14
Registros E com registros? Registros Exemplo leitura...: typedef struct { char nome[20]; float media; }tipo_aluno; tipo_aluno a; tipo_aluno vet[100]; fread(&a,sizeof(tipo_aluno),1 ,f); //lendo um registro; fread(&vet,sizeof(tipo_aluno) ,100,f); //lendo o vetor todo fread(&vet,sizeof(vet),1,f); //lendo o vetor todo; Registros Exemplo escrita:

description

Programaçao Basica Em Java Parte 15

Transcript of Programaçao Basica Em Java Parte 15

RegistrosE com registros?RegistrosExemplo leitura...:typedef struct {char nome[20];float media;}tipo_aluno;tipo_aluno a;tipo_aluno vet[100];fread(&a,sizeof(tipo_aluno),1,f); //lendo um registro;fread(&vet,sizeof(tipo_aluno),100,f); //lendo o vetor todofread(&vet,sizeof(vet),1,f); //lendo o vetor todo;RegistrosExemplo escrita:typedef struct {char nome[20];float media;}tipo_aluno;tipo_aluno a;tipo_aluno vet[100];fwrite(&a,sizeof(tipo_aluno),1,f); //escrevendo um registro;fwrite(&vet,sizeof(tipo_aluno),100,f); // escrevendo o vetor todofwrite(&vet,sizeof(vet),1,f); // escrevendo o vetor todo;Como acessar um dado ou registro semprecisar ler o arquivo seqencialmente?_Funo:fseek (ponteiro_para_arquivo, posicao_relativa, marcao);Posiciona o ponteiro para arquivo binrio,relativamente marcao indicada: SEEK_SET incio do arquivo SEEK_CUR posio corrente do arquivo SEEK_END final do arquivoExemplo fseek e registros#include#includetypedef char Disc[5]; //definindo um tipo de dado novotypedef struct{int RA;char nome[30];Disc matriculas[6]; //vetor do novo tipo definido Discfloat CR;}tipo_Reg_aluno;Exemplo fseek e registrosint main(){FILE *f;tipo_Reg_aluno Vet[2] = {{12436, "Maria", {"MC102", "MA141", "F 128", "F 129"}, 0.0},{12232, "Joo", {"MC202", "MA211", "F 228", "F 229"}, 0.8}};tipo_Reg_aluno aux;f = fopen ("dados_aluno.bin", "wb"); //crio o arquivofwrite(Vet, sizeof(tipo_Reg_aluno), 2, f); //gravo o vetor inteiro no arquivofclose(f); //fecho o arquivoExemplo fseek e registrosf = fopen ("dados_aluno.bin", "r+b"); //abro novamente para alterarfseek(f, 2 * sizeof(tipo_Reg_aluno), SEEK_SET);//posiciono o ponteiro no segundo registrofread(&aux, sizeof(tipo_Reg_aluno), 1, f);//leio o registro e guardo em auxaux.RA = 61122; //altero o ra do alunofseek(f, 2 * sizeof(tipo_Reg_aluno), SEEK_SET);//posiciono o ponteiro denovo no registrofwrite(&aux, sizeof(tipo_Reg_aluno), 1, f);//Sobrescrevo o registro atualizado no arquivofclose(f); //fecho o arquivoExerccio 1Dado o arquivo numeros.bin que possui em sua primeira posioum inteiro que indica a quantidade de elementos de um vetor enas demais posies valores inteiros:Ex: 100 10 5 15 21 3 99 101 458 22 ....a) Escreva um programa que leia os elementos do arquivo eguarde-os em um vetor;b) Verifique se cada nmero primo;c) Armazene os nmeros primos em um novo arquivo binrio quedeve ter o seguinte formato: na primeira posio a quantidade de primos Nas demais posies os nmeros primosUtilize a funo ehprimo para verificar se um nmero primo paraverificar se cada nmero primoExerccio 1// --------------------funo eh primo------------------------------------------int ehprimo (int n){ // n o parmetro de entradaint resto,i, primo=1; //define primo como verdadeirofor (i=2;i