Ir ao conteúdo
  • Cadastre-se

o.aprendiz

Membro Pleno
  • Posts

    21
  • Cadastrado em

  • Última visita

Tudo que o.aprendiz postou

  1. Consegui, 1freakday! Obrigado pela ajuda!
  2. Boa noite! Gostaria de aprender a usar bibliotecas dinâmicas em programas escritos em C. Tentei fazer um programa de teste usando uma dll, feita por mim, mas na hora de compilar está dando o erro: "undefined reference to `__imp_dllsoma'". Parece ser algum problema de fazer os links na hora de compilar. Criei a dll e o programa usando o devc++ no windows. No anexo está o programa de teste. Se alguém puder me ajudar a entender o problema eu agradeço desde de já. teste_dll.rar
  3. Olá, danieltm64! Cara... Valeu pelas dicas! Com relação a comparação entre floats, vou ter que arranjar outra forma de fazer isso, então!? Pelo que eu andei pesquisando, referente a variáveis de tipo float, parece que tem umas particularidades por causa de arredondamentos que são feitos, por causa dos erros que você mencionou. Bom... Vou dar uma pesquisada pra ver como seria o melhor jeito de fazer o que eu preciso. Mas seus esclarecimentos já me ajudaram. Obrigado pela força!
  4. Bom dia, pessoa! Estou com um problema referente a cálculos usando float. Estou trabalhando em um dispositivo que possui uma plataforma específica, com um SDK específico (e isso é bem ruim) e, apesar de muitas funções serem as mesmas do C padrão, algumas não funcionam exatamente igual as do C padrão (e isso é mais ruim ainda), que é o caso da função "sprintf(...)". Preciso transforma uma variável float em uma string. Eu sei que a função "sprintf(...)" faz isso, porém, essa função não está funcionando para esse tipo de conversão, é um problema da plataforma mesmo, mas ela funciona bem para transformar um valor inteiro em uma string. Bom... então, eu criei uma função que separa a parte inteira da parte decimal, converto a parte decimal em inteira e depois uso a função "sprintf(...)" para juntar as partes, colocar um ponto entre elas e armazenar em um buffer, logo, eu tenho o valor de float convertido para string. Ex: 1 - Valor original: 12.5301f 2 - Parte inteira: 12 3 - Parte decimal: 0.5301f -> converte para inteiro: 5301 4 - uso o "sprintf ()" para concatenar as partes e converter para string: sprintf(buf, "%d.%d, 12, 5301); 5 - conteúdo do "buf" = "12.5301"; Até ai ok. Para eu converter a parte decimal em inteiro eu fiz da seguinte forma: 1 - Multiplico a parte decimal por 10, para que a primeira casa decimal vire um valor inteiro; 2 - Armazeno e acumulo a parte inteira; 3 - desconto a parte inteira da parte decimal (deixando, novamente, apenas a parte decimal na variável) até que a variável tenha o valor "0.0"; Ex: Decimal = 0.530100 * 10 = 5.301000 -> Decimal = 0.301000 Inteiro = 5 Decimal = 0.301000 * 10 = 3.010000 -> Decimal = 0.010000 Inteiro = 53 Decimal = 0.010000 * 10 = 0.100000 -> Decimal = 0.100000 Inteiro = 530 Decimal = 0.100000 * 10 = 1.000000 -> Decimal = 0.000000 Inteiro = 5301 Fim -> Inteiro = 5301 Só que isso não está funcionando, pois, sempre que multiplico o valor decimal por 10, o valor decimal está se alterando de uma forma imprevista. Então resolvi fazer um teste no windows. Usando o netbens como IDE eu implementei a mesma função e vi que ocorre o mesmo problema . O problema é que, quando eu multiplico a parte decimal por 10, o processador está "desaredondando" o valor decimal. Veja abaixo o mesmo processo anterior, mas agora o que ocorre realmente, no windows: Decimal = 0.530100 * 10 = 5.300998 -> Decimal = 0.300998 Inteiro = 5 Decimal = 0.300998 * 10 = 3.009987 -> Decimal = 0.009987 Inteiro = 53 Decimal = 0.009987 * 10 = 0. 099869 -> Decimal = 0. 099869 Inteiro = 530 Decimal = 0. 099869 * 10 = 0. 998688 -> Decimal = 0. 998688 Inteiro = 5300... ... E assim vai até que chegue em algum ponto onde "Decimal = 0.0". E isso vai bastante longe a ponto de dar overflow na variável inteiro deixando o resultado com um valor não esperado tipo: Inteiro = -232161348412479... Minha duvida é: 1) Porque o processador "desaredonda" o valor decimal quando multiplico por 10? 2) Isso é um comportamento normal? 3) Eu estou fazendo algo errado? 4) Não estou levando em consideração algum comportamento de hardware ou SO? Estou enviando o código para vocês testarem. Nó código existem alguns "prints" para ver os valores conforme for calculando a transformação. Fiquem a vontade para mudarem os "prints" de lugar, mas só peço que fiquem atentos a dois "prints" que destaquei, no código, e quando impressos apresentam setas apontando para valor "printado", são esses "prints" que mostram o momento do "desaredondamento". Agradeço desde já pela a ajuda. TesteFloat.c
  5. Funcionou, Alissom!! Consegui instalar novamente o play store. Cara... Valeu. Obrigado, mesmo!!!
  6. Ola, pessoal! Estou com problema em usar o google play store: Formatei o celular, da minha mãe, e quando tento utilizar o play store ele mostra a mensagem "a aplicação google play store (processo com.android.vending) parou inesperadamente. Tente novamente". Tentei algumas soluções que encontrei em outros fóruns, sendo que um deles sugere que eu baixe o play store e armazene na pasta system, do root do celular, utilizando um apk que me dê acesso ao root do celular. Mas esbarrei em outro problema/dilema: Como eu faço pra baixar e instalar um apk sem o google play store (já que o mesmo não está funcionando)???? Não entendo muito sobre essas coisas, então resolvi buscar ajuda. A marca e o modelo do celular é: Samsung GT-S6102B. A versão do android é: 2.3.6 Agradeço desde já pela ajuda.
  7. Ola, pessoal! Estou com uma dúvida referente ao comando "shutdown()" do socket: É possível desabilitar um comando "shutdown()" do socket? Exemplo: se eu der o comando "shutdown()", em um socket ativo, para encerrar umas das direções do socket (send ou receive) sem precisar destruir o socket, eu consigo desabilitar esse comando para que o socket volte a a trocar dados para ambas as direções? Ou eu devo realmente destruí-lo, dando um comando "close()" e abrir outro socket? Estou programando em linguagem C. Agradeço desde já pela ajuda.
  8. Olá pessoal! Estou iniciando a programar PIC em linguagem C, utilizando o ccs e seus códigos prontos. Dae me deparei com o hi-tech e não consigo faze muita coisa. Queria saber se tem algum livro que vocês possam me recomendar para que eu aprenda a programar em C utilizando o hi-tech e sua linguagem pura? Vaaleu pessoal!

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!