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; }
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); } }
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); } } } } }
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++; }
int e_reservada(char* palavra){ int i; for(i = 0; i < 10; i++) if(compara(reservadas[i], palavra) == 0) return i; return -1; }
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; }
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; }
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(); }
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; }
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*/ } }
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; }
// 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"); } } }
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); }
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; }
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); }
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"); } }
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; }
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; }
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]++; }
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; }
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(); }
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; }