Вы находитесь на странице: 1из 4

Resumo

Algoritmo 3
Declaro em algoritmo: algoritmo declare matriz[Max_lin][Max_col], ajuste[Max_lin][Max_col], dado: real cont1, cont2: inteiro Leitura escrita e atribuio cont2<-1 escreva("Entre dado [0][0] = "); leia(matriz[0][0]) maior <- matriz[0][0] Lao para cont1<-0 ate Max_lin faa para cont2<-0 at Max_col faa dado <- matriz[cont1][cont2] ajuste[cont1][cont2]<-(log(dado - menor + 1) / log(maior - menor + 1)) fim-para fim-para Funcao funcao filtrar (A[20][20]: real ,masc [3][3]: real , x: inteiro, y: inteiro): real retorne masc[0][0]*A[x-1][y-1]+ masc[0][1]*A[x-1][y] fim-funcao

criacao de tipo para criacao de matrizes tipo: TMat registro define lin, col: inteiro dados[MAXIMO_LINHAS][MAXIMO_COLUNAS]: real fim-registro Procedimento procedimento Entrar(var Mat: TMat)

declare i, j: inteiro escrever("Quantas linhas tem a Matriz? ") leia(Mat.lin) escreva("Quantas colunas tem a Matriz? ") leia(Mat.col) para i<-0 at i<Mat.lin faa para( j<-0 at j<Mat.col faa escreva("Entre com o Dado[",i,"][",j,"]: ") leia(Mat.dados[i][j]) fim-para fim-para fim-funcao Condicional? se (total<2) entao retorno <- -1 {indica erro} senao retorno <- retorno/(total-1) fim-se

LINGUAGEM C
/* estrutura TVet usada para armazenar vetores alocados dinamicamente */ typedef struct{ float *vet; //ponteiro para os elementos int dim; //dimenso do vetor }TVet; TVet v1; if(!start(&v1)) return 0; //caso de falha de alocao de memoria sair .... int start(TVet *v){ printf("\nEntre a dimensao do vetor: "); scanf("%d", &v->dim); //verificar dimensao if(v->dim < 0){ v->dim = 0; }

v->vet = malloc(v->dim*sizeof(float)); if(!v->vet){ //verificar se foi alocada a memoria return 0; }else{

Alocao de Matriz typedef struct{ int linha, coluna; float **ppm; }TMat; m->linha = l; m->coluna = c; m->ppm = malloc(l*sizeof(float *)); //quantidade de linhas como ponteiros if(!m->ppm) return 0; m->ppm[0] = malloc(l* c * sizeof(float )); //reserva espao para todas as colunas de //cada linha if(!m->ppm[0]){ free(m->ppm); return 0; } for(i = 1; i < l; i++) //associa a cada linha os espaos alocados m->ppm[i] = &m->ppm[0][i * c]; return 1;

Apresenta uma matriz passada como referencia void apresentaMat(TMat *m){ int l, c, i, j; l= m->linha; c = m->coluna; printf("\nLinha: %d Coluna: %d \n", l, c); for(i = 0; i < l; i++){ for(j = 0; j < c; j++) printf("\t%.1f", m->ppm[i][j]); printf("\n"); } } Arquivos e acesso a arquivos:

FILE *a; a= fopen("produtos.dat","rb");// w=cria arquivo vazio /* Ler o arquivo*/ a= fopen("produtos.dat","r+b");// leitura e escrita

if(a==NULL){ printf("Erro!\n"); }else{ //arquivo aberto } rewind(a); //posiciona no inicio do arquivo para nova busca fclose(a); //encerra acesso ao arquivo typedef struct{ int cod; //cdigo de produto (int) float quant; // quantidade disponvel (float) float val; //valor unitrio para o registro (float) } Tprodutos; Tprodutos p; while( fread(&p, sizeof(p),1,a) ){ // if(p.cod==codigo) { quantidade +=p.quant; valor +=p.val; } } long pos_in, pos_out; //variaveis de auxilio na posicao dentro do arquivo pos_in = ftell(a); sucesso=fread(&p, sizeof(p),1,a); pos_out = ftell(a); fseek(a, pos_in, SEEK_SET); fwrite(&p, sizeof(p), 1, a); fseek(a, pos_out, SEEK_SET);