Ir para conteúdo
Fórum Script Brasil

PeriWinkle

Membros
  • Total de itens

    9
  • Registro em

  • Última visita

Sobre PeriWinkle

PeriWinkle's Achievements

0

Reputação

  1. PeriWinkle

    Comando seek()

    Preciso de ajuda. Atraves de uma lista com o numero inteiro que representa o deslocamento do inicio de um arquivo, gostaria de usar a função seek() para imprimir todas as linhas apontadas pela lista. Porem quando uso esse comando em um for, ele não fica certo, e imprime informaçoes incorretas. Já quando faço um por vez, a informação é impressa de forma correta. alguém tem alguma sujestao?
  2. Boa tarde! Se alguém souber como ou onde conseguir informações de como posso desenhar/plotar um gráfico a partir de uma série de dados usando a biblioteca gtk, por favor compartilhe nesse tópico. Preciso fazer um trabalho de faculdade e estou encontrando dificuldade nessa parte. Agradeço.
  3. PeriWinkle

    Problemas com Arvore

    Uhm, verdade não tinha visto que tu tinha definido a função como void
  4. PeriWinkle

    Problemas com Arvore

    Cara, acho que tu não ta ligando os ponteiro na hora de adicionar um novo nó. Tu ta chamando recursivamente, mas não esta colocando onde o retorno deve ser fixado. Por exemplo: if(Raiz->valor < valor){ Raiz->No_Dir = adiciona(Raiz->No_Dir,valor); } E a mesma coisa pro esquerdo
  5. Se a hora inicial da partida for maior que hora final da partida, é necessário obter o tempo de horas decorridas no dia até o início da partida. Senão é só tirar a diferença entre os horários. scanf("%d", &hora_inicial); scanf("%d", &hora_final); if(hora_inicial >= hora_final){ duracao = 24 - hora_inicial + hora_final; } else{ duracao = hora_final - hora_inicial; }
  6. Olá Vivian! Pelo que eu entendi, você não está querendo criar uma lista como os dados dos candidatos nesse exercicio, portanto é necessário guardar apenas os dados do vencedor para apresentar no final. do{ //Leitura dos dados printf ("Informe o codigo de inscricao: "); scanf ("%d",&codigoInscricao); printf ("Informe a nota do candidato em numero inteiro nessa escala [0 a 10]:"); scanf ("%d", ¬a); fflush (stdin); //mudança de variável de controle de laço printf ("Deseja inserir mais um candidato? \n"); printf ("[tecle s ou n para continuar]: "); scanf ("%c", &tecla); printf("\n"); }while (tecla == 's' || tecla == 'n'); Acho que não é necessário limpar o buff nessa situação Seu laço deve permanecer ativo apenas quando a tecla s for digitada ou seja while(tecla == 's') Outro ponto interessante é que você pode fazer as comparaçoes dentro deste mesmo laço, pois veja: Ao ler uma nota e uma inscrição você verifica se e nota é maior que a notaVencedor fazendo o seguinte teste: if (nota>notaVencedor){ notaVencedor = nota; codigoVencedor = codigoInscricao; } Depois é só fazer o teste: if (notaVencedor == -1){ printf ("Não houve vencedor."); else printf("O codigo vencedor %d e sua nota é %d: " ,codigoVencedor, notaVencedor); Espero ter ajudado!
  7. Ao invés de fazer todos esses if's, tu poderia fazer dois laços for do tipo: for(i=-1; i<=1; i++) { for(j=-1; j<=1; j++){ //Se o elemento atual não for o da coordenada fornecida pelo usuario e o seu valor for 1, soma-se uma unidade ao contador if ( ((x+i!=x) || (y+j!=y)) && (matriz[x+i][y+j] == 1)) contaUm++; } } Tu só tem que tomar mais alguns cuidados em relação aos limites da matriz. Por exemplo, tu não pode tentar pegar um elemento abaixo do indice [0] nem acima do indice maximo da matriz
  8. Problema resolvido. O erro estava na função: def verificaPrimos(numeroCandidato): if numeroCandidato < 2: return 0 else: raiz = int(math.sqrt(numeroCandidato)) if raiz%2 == 0: raiz = raiz - 1 #end_if while raiz >= 3: if numeroCandidato%raiz == 0: return 0 #end_if #end_while #end_if_else return 1 Que não estava atualizando a raiz dentro do laço, modificando para def verificaPrimos(numeroCandidato): if numeroCandidato < 2: return 0 else: raiz = int(math.sqrt(numeroCandidato)) if raiz%2 == 0: raiz = raiz - 1 #end_if while raiz >= 3: if numeroCandidato%raiz == 0: return 0 raiz = raiz - 2 #end_if #end_while #end_if_else return 1 Tudo se resolveu
  9. Seguinte, to querendo desenvolver um programinha que ache números primos. Só que eu queria usar todo os cores disponiveis na minha máquina. A principio desenvolvi um codigo inicial, porém só consigo chegar até o número 10, depois disso nenhum outro primo é impresso. Se alguém souber o que tenho que modificar seria de grande ajuda. import math import sys from multiprocessing import Process def verificaPrimos(numeroCandidato): if numeroCandidato < 2: return 0 else: raiz = int(math.sqrt(numeroCandidato)) if raiz%2 == 0: raiz = raiz - 1 #end_if while raiz >= 3: if numeroCandidato%raiz == 0: return 0 #end_if #end_while #end_if_else return 1 def multProcess(numInicial,numFinal,numCores): passo = numCores*2 contNumeros = numInicial contPrimos = 0 while contNumeros <= numFinal: print "Verificando %s" %contNumeros if verificaPrimos(contNumeros) == 1: contNumeros = contNumeros + passo contPrimos = contPrimos + 1 else: contNumeros = contNumeros + passo #end_if_else #end_while print "Encontrados: %s" %contPrimos if __name__ == "__main__": if len(sys.argv) <> 4: print "Parametros Incorretos" else: if int(sys.argv[1]) % 2 == 0: valorInicial = int(sys.argv[1])+1 else: valorInicial = int(sys.argv[1]) #end_if_else p1 = Process(target=multProcess, args=(valorInicial, int(sys.argv[2]), int(sys.argv[3]))) p1.start() p2 = Process(target=multProcess, args=(valorInicial+2, int(sys.argv[2]), int(sys.argv[3]))) p2.start() #end_if_else
×
×
  • Criar Novo...