Ir para conteúdo
Fórum Script Brasil

Jonathan Queiroz

Membros
  • Total de itens

    3.718
  • Registro em

  • Última visita

Tudo que Jonathan Queiroz postou

  1. De nada, qualquer coisa é só postar! Quanto ao último código, como assim não passou o ponteiro? Se refere a ponteiro para ponteiro, é isso? Obs.: O tópico foi marcado como Resolvido.
  2. De nada, qualquer coisa é só postar. Na verdade com setTimeout também dá, mas a cada vez que a função é executava você teria que chamá-la de novo para que a "animação" continuasse.
  3. O que você fez foi modificar o local para o qual o parâmetro bar da função foo (um parâmetro é semelhante a uma variável local) aponta, mas não alterou a variável bar da função main. O nome das variáveis pode estar fazendo alguma confusão. Acho que observando o código assim deve ficar mais fácil entender: #include <stdio.h> #include <stdlib.h> void foo(int *bar_parametro); void foo(int *bar_parametro) { int *spam; spam = (int *) malloc(sizeof(int)); *spam = 5; bar_parametro = spam; //modifiquei a variável bar_parametro, mas bar_de_main permanece inalterada } int main(void) { int variavel; int* bar_de_main=&variavel; foo(bar_de_main); printf("%d", variavel); return 0; } Para alterar o valor da varável bar_de_main, deve utilizar ponteiros de ponteiros ou retornar o valor na função foo e, na função main, fazer a atribuição (veja o código de exemplo que postei acima). No seu caso, não há necessidade real de alterar o local para o qual o ponteiro aponta, basta alterar o valor nesse local de memória. Sendo assim, pode utilizar esse código: void foo(int* bar) { *bar=5; }
  4. De nada, precisando é só postar! Quanto às linhas em branco, você pode utilizar o \n. Exemplo: printf("Linha 1\nLinha 2\n"); printf("Linha3\n");
  5. É porque você declarou as variáveis como inteiras, então será realizada a divisão inteira. Por exemplo, 5/2 = 2 e não 2.5 (o resto é ignorado). Tente declarar as variáveis como float (número de ponto flutuante) e utilizar %f ao invés de %i para fazer a leitura. A forma mais eficiente é b*b. No entanto, você pode utilizar a função de potenciação pow. Por exemplo, pow(4,2)=16 pow(4,3)=64, pow(4,0.5)=2 (raiz quadrada). A forma mais eficiente é x*x*x em termos de tempo, mas talvez o objetivo do exercício seja lhe mostrar as funções matemáticas, sendo assim use a função pow. Para obter x^3, basta escrever pow(x,3). Obs.: A função pow está disponível na biblioteca math.h.
  6. Foi mal a demora, não tinha visto a resposta antes. Já implementei isso há um tempo quando estava criando um mini-framework e postei uma adaptação aqui no fórum. Veja se isso lhe ajuda: Efeito slideToggle do jQuery em js puro.
  7. Como assim relacionar nomes? Se refere aos valores dos campos? O que você precisa fazer é apenas ligar um nó ao próximo elemento (usando variável nodo*), os outros campos (código, nome, notas) não fazem diferença nessa parte.
  8. Se possível poste o código completo do arquivo, incluindo a função main.
  9. De nada, qualquer coisa é só postar! Obs.: O tópico foi marcado como Resolvido.
  10. Você precisaria pausar o programa quando chegasse ao fim para ver o resultado (o Dev não faz isso automaticamente). Coloque uma chamada à função getch logo antes do return 0. printf("O salário e de %i/n",salario); getch(); return 0;
  11. Faltou um ponto-e-vírgula nessa linha também: int funcionario,htrab,vhora,filhos,salario Obs.: Ao postar códigos é possível utilizar a tag [code]. Basta escrever o código entre as tags [code] e [/code]. Exemplo: Resultado: int main() { ... }
  12. Está faltando um ponto-e-vírgula no fim de cada uma dessas duas linhas: salario = htrab*vhora; printf("O salário é de %i/n",salario); Veja se funciona assim. É preferível também postar os erros que o compilador indicou, assim fica mais fácil ajudar. Obs.: Não cheguei a testar, mas acho que assim deve funcionar.
  13. Isso não funciona? De qualquer maneira, você poderia fazer algo assim: var msg = "Boa tarde, Jonathan"; msg = msg.substr(0, 4) //"Boa " + "noite" + msg.substr(9, msg.length - 9) //", Jonathan" alert(msg); //"Boa noite, Jonathan" A função substr(x,y) retorna os próximos y caracteres após a posição x. Por exemplo, "abcdefg".substr(4,2)="ef".
  14. Um ponteiro nada mais é que uma variável que armazena um endereço de memória. O que você passou é o valor do ponteiro (i.e. endereço para o qual ele aponta, não deve-se confundir com o valor da variável apontada). Se quiser alterar o local para o qual um ponteiro aponta deverá utilizar ponteiros de ponteiros. Quanto à variável spam, o ponteiro é desalocado (spam), mas o valor na memória (*spam) não, aquela região da memória continuará tendo o valor 5. Nesse caso há duas opções. A primeira é retornar o ponteiro spam e, na outra função, atribuir bar a esse retorno: int* funcao1() { int* p=(int*)malloc(sizeof int); *p=5; return p; } void funcao2() { int* ponteiro=funcao1(); //atribui a variável "ponteiro" ao ponteiro que a função "funcao1" retornar } A segunda é usando ponteiros de ponteiros: void funcao1(int** ponteiro_para_ponteiro) { *ponteiro_para_ponteiro=(int*)malloc(sizeof int); //muda o endereço para o qual o ponteiro aponta **ponteiro_para_ponteiro=5; //muda o valor } void funcao2() { int* p; funcao1(&p); //passa o endereço do ponteiro como parâmetro } É como se estivéssemos modificando uma variável normal, mas essa variável que modificamos é na realidade um ponteiro. No caso de uma variável "normal", ficaria assim: int funcao1(int* p) { *p=5; } int funcao2() { int variavel; funcao1(&variavel); } Poste aí se entendeu ou não.
  15. Esse eval não está correto, ao invés disso use uma função. O que poderia funcionar é algo assim: new Function("codigo entre aspas como string") Mas nesse caso nem funcionaria por conta do escopo (a variável elStyle não estaria definida). O melhor é fazer da maneira convencional: function() { ...codigo... }
  16. Não vejo muito sentido em fazer a validação no lado servidor utilizando AJAX. O melhor é fazer via Javascript (para informar ao usuário se algo estiver errado) e fazer novamente no servidor para garantir a integridade das informações. No entanto, comunicar-se via AJAX apenas para a validação não é uma boa ideia. Seria melhor então enviar o formulário todo e, na página seguinte, informar ao usuário se ocorreram erros. De qualquer maneira, se quiser fazer isso, o que recomendo é que cancele o envio do formulário (basta retornar false na função), trave todo o formulário (sete o "enabled" dos elementos como false) e, depois de fazer a validação, envie o formulário se estiver tudo correto ou informe o usuário e habilite novamente os elementos se houver algo errado. Algo assim: formulario.onsubmit=function() { //verifica se está desabilidado (se estiver, habilita e envia, pois o comando foi feito via código) if(!formulario.enabled) { formulario.enabled=true return //envia } //desabilita o formulário formulario.enabled=false //requisição ... request.onreadystatechange=function() { if(request.readyState==4) { //verifica se a validação ocorreu com sucesso if(request.responseText=="S") { formulario.submit() //está tudo certo, envia } else { //habilita o formulário formulario.enabled=true alert("Ocorreu um erro ao validar") //erro } } } ... return false //cancela o envio do formulário }
  17. O return false indica que o formulário não deve ser enviado, sendo assim deveria estar dentro do if: function validar(){ if (document.form1.txtnome.value=="") { alert( "Preencha o campo MENSAGEM!" ); document.form1.txtnome.focus(); return false; } }
  18. Seria um efeito para que o menu aparecesse aos poucos ou simplesmente uma forma de fazer o menu aparecer "de vez" após passado determinado tempo? Se for a segunda opção, bastaria algo assim: meuMenu.onclick=function() { setTimeout( function() { outraDiv.style.visibility="visible" }, 5000 //5 seg ) }
  19. Acredito que a organização do fórum ficaria prejudicada assim. Ao invés de uma área de tutoriais sobre qualquer assunto, é melhor ter um subfórum destinado especificamente a isso em cada área. Caso alguém deseje postar dicas em um local onde não há subfórum destinado a isso, basta solicitar a criação da área.
  20. Como assim? Poderia ser mais específico? Seriam dicas sobre que assunto? A maioria das áreas tem um subfórum destinado a tutoriais e dicas.
  21. Área criada! Seu tópico foi movido ao local adequado. Peço que avisem se encontrarem algum tutorial na área principal, já que ainda não verifiquei isso.
  22. Não é necessário remover o tópico quando o problema for resolvido. Na verdade é até preferível mantê-lo, de forma a ajudar pessoas com a mesma dúvida. Peço que edite o título para como estava anteriormente, apenas acrescentando (Resolvido) (Resolvido entre parênteses e com um espaço depois).
  23. De nada, qualquer coisa é só postar! Obs.: O tópico foi marcado como Resolvido.
×
×
  • Criar Novo...