Esempio n. 1
0
#include <stdio.h>
#include <math.h>

#define DIVISEUR_COMPTE 97

short reste(double dividente, int diviseur); /* Donne le reste de la division entiere de dividente
 sur diviseur */

int main(void)
{
	double compte;
	unsigned short controle, computed_controle;

	printf("Entrez les dix premiers chiffres de votre numero de compte:\n");
	scanf("%lf", &compte);

	printf("Entrez les deux derniers chiffres de votre numero de compte:\n");
	scanf("%d", &controle);


	if((computed_controle = reste(compte, DIVISEUR_COMPTE)) != controle)
	{
		printf("Compte invalide\nPeut etre est-ce %.lf-%d ?\n", compte,
			computed_controle);

		/* correcteur(compte, controle); 
		 * => Correcteur impossible car les divisions des doubles ne sont pas exactes
		 * et produit des résultats aléatoires
		 */ 

		return 1;
	}

	printf("Compte valide\n");
	return 0;
Esempio n. 2
0
double nb_occurences_fibonacci(liste valeur_fibonacci, int nbr){
  double occurence = 0;


  while(!est_vide(valeur_fibonacci)){
    if(prem(valeur_fibonacci)==nbr)
      occurence ++;
   valeur_fibonacci=reste(valeur_fibonacci);
  }
  return occurence;
}
Esempio n. 3
0
bool CLocalMd5Process::process( CAsset * p)
{
	bool bRes(true);
	if (!p->isFolder()) {
		
		
		const uint64_t sz= boost::filesystem::file_size(p->getFullPath());
		if (sz >= fileSizeMax) {
			LOGE("file '{}' is more than 5Go.", p->getFullPath());
			_ctx.abort();
			return false;
		}
		
		FILE* f = fopen( p->getFullPath().c_str(), "rb");
		if (f == nullptr) {
			LOGE("file open error '{}'", p->getFullPath());
			_ctx.abort();
			return false;
		}
		
		NMD5::CComputer c;
		c.init();
		uint64_t reste( sz );
		std::vector<uint8_t> buffer(1024*1024*1); // 1Mo
		while (reste && (!abort()))
		{
			const uint64_t readed = fread(buffer.data(),1,buffer.size(), f);
			if (ferror( f )) {
				fclose(f);
				LOGE("file read error '{}'", p->getFullPath());
				_ctx.abort();
				return false;
			}
			
			reste -= readed;
			if (readed)
				c.feed( buffer.data(), readed);
		}
		c.done();
		fclose(f);
		
		//LOGD("computing md5 of {}", p->getFullPath().string());
		CHash h;
		h._computed= true;
		h._len = sz;
		h._md5 = c.getDigest();
		p->setSrcHash(h);
	}
	return bRes;
}
Esempio n. 4
0
void chargePiece(SDL_Surface* ecran, liste l){
  liste l1 = l;
  int i,j;
  int premier_coord_x = 10;
  int coeff_pos_y = 1;
  int coeff_pos_x = 6;
  SDL_Surface *carreR = NULL;
  
  carreR = SDL_CreateRGBSurface(SDL_HWSURFACE, TAILLE_CARRE, TAILLE_CARRE, 32, 0, 0, 0, 0);
  SDL_FillRect(carreR, NULL, SDL_MapRGB(ecran->format, 255, 0, 0));

  while(!est_vide(l1)){
  
    if(l1->premier->id >= 1){
      l1->premier->coord.y += (coeff_pos_y*l1->premier->taille_carre);
    }
    if(l1->premier->coord.y >= 720 - (l1->premier->ligne * l1->premier->taille_carre)){
      l1->premier->coord.y = 10;
      coeff_pos_y = 1;
      premier_coord_x = (coeff_pos_x* l1->premier->taille_carre);
      coeff_pos_x += 6;
    }

    for( i = 0; i < l1->premier->ligne; i++)
    {
      l1->premier->coord.y += l1->premier->taille_carre;
      l1->premier->coord.x = premier_coord_x;
      if(l1->premier->coord.x >= 1280){
        //reduire taille carré
        if(l1->premier->taille_carre -5 > 0){
          l1->premier->taille_carre -= 5;
        }

      } 
      for(j = 0; j < l1->premier->colonne; j++)
      {
        l1->premier->coord.x += l1->premier->taille_carre;
        if(l1->premier->tab[i][j] == 1){
          SDL_BlitSurface(carreR, NULL, ecran, &l1->premier->coord);
        }     
          
      }
    }
    coeff_pos_y += 5;
    l1 = reste(l1);
  }
  SDL_FreeSurface(carreR);  
}
Esempio n. 5
0
int main(int argc, char **argv)
{
  int a,b;
  printf("Donner deux nombres pour la division a/b\n");
  
  scanf("%d %d",&a,&b);
  if(b!=0)
  {
    printf("%d/%d=%d\n",a,b,div(a,b));
    printf("Le reste de la division est : %d\n",reste(a,b));
  }
  else 
   printf("Division par 0 est impossible\n");
  
  return 0;
}
Esempio n. 6
0
void pos_souris_sur_piece(int pos_souris_x,int pos_souris_y, liste l){
  liste l1 = l;
  while(!est_vide(l1)){
    //printf("pos_souris_x = %d\n",pos_souris_x );
    //printf("pos_souris_y = %d\n",pos_souris_y );
    if(pos_souris_x >= l1->premier->coord.x && pos_souris_x 
      <= ((l1->premier->colonne * l1->premier->taille_carre) + 
        l1->premier->coord.x)){
      if(pos_souris_y >= l1->premier->coord.y && pos_souris_y
        <= ((l1->premier->ligne * l1->premier->taille_carre) + 
        l1->premier->coord.y)){
          printf("piece %d\n",l1->premier->id);
          l1->premier->coord.x = pos_souris_x;
          l1->premier->coord.y = pos_souris_y;
          printf("l1->premier->coord.x = %d\n", l1->premier->coord.x);
          printf("l1->premier->coord.y = %d\n", l1->premier->coord.y);
      }
    }
    l1 = reste(l1);
  }
}
Esempio n. 7
0
int	draw(int longueur, int largeur)
{
	int i;
	i = largeur - 1;
	while(i != -1)
	{
		if(i == largeur - 1)
			out(longueur);
		else if (i <= 0)
		{
			out(longueur);
			return(0);
		}
		else if(i < largeur - 1 && i != 0)
		{
			reste(longueur);
			ft_putchar('\n');
		}
		else
			out(longueur);
		i--;
	}
	return(0);
}				
Esempio n. 8
0
liste tab2D_piece(liste l)
{
  FILE* fichier = NULL;
  fichier = fopen("Configuration.txt", "r");
  char chaine[TAILLE_MAX] = "";
  int nbLigne = 0, cmp_piece = 0;
  liste l1 = l;

  if (fichier != NULL)
  {

    while (fgets(chaine, TAILLE_MAX, fichier) != NULL)
    {
      
      if(cmp_piece >= 1)
      { 
        
        if(strcmp(chaine,"\n") && strlen(chaine)>0) 
        {
          for(unsigned int i=0; i<strlen(chaine);i++)
          {
            if(chaine[i] == '#')
            {
              l1->premier->tab[nbLigne][i]=1;
            }
            if(chaine[i] == ' ')
            {
              l1->premier->tab[nbLigne][i]=0;
            }
          }
          nbLigne++;
        }   
      }
 

      if(!strcmp(chaine,"\n"))
      {
        if(cmp_piece >= 1 ){
          printf("Piece %d\n", l1->premier->id);
          afficherTab2D(l1->premier->tab,l1->premier->ligne,l1->premier->colonne);
          l1 = reste(l1);   
        }
        if(!est_vide(l1)){
          printf("l1->premier->ligne %d\n", l1->premier->ligne);
          printf("l1->premier->colonne %d\n", l1->premier->colonne);
          l1->premier->tab = allocation2D(l1->premier->ligne,l1->premier->colonne);
        }
        

        cmp_piece++; 
        nbLigne = 0;

      }


    }
    fclose(fichier);
  }else{
    printf("Impossible d'ouvrir Configuration.txt\n");
  }
  return l;
}