Exemplo n.º 1
0
void insertarNodoOrdenado(nodo** lista,void* data,int(*compara)(void*,void*))
{
    nodo* nuevo;
    nodo* aux;
    nodo* aux1;

    aux=*lista;

    if(*lista==NULL || compara(data,(*lista)->data)) //O porque la lista está vacía o porque el nodo a insertar es menor al único nodo existente
    {
        nuevo=malloc(sizeof(nodo)); //Se está inicializando el nodo nuevo
        nuevo->data=data;//Se guardan los datos en el nodo nuevo

        *lista=nuevo;
        nuevo->next=aux;

        return ;
    }

    while(aux->next!=NULL && !(compara(data,(aux->next)->data)))
    {
        aux=aux->next;
    }
    aux1=aux->next;
    nuevo=malloc(sizeof(nodo)); //Se está inicializando el nodo nuevo
    nuevo->data=data;//Se guardan los datos en el nodo nuevo
    aux->next=nuevo;
    nuevo->next=aux1;

}
Exemplo n.º 2
0
Al final de quilting()
{
	if(col!=0)
	{
		Imagen LumMargenVEscogido(margenV.fils(), margenV.cols());
		margenV.extrae(LumTex, rowBi, colBi);
		
		//Esta vez obtenemos la imagen resultante del cálculo de energías.
		compara(LumMargenV, margenV, LumMargenVEscogido);
		
		marcaSegunSeamV(LumMargenVEscogido, BiR, BiG, BiB);
	}
	
	if(row!=0)
	{
		Imagen LumMargenHEscogido(margenH.fils(), margenH.cols());
		margenH.extrae(LumTex, rowBi, colBi);
		
		//Esta vez obtenemos la imagen resultante del cálculo de energías.
		compara(LumMargenH, margenH, LumMargenHEscogido);
		
		marcaSegunSeamH(LumMargenHEscogido, BiR, BiG, BiB);
	}


}
Exemplo n.º 3
0
void dados(){
    char nome[100],nacionalidade[30],sexo;
    int idade;
    printf("Entre com o nome: \n");
    scanf("%[^\n]s",nome);
    flush();
    printf("Entre com o sexo (M para masculino ou F para feminino): \n");
    scanf("%c",&sexo);
    flush();
    printf("Entre com sua idade (entre 0 e 150): \n");
    scanf("%d",&idade);
    flush();
    printf("Entre com a nacionalidade (brasileira ou estrangeira): \n");
    scanf("%s",nacionalidade);
    flush();
    if (((sexo!='M')&&(sexo!='F'))||(idade<0)||(idade>150)||((!(compara(nacionalidade,"brasileira")))&&(!(compara(nacionalidade,"estrangeira"))))){
        printf("Dado inserido invalido!\n");
    } else {
        if (sexo=='M'){
            if (compara(nacionalidade,"brasileira")){
                if (idade >= 18) {
                    printf("%s, brasileiro do sexo masculino e maior de idade, esta habilitado a dirigir!\n",nome);
                } else {
                    printf("%s, brasileiro do sexo masculino e menor de idade, nao esta habilitado a dirigir!\n",nome);
                }
            } else {
                if (idade >= 18) {
                    printf("%s, estrangeiro do sexo masculino e maior de idade, esta habilitado a dirigir!\n",nome);
                } else {
                    printf("%s, estrangeiro do sexo masculino e menor de idade, nao esta habilitado a dirigir!\n",nome);
                }
            }
        } else {
            if (compara(nacionalidade,"brasileira")){
                if (idade >= 18) {
                    printf("%s, brasileira do sexo feminino e maior de idade, esta habilitada a dirigir!\n",nome);
                } else {
                    printf("%s, brasileira do sexo feminino e menor de idade, nao esta habilitada a dirigir!\n",nome);
                }
            } else {
                if (idade >= 18) {
                    printf("%s, estrangeira do sexo feminino e maior de idade, esta habilitada a dirigir!\n",nome);
                } else {
                    printf("%s, estrangeira do sexo feminino e menor de idade, nao esta habilitada a dirigir!\n",nome);
                }
            }
        }
    }
}
Exemplo n.º 4
0
int insereOrdenado(Lista * lista, void * dados){

	struct Nodo *ant, *p, *nodo;
	
		if(lista->comprimento==0){
			return adicionaItem(lista, dados);
			
		}

	//mostraLista(lista);
		for (ant=NULL, p=lista->primeiro; p != NULL; ant=p, p=p->proximo){
                        if (p->dados == NULL) {
			  printf("%p, %p\n", p, p->dados);			
                          //mostraLista(lista);
                         }
			if( compara(p->dados, dados)>0){
				if(ant==NULL){
					adicionaItem(lista, dados);
					return;
				}
			nodo=criaNodo(dados);
			ant->proximo=nodo;
			nodo->proximo=p;
			lista->comprimento++;
			return;
			}
		}
	nodo=criaNodo(dados);
	ant->proximo=nodo;
	lista->comprimento++;
	} 
