void FlatTextarea::onDocumentContentsChange(int position, int charsRemoved, int charsAdded) {
	if (!_links.isEmpty()) {
		bool changed = false;
		for (LinkRanges::iterator i = _links.begin(); i != _links.end();) {
			if (i->first + i->second <= position) {
				++i;
			} else if (i->first >= position + charsRemoved) {
				i->first += charsAdded - charsRemoved;
				++i;
			} else {
				i = _links.erase(i);
				changed = true;
			}
		}
		if (changed) emit linksChanged();
	}

	if (_replacingEmojis || document()->availableRedoSteps() > 0) return;

	const int takeBack = 3;

	position -= takeBack;
	charsAdded += takeBack;
	if (position < 0) {
		charsAdded += position;
		position = 0;
	}
	if (charsAdded <= 0) return;

	_insertions.push_back(Insertion(position, charsAdded));
}
Beispiel #2
0
Datei: main.c Projekt: Misteir/C
int main( int argc, const char* argv[] ){

	arbre a = arbreVide();
	arbre b = arbreVide();
	arbre c = arbreVide();
	arbre d = arbreVide();
	arbre e = arbreVide();
	arbre f = arbreVide();
	arbre g = arbreVide();

	//int vide = EstArbreVide(a);

	b = Construire(2, c, d);
	e = Construire(3, f, g);
	a = Construire(5, b, e);

	//element racine = Racine(a);

	ParcoursPref(a);
	printf("\n");
	
	Insertion(10,a);
	ParcoursPref(a);
	printf("\n");
	//printf("est arbre vide : %d\n",vide);
	//printf("racine : %d\n",racine);
	//printf("est arbre vide : %d\n",vide);


	return EXIT_SUCCESS	;

}
Beispiel #3
0
void driver( enum sort atype, int *array, int elements,
            int random, int delay_factor )
{

switch( atype )
  {
	/* 所有排序算法 */
   case all    :
	/* 冒泡排序 */
   case bubble :
            Setscreen( array, elements, random );
            gprintf( &xaxis, &yaxis, *(sorts + bubble) );
            Bubble( array, elements, delay_factor );
            if ( atype != all ) break; else delay( 1350 );
	/* 延迟交换排序 */
   case delayed:
            Setscreen( array, elements, random );
            gprintf( &xaxis, &yaxis, *(sorts + delayed) );
            Delayed( array, elements, delay_factor );
            if ( atype != all ) break; else delay( 1350 );
	/* 希尔排序 */
   case shell  :
            Setscreen( array, elements, random );
            gprintf( &xaxis, &yaxis, *(sorts + shell ));
            Shell( array, elements, delay_factor );
            if ( atype != all ) break; else delay( 1350 );
	/* Metzner希尔排序 */
   case shell_metzner:
            Setscreen( array, elements, random );
            gprintf( &xaxis, &yaxis, *(sorts + shell_metzner) );
            Shell_Metzner( array, elements, delay_factor );
            if ( atype != all ) break; else delay( 1350 );
	/* 快速排序 */
   case quick  :
            Setscreen( array, elements, random );
            gprintf( &xaxis, &yaxis, *(sorts + quick) );
            Quicksort( array, 0, elements - 1, delay_factor );
            if ( atype != all ) break; else delay( 1350 );
	/* 插入排序 */
   case insertion:
            Setscreen( array, elements, random );
            gprintf( &xaxis, &yaxis, *(sorts + insertion) );
            Insertion( array, elements, delay_factor );
            if ( atype != all ) break; else delay( 1350 );
	/* 停止 */
   case stop:

   default:;
  }
}
Beispiel #4
0
void FlatTextarea::onDocumentContentsChange(int position, int charsRemoved, int charsAdded) {
	if (_replacingEmojis || document()->availableRedoSteps() > 0) return;

	const int takeBack = 3;

	position -= takeBack;
	charsAdded += takeBack;
	if (position < 0) {
		charsAdded += position;
		position = 0;
	}
	if (charsAdded <= 0) return;

	_insertions.push_back(Insertion(position, charsAdded));
}
Beispiel #5
0
int main() {
  int source[SIZE];
  FILE *file1;
  int i;
  int result;

  file1 = fopen("./source.txt", "r");
  for (i = 0; i < SIZE; i++) fscanf(file1, "%d", &source[i]);  // notice the
                                                               // type
  fclose(file1);

  Insertion(source, SIZE);

  for (i = 0; i < SIZE; i++) {
    printf("%d ", source[i]);
  }
  printf("\n");

  result = search(source, SIZE, 342);
  printf("the result is:%d\n", result);

  return 0;
}
Beispiel #6
0
int main(void) {
	int i, count=0;
	int sort, order, size, tmp;
	int *a;
	char row[100], name[100];
	data_t d;
	FILE *fp;
	
	printf("ファイル名:");
	scanf("%s", name);
	
	fp=fopen(name,"r");
	if (fp==NULL) {
		printf("can't open a file\n");
		exit(1);
	}
	
	a = (int *)malloc(sizeof(int)*100);
	tmp = 100;
	
	while(fgets(row, sizeof(row), fp) != NULL) {
		a[count] = atoi(row);
		count++;
		if (count == tmp) {
			a = (int *)realloc(a, sizeof(int)*(tmp+100));
			tmp += 100;
		}
	}
	
	fclose(fp);
	
	printf("| バブルソート : 1, 選択ソート : 2, 挿入ソート : 3 | ");
	scanf("%d", &sort);
	printf("| 昇順 : 1, 降順 : 2 | ");
	scanf("%d", &order);
	
	if (sort == 1) {
		if (order == 1) {
			d = Bubble(a, count, 1);
		} else {
			d = Bubble(a, count, 0);
		}
	} else if (sort == 2) {
		if (order == 1) {
			d = Selection(a, count, 1);
		} else {
			d = Selection(a, count, 0);
		}
	} else {
		if (order == 1) {
			d = Insertion(a, count, 1);
		} else {
			d = Insertion(a, count, 0);
		}
	}
	
	printf("結果:\n");
	for (i=0; i<count; i++) {
		printf("%2d ", a[i]);
		if ((i+1)%20==0) printf("\n");
	}
	printf("\n\n");
	printf("CPUタイム %.7lfs\n交換回数 %d回\n", d.prTime, d.num);
	free(a);
}
void main(){
	int menu,i,j,x,imp,a;
	int k = 1;
	char f[20],p[20],m[20];
	struct arvore *raiz = (struct arvore *)malloc(sizeof(struct arvore)); //Alocando memória dinâmica para a raiz da árvore
	raiz->pai = NULL;
    raiz->mae = NULL;
    raiz->grau = k;
	printf("Digite a primeira entrada para a arvore genealogica (formato filho_pai_mae):\n ");
	setbuf(stdin, NULL); //limpa o buffer do teclado
	scanf("%s",f);
	scanf("%s",p);
	scanf("%s",m);
	strcpy(raiz->nome,f);
	k = Insertion(raiz,f,p,m,k); //Atualizou o valor do k
	int exit = 0;
	while (exit ==0){
		printf("\nDigite:\n\n");
		printf("1 para inserir uma entrada na arvore genealogica\n\n"); 
		printf("2 para determinar grau de parentesco\n\n"); 
		printf("3 para imprimir\n\n");
		printf("4 para sair\n\n ");
    	scanf("%d",&menu);
        switch(menu){
	        case 1:
		        printf("Digite o numero de entradas a serem inseridas: ");
		        scanf("%d", &a);
		        for(i=1;i<=a;i++){
				    printf("Digite %d-a entrada (formato filho_pai_mae) a ser inserida: ",i);
				    scanf("%s",f);
	                scanf("%s",p);
	                scanf("%s",m);
				    k = Insertion(raiz,f,p,m,k);
		        }
		        break;
            case 2:
    	        printf("Digite os dois nomes para a comparacao (formato nome_nome): ");
    	        scanf("%s",f);
    	        scanf("%s",p);
    	        printf("O grau de parentesco eh de: %d\n",Parentesco(raiz,f,p));
    	        break;
            case 3:
            	printf("\nDigite: \n\n1 para imprimir a arvore por geracao\n\n"); 
				printf("2 para imprimir a arvore em LABELLED BRACKETING\n\n"); 
				printf("3 para imprimir antepassados de um individuo\n\n ");
            	scanf("%d",&imp);
            	if(imp==1){
            		for(i=1;i<=k;i++){ //Imprime até a última geração começando da raiz
            			ImpGeracaoCocaCola(raiz,i);
            			printf("\n");
					}
            	}
            	if(imp==2){
            		ImpLabel(raiz);
            	}
            	if(imp==3){
            		printf("Digite o nome cujos antepassados serao impressos: ");
            		scanf("%s",&m);
            		x = search(raiz,m)->grau; //Geração do individuo m
            		for(j=x;j<=k;j++){  //Imprime até a última geração começando da geração do individuo selecionado
            			ImpGeracaoCocaCola(raiz,j);
            			printf("\n");
					}
				}
				if(imp!=1&&imp!=2&&imp!=3){
    	            printf("Numero nao pertencente ao menu\n");
				}
				break;		
    	    case 4:
    	        exit = 1;
    	        break;
	        default:
    	        printf("Numero nao pertencente ao menu\n");
        }
    }
    free(raiz);
}
void main(){
	int menu,i,imp,a;
	int k = 1;
	char f[20],p[20],m[20];
	struct arvore * raiz = (struct arvore *) malloc(sizeof(struct arvore));
	raiz->pai = NULL;
    raiz->mae = NULL;
    raiz->grau = k;
	printf("Digite a primeira entrada para a arvore genealogica (formato filho_pai_mae):\n");
	scanf("%s",&f);
	scanf("%s",&p);
	scanf("%s",&m);
	strcpy(raiz->nome,f);
	Insertion(raiz,f,p,m,k);
	int exit = 0;
	while (exit ==0){
    	printf("Digite 1 para inserir, 2 para grau de parentesco, 3 para imprimir, 4 para sair:  ");
    	scanf("%d",&menu);
        switch(menu){
	        case 1:
		        printf("Digite o numero de entradas (formato filho_pai_mae) a serem inseridas:\n");
		        scanf("%d", &a);
		        for(i=1;i<=a;i++){
				    printf("Digite %d-a entrada a ser inserida: ",i);
				    char f1[20],p1[20],m1[20];
				    scanf("%s",&f1);
	                scanf("%s",&p1);
	                scanf("%s",&m1);
				    Insertion(raiz,f1,p1,m1,k);
		        }
		        break;
            case 2:
    	        printf("Digite os dois nomes para a comparacao (formato nome_nome):\n");
    	        char f[20],p[20];
    	        scanf("%s",&f);
    	        scanf("%s",&p);
    	        printf("O grau de parentesco eh de: %d\n",Parentesco(raiz,f,p));
    	        break;
            case 3:
            	printf("Digite 1 para imprimir a arvore por geracao, 2 para imprimir a arvore em LABELLED BRACKETING, 3 para imprimir antepassados de um individuo:\n");
            	scanf("%d",&imp);
            	if(imp==1){
            		ImpGeracaoTotal(raiz,k);
            	}
            	if(imp==2){
            		ImpLabel(raiz);
            	}
            	if(imp==3){
            		printf("Digite o nome cujos antepassados serao impressos:\n");
            		scanf("%s",&m);
            		ImpGeracaoTotal(search(raiz,m),k);
				}
				if(imp!=1&&imp!=2&&imp!=3){
    	            printf("Numero nao pertencente ao menu\n");
				}
				break;		
    	    case 4:
    	        exit = 1;
    	        break;
	        default:
    	        printf("Numero nao pertencente ao menu\n");
        }
    }
}
Beispiel #9
0
int main (int argc, char **argv){

	system("mkdir Resultat 2> /dev/null");
	printf ("#########################################################################\n");
	printf ("#			TEST DU CHARGEMENT DE L'IMAGE			#\n");
	printf ("#########################################################################\n");
	chargerImage("./source.jpg");
	if (!img)
	{
		printf("Chargement de l'image : Non\n");
		return EXIT_FAILURE;
	}
	else
		printf("#									#\n");
		printf("#			Chargement de l'image : OK			#\n");
		printf("#									#\n");

	printf ("#########################################################################\n");
	printf ("#			TEST DU CHARGEMENT DU LOGO			#\n");
	printf ("#########################################################################\n");
	chargerLogo(2,"./logo.jpg");

	if (!Logo)
	{
		printf("Chargement du logo : Non\n");
		return EXIT_FAILURE;
	}
	else
		printf("#									#\n");
		printf("#			Chargement du logo : OK				#\n");
		printf("#									#\n");

	int N=4; //définition de la taille des blocs pour la DCT
	a=0.72;
	pas=115;
	NWB=(Logo->width)*(Logo->height);

	int p[3];  
	p[0]=CV_IMWRITE_JPEG_QUALITY;
	p[1]=100;
	p[2]=0;

	bloc=alocamd(N,N);                     // Allocation des blocs
	blocT=alocamd(N,N);                    // Allocation des blocs transformés    

	/** Génération de la clef, de la marque, insertion du tatouage et enregistrement de l'image tatouée **/

	Insertion (img, N, p);

	/** Détection de la marque et récupération du logo **/

	detectionMarque(N);  //Détection des blocs marqués

	cvWaitKey(0);
	cvDestroyAllWindows();

	cvReleaseImage(&img);
	cvReleaseImage(&Logo);

	dalocd(bloc,N);
	dalocd(blocT,N);

	freevi(posx);
	freevi(posy);
	freevd(key);  

	return EXIT_SUCCESS;

}