Sequenza di rettangoli con sotoprogrammi

di il
2 risposte

Sequenza di rettangoli con sotoprogrammi

Potreste dirmi dove sbaglio?
devo scrivere il seguente programma :

• Scrivere un programma C++ che legge i dati relativi ad una sequenza di
rettangoli, calcola e stampa a video il numero di rettangoli che giacciono sul
primo quadrante e hanno una diagonale maggiore di 7.0.
• Ogni rettangolo è rappresentato da quattro interi, corrispondenti alle
coordinate x e y del vertice in basso a sinistra e del vertice in alto a destra.
• La lettura dei rettangoli si deve interrompere quando l'utente inserisce i dati
relativi ad un rettangolo con altezza e larghezza pari a zero.

il problema è che una volta letti i rettangoli non esegue le istruzioni successive...
 #include <iostream>
#include <math.h>
using namespace std;

void leggiRettangolo(int& xBassoSn, int& yBassoSn, int& xAltoDs, int& yAltoDs) {
    cout << " leggi coordinate del punto in alto a destra " << endl;
    cin >> xAltoDs;
    cin >> yAltoDs;
    cout << " leggi coordinate del punto in basso a sinistra " << endl;
    cin >> xBassoSn;
    cin >> yBassoSn;
return;    
}

bool fineLettura(int xBassoSn, int yBassoSn, int xAltoDs, int yAltoDs) {
float base, altezza;
bool continua; 
    base = yAltoDs-yBassoSn;
    altezza = xAltoDs-xBassoSn;
    if (base == 0 && altezza == 0){
    continua = true;
    }else{
    continua = false;
    }
return continua;
}


float calcolaDiagonale(int xBassoSn, int yBassoSn, int xAltoDs, int yAltoDs) {
float base, altezza, diagonale; 
    base = yAltoDs-yBassoSn;
    altezza = xAltoDs-xBassoSn;
    diagonale = sqrt(base*base+altezza*altezza);
    return diagonale;
}

bool nelPrimoQuadrante(int xBassoSn, int yBassoSn, int xAltoDs, int yAltoDs){
bool continua;
float base, altezza;
    base = yAltoDs-yBassoSn;
    altezza = xAltoDs-xBassoSn;
    if (base>0 && altezza>0){
    continua = true;
    }else{
    continua = false;
    }
return continua; 

}


int main () {

int xBassoSn, yBassoSn, xAltoDs, yAltoDs;
int x1, y1, x2, y2;
int contaRettangoli = 0;
bool continua = true;
    
    leggiRettangolo(xBassoSn, yBassoSn, xAltoDs, yAltoDs);
    if (nelPrimoQuadrante(x1,y1,x2,y2) && calcolaDiagonale(x1,y1,x2,y2) > 7.0){
    contaRettangoli++;
    }
    if (fineLettura(x1,y1,x2,y2)){
    cout << " stop " << endl;
    }
    cout << " numero rettangoli richiesti " << contaRettangoli << endl;
system("pause");
}

2 Risposte

  • Re: Sequenza di rettangoli con sotoprogrammi

    Ma "dove sbagli" cosa?
  • Re: Sequenza di rettangoli con sotoprogrammi



    Dovresti mettere i numeri di riga nel post:

    a ogni modo controlla la riga 62

    if ( nelPrimoQuadrante(x1,y1,x2,y2) && calcolaDiagonale(x1,y1,x2,y2) > 7.0) <--- controlla le )

    il codice if a me da errore

    if (fineLettura(x1,y1,x2,y2)) anche questo da errore

    io però ho incluso #include <cstdlib>

    e alla riga 69
    bool continua = true; ottengo warning " continua è una variabile non usata"
Devi accedere o registrarti per scrivere nel forum
2 risposte