int main(int argc, char* argv[]){ Lista l1=vacia(), l2=vacia(); FILE *in1=fopen(*(argv+1),"r"), *in2=fopen(*(argv+2),"r"), *out=fopen(*(argv+3),"w"); char pal1[40], *pal2; while(fscanf(in1,"%s",pal1)>0){ pal2=(char*)malloc(40); strcpy(pal2,pal1); l1=cons(pal2,l1); } while(fscanf(in2,"%s",pal1)>0){ pal2=(char*)malloc(40); strcpy(pal2,pal1); l2=cons(pal2,l2); } implista(ordena(pega(l1,l2)),out); printf("%d palabras en %s.\n",numelem(pega(l1,l2)),*(argv+2)); fclose(in1); fclose(in2); fclose(out); return 0; }
int main(){ Lista l1=cons('7',cons('8',cons('9',cons('a',cons('b',cons('c',vacia())))))); Lista l2=cons('1',cons('2',cons('3',cons('4',cons('5',cons('6',vacia())))))); printf("La lista l1 tiene %d elementos.\n",numelem(l1)); puts("Los elementos de la lista l1 son: \n"); implista(l1); puts("------------------------"); printf("La lista [l1|l2] tiene %d elementos.\n",numelem(pega(l1,l2))); puts("Los elementos de la lista [l1|l2] invertida son:\n"); implista(invierte(pega(l1,l2))); printf("Esta el num 3 en la lista 2?: "); estaen('3',l2)?puts("Si."):puts("No."); printf("Esta el num 9 en la lista 2?: "); estaen('9',l2)?puts("Si."):puts("No."); puts("------------------------"); printf("Lista ordenada que resulta de pegar l1 y l2 ( [l1|l2] ) es: \n"); implista(ordena(pega(l1,l2))); return 0; }
void pega_piloto(){ //antes do piloto move(0,-32.29,17.93,0); sleep(3); solta(); sleep(2); //pega piloto //move(0,-36.94,15.97,-1.09); move(0,-37,15.88,-4.38); sleep(3); pega(); sleep(2); //acima do piloto move(0,-34.72,24.36,11.51); sleep(3); //acima da area de trabalho move(0,-26.71,20.93,6.5); sleep(5); }
void refresh(char *name, char *alvo){ char *buf, *ptr, *ptr2, *tmp; FILE *target; if(name == NULL) return; if(alvo == NULL) target = stdout; else target = Fopen(alvo, "w"); ptr = buf = pega(name); while(1){ if(*ptr == '<'){ if(++ptr == '\0') break; else if(ptr == strstr(ptr, "hts")){ ptr2 = ptr + strlen("hts"); ptr = tags(ptr2); if(ptr++ == NULL) Erro(">"); tmp = Malloc(ptr - ptr2); strncpy(tmp, ptr2, ptr - ptr2 - 1); processa(tmp, target); } else fputc('<', target); } if(*ptr == '\0') break; fputc(*(ptr++), target); } if(target != stdout) fclose(target); free(buf); }
int main() { ufrn_header(); // INICIO DO PROGRAMA DEMO // printf("PROGRAMA INTOLERANTS INICIADO\n\n"); serial_fd = abrir_porta(); if (serial_fd == -1) { printf("Erro abrindo a porta serial /dev/ttyS0\nAbortando o programa..."); return -1; } else { printf("Porta serial /dev/ttyS0 aberta com sucesso\n"); if (configurar_porta(serial_fd) == -1) { printf("Erro inicializando a porta\n"); close(serial_fd); return -1; } comando = (char*) malloc(sizeof(char) * BUFSIZE); last_comando = (char*) malloc(sizeof(char) * BUFSIZE); ////////////////////// // PRIMEIRO COMANDO // ////////////////////// printf("\nPRIMEIRO COMANDO - POSICAL INICIAL\n"); sprintf(comando, "%s", STANDBY); //Escrevendo com teste de escrita if (enviar_comando(comando, serial_fd) != -1) { printf("Enviando de comando com teste de envio: %s\n", STANDBY); } else { printf("Problema no envio do comando\nAbortando o programa..."); return -1; } printf("Pressione enter para continuar..."); getchar(); memset(comando, 0, BUFSIZE); sprintf(comando, "%s", HOME_POS); //Escrevendo com teste de escrita if (enviar_comando(comando, serial_fd) != -1) { printf("Enviando de comando com teste de envio: %s\n", HOME_POS); } else { printf("Problema no envio do comando\nAbortando o programa..."); return -1; } memset(comando, 0, BUFSIZE); ///////////////////// // SEGUNDO COMANDO // ///////////////////// //system("rm input.txt"); //system("cat /dev/null > input.txt"); //system("rm pos.txt"); //system("cat /dev/null > pos.txt"); do { if(system ("clear")); t1 = angSenseBas*PI/180; t2 = angSenseShl*PI/180; t3 = angSenseElb*PI/180; t4 = angSenseWri*PI/180; X = cos(t1)*(L3*cos(t2 + t3) + L2*cos(t2) + L4*cos(t2 + t3 + t4)); Y = sin(t1)*(L3*cos(t2 + t3) + L2*cos(t2) + L4*cos(t2 + t3 + t4)); Z = L1 + L3*sin(t2 + t3) + L2*sin(t2) + L4*sin(t2 + t3 + t4); calc_tetas(X, Y, Z, phi); printf("A coordenada x do ponto : %.2f \n", X); printf("A coordenada y do ponto : %.2f \n", Y); printf("A coordenada z do ponto : %.2f \n", Z); printf("phi da ferramenta : %.2f \n", angSenseShl+angSenseElb+angSenseWri); //printf("#0P%dS%d#1P%dS%d#2P%dS%d#3P%dS%d#4P%dS%dT%d\n", (int)sense[0], s, (int)sense[1], s, (int)sense[2], s, (int)sense[3], s, (int)sense[4], s, t); printf("%s\n", last_comando); printf("BASE -> (Q)ESQUERDA ; (A)DIREITA | LARGURA DO PULSO: %.2f \t | ANGULO: %.2f \t | ANGULOC: %.2f \n", sense[0], angSenseBas, teta[0]); printf("OMBRO -> (W)CIMA ; (S)BAIXO | LARGURA DO PULSO: %.2f \t | ANGULO: %.2f \t | ANGULOC: %.2f \n", sense[1], angSenseShl, teta[1]); printf("COTOVELO -> (E)CIMA ; (D)BAIXO | LARGURA DO PULSO: %.2f \t | ANGULO: %.2f \t | ANGULOC: %.2f \n", sense[2], angSenseElb, teta[2]); printf("PUNHO -> (R)CIMA ; (F)BAIXO | LARGURA DO PULSO: %.2f \t | ANGULO: %.2f \t | ANGULOC: %.2f \n", sense[3], angSenseWri, teta[3]); printf("GARRA -> (T)FECHAR ; (G)ABRIR | LARGURA DO PULSO: %d \t \n", (int)sense[4]); printf("Digite space para sair\n"); if(system("/bin/stty raw")); c = getchar(); if(system("/bin/stty cooked")); if (c == 'q') { sense[0] = sense[0] + 2; pos = sense[0]; angSenseBas = (offsetBas - sense[0]) * gainBas; sprintf(comando, "#%dP%d", BAS_SERVO, trava(BAS_SERVO, pos)); } else if (c == 'a') { sense[0] = sense[0] - 2; pos = sense[0]; angSenseBas = (offsetBas - sense[0]) * gainBas; sprintf(comando, "#%dP%d", BAS_SERVO, trava(BAS_SERVO, pos)); } else if (c == 'w') { sense[1] = sense[1] + 2; pos = sense[1]; // angSenseShl = (sense[1] - offsetShl) * gainShl; angSenseShl = 762.684+7.948*sense[1]; sprintf(comando, "#%dP%d", SHL_SERVO, pos * (pos < 1850) + 1850 * (pos >= 1850)); } else if (c == 's') { sense[1] = sense[1] - 2; pos = sense[1]; // angSenseShl = (sense[1] - offsetShl) * gainShl; angSenseShl = 762.684+7.948*sense[1]; sprintf(comando, "#%dP%d", SHL_SERVO, pos * (pos < 1850) + 1850 * (pos >= 1850)); } else if (c == 'e') { sense[2] = sense[2] - 2; pos = sense[2]; // angSenseElb = (offsetElb - sense[2]) * gainElb - 180; angSenseElb = 854.377-9.231*sense[2]; sprintf(comando, "#%dP%d", ELB_SERVO, pos); } else if (c == 'd') { sense[2] = sense[2] + 2; pos = sense[2]; // angSenseElb = (offsetElb - sense[2]) * gainElb - 180; angSenseElb = 854.377-9.231*sense[2]; sprintf(comando, "#%dP%d", ELB_SERVO, pos); } else if (c == 'r') { sense[3] = sense[3] + 2; pos = sense[3]; // angSenseWri = (sense[3] - offsetWri) * gainWri - 90; angSenseWri = 1465.639+10.114*sense[3]; sprintf(comando, "#%dP%d", WRI_SERVO, trava(WRI_SERVO, pos)); } else if (c == 'f') { sense[3] = sense[3] - 2; pos = sense[3]; // angSenseWri = (sense[3] - offsetWri) * gainWri - 90; angSenseWri = 1465.639+10.114*sense[3]; sprintf(comando, "#%dP%d", WRI_SERVO, trava(WRI_SERVO, pos)); } else if (c == 't') { sense[4] = sense[4] + 10; pos = sense[4]; sprintf(comando, "#%dP%d", GRI_SERVO, trava(GRI_SERVO, pos)); } else if (c == 'g') { sense[4] = sense[4] - 10; pos = sense[4]; sprintf(comando, "#%dP%d", GRI_SERVO, trava(GRI_SERVO, pos)); } else if (c == 'p') { if(system("gnome-terminal -x /home/aluno/intolerants/meta3/meta3")); } else if (c == '=') { FILE *f = fopen("input.txt", "a"); if (f == NULL) { printf("Error opening file!\n"); exit(1); } /* print some text */ fprintf(f, "%d %d\n", (int)X+OFFSETX, (int)Y+OFFSETY); fclose(f); FILE *f2 = fopen("pos.txt", "a"); if (f2 == NULL) { printf("Error opening file!\n"); exit(1); } /* print some text */ fprintf(f2, "#0P%uT1000#1P%uT1000#2P%uT1000#3P%uT1000#4P%uT1000\n", (unsigned int)sense[0], (unsigned int)sense[1], (unsigned int)sense[2], (unsigned int)sense[3], (unsigned int)sense[4]); fclose(f2); } else if (c == 'b') { int *bolas, i, n; printf("\nDigite quantas bolinhas:\n"); scanf("%d", &n); bolas = malloc(n*sizeof(int)); printf("\nDigite a ordem das bolinhas:\n"); for (i = 0; i < n; i++) scanf("%d", &bolas[i]); //bolas[i] = i+1; desenha(bolas, n); } else if (c == '0') { // sense[0] = 1528; // sense[1] = 1796; // sense[2] = 2072; // sense[3] = 844; // sense[4] = 1870; // // send_command(1528,1796,2072,844,1870); // int delay = 2000; // sprintf(comando,"#0P%dT%d#1P%dT%d#2P%dT%d#3P%dT%d#4P%dT%d", sense[0], s, sense[1], s, sense[2], s, sense[3], s, sense[4], s, t); repouso(); } else if (c == '1') { move(2.97,-22.55,9,-5); sleep(3); move(6.02,-27.16,9.63,-10.38); sleep(3); } else if (c == 'h') { printf("Insira s e t: "); if(scanf("%d", &s)); if(scanf("%d", &t)); sprintf(comando, "#0P1528S%d#1P1468S%d#2P1672S%d#3P1504S%d#4P1870S%dT%d", s, s, s, s, s, t); } else if (c == 'z') { pega(); // getchar(); } else if (c == 'x') { solta(); // printf("solta\n"); // getchar(); } else if (c == 'm'){ printf("\n\n"); printf("x: "); if(scanf("%f", &x)); printf("y: "); if(scanf("%f", &y)); printf("z: "); if(scanf("%f", &z)); printf("phi: "); if(scanf("%f", &phi)); move(x,y,z,phi); printf("%s\n", comando); } if (enviar_comando(comando, serial_fd) != -1) { printf("\nEnviando de comando com teste\n"); } else { printf("Problema no envio do comando\nAbortando o programa..."); return -1; } // while ( (c = getchar()) != '\n'); memset(comando, 0, BUFSIZE); } while ( c != ' '); sprintf(comando, "%s", STANDBY); enviar_comando(comando, serial_fd); memset(comando, 0, BUFSIZE); printf("Pressione enter para relaxar..."); getchar(); sprintf(comando, "%s", RELAX); enviar_comando(comando, serial_fd); // FIM DO PROGRAMA DEMO // fechar_porta(serial_fd); printf("\nAcesso a porta serial /dev/ttyS0 finalizado\n"); } printf("\nPROGRAMA FINALIZADO\n\n"); return 0; }