Ir ao conteúdo

Carlos Zanon

Membro Pleno
  • Posts

    363
  • Cadastrado em

  • Última visita

Tudo que Carlos Zanon postou

  1. Você poderia usar bitwise no caso :v Neste exemplo você pode salvar até 32767 mas vai precisar usar 2 variáveis. int valor = 5000; int bits = 8; int mascara = (2<<bits)-1; // no caso deve-se considerar o 0, por isso remove 1. (de 0 até 255, são 256 valores possíveis) // Obtém o valor e o valor dentro da mascara para // retorno. int flag_mascara = valor & mascara; int valor_mascara = valor >> bits; // Salvar os 2 valores acima. ambos devem ser menores que 255. // Para recuperar os valores... int valor_original = (valor_mascara << bits) | flag_mascara; Se você quiser ter uma ideia dos valores máximos que vai poder usar... Você usar a fórmula: (2 ^ ((bit * 2) - 1)) - 1 Dai... (2^((8*2)-1)) - 1 = (2^15) - 1 = 32767 Ou se você quiser a conta maior... ((2^8 * 2^8)/2) - 1 = 32767
  2. Já tentou dar uma olhada nisso? Isso aqui impede que o submit faça o trabalho dele dentro de um form.
  3. Se vocês estão esperando que o cURL, ou qualquer outra biblioteca que realiza requisições, faça a execução de javascript que está por trás disso, vocês vão continuar com o mesmo problema. As páginas que vocês estão tentando carregar e etc... devem executar chamadas em javascript para carregar o resto do conteúdo. cURL não executa javascript. O Conteúdo não vai ser carregado. É mais fácil vocês pedirem que desenvolvam um webservice que ficarem tentando simular o envio da requisição para os dados brotarem na tela
  4. coloca logo após o <? aquele mb_internal, deve funcionar
  5. Tenta adicionar (*UTF8) no começo das expressões regulares... tipo: preg_match("(*UTF8)#stream[\n|\r](.*)endstream[\n|\r]#ismU" Me recordo de ter resolvi problemas assim antigamente :v Em outras situações usei o essa aqui http://php.net/manual/en/function.mb-internal-encoding.php junto com os preg_match tenta usar o mb_internal_encoding primeiro, se não me engano é o que melhor funciona ;P @edit mb_internal_encoding('UTF8'); preg_match("#stream[\n|\r](.*)endstream[\n|\r]#ismU"
  6. Como está a temperatura do seu i3? A Pasta térmica está em dia? Ele reiniciando pode ser que o processador esteja abrindo o bico por conta de overclock ou algo do gênero que você tenha feito, não sei dizer.
  7. Vamos lá... No seu caso, o PHP está escrevendo linhas de HTML, então, tanto faz ai a forma que você vai usar. Mas tenha em mente o que digo abaixo: PHP é uma linguagem que roda no servidor... Quando você acessa uma página de internet, ela passa pelo servidor que está hospedado, processa o que tem que processar e devolve os dados. Esse é o serviço do PHP, >> devolver os dados que estão no servidor << naquele momento. O HTML apenas exibe o resultado. É igual você tirar uma foto sua hoje e uma nova foto em outro momento, quem recebeu sua foto anterior, só vai ter acesso a primeira imagem até que você mande a segunda, certo? << Entenda isso como um F5 kkk atualizar os dados :v O HTML não muda sozinho, ele precisa de alguém pra alimentar as informações em tela, aqui entra nosso amigo PHP para fazer os acessos ao banco e normalmente é ele quem devolve tudo. Uma observação: o javascript com ajax, é usado para solicitar ao servidor dados e então modificar o HTML... então numa requisição ajax: 1. Quem alimentou os dados? PHP 2. Quem escreveu as novas informações em tela? Javascript 3. Qual formato foi responsável pela exibição adequada em tela? HTML.
  8. Porque você não está indicando qual posição do vetor está trabalhando e o programa não consegue adivinhar isso pra você :v Ele obtém, por padrão, a primeira posição dele :v Quando você declara um vetor de 8 posições, por exemplo, a variável declarada aponta para 8 posições de memória ao mesmo tempo, sendo assim acessadas usando os índices do vetor. int vetor[8] = { 12, 5, 8, 1, 7, 4, 10, 0 }; As posições de índices variam de 0 até 7. Quando você utiliza somente a chamada "vetor", que é o seu caso, você está passando a primeira posição é como se você fizesse "vetor[0]"... se você deseja fazer com que ele acesse as demais opções, você tem que: 1º- Não usar variáveis de escopo de função. Faça um teste de mesa aqui. Quando você declarou maior, dentro de lervetor(), cada vez que você chamar ela, ela será igual a zero. A Segunda coisa é que &vetor, apontará para a primeira posição do vetor como eu mencionei ali emcima, então você sempre irá gravar o ultimo valor lido dentro de "vetor[0]" e como você não contou pra função qual era o valor maior do vetor, ela deverá usar o valor que você inicializou ela com zero... então sempre o primeiro número e o maior valor serão os últimos que você digitar. Seria melhor você separar em partes. /** * Faz a leitura e gravação de um vetor inicializado e retorna o maior valor * para o mesmo. */ int lerVetor(int vetor[], int tamanho) { int i, maior; // Faz a leitura completa do vetor. for(i = 0; i < tamanho; i++) { int aux; scanf("%i", &aux); if(i == 0 || aux > maior) maior = aux; vetor[i] = maior; } return maior; }
  9. Normalmente se usa pra "habilitar" acentuação, mensagens de erro e etc >> no console << setlocale(LC_ALL, “Portuguese”); printf("É aqui a função de acentos funciona.");
  10. @Rafael Filho Essa resposta ai se aplica completamente a você. Você ainda não entendeu a lógica para se trabalhar com vetores. Você precisa ler cada posição separadamente e ir atribuindo o valor maior. Acesso a vetores, como você mesmo postou em outro tópico seu No tópico que mencionei acima, você dá a entender que sabe acessar os indices de vetor A[i+8], porém, não aplicou no seu código ai emcima... Resumão: Você está trabalhando apenas com a primeira posição do vetor, logo, a primeira é a ultima posição, então, ele sempre vai ser o maior...
  11. Está mal formulado o enunciado ou é um teste de lógica o enunciado. E se for um teste, pra você, faltou um pouco de lógica pra entender também. Quantas notas cada aluno deveria possuir? somatoria = nota[0] + ... + nota[n]; media = somatoria / n Se for apenas uma, assume-se que a própria nota é a média.
  12. @Danillo Pain Seu problema é mais com conceito de vetores do que com o programa parece. Vou lhe dar um exemplo prático. Quando você está na escola, existe uma lista de chamadas em cada sala, correto? Cada aluno, se encontra em uma posição. (Ignore o tipo de ordenação) Aluno 1 = Aline Aluno 2 = Carlos Aluno 3 = Danilo Agora imagine isso dentro de um vetor. [ "Aline", "Carlos", "Danilo" ] Agora, imagine o professor dessa sala, como o programa e siga o dialogo: 1- Você: Quero um aluno. 2- Professor: Qual aluno? O Aluno 1? 3- Você: Quero o aluno 2! 4- Professor: Ah, o "Carlos". Em linha de código você está tendo problemas no item 3 ali, você não está sabendo informar qual posição você quer trabalhar. Você precisa informar qual posição você quer trabalhar. Quando você não informa ele utiliza a posição inicial (0) Muda pra: scanf("%f", &codigo[i]); Faça as mesmas coisas nos outros trechos onde você utiliza os laços e deveria acessar as posições corretas
  13. Você não está conseguindo ou nem se mexeu pra fazer? Poste o que já fez...
  14. se nao me falha memoria... n precisa do & você só usa assim na função... fora nao usa
  15. Sim, é por referência :v Recomendo você usar ele por inteiro como ponteiro se for usar... Por exemplo... int* vetor; int i; vetor = (int*)malloc(sizeof(int*) * 5); memset(vetor, 0, sizeof(vetor)); for(i = 0; i < 5; i++) *(vetor+i) = 1; Dai como citei em cima... pra acessar as posições... *(vetor+ <posicao>) Por exemplo você quer a posição 5 *(vetor + 4) Lembrando que o vetor se inicia em 0, logo o número 4 é 5ª posição
  16. use int vetor[] ou int* vetor Escolha um, não use os 2 juntos. Veja aqui um exemplo funcionando com o int vetor[]
  17. @IsabelleF Antes de qualquer coisa... Você precisa entender o 'Me' e o 'Controls'. Eu não entendo de VB mas mexo muito com C#, então, deve ser bem próximo. O 'Me' deve representar um WindowsForm e o 'Controls' todos os componentes dentro dele. Quando ele executa o For Each ali, ele está varrendo todos os componentes... o GetType() serve para ele obter a tipagem daquele Control. Que pode ser "System.Windows.Forms.TextBox" e etc... mas ali no dele, ele só quer os Label, então... Para um jogo de forca, ele deve estar usando isso ai, para exibir letra a letra que você acertou/errou, depende de onde está colocando...
  18. No dia dia, quando um motorista vai fazer uma curva, ele deve ligar a seta, correto? Porque? Para indicar onde ele vai... então ela é usada para apontar direções. Em C, o '->' é a seta.... então use sempre a seta para apontar , Se você não precisa apontar, então use o '.' Você não usou a tag CODE na sua postagem, recomendo a leitura:
  19. Sim... você retorna o ponteiro... Fiz um exemplo logo abaixo :v #include <stdio.h> #include <stdlib.h> struct lista { int valor; struct lista* proximo; }; struct lista* lista_init(int); void lista_add(struct lista**, int); struct lista* lista_buscar(struct lista*, int); int main() { struct lista* l = lista_init(0), *next, *search; int i; for(i = 0; i < 10; i++) lista_add(&l, 10-i); for(next = l; next != NULL; next = next->proximo) printf("%d\n", next->valor); search = lista_buscar(l, 15); if(search == NULL) printf("Valor 15 nao foi encontrado...\n\n"); else printf("Valor 15 encontrado...\n\n"); search = lista_buscar(l, 10); if(search == NULL) printf("Valor 10 nao foi encontrado...\n\n"); else printf("Valor 10 encontrado...\n\n"); return 0; } /** * Realiza a busca de um valor na lista. * * @param *l Ponteiro para lista que possui todos os valores. * * @return Retorna o no da lista para a posição do valor encontrado. */ struct lista* lista_buscar(struct lista* l, int valor) { if(l->valor == valor) return l; if(l->proximo != NULL) return lista_buscar(l->proximo, valor); return NULL; } /** * Adiciona um novo valor a lista. * * @param **l ponteiro de ponteiro para lista * @param valor Valor para ser adicionado a lista. */ void lista_add(struct lista** l, int valor) { if((*l)->proximo == NULL) { (*l)->proximo = lista_init(valor); return; } lista_add(&(*l)->proximo, valor); } /** * Inicializa uma nova lista com um valor definido. * * @param valor Valor para a lista. * * @return Endereço de memória para a lista. */ struct lista* lista_init(int valor) { struct lista* l = (struct lista*)malloc(sizeof(struct lista*)); l->valor = valor; l->proximo = NULL; return l; }
  20. A Primeira regra da recursão é sempre defina a regra de parada. Sua lógica está um pouco... estranha usando variáveis de escopo dentro da função... nunca vai te dar uma saída correta... Sempre vai dar a saída "2" e se mandar um 0 como parâmetro, ele entra em loop infinito :v Uma coisa que você está se esquecendo... Fibonnaci(4) = Fibonnaci(3) + Fibonnaci(2) Fibonnaci(3) = Fibonnaci(2) + Fibonnaci(1) Fiz um exemplo abaixo... #include <stdio.h> #include <stdlib.h> unsigned long fibonnaci(unsigned int); int main() { unsigned int i; for(i = 1; i <= 30; i++) printf("%d = %ld\n", i, fibonnaci(i)); return 0; } /** * Realiza a contagem de fibonnaci * * @param num posição do da contagem de fibonnaci. */ unsigned long fibonnaci(unsigned int num) { // Regra de parada, sempre que for 0 ou 1, retorna o proprio número... // A Contagem de fibonnaci começa partir do número 2. if(num <= 1) return num; return fibonnaci(num - 1) + fibonnaci(num - 2); }
  21. @Tobi Norris Com 5 volts fica complicado... mas você pode tentar usar o 28YBT-48 :v dependendo do peso da porta e da redução de atrito que ela sofra... No mercado livre, você encontra ele por um valor +- de R$ 16,00
  22. Eu recomendo "C Completo e Total"
  23. Qual a corrente que deveria passar nos resistores de 100? Pode ser que você precise pegar um resistor de maior potência ali...
  24. @Gabriel Schumacher Você pode calcular ele usando progressão aritmética (PA) #include <stdio.h> #include <stdlib.h> int calcularDistancia(long, long, int); long calcularSomatorio(long, long, int); int main() { // a1 = posição inicial da PA. // an = posição final da PA. // sn = Somatório de todos os elementos desde a1 até an long a1, an, sn; // esta PA é de razão 1 int r = 1; // Obtém os valores para a1 e an scanf("%ld %ld", &a1, &an); // Se a1 for maior que an, // então troca os valores. É possível também negativar a razão. if(a1 > an) { long aux = a1; a1 = an; an = aux; } // Calcula o somatório dos itens da PA sn = calcularSomatorio(a1, an, r); // Exibe em tela o somatório. printf("%ld\n", sn); return 0; } /** * Calcula o somatório de a1 até an * * @param a1 Posição incial * @param an Posição final * @param r Razão da PA * * @return Valor do somatório do PA. */ long calcularSomatorio(long a1, long an, int r) { int n = calcularDistancia(a1, an, r); return ((a1 + an) * n)/2; } /** * Obtém qual é a posição de an dentro da PA * * @param a1 Posição inicial da PA * @param an Posição final da PA * @param r Razão razão da PA * * @return int Posição de an dentro da PA. */ int calcularDistancia(long a1, long an, int r) { return ((an - a1)/r) + 1; }
  25. Rapaz, quando a roleta entra em execução é disparada uma ação no servidor para saber qual o número ela deve marcar. Quando ela recebe o número ela calcula as rotações e velocidade que deve ir parando para cair no número desejado... Deixa eu mostrar +- como ela faz: 1. Começa a girar, e após começar a girar e travar as apostas e etc... ela envia uma requisição ao servidor para saber qual número ela deve marcar. 2. Ao receber o retorno, ela calcula o número de voltas com a velocidade atual até parar no número indicado... Mesmo que você consiga saber pelo calculo, o número, você não vai conseguir apostar antes de saber qual é o número, pois algumas dessas variáveis são dadas pelo servidor :v 'timeMax' = timeOut para resposta do servidor e parametro para aumentar o freio da roleta para "todos" pararem juntos caso você receba a resposta em um tempo diferente de outra pessoa:v

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!