Ir para conteúdo
Fórum Script Brasil

ARSaraiva

Membros
  • Total de itens

    6
  • Registro em

  • Última visita

Sobre ARSaraiva

ARSaraiva's Achievements

0

Reputação

  1. Olá pessoal, estou com dificuldades em fazer um comando de repetição de dois array inicia em momentos distintos. O que eu estou tentando fazer é o seguinte: tenho um array de 7 posições onde os índices 0, 1 e 3 são true e os demais são false. Tenho o segundo array de 13 posições, onde os elementos 0,1,3 e 9 são true o o restante false. O array menor sempre repete até o número de elementos do maior. Na primeira iteração os dois arrays iniciam no mesmo momento, e são comparados se os índices dos dois array são true, assim tenho a seguinte saída: Array menor: 0123456012345 Array maior: 0123456789101112 É possível ver que os índices 0, 1 e 3 de cara são iguais para ambos os array, mais o índice 3 do menor coincide com o 9 do maior. Neste caso tenho como saída 4 encontros. Até aqui o código está funcionando bem, o problema é que na segunda iteração o array maior deveria iniciar quando o menor estiver no índice 1, na terceira iteração o maior deveria iniciar quando o menor estiver no índice 2 e assim por diante até terminar todos os índices do menor. Segue o código da primeira parte e da tentativa da segunda: #include <iostream> #include <stdio.h> using namespace std; int Verifica(int inimenor, int inimaior){ bool padrao_menor[7] = { 0 }; bool padrao_maior[13] = { 0 }; padrao_menor[0] = padrao_menor[1] = padrao_menor[3] = {1}; padrao_maior[0] = padrao_maior[1] = padrao_maior[3] = padrao_maior[9] = {1}; int slot_menor = 0; int slot_maior = 0; int encontro = 0; if (inimenor == inimaior){ for (int i = 0; i <= 50; i++) { if ((slot_menor >= sizeof(padrao_menor)-1) or (slot_maior >= sizeof(padrao_maior)-1)) { if (slot_menor >= sizeof(padrao_menor)-1) { slot_menor = 0; } else { slot_maior = 0; } } else { if ((padrao_menor[slot_menor] == true) and (padrao_maior[slot_maior] == true)) { encontro++; printf("Slot Menor %d, Slot Maior %d", slot_menor, slot_maior); printf("\n"); slot_menor++; slot_maior++; } else { slot_menor++; slot_maior++; } } } }else{ for (int i = 0; i <= 50; i++) { printf("Valor do I %d\n", i); if ((slot_menor >= sizeof(padrao_menor)-1) or (slot_maior >= sizeof(padrao_maior)-1)) { if (slot_menor >= sizeof(padrao_menor)-1) { slot_menor = 0; } else { slot_maior = 0; } } else { if ((padrao_menor[slot_menor] == true) and (padrao_maior[slot_maior-1] == true)) { encontro++; printf("Slot Menor %d, Slot Maior %d", slot_menor, slot_maior); printf("\n"); slot_menor++; slot_maior++; } else { slot_menor++; slot_maior++; } } } } return encontro; } int main() { int ini_menor = 0; int ini_maior = 0; int retorno = 0; int para = 0; while (para != 50){ retorno = Verifica(ini_menor,ini_maior); printf("Total de Encontros sem Offset: %d\n", retorno); ini_maior++; para++; } } Alguém poderia ajudar com essa lógica? Desde já agradeço.
  2. Pessoal, não sou programador e tentei escrever um código relativamente simples, porém acho que acabei misturando python com c++ e mais algo ainda para ser descoberto (kkk). O que estou tentando fazer e criar dois arrays: menor com 7 elementos e maior com 13 elementos. depois digo que os elementos 0,1 e 3 do array menor é TRUE (os demais false) e os elementos 0,1,3 e 9 do array maior é true (os demais false). depois tentei vou incrementando e testando os índices de cada array a procura dos momentos em que ambos estarão TRUE. São varias repetições da seguinte forma: array menor: 01234560123456012345601234560123456...... array maior: 01234567891011120123456789101112012... Assim é possível ver de cara que temos 4 momentos iguais. Por fim imprimo o total de números (no exemplo acima 35 números até os ...) e o total de momentos (4 no exemplo) Meu código ficou assim: slot_menor = slot_maior = encontro = 0; menor[7]; menor[0] = menor[1] = menor[3] = TRUE; maior[13]; maior[0] = maior[1] = maior[3] = maior[9] = TRUE; while contador < 500: if (menor[slot_menor] >6) or (maior[slot_maior] >12): if menor[slot_menor] > 6 : slot_menor = 0; else: slot_maior = 0; else: if menor[slot_menor] == TRUE and maior[slot_maior] == TRUE: encontro = encontro + 1; slot_menor = slot_menor+1; slot_maior = slot_maior+1; contador = contado +1; else: slot_menor = slot_menor+1; slot_maior = slot_maior+1; contador = contado +1; print("Contador = ", contador); print("Encontros = ", encontro); Acho que misturei o mínimo de c++ que cheguei a tentar vem a alguns anos com python que estou tentando agora. Já agradeço de antemão qualquer ajuda.
  3. Olá, estou tentando automatizar uma tarefa e estou encontrando problemas com o PID. Meu código: for i in 5 10 do echo "omnetpp.ini Generated! Running." ../../bin/Castalia -c General PIDCAST=$(ps aux |grep CastaliaBin |tr -s " " | cut -d" " -f2) wait $PIDCAST cp Castalia-Trace.txt Castalia-Trace_$i.txt rm Castalia-Trace.txt rm omnetpp.ini done essa chamada ../../bin/Castalia executa um simulador. Eu gostaria de fazer o script aguardar o fim da execução deste simulador, para copiar o arquivo de log (Catalia-Trace.txt) , apagá-lo após a cópia e executar o for de novo. O problema é que desta forma está retornando o erro: omnetpp.ini Generated! Running. ./executa.sh: linha 88: wait: o pid 2573 não é um processo filho deste shell cp: não foi possível obter estado de 'Castalia-Trace.txt': Arquivo ou diretório inexistente rm: não foi possível remover 'Castalia-Trace.txt': Arquivo ou diretório inexistente Poderiam me auxiliar com esta situação de processos?
  4. Olá, estou tentando automatizar uma tarefa e estou encontrando problemas com o PID. Meu código: for i in 5 10 do echo "omnetpp.ini Generated! Running." ../../bin/Castalia -c General PIDCAST=$(ps aux |grep CastaliaBin |tr -s " " | cut -d" " -f2) wait $PIDCAST cp Castalia-Trace.txt Castalia-Trace_$i.txt rm Castalia-Trace.txt rm omnetpp.ini done essa chamada ../../bin/Castalia executa um simulador. Eu gostaria de fazer o script aguardar o fim da execução deste simulador, para copiar o arquivo de log (Catalia-Trace.txt) , apagá-lo após a cópia e executar o for de novo. O problema é que desta forma está retornando o erro: omnetpp.ini Generated! Running. ./executa.sh: linha 88: wait: o pid 2573 não é um processo filho deste shell cp: não foi possível obter estado de 'Castalia-Trace.txt': Arquivo ou diretório inexistente rm: não foi possível remover 'Castalia-Trace.txt': Arquivo ou diretório inexistente Poderiam me auxiliar com esta situação de processos?
  5. Bom dia amigos e amigas, Estou com dificuldades em manipular a saída de tempo de um código, pois a função t.time() retorna os segundos passados desde 0h de 01/01/1970. Eu preciso que esta saída me retorne milissegundos desde a chamada a função e não da data da época. Tentei usar time.ctime(time.time()) mais não funcionou como esperado. Basicamente o código é: import time numevents=50 for i in range(0, numevents): print ("WALLTIME =", t.time()) Agradeço desde já a todos que poderem ajudar. Desculpe se parece uma dúvida simples, porém iniciando em Python com muito entusiasmo.
×
×
  • Criar Novo...