Exemplo n.º 5
0
int e_reservada(char* palavra){
    int i;
    for(i = 0; i < 10; i++)
        if(compara(reservadas[i], palavra) == 0)
            return i;
    return -1;
}
Exemplo n.º 6
0
int e_variavel(char* palavra){
    int i;
    for(i = 0; i < MAX && variaveis[i][0] != '\0'; i++)
        if(compara(variaveis[i], palavra) == 0)
            return i;
    return -1;    
}
Exemplo n.º 7
0
void inseredia(ptdia *p, char dta, char hro, char atv){
    ptdia aux, ant, ndia;
    pthora nhora;
    ndia=(ptdia)malloc(sizeof(struct dia));
    nhora=(pthora)malloc(sizeof(struct hora));
    if(!ndia){
        puts("memoria cheia");
        return;
    }
    ant=NULL;
    aux=*p;
    while(aux&&compara(dta[11],aux->data)){
        ant=aux;
        aux=aux->prox;
    }
    ndia->data=dta[11];
    nhora->horario=hro[6];
    nhora->nome=atv[100];
    ndia->h=nhora;
    if(!ant){
        ndia->prox=*p;
        *p=ndia;
    }else{
        ndia->prox=ant->prox;
        ant->prox=ndia;
    }
}
pont mergeOrdena(pont a, pont  b, int ind)
{
	/*  Algoritmo adaptado do mergeSort, com um caso a mais,   */
	/*  que é no caso das palavras serem iguais, que ao inves  */
	/*  de ordena-lo esse retira a celula repetiva, 'rouba'    */
	/*  a contagem e depois libera ela                         */

    struct palavra head; pont c = &head, d;
	int ve;
    while (a && b){
		ve = compara(a, b, ind);
        if(ve == 1){
            c->next = a;
            c=a;
            a=a->next;
        }
        else if(ve == 0){
            c->next=b;
            c=b;
            b=b->next;
        }
		else{
			/*   Neste caso é quando há a ocorrencia de palavra repetida  */
			d = a;
			b->qnt += a->qnt;
			a=a->next;
			free(d);
		}
	}
    c->next = !a ? b : a;
    return head.next;
}
Exemplo n.º 9
0
void main()
{
  int drive=DETECT,modo;
  initgraph(&drive,&modo,"c:\\bc\\bgi");

while(!kbhit())
{
inicio:
  cco=random(2);
  cli=random(2);
  cor=random(15);
  if(cco==0 && col<570)
    col++;
  else
  if(cco==1 && col>80)
    col--;
  if(cli==0 && lin<350)
    lin++;
  else
  if(cli==1 && lin>120)
    lin--;
  setcolor(1);
  //line(col,lin,320,240);
  putpixel(col,lin,15);
  putpixel(col-1,lin,15);
  putpixel(col+1,lin,15);
  putpixel(col,lin-1,15);
  putpixel(col,lin+1,15);
  compara();
  diagonal();
 }
 closegraph();
}
Exemplo n.º 10
0
int main() {
  char entrada[10000];
  int n1[100], t1;
  int n2[100], t2;
  int n3[100], t3;
  int k;

  while(1) {
    /* Leitura dos números e conversão */
    scanf("%s",entrada);
    t1 = stringToNum(entrada,n1);
    scanf("%s",entrada);
    t2 = stringToNum(entrada,n2);

    /* Soma dos números */
    t3 = soma(n1,t1,n2,t2,n3);
    printf("A soma dos números é ");
    imprime(n3,t3);
    putchar('\n');

    /* Produto dos números */
    t3 = mult(n1,t1,n2,t2,n3);
    printf("O produto dos números é ");
    imprime(n3,t3);
    putchar('\n');

    /* Compara os dois números */
    k = compara(n1,t1,n2,t2);
    if (k == 1)
      printf("O primeiro é maior que o segundo\n");
    if (k == 0)
      printf("Os dois números são iguais\n");
    if (k == -1)
      printf("O segundo é maior que o primeiro\n");


    /* Subtração dos números */
    if (k >= 0)
      t3 = subtrai(n1,t1,n2,t2,n3);
    else
      t3 = subtrai(n2,t2,n1,t1,n3);
    printf("A diferença dos números é ");
    imprime(n3,t3);
    putchar('\n');

    /* Divisão de números */

    t1 = divide(n1,t1,n2[0]);

    printf("A divisão dos números é ");
    imprime(n1,t1);
    putchar('\n');

  }
  return 0;
}
Exemplo n.º 11
0
void busca_gcc(char *path){
	char *gcc={";C:\\DEV-CPP\\BIN"};/*caminho do gcc*/
	int i=0;/*Contador INICIALIZADO*/
	while(i<strlen(path) && compara(path,gcc,i)!=1)/*sai do laço se percorrer toda a variavel path ou se encontrar o caminho*/
		i++;
	if (i==strlen(path)){/*significa que nao encontrou pois percorreu toda a variavel  path*/
		strcat(path,gcc);/*adiciona o caminho do gcc no final da variavel path */
		putenv(path);/*envia a variavel para o so*/
	}
}
Exemplo n.º 12
0
int main()
     {
     int num1, num2;

     printf( "Introduzca dos números: " );
     scanf( "%i %i", &num1, &num2 );
     
     compara( num1, num2 );/* Llamamos a la función con sus dos argumentos */
	 
     return 0;
     }
