Ir ao conteúdo

Flávio Pedroza

Membro Pleno
  • Posts

    2.145
  • Cadastrado em

  • Última visita

Tudo que Flávio Pedroza postou

  1. A biblioteca dirent.h não está corretamente instalada no seu compilador.
  2. Exponencial em C é dada pela função exp(x). Para calcular o quadrado, você pode usar a função pow(x,2) ou simplesmente x*x. Ambas funções são da biblioteca math.h. A função F(X) seria algo assim: y = 2*x*x - 5*exp(2*x) - 12; você tem que fazer um laço interativo para calcular a área dos retângulos entre A e B (no caso serial 6 retângulos). A altura do retângulo é o valor de F(X) (y) e a base é 0,05 ((1,75 - 1,45) / 6) .
  3. 1
  4. você está manipulando as strings de forma errada. Para comparar strings, não use "==", use a função strcmp. Para copiar o conteúdo de um string não use "=", use strcpy. http://www.cplusplus.com/reference/cstring/strcmp/ http://www.cplusplus.com/reference/cstring/strcpy/
  5. você pode usar a biblioteca <dirent.h> para obter todos os nomes de arquivos de um diretório: #include <dirent.h> #include <stdio.h> int main() { DIR *d; struct dirent *dir; d = opendir("."); //diretório atual; if (d != NULL) { while ((dir = readdir(d)) != NULL) //lsita todos os arquivos do diretorio { printf("%s\n", dir->d_name); FILE * pFile; pFile = fopen (dir->d_name,"r"); //abre o arquivo if (pFile!=NULL) { // insira aqui o codigo que manipula o arquivo fclose (pFile); } } closedir(d); } return 0; }
  6. int escolhaOpção1 = 0; do { Console.WriteLine("Menu locação:"); Console.WriteLine("1 //////// Cadastro do aluno"); Console.WriteLine("2 //////// Locação"); Console.WriteLine("3 //////// Vizualar cadastro"); Console.WriteLine("4 //////// Sair"); Console.Write("Escolha uma opção:"); escolhaOpção1 = int.Parse(Console.ReadLine()); switch (escolhaOpção1) { case 1: Console.Write("Digite seu login:"); string login = Console.ReadLine(); Console.Write("Digite sua senha:"); string senha = Console.ReadLine(); Console.Write("Digite seu e-mail:"); String email = Console.ReadLine(); Console.WriteLine("Cadastro feito com sucesso, deseja voltar ao menu?"); break; } } while (escolhaOpção1 != 4);
  7. //while(fread(&reg2, sizeof(nome),1,PONTARP)==1){ while(fread(&reg2, sizeof(pedido),1,PONTARP)==1){ Na consulta
  8. //while( opcao != 6); while( opcao != 8);
  9. 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); }
  10. 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.
  11. 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.
  12. 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
  13. "Gamer" é marketing, o que importa é se a fonte tem boa qualidade, ou seja, entrega realmente a potência anunciada de forma estável.
  14. Acho que a que ele pretende comprar e essa aqui: http://www.mymax.ind.br/produtos/fonte-gamer-atx-600w-80-bronze/
  15. Acrescenta essas linhas: mostrar_pilha(); op = 1; //acrescentar while(op != 0){ (...) printf("S. sair \n"); scanf ("%d", &op); //acrescentar switch (op) Deve funcionar agora.
  16. 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.
  17. 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.
  18. 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.
  19. Para comparar strings, use a função strcmp https://www.geeksforgeeks.org/strcmp-in-c-cpp/
  20. você está mostrando o valor do desconto. O total a pagar seria o valor inicial menos o desconto: valorF=valorI - valorI*0.10;
  21. 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); }
  22. 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]);
  23. Drivers da placa de vídeo e dos demais componentes do pc estão atualizados?
  24. //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.
  25. 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.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!