Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

Bellator

Membros Plenos
  • Total de itens

    45
  • Registro em

  • Última visita

  • Qualificações

    0%
  1. Como vão pessoal? Eu estou tentando criar uma função que remove valores de uma lista encadeada. Se a lista possui vários elementos com o mesmo valor, a função deve remove-los de uma vez. A função que eu criei está fazendo isso, mas existe um bug que não estou conseguindo resolver. Por exemplo: se eu digito 1, 2, 3 e 1; a função remove todos os valores de 1 sem problemas, mas se eu digito 1, 1 e 2 por exemplo, a função remove os valores, mas o último elemento que sobrou, no caso o 2 ao invés de apontar para NULL, aponta para uma variável que possui valor aleatório. Se alguém puder me ajudar eu agradeceria. Segue o código: int RemoveDado(int dado) { TNODO *ptr, *antes; int achou=0; if (inicio==NULL) { printf("Lista Vazia\n"); return 0; // Lista vazia !!! } else { // Caso a lista não esteja vazia ptr = inicio; antes = inicio; while (ptr !=NULL) { if (ptr->info == dado) // achou !! { if (ptr == inicio) // se esta removendo o primeiro da lista { inicio = inicio->prox; free(ptr); printf("valor %d removido\n",dado); achou=1;// removeu !! } else // esta removendo do meio da lista { antes->prox = ptr->prox; // Refaz o encadeamento free(ptr); // Libera a area do nodo printf("valor %d removido\n",dado); achou=1;// removeu !! } } else // continua procurando no prox. nodo { antes = ptr; ptr = ptr->prox; } } if (achou==0) { printf("valor %d não encontrado",dado); return 0; // não achou !!! } else return 1; } }
  2. Obrigado, sua dica ajudou bastante, mas existe outro problema que eu não consegui resolver, em relação ao função listar. Ela consegue mostrar os nomes mas ocorre um erro na execução que não consigo descobrir o motivo. Desde já agradeço. O trexo de código problematico é: void listar (FILA fila) { if (FILA == fila) /*Não existem elementos.*/ return; printf("%d %s\n",fila->idade, fila->nome); listar(fila->prox); /*Lista os restantes elementos.*/ }
  3. Como vão pessoal? O meu problema é o seguinte: eu estou tentando implementar uma fila em C (inserção, exibição, etc...), mas quando eu tento compilar, surge uma mensagem de erro, informando que o tipo de ponteiro é incompatível na operação de inserir. Se alguém puder me ajudar eu agradeço. segue o código: #include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct sPESSOA { int idade; char nome[20]; struct sNO *prox; } PESSOA; typedef PESSOA* FILA; /*Inicaliza a Fila para se poder começar a trabalhar com esta estrutura de dados.*/ void inic (FILA ** fila) { *fila=NULL; } /*Inserir um novo registo no Fim da Fila.*/ void inserir (FILA* fila, int idade, char* nome) { if (*fila == NULL) /*Inicialização da fila.*/ { *fila=(FILA) malloc(sizeof(PESSOA)); if(*fila == NULL) /*A fila está vazia, não contém elementos.*/ return; (*fila)->idade=idade; strcpy((*fila)->nome,nome); (**fila).prox=NULL; } else inserir(&(**fila).prox,idade,nome);//é aqui onde ocorre o erro } /*Apaga um elemento do Início da fila (se existirem elementos).*/ void apagar (FILA* fila) { PESSOA *tmp=*fila; if (*fila == NULL) /*Não existem elementos.*/ return; *fila=(*fila)->prox; free(tmp); } /*Lista todos os elementos da Fila recursivamente.*/ void listar (FILA fila) { if (FILA= =fila) /*Não existem elementos.*/ return; printf("%d %s\n",fila->idade, fila->nome); listar(fila->prox); /*Lista os restantes elementos.*/ } main() { FILA* F; puts("Inicializar:"); inic(&F); puts("Listar:"); listar(F); puts("Inserir:"); inserir(&F,10,"Tiago"); inserir(&F,20,"Luisa"); inserir(&F,30,"Ana"); puts("Listar 3"); listar(F); apagar(&F); puts("Listar 2"); listar(F); apagar(&F); puts("Listar 1"); listar(F); apagar(&F); puts("Nada a listar."); listar(F); }
  4. Com vão? Eu fiz um programa em C que mostra uma série de números sorteados, utilizando a função randômica, mas ele sempre mostra os mesmos números, que gostaria de saber como fazer um sorteio mostrando números novos a cada tentativa. Grato. código: #include <stdio.h> #include <stdlib.h> #include <math.h> main() { int I, NUMERO, NUM; printf("Entre com o numero do sorteio: "); scanf("%d",&NUM); printf("\n"); printf("Numeros sorteados: \n \n"); for (I=0; I<=5; I++) { NUMERO = rand()*NUM%100; printf("%d - ",NUMERO); } printf("\n \n"); system("pause"); return 0; }
  5. Como vão? Eu estou tentando fazer um programa em javascript que calcula a area e a hipotenusa de um triangulo retangulo e gere o desenho de um trangulo no formulario; as duas primeiras partes (area e hipotenusa) eu consegui, mas a a criação da figura não, já procurei na internet, em livros mas não consegui encontrar nada. Se alguém puder me ajudar eu agradeço. Caso ajude, o código vem sem seguida: <BODY> <FORM NAME="form1" action=""> Base:<Input type="TEXT" NAME="base"> Altura:<Input type="TEXT" NAME="altura"> <Input type="BUTTON" value="Calcular" onClick="gerar()"> Area: <input type="text" NAME="result1"> Hipotenusa: <input type="text" NAME="result2"> </BODY> <script LANGUAGE="JavaScript"> function gerar() { if (validar()) { d=document.form1; base1=parseFloat(d.base.value); altura1=parseFloat(d.altura.value); area=(base1*altura1)/2; hipo=Math.sqrt(base1*base1+altura1*altura1); d.result1.value=area; d.result2.value=hipo } } function validar() { d=document.form1; n=parseFloat(d.base.value); if (isNaN(n)) { //se n não for numero ocorre erro alert("Operador invalido!"); return false; } n=parseFloat(d.altura.value); if (isNaN(n)) { alert("Operador invalido!"); return false; } else { return true; } } </SCRIPT>
  6. Como vão? Alguém conhece uma função do javascript que gera figura geométrica? Obrigado pela atenção.
  7. Como vão? Alguém sabe como ordenar uma sequencia de strings em ordem alfabetica. Por exemplo: if (PESSOA1.NOME[1] > PESSOA2.NOME[1]) { AUX.NOME=PESSOA1.NOME; AUX.ENDERECO=PESSOA1.ENDERECO; AUX.TEL=PESSOA1.TEL; PESSOA1.NOME=PESSOA2.NOME; PESSOA1.ENDERECO=PESSOA2.ENDERECO; PESSOA1.TEL=PESSOA2.TEL; PESSOA2.NOME=AUX.NOME; PESSOA2.ENDERECO=AUX.ENDERECO; PESSOA2.TEL=AUX.TEL; } No codigo acima, seu eu colocar uma palavra começada por Z e outra por A, tudo bem, mas se a primeira palavra começar por A e a outra por F, ele inverte, o que não deveria acontecer, mas isto ocorre porque o A é maior que o F em binário. Desde já agradeço.
  8. Como vão? Estou tentando implementar um programa em C que converte de decimal para hexadecimal, mas quando testo, ele imprime de tras para frente. Alguém poderia me ajudar? Grato. Código: #include <stdlib.h> #include <stdio.h> #include <math.h> main() { int OP, NUM1, RESTO, QUOCI, CONT=0, RESP=1; while (RESP!=2) { printf("1: decimal para hexadecimal \n"); printf("2: hexadecimal para decimal \n"); printf("3: decimal para octal \n"); printf("4: octal para decimal \n"); printf("5: encerra \n"); printf("informe sua opcao \n"); scanf("%d",&OP); switch (OP) { case 1: { printf("Entre com o numero: "); scanf("%d",&NUM1); QUOCI = NUM1; while (CONT!=1) { NUM1 = QUOCI; QUOCI = NUM1 / 16; RESTO = NUM1 % 16; if (RESTO==10) { printf("A"); } else if (RESTO==11) { printf("B"); } else if (RESTO==12) { printf("C"); } else if (RESTO==13) { printf("D"); } else if (RESTO==14) { printf("E"); } else if (RESTO==15) { printf("F"); } else if (RESTO==16) { printf("10"); } else { printf("%d",RESTO); } if (QUOCI>16) { QUOCI = NUM1 / 16; } else { printf("%d",QUOCI); CONT = 1; } } CONT=0; } } printf("\nDeseja continuar? SIM(1) não(2)\n"); scanf("%d",&RESP); while ((RESP!=1) && (RESP!=2)) { printf("Valor invalido, tente novamente \n"); scanf("%d",&RESP); } } system("pause"); return 0; }
  9. Eu já fiz isso em Delphi, não me lembro os detalhes mais é + ou - assim: você converte o conteudo da variavel em uma variavel de teste (de inteiro para string) dentro de uma estrutura condicional, se der erro coloque uma mensagem, senao, execute o programa principal. Acho que é isso.
  10. Programa em Java

    Estou tentando compilar um programa simples em java, mas sempre aparece a mensagem de erro "; expected", o código é: class Baralho { final int TAM_BARALHO = 52; Carta[] cartas = new Carta[TAM_BARALHO] public void imp() { for (int i = 0; i < TAM_BARALHO; i++) System.out.println(i); } } O que eu estou fazendo de errado? Grato.
  11. Como vão? Estou tentando implementar o seguinte código em C (DEV C++): #include <stdlib.h> #include <stdio.h> #include <math.h> main () { float X, SENO; printf("Entre com o valor angulo: "); scanf("%f",&X); SENO = sin(X); printf("Seno do angulo %f \n",SENO); system("pause"); return(0); } Eu compilo e executo, mas na hora de testar, se eu entro com o angulo de 90 graus a saida obtida é 0.89 e não 1 como seria o correto, por que isso ocorre? Grato.
  12. codigo em Java

    Valeu, E como eu adiciono o diretório bin do java no path do windows? Se eu não fizer isto, terei que entrar no diretório onde está o arquivo de código, para compilar e executar certo?
  13. codigo em Java

    Como vão? Alguém sabe qual o comando para compilar um codigo java e executá-lo, via DOS? Grato
  14. Eu tenho a intenção de criar um programa de segurança de redes semelhante ao COPS (Computer Oracle and Password System), mas ainda não tenho ideia de como começar, alguém poderia me dar uma indicação de que caminho a seguir?
  15. Esqueci um detalhe, o programa estava originalmente em C++, como segue: Implementação em C Void merge (int M[5o], int inicio, int fim) { int meio; comparações[3]++; if (inicio < fim) { meio = ((inicio + fim)/2); merge (M, inicio, meio); merge (M, meio+1, fim); intercala (M, inicio, meio, fim); } } void intercala (int M[50], int inicio, int fim) { int primeiro, res, segundo, k; int C[]50; primeiro = res = inicio; segundo = meio + 1; while (primeiro <= meio && segundo <= fim) { comparacoes[3]++; if (M[primeiro] <= M[segundo]) { atribuicoes [3]++; C[res]= M[primeiro]; primeiro++; } else { atribuicoes[3]++; C[res] = M[segundo]; segundo++; } res++; } comparacoes[3]++; if (primeiro > meio) for (k=segundo; k<=meio; k++) { atribuicoes[3]++; C[res] = M[k]; res++; } else for (k=primeiro; k<=meio; k++) { atribuicoes[3]++; C[res] = M[k]; res++; } for (k=inicio; k<=fim; k++) M[k] = C[k]; } http://w3.ualg.pt/~hshah/ped/Aula%2014/merge_final.html

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×