Ir ao conteúdo
  • Cadastre-se

matheusvitor

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

posts postados por matheusvitor

  1. Estou com um problema em um programa que calcula a área de uma figura que está no primeiro quadrante do sistema bidimensional. Percebi que a matriz que eu coloquei para armazenar as coordenadas vértices da figura está alterando o valor toda vez que é realizada uma operação. Tem casos que calcula certinho, mas a maioria não.

    #include <iostream>
    
    using namespace std;
    
    int main() {
    
        int nvert, i, j;
        string fig;
        double a, bmenor, bmaior, h, area=0;
        cout << "Digite a quantidade de vertices: ";
        cin >> nvert;
    
        cout << "Do ponto 1 para o 2 a figura esta na (direita/esquerda): ";
        cin >> fig;
    
        double pto[nvert][2];
    
        for (i=0; i<nvert; i++){
            cout << "Insira as coordenadas do vertice " << i+1 <<" (x,y): ";
            cin >> pto[i][0] >> pto[i][1];
        }
    
        for (i=0; i<nvert; i++){
            for (j=0; j<2; j++){
                    cout << pto[i][j] << " ";
            }
            cout << "\n";
        }
    
        i=0;
        double integral[i];
    
        while (i < nvert){
    
            if (i != nvert-1){
    
                a = (pto[i][1] - pto[i+1][1])/(pto[i][0] - pto[i+1][0]);
                bmaior = pto[i+1][1];
                h = pto[i+1][0] - pto[i][0];
    
            } else {
    
                a = (pto[i][1] - pto[0][1])/(pto[i][0] - pto[0][0]);
                bmaior = pto[0][1];
                h = pto[0][0] - pto[i][0];
    
            }
    
            if (fig == "esquerda"){
                h = -h;
            }
    
            cout << i << "\n" << "Coeficiente angular: " << a << "\n";
    
            bmenor = pto[i][1];
    
            integral[i] = (bmenor + bmaior) * h / 2;
    
            cout << "Altura: " << h << "\nIntegral: " << integral[i] << "\n\n";
    
            area+=integral[i];
            i+=1;
        }
    
        for (i=0; i<nvert; i++){
            for (j=0; j<2; j++){
                    cout << pto[i][j] << " ";
            }
            cout << "\n";
        }
    
        cout << "Area: " << area << "\n";
    
        return 0;
    }

    Alguém sabe o que eu faço para manter os valores da matriz intactos?

    Um exemplo de entrada com nvert = 8 e fig = esquerda e as coordenadas abaixo:

    image.png.d62a57f7f367dae608a6837fa1eda5a2.png

    Aqui a área tem que dar 7, mas não acontece isso.

    • Obrigado 1

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...