Ir ao conteúdo
  • Cadastre-se

Flávio Pedroza

Membro Pleno
  • Posts

    2.074
  • Cadastrado em

  • Última visita

Tudo que Flávio Pedroza postou

  1. Tenta usar o código ascii de cada letra: #include <stdio.h> #include <string.h> int tamanhoTabela = 16; void convert (char *dado){ int i, vet[strlen(dado)]; for(i=0;i<strlen(dado);i++) { vet[i]= 11*(dado[i])/tamanhoTabela; printf("A letra %c ocupa na tabela a posicao %d.\n", dado[i], vet[i]); //"%c" , não "%s" } } int main() { int i=0; char *dado = "UNIVERSIDADE"; printf("\nA palavra a ser guardada na tababela hash sera UNIVERSIDADE.\n"); convert(dado); }
  2. atoi não funciona para o seu caso. Ele converter NÚMEROS armazenados em uma string para o tipo inteiro. Veja o exemplo abaixo: #include <iostream> #include <string.h> using namespace std; int main() { char *num = "123213"; char *letras = "ABCDEF"; printf("%d %d", atoi(num), atoi(letras)); return 0; } A saída será: 123213 0 "UNIVERSIDADE" não tem números, atoi sempre vai retornar 0.
  3. Talvez sim, talvez não. Diz ter certificação 80 plus bronze, PFC ativo, dois PCIE de 6 pinos e suportar SLI. Se tudo que está escrito for verdade, então é boa.
  4. void mostrar_pilha() { int i; printf("\nSua pilha: \n\n"); for (i = 0; i < pilha.topo; i++) { printf("%d %s\n", pilha.dados[i].PID, pilha.dados[i].nome); } } (...) switch (op) { case 1 : printf("Digite o elemento a ser empilhado: \n"); scanf("%s", processo.nome); empilhando(processo); //metodo que empilha; processo.PID ++; break; @argolo.david
  5. "Gamer" é marketing, o que importa é se a fonte tem boa qualidade, ou seja, entrega realmente a potência anunciada de forma estável.
  6. Acho que a que ele pretende comprar e essa aqui: http://www.mymax.ind.br/produtos/fonte-gamer-atx-600w-80-bronze/
  7. Acrescenta essas linhas: mostrar_pilha(); op = 1; //acrescentar while(op != 0){ (...) printf("S. sair \n"); scanf ("%d", &op); //acrescentar switch (op) Deve funcionar agora.
  8. Na prática não funciona, no windows não tem como. Por medida de segurança, o sistema operacional não permite que você acesse endereços de memória não alocados pelo próprio programa. O exemplo serve apenas para estudo teórico. Funciona apenas em s.o. antigos, sem memória virtual, ou algo sem s.o. nenhum, como um microcontrolador.
  9. O terceiro é semelhante, você vai ler as variáveis da memória nos endereços dados: #include <iostream> using namespace std; int main() { unsigned char *c = (unsigned char *)0x2000; //aponta para o endereco 2000h unsigned char divisor = c[0]; //pega o valor do endereco 2000h unsigned char dividendo = c[1]; //pega o valor do endereco 2001h (...) return 0; } Acho que você consegue completar o resto agora.
  10. Na verdade tem sim colega, é só fazer um ponteiro com valor 2000H #include <iostream> using namespace std; int main() { char *c = (char *)0x2000; //aponta para o endereco 2000h printf ("%c", *c); //imprime o byte amrazenado naquele endreco return 0; } Obviamente, se for rodar o código irá da erro de segmentação, pois tal endereço de memória provavelmente estará alocada por outra aplicação, mas a ideia do exercício é essa. Devo dizer que os problemas são bem avançados, na verdade. Vou tentar ajudar no primeiro problema: #include <iostream> using namespace std; int main() { char *c = (char *)0x2000; //aponta para o endereco 2000h unsigned char tam = 0;//tamanho da string -max 255 //Fazer o código para determinar o tamanho da string c = (char *)0x3000; //aponta para 3000h agora *c = tam;//agora em 3000h esta armazenado o tamanho da string return 0; } "Só" falta o meio agora. Edit: existe uma função em c que já determina o tamanho de strings: strlen.
  11. Para comparar strings, use a função strcmp https://www.geeksforgeeks.org/strcmp-in-c-cpp/
  12. você está mostrando o valor do desconto. O total a pagar seria o valor inicial menos o desconto: valorF=valorI - valorI*0.10;
  13. Veja se assim funciona (não testei): while(strcmp(nome,"VAZIO")!=0) { printf("\nEntre com sua altura %s: ", nome); scanf("%f", &altura); if(altura > maior1) { maior2=maior1; maior1=altura; strcpy(nome2,nome1); strcpy(nome1,nome); } else if(altura > maior2) { maior2=altura; strcpy(nome2,nome); } printf("Entre com seu nome,(escreva VAZIO para sair): "); scanf("%s", &nome); }
  14. Usando fscanf: Assumindo que temos valores tipos float, separados por espaço em cada linha, com no máximo 100 linhas, seria algo mais ou menos assim: float coords[100][2]; //laco de leitura fscanf(pFile, "%f %f\n", &coords[i][0], &coords[i][1]);
  15. Drivers da placa de vídeo e dos demais componentes do pc estão atualizados?
  16. //for (i=0;i<11;i++) { for (i=0;i<10;i++) {//ate 10, sao 10 elementos no vetor! if (valor == vet[i]){ Para remover um elemento do vetor você desloca todos os outros para a esquerda. Ex.: 23 21 17 01 19 11 12 45 99 07 // Vou remover o elemento 11, o sexto na ordem da esquerda pra direita. 23 21 17 01 19 12 45 99 07 07 //desloquei os demais uma posicao para a esquerda. O ultimo elemento você ignora, ou seja, você irá tratar o seu vetor como se tivesse agora tamanho 9.
  17. system("cls"); for(int i=pilha.ini;i<pilha.topo;i++){ printf("\n -----dados da pilha------ \n"); // printf("------PID : %d - nome :%s-----\n\n",pilha.dados[pilha.ini].PID,pilha.dados[pilha.ini].nome ); printf("------PID : %d - nome :%s-----\n\n",pilha.dados[i].PID,pilha.dados[i].nome ); } Encontrei esse erro mais óbvio em seu programa. você também precisar de uma variável para gerar automaticamente o PID: typedef struct tipo_pilha{ tipo_gera dados[tamanho]; int ini; int topo; int PID; //crie essa variavel }tipo_pilha; Faça o elemento.PID = tipo_pilha.PID; antes de empilhar e após incremente o valor: tipo_pilha.PID++; Caso ainda tenha problemas, poste neste tópico novamente.
  18. Se formatar e instalar do zero funciona (eu mesmo já testei recentemente). Mas se for atualizar acredito que não funcione mais.
  19. Amigo, para manipular arrays em C/C++ você tem que fornecer o índice do array. for(i=0; i<6; i++){ printf("insira 6 valores:"); //scanf("%f", &pol); ERRADO! scanf("%f", &pol[i]);//colocar o índice entre [] } Corrigindo isso em outros lugares, temos o código corrigido: #include <stdio.h> #include <stdlib.h> void mostrarPolinomio(float p[6], int tam){ int grau = tam - 1; int i; for (i=0; i<tam; i++){ printf("%.2fx^%d ", p[i], grau); grau--; } } int main() { //float pol[6] = {3, -2, 1.2, 9, -3, 11}; float pol[6]; int i; for(i=0; i<6; i++){ printf("insira 6 valores:"); scanf("%f", &pol[i]); } float d1[5]; int grau1 = 5, p = 5; for (i=0; i < grau1; i++){ d1[i] = pol[i] * p; p--; } float d2[4]; int grau2 = 4, h = 4; for (i=0; i < grau2; i++){ d2[i] = h * d1[i]; h--; } float d3[3]; int grau3 = 3, f = 3; for (i=0; i < grau3; i++){ d3[i] = f * d2[i]; f--; } mostrarPolinomio(pol,6); printf("\n"); mostrarPolinomio(d1,5); printf("\n"); mostrarPolinomio(d2,4); printf("\n"); mostrarPolinomio(d3,3); }
  20. Em c o vetor começa com índice 0 e vai até dimensão - 1: int a[4] = {3,5,7}; //sao quatro elementos, e o indíce varia de 0 ate 3.
  21. while(!vazia(P)){ //P = P -> prox; if((P -> info)%2 == 0){ P = retirar(P, elem); } if (P != NULL) P = P -> prox; } Tenta assim.
  22. faz um laço (FOR) variando de um até seis.
  23. Retirar tudo e começa do zero. Veja se ligou todos os cabos de alimentação a placa-mãe. Bote só o processador + cooler (verifique se não há pinos tortos) e ligue (veja se dá sinal de post).
  24. area := (base*altura) / 2.0; writeln('area = ', area);

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!