Exemplo n.º 13
0
// Função menu
void menu()
{
	short int opcao = 1;
	while(opcao != 0)
	{
		printf("\n"
		"|--------------------------|\n"
		"|  Bem-vindo!              |\n"
		"|--------------------------|\n"
		"|  SELECIONE UMA OPCAO:    |\n"
		"|  1: CONCATENAR STRING    |\n"
		"|  2: COMPARAR STRING      |\n"
		"|  3: COPIAR STRINGS       |\n"
		"|  4: TAMANHO DA STRING    |\n"
		"|  0: SAIR                 |\n"
		);
	
		scanf("%d", &opcao);
		system("cls"); 
		
		switch(opcao)
		{
			case 0:
	            printf("\nFim da execucao!\n");
	            return;
	            
			case 1:
				printf("\n---- CONCATENAR STRING ----\n");
				concatena();
				break;
				
			case 2:
				printf("\n---- COMPARAR STRING ----\n");
				compara();
				break;
				
			case 3:
				printf("\n---- COPIA STRING ----\n");
				copia();
				break;
			
			case 4:
				printf("\n---- TAMANHO DA STRING ----\n");
				tamanho();
				break;
				
			default:
				printf("OPCAO INVALIDA!\n");
		}
		
	}	
	
}
Exemplo n.º 14
0
linha_t *last_linha(linha_t *lin, linha_t *last, unsigned int num){

  if(lin == NULL)
    return last;

  if(last == NULL)
    last = lin; 

  if(compara(field_get(lin->fie, num), field_get(last->fie, num)) == 1)
    last = lin;

  return last_linha(lin->next, last, num);
}
Exemplo n.º 15
0
int Comparator::Compare( void *key1, void *key2 )
{
//
// Faz a comparação de duas chaves passadas nos parâmetros, de acordo com a
// regra definida no parâmetro de construção.
//

	int i = 0;
	int ret;

	if( BuildStatus != PARSEOK )		// ADRIANO
		return 2;

	for( i=0; i<NumbOfKeys; ++i )
	{
		switch( KeyCtl[i].comptype )
		{
		case NONE:
			ret = 0;
			break;

		case INCREASING:
			ret = compara( i, key1, key2 );
			break;

		case DECREASING:
			ret = compara( i, key2, key1 );
			break;
		}

		if( ret !=0 )
			return ret;
	}

	return ret;
	
}
Exemplo n.º 16
0
bool insereSemDuplicata(REGISTRO a){
    REGISTRO r;
    FILE *arq = fopen("2.txt","rb+");
    bool aIgual=false;
    while(1==fread(&r,sizeof(REGISTRO),1,arq)){
        if(aIgual==false)aIgual=compara(a,r);
    }
    //fclose(arq);
    if(aIgual==true){
        printf("GOTCHA LITTLE SHIT");
        return;
    }
    fseek(arq,0,SEEK_END);
    fwrite(&a,sizeof(REGISTRO),1,arq);
}
Exemplo n.º 17
0
void condic(){
    char nome[100],sexo[20];
    int idade=0;
    printf("Entre com o nome: \n");
    scanf("%[^\n]s",nome);
    flush();
    printf("Entre com o sexo: \n");
    scanf("%[^\n]s",sexo);
    flush();
    printf("Entre com a idade: \n");
    scanf("%d",&idade);
    if ((compara(sexo,"feminino"))&&(idade<25)){
        printf("%s, ACEITA!\n",nome);
    } else {
        printf("NAO ACEITA!\n");
    }
}
Exemplo n.º 18
0
int remover(No **l,int (*compara)(void *,void *),void *chave) // REMOVER
{
    No *no = *l, *ant = NULL;
    while (no != NULL) {
        if (compara(no->dados,chave)) {
            if (ant == NULL)
                *l = no->prox;
            else
                ant->prox = no->prox;
                free(no->dados);
                free(no);
                return 1;
        }
        ant = no;
        no = no->prox;
    }
    return 0;
}
Exemplo n.º 19
0
int main(){
    int max, sorteado, i,j;
    scanf("%d %d", &max, &sorteado);
    for(i=0; i < max; i++){
        scanf("%s", &strings[i]);
    }
    char temp[32];
    for(i=0; i < max -1; i++){
        for(j=i; j < max - i -1; j++){
            if(compara(j, j + 1) > 0){
                strcpy(temp, strings[j]);
                strcpy(strings[j], strings[j+1]);
                strcpy(strings[j+1], temp);
            }
        }
    }
    printf("%s", strings[sorteado]);
    return 0;
}
Exemplo n.º 20
0
void encontra_menor_na_passada(Partida *page, int *pos,	FILE *fp, int opcao, FILE *pt_INDEX){
	int min, i, k;
	k = 0;
	for(i=0 ; i< NUMERO_VIAS ; i++) 
	{
		if(pos[i] < TAMPART) {
			if(k == 0) {k++; min = i; continue;}
			if(compara(&page[i], &page[min], opcao) ) 
			{
				min = i;
			}
		}
	}
	
	int cod = page[min].codigo;
	fprintf(pt_INDEX, "%i\n", cod);
	
    fwrite(&page[min], sizeof(Partida), 1, fp);
	pos[min]++;	
}
Exemplo n.º 21
0
int main()
{
	/*
	L=listaVida();
	citire(&L);
	npo(L);
	*/

	Llin L1,L2;
	L1=listaVida();
	L2=listaVida();

	citire(&L1);
	citire(&L2);

	compara(L1,L2);
	
	system("pause");
	return 0;
}
Exemplo n.º 22
0
int main()
{
    Pila p;
    Pila aux;
    posicion q;
    TipoElemento x;
    inicializa(&aux);
    int i,j,dig,op,band=0;

    system("COLOR f8");
    do{
        system("cls");
        printf("\n\n\t\tMENU");
        printf("\n\n\t\t1. INICIALIZAR");
        printf("\n\n\t\t2. INSERTAR FRASE");
        printf("\n\n\t\t3. COMPARAR FRASE");
        printf("\n\n\t\t4. MOSTRAR FRASE");
        printf("\n\n\t\t5. ELIMINAR FRASE");
        printf("\n\n\t\t6. SALIR");
        printf("\n\n\t->ELIGE TU OPCION: ");
        scanf("%d",&op);
        switch(op){
            case 1:
                system("cls");
                if(band == 0){
                    inicializa(&p);
                    band=1;
                    printf("\n\n\t\tLA PILA HA SIDO INICIALIZADA");
                }
                else
                    printf("\n\n\t\tFUNCION INHABILITADA");
                getch();
            break;
            case 2:
                system("cls");
                printf("\n\n\t\tLONGITUD DE LA PALABRA: ");
                scanf("%d",&dig);
                printf("\n\n\t\tINGRESA TU PALABRA:");
                for(i=0; i<dig; i++){
                    printf("\n\n\t\t\t");
                    fflush(stdin);
                    leeElemento(&x);
                    apila(&x, &p);
                }
                q=p.tope;
                for(j=0; j<dig; j++){
                    apila(&p.elementos[q], &aux);
                    q--;
                }
                printf("\n\n\t->LA PALABRA HA SIDO GUARDADA");
                getch();
            break;
            case 3:
                system("cls");
                compara(&p, &aux, dig);
                getch();
            break;
            case 4:
                system("cls");
                imprimePila(&p);
                getch();
            break;
            case 5:
                system("cls");
                q=p.tope;
                for(i=0; i<=q; i++)
                    desapila(&p);
                printf("\n\n\t\tLA FRASE HA SIDO ELIMINADA");
                getch();
            break;
            case 6:
                system("cls");
                printf("\n\n\t\tGRACIAS POR TU VISITA\n\n");
                getch();
            break;
            default:
                system("cls");
                printf("\n\n\t\tOPCION INVALIDA");
                getch();
        }
    }while(op != 6);
    return 0;
    getch();
}
Exemplo n.º 23
0
void main(int argc, char *argv[]) {
    char prefixo_arquivo_out[MAX_NAME - 4];
    int imagem[MAXLINHA][MAXCOLUNA];
    int linhas, colunas, maiorValor, check, larguraJanela, k, limiteValido = 0;
    const char comandos[] = "nrvhedmz123xctgCas";
    char comando = 0;
    int flag = 0;

    if (argc < 2) {
        printf("Usage: %s <arquivo entrada>\n", argv[0]);
        exit(0);
    }

    if (le_pgm(argv[1], imagem, &linhas, &colunas, &maiorValor)) {
        printf("Arquivo %s.pgm carregado com sucesso.\n", argv[1]);
    } else {
        exit(0);
    }

    strcpy(prefixo_arquivo_out, argv[1]);
    void menu();

    while (comando != 's') {
        printf("Digite um comando: ");
        scanf(" %c", &comando);

        if (!strchr (comandos, comando)) {
            printf("Comando invalido\n");
            continue;
        }

        for (int i = 4; i < 11; i++) {
            if (comando == comandos[i]) {
                larguraJanela = 0;
                while (larguraJanela < JANELA_MIN || larguraJanela > JANELA_MAX) {
                    printf("Digite o tamanho da janela: ");
                    scanf("%d", &larguraJanela);
                    if (larguraJanela < JANELA_MIN || larguraJanela > JANELA_MAX) {
                        printf("Tamanho invalido. A janela deve ser entre %d e %d.\n", JANELA_MIN);
                    }
                }
            }
        }

        if (comando == '1' || comando == '2' || comando == '3') {
            printf("Informe o valor de k: ");
            scanf("%d", &k);
        }

        if (comando = 'n') negativo(imagem, linhas, colunas);
        if (comando = 'r') rotacao(imagem, &linhas, &colunas);
        if (comando = 'v') rebatimentoVertical(imagem, linhas, colunas);
        if (comando = 'h') rebatimentoHorizontal(imagem, linhas, colunas);
        if (comando = 'e') filtroErosao(imagem, linhas, colunas, larguraJanela);
        if (comando = 'd') filtroDilatacao(imagem, linhas, colunas, larguraJanela);
        if (comando = 'm') filtroMediana(imagem, linhas, colunas, larguraJanela);
        if (comando = 'z') filtroMedia(imagem, linhas, colunas, larguraJanela);
        if (comando = '1') filtroBorda1(imagem, linhas, colunas, larguraJanela, k);
        if (comando = '2') filtroBorda2(imagem, linhas, colunas, larguraJanela, k);
        if (comando = '3') filtroBorda3(imagem, linhas, colunas, larguraJanela, k);
        if (comando = 'a') menu();

        if (comando == 'c') {
            check = 0;
            while (!check) {
                printf("Digite o nome do arquivo de entrada: ");
                scanf("%s", argv[1]);
                if ((check = le_pgm(argv[1], imagem, &linhas, &colunas, &maiorValor)))
                    printf("Arquivo %s.pgm carregado com sucesso.\n\n", argv[1]);
            }
            strcpy(prefixo_arquivo_out, argv[1]);
            flag = 0;
        }

        if (comando == 't') {
            imprimeMatriz(imagem, linhas, colunas);
            printf("\n");
        }

        if (comando == 'x') {
            int xsup, ysup, xinf, yinf;
            printf("Informe x superior: ");
            scanf("%d", &xsup);
            printf("Informe y superior: ");
            scanf("%d", &ysup);
            printf("Informe x inferior: ");
            scanf("%d", &xinf);
            printf("Informe y inferior: ");
            scanf("%d", &yinf);
            if (xsup < 0 || ysup < 0 || xinf >= linhas || yinf >= colunas || xsup > xinf || ysup > yinf) limiteValido = 0;
            else limiteValido = 1;
            if (limiteValido) {
                corte(imagem, &linhas, &colunas, xsup, ysup, xinf, yinf);
                if (!flag) {
                    strcat(prefixo_arquivo_out, "-");
                    flag = 1;
                }
                strncat(prefixo_arquivo_out, &comando, 1);
                printf("Operacao realizada com sucesso.\n");
            } else {
                printf("Limites invalidos\n\n");
            }
        }

        if (comando == 'g') {
            grava_pgm(prefixo_arquivo_out, imagem, linhas, colunas, maiorValor);
            printf("%s.pgm\n", prefixo_arquivo_out);
            printf("Arquivo %s.pgm gravado com sucesso.\n", prefixo_arquivo_out);
        }

        if (comando == 'C') {
            int c[MAXLINHA][MAXCOLUNA];
            int linhasC, colunasC, maiorValorC;
            char prefixo_arquivo_c[MAX_NAME - 4];
            posicao erro;
            check = 0;
            while (!check) {
                printf("Digite o nome do arquivo com a imagem a ser comparada: ");
                scanf("%s", prefixo_arquivo_c);
                check = le_pgm(prefixo_arquivo_c, c, &linhasC, &colunasC, &maiorValorC);
            }

            erro = compara(imagem, c, linhas, linhasC, colunas, colunasC);

            if (erro.linha == -2 && erro.coluna == -2) {
                printf("As matrizes sao iguais\n");
            } else if (erro.linha == -1 && erro.coluna == -1) {
                printf("As matrizes tem dimensoes diferentes\n");
            } else {
                printf("As matrizes tem valores diferentes na posicao %d, %d\n", erro.linha, erro.coluna);
            }
        }

        for (int i = 0; i < 11; i++) {
            if (comando == comandos[i]) {
                if (flag == 0) {
                    strcat(prefixo_arquivo_out, "-");
                    flag = 1;
                }
                strncat(prefixo_arquivo_out, &comando, 1);
                printf("Operacao realizada com sucesso.\n");
            }
        }
    }
    return;
}