#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;
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; }
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; }
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); }
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; }
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); } }
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); }
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; }