Ir para conteúdo

avner.max

Members
  • Total de itens

    6
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre avner.max

  1. avner.max

    Simulador de cache

    Preciso desenvolver um simulador de cache, onde eu consiga testar o desempenho de algoritmos de ordenação (Quick sort, Selection sort e Bubble sort) em relação a memória cache e imprimir a taxa de Cache Miss e Cache Hit de leitura e gravação de cada um dos três algoritmos. Minha dúvida é, como fica o algoritmo de ordenação nesse caso? São passados para a escolha do usuário os seguintes dados: Quantidade máxima de palavras na cache (tamanho da cache), quantidade de palavras por bloco, tipo de mapeamento, tipo de associatividade, política de substituição e política de escrita. Preciso fazer o algoritmo de ordenação cumprir cada um deles, quando for ler/gravar no vetor que representa a cache e no vetor que representa a memória. Porém não estou conseguindo imaginar como deve ficar o algoritmo de ordenação. Se alguém puder me dar uma luz, iria ficar muito agradecido! Grande abraço a todos.
  2. avner.max

    Falha de segmentação

    Alguém pode me ajudar a descobrir o que está causando está falha de segmentação? É uma calculador pós fixada, que lê os dados de um arquivo (arqEntrada) calcula e coloca o resultado em outro arquivo(arqSaida)! #include <stdio.h> #include <stdlib.h> #include <string.h> int main (int argc, char* argv[]){ int j, aux, vetAux[2]; char snumero[5]; FILE *fp; fp = fopen("arqEntrada", "r"); if (fp == NULL){ perror ("Erro ao abrir o arquivo para leitura.\n"); return(-1); } while ((fgets(snumero, sizeof(snumero), fp)) != NULL){ printf("%s", snumero); if ((snumero == "+") || (snumero == "-") || (snumero == "*") || (snumero == "/")){ if (snumero == "+") aux = vetAux[j] + vetAux[j - 1]; if (snumero == "-") aux = vetAux[j] - vetAux[j - 1]; if (snumero == "*") aux = vetAux[j] * vetAux[j - 1]; if (snumero == "/") aux = vetAux[j] / vetAux[j - 1]; vetAux[j] = aux; j = 0; }else{ vetAux[j] = atoi(snumero); j++; } } fclose(fp); fp = fopen("arqSaida", "w"); if (fp == NULL){ perror ("Erro ao abrir o arquivo para leitura.\n"); return(-1); } printf("Resultado: %i\n", vetAux[j]); fprintf(fp, "%i\n", vetAux[j]); fclose(fp); return(0); } Estou utilizando o "arqEntrada" com os seguintes dados: 1 2 + 4 * No "arqSaida" tem que chegar a resposta 12. A falha está acontecendo na linha 19, mas não estou conseguindo descobrir a causa dela.
  3. avner.max

    Erro ao subtrair de uma variável.

    Cara, passou muito despercebido, esse bendito! hahaha... Pior que li e reli esse trecho do código várias vezes... :( Muito obrigado amigo. Um grande abraço.
  4. avner.max

    Erro ao subtrair de uma variável.

    Meu código está com um problema que não consigo identificar. Tenho uma variável 'cont', nela eu conto até um determinado número e em seguida conto na ordem inversa, ou deveria contar, meu problema é quando vou contar na ordem inversa, ela faz a primeira contagem normalmente, mas na segunda em diante o resultado é sempre '-1'. Ex: Contagem normal: cont = 1, cont = 2, cont = 3, cont = 4. Contagem inversa: cont = 3, cont = -1, cont = -1, cont = -1. Se alguém puder me ajudar, desde já agradeço! Abraço. #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char* argv[]) { //Constroi Tabela Verdade int x, y, controle, cont, tam, select, quantLinhas, quantProp; quantProp = 3; //Respectivo ao número de proposições existentes na tabela verdade. quantLinhas = pow(2, quantProp); printf("quantLinhas: %i\n", quantLinhas); printf("quantProp: %i\n", quantProp); int tabela[quantLinhas][quantProp]; cont = 0; select = 0; tam = quantProp - 1; for (x = 0; x < quantProp; x++){ controle = pow(2, tam); for (y = 0; y < quantLinhas; y++){ if (select == 0){ tabela[y][x] = 0; cont++; printf("cont++: %i\n", cont); if (cont >= controle) select = 1; }else{ tabela[y][x] = 1; cont--; printf("cont--: %i\n", cont); if (cont = 0) select = 0; } } tam--; } }
  5. avner.max

    Structs aninhadas.

    Coloquei * no usuario mas não funcionou, mas caiu a ficha assim que li sua resposta. Dentro da struct usuario, coloquei 'struct tMusica musica', sendo que devia passar musica com um ponteiro. Coloquei 'struct tMusica *musica' e funcionou. haha... Muito obrigado pela ajuda. Abraço!
  6. avner.max

    Structs aninhadas.

    Boa noite galera. Tenho que entregar um trabalho da faculdade amanhã e preciso resolver isso o mais rápido possível. Sou iniciante em C e estou com problema em acessar valores de uma struct aninhada. Tenho um vetor de struct usuário e dentro dela tenho um vetor de struct músicas, so que não consigo acessar os valores do vetor de struct música. Não sei se o código está errado, mas estava compilando. Até eu tentar acessar os valores do vetor de struct música. O código: struct tMusica{ int idMusica; }; struct tUsuario{ int idUsuario, contMusica, contni, contnu; struct tMusica musica; }; struct tUsuario *usuario = (struct tUsuario*) malloc (sizeof(struct tUsuario)); struct tMusica *musica = (struct tMusica*) malloc (sizeof(struct tMusica)); Tentei acessar assim: usuario[x].musica.idMusica; *Estou usando FOR para passar os valores de x e i. Quando tento compilar aparece esse erro: error: subscripted value is neither array nor pointer nor vector usuario[x].musica.idMusica Se alguém souber, da uma mão por favor! Desde já agradeço. Grande abraço.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.