Ir para conteúdo
Fórum Script Brasil

Junior Winkler Galhardo

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Junior Winkler Galhardo

Junior Winkler Galhardo's Achievements

0

Reputação

  1. O código tá apresentando esse erro, mas não identifico o porquê #include <stdio.h> #include <math.h> typedef struct { float x, y, z; int p2d; // se 1 é 2d caso contrário 3d } ponto; // FUNÇÕES/OPERAÇÕES PARA DEFINIÇÃO DO PONTO (ENTRADA DE VALORES NO PONTO) void setx (ponto *p, float x) { p->x = x; } void sety (ponto *p, float y) { p->y = y; } void setz (ponto *p, float z) { p->z = z; } void setp2d (ponto *p) { p->p2d = 1; } void setp3d (ponto *p) { p->p2d = 0; } void setponto2d (ponto *p, float x, float y) { p->x = x; p->y = y; p->p2d = 1; } void setponto3d (ponto *p, float x, float y, float z) { p->x = x; p->y = y; p->z = z; p->p2d = 0; } void setponto (ponto *p, float x, float y) { setponto2d (p, x, y); } // FUNÇÕES/OPERAÇÕES PARA RETORNO (SAÍDA) DE VALORES DO PONTO float getx (ponto *p) { return p->x; } float gety (ponto *p) { return p->y; } float getz (ponto *p) { return p->z; } int getp2d (ponto *p) { return p->p2d; } // FUNÇÕES/OPERAÇÕES PARA MANIPULAÇÃO (SAÍDA) DO PONTO int isp2d (ponto *p) { if (p->p2d) // (p->2d != 0) return 1; else return 0; } int isp3d (ponto *p) { if (!p->p2d) // (p->2d == 0) return 0; else return 1; // OU // if (p->p2d) return 0; else return 0; } ////////////////////////////////////////////////////////////////////////////////////// typedef struct { ponto p1, p2; } reta; void setreta (reta *r, ponto *p1, ponto *p2) { r->p1 = *p1; r->p2 = *p2; } void setretaponto1 (reta *r, ponto *p) { r->p1 = *p; } void setretaponto2 (reta *r, ponto *p) { r->p2 = *p; } ponto *getretaponto1 (reta *r) { return &(r->p1); } ponto *getretaponto2 (reta *r) { return &(r->p2); } float getretaponto1x (reta *r) { return (r->p1.x); } float getretaponto1y (reta *r) { return (r->p1.y); } float getretaponto2x (reta *r) { return (r->p2.x); } float getretaponto2y (reta *r) { return (r->p2.y); } int ispontoreta (reta *r, ponto *p) { ponto a=r->p1; ponto b=r->p2; float a1, b1, c1, resultado; a1= (a->y - b->y); b1= (b->x - a->x); c1=(a->x * b->y) - (b->x * a->y); resultado = (a1 * p->x) + (b1 * p->y) + c1; if(!resultado) return 0; else return 1; } float distancia(ponto *p, ponto *p2 ){ float resultado1,resultado2,raiz; resultado1=(p->x-p2->x); resultado2=(p2->y-p->y); resultado1=resultado1*resultado1; resultado2=resultado2*resultado2; raiz=resultado1+resultado2; raiz=sqrt(raiz); return raiz; }; ////////////////////////////////////////////////////////////////////////////////////// int main () { ponto p[4]; reta a, b; float x, y, z; int i, v_plano, c; // ENTRADA DE DADOS ************************************************** for (i = 0; i < 4; i++) { printf ("%do. Ponto Informe x: ", (i+1)); scanf ("%f", &x); printf ("%do. Ponto Informe y: ", (i+1)); scanf ("%f", &y); if (i > 1) { printf ("%do. Ponto Informe z: ", (i+1)); scanf ("%f", &z); } if (i == 0) { // FORMA PARA DEFINIR UM PONTO 2d setx (&p[i], x); sety (&p[i], y); setp2d (&p[i]); } if (i == 1) { // FORMA PARA DEFINIR UM PONTO 2d setponto (&p[i], x, y); // OU setponto2d (&p[i], x, y) } if (i == 2) { // FORMA PARA DEFINIR UM PONTO 3d setponto3d (&p[i], x, y, z); } if (i == 3) { // FORMA PARA DEFINIR UM PONTO 3d setx (&p[i], x); sety (&p[i], y); setz (&p[i], z); } } setp2d (&p[2]); // Transformando o 3o ponto em 2d setreta (&a, &p[0], &p[1]); // Definindo Reta1 setretaponto1 (&b, &p[0]); // Definindo Reta2 setretaponto2 (&b, &p[2]); // Definindo Reta2 // SAÍDA DE DADOS ************************************************* printf ("\n"); for (i = 0; i < 4; i++) { if (isp2d (&p[i])) printf ("%do. Ponto (%f,%f)\n", (i+1), getx(&p[i]), gety(&p[i])); else printf ("%do. Ponto (%f,%f,%f)\n", (i+1), getx(&p[i]), gety(&p[i]), getz(&p[i])); } printf ("\n"); printf ("Reta A Ponto1 (%f,%f)\n", getretaponto1x(&a), getretaponto1y(&a)); printf ("Reta A Ponto2 (%f,%f)\n", getx(getretaponto2 (&a)), gety(getretaponto2 (&a))); printf ("\n"); printf ("Reta B Ponto1 (%f,%f)\n", getx(getretaponto2 (&b)), gety(getretaponto2 (&b))); printf ("Reta B Ponto2 (%f,%f)\n", getretaponto2x(&b), getretaponto2y(&b)); printf ("\n"); if (ispontoreta (&a, getretaponto2(&b))) printf ("Reta B Ponto2 (%f,%f) faz parte Reta A\n", getretaponto2x(&b), getretaponto2y(&b)); printf("A distancia entre os 2 pontos é %f",distancia(&p[0],&p[1])); system ("pause"); return 0; } ERROS: 131 8 C:\Users\usuario\Desktop\DistanciaPontoJunior.c [Error] invalid type argument of '->' (have 'ponto')
×
×
  • Criar Novo...