/*--------------------------------------------------------
  vecteurs.c Fonctions utiles pour les vecteurs, LG 2011
--------------------------------------------------------*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "vecteurs.h"

/*vecteur.h contient la constante symbolique N*/

#define VALMIN 1
#define VALMAX 400

void initialise_rand()
{
  srand(time(NULL));  
}

/*tire un entier au hasard entre inf et sup */
int hasard(int inf, int sup)
{
  int rando = rand();
  return (inf + (rando % (sup - inf +1)));
}
/*fonction de temporisation*/
void my_sleep()
{
  struct timespec ts;
  ts.tv_sec = 0;
  ts.tv_nsec = 2000;
  nanosleep (&ts, NULL);
}

/*initialisation aleatoire du tableau*/
void initialise_tab(int t[N])
{
  int i;
  for (i=0;i<=N-1;i=i+1)
    {
      t[i]=hasard(VALMIN,VALMAX);
    }
}

/*visualisation du tableau sur le terminal*/
void visu_tab(int t[N])
{
  int i;
  printf("[");
  for (i=0;i<N-1;i=i+1)
    {
      printf(" %d ,",t[i]);
      if (i%10 == 9) 
	{printf("\n");}
    }
  printf(" %d ]\n\n",t[N-1]);
}

/*echange de 2 cases (i et j)*/
void swap(int t[N], int i, int j)
{
  if (i<0 || i>=N || j<0 || j>=N){
    printf("vecteurs.c : swap de deux elements en dehors du tableau\n");
  }
  else {
    int mem = t[i];
    t[i] = t[j];
    t[j] = mem;
  }
}
