Jump to content
jonhhy

comando para efetuar vários testes

Recommended Posts

jonhhy

boa tarde, já utilizei linguagens de alto nível e na altura por exemplo utilizava 1 que era o tempo de execução. E posteriormente utilizava um outro em que me escreviamos o número de testes que ia-mos realizar. Com intuito de observar o parametro encolhido: testando possíveis bugs do programa e obter resultados fidedignos.

Gostaria fazer testes para o tempo de execução do programa: (em que utilizo time./program) para ver volores confiáveis nos resultados.

nfZn9QR.png

De modo que, apresenta-se um tempo do programa aceitável. Ex: Não é compreensível que um fatorial 8 demore menos tempo que o fatorial de 4.

Edited by thoga31
Corrigidas tags IMG

Share this post


Link to post
Share on other sites
thoga31

Utilizaste uma linguagem que era o tempo de execução? Ok... organiza aí bem as tuas ideias e com um português mais correcto.

Exactamente o que pretendes? Testar uma função que calcula o factorial? A mim admira-me que demores 5 segundos a calcular o factorial de 9. Que código estás a usar? Se estiveres a ler o input do teclado, tens de te lembrar que tens de ter em conta o tempo que demoras a escrever o número e a premir enter.


Knowledge is free!

Share this post


Link to post
Share on other sites
jonhhy

Utilizaste uma linguagem que era o tempo de execução? Ok... organiza aí bem as tuas ideias e com um português mais correcto.

Exactamente o que pretendes? Testar uma função que calcula o factorial? A mim admira-me que demores 5 segundos a calcular o factorial de 9. Que código estás a usar? Se estiveres a ler o input do teclado, tens de te lembrar que tens de ter em conta o tempo que demoras a escrever o número e a premir enter.

Há okay eu estou a contar o tempo com o input do teclado então, e assim faz sentido.

Edited by jonhhy

Share this post


Link to post
Share on other sites
thoga31

Recebe argumentos por linha de comandos, assim terás tempos de execução mais credíveis.

Por exemplo, eu fiz agora em Pascal e até no factorial de 20 obtive 0m0.001s.

thoga31@thoga31-pc$ time ./fact 20
20! = 2432902008176640000

real	0m0.001s
user	0m0.000s
sys	0m0.000s


Knowledge is free!

Share this post


Link to post
Share on other sites
Rui Carlos

É muito complicado obteres tempos fiáveis com execuções tão rápidas, ainda para mais usando o time. Também me parece que estás a contar o tempo de introduzir o valor de input.

Podes experimentar usar a função clock para medir o tempo de execução directamente no programa, mas ainda assim não sei se vais ter muito sucesso.

Share this post


Link to post
Share on other sites
jonhhy

okay obrigado pelas dicas,

BPvfjnW.png

o meu programa dá valores errados para valores aleatórios(possíveis bugs).

Não sei o porquê e determinei-os por acaso.

já programei em haskell. E no interpretador dava fazer múltilplos testes alatórios que conta da fiabilidade do programa, usando um comando que não me recordo sinceramente.

http://imgur.com/BPvfjnW

código do programa que dá erros em certos testes:

#include <stdio.h>
int main(void)
{
 int n,m;
 printf("escreve o valor do primeiro e segundo valores, respectivamente\n");
 scanf("%d%d",&n,&m);
 if (m==0)
   puts("Divisão por 0 não terá êxito");
 else
 {
   if (n%m==0)
     printf("%d divide %d, ou %d é divisível por %d",m,n,n,m);
   else
     printf("A propriedade não se verifica");
 }
 return 0;
}

Edited by Rui Carlos

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.