Vai al contenuto

programma senza errori che non esegue correttamente con Xcode


Messaggi raccomandati

Salve,

ho appena comprato un mac; ho sempre programmato in Windows con cygwin, e adesso invece mi sono convertita. Per programmare sul mac uso Xcode: il problema che riscontro è che un programma scritto da me (in C) che su Cigwin in Windows compila ed esegue correttamente, su Xcode del mac compila ma nell'esecuzione si interrompe e mi compare sulla schermata: (lldb) . Che significa? Come faccio a far funzionare il mio programma?

Grazie in anticipo

Link al commento
Condividi su altri siti

posto il codice (è in C): è un programma che stima i due parametri a e b di una retta y= ax+b con il metodo dei minimi quadrati.

#include <stdio.h>

#include <math.h>

int main() {

int n, i;

double x[1000]={0}, y[1000]={0}, sumx=0, sumy=0, sumxquad=0, sumxy=0, a, b, persigmay=0, sigmay, erra, errb;

printf ("\nQuesto programma utilizza il metodo dei minimi quadrati per stimare i parametri a e b di una retta di equazione y=ax+b ; si è ipotizzato che i dati sperimentali ottenuti siano legati da una dipendenza lineare. \nE' importante specificare che i valori che il programma restituisce sono validi solo nel caso in cui le varianze di tutte le y dei valori siano uguali.");

printf ("\n\nInserire il numero di dati del campione (numero delle coppie): ");

scanf ("%d",&n);

for (i=0; i<n; i++) {

printf ("\nInserire il dato x: ");

scanf ("%lf", &x);

}

for (i=0; i<n; i++) {

printf ("\nOra inserire il dato y: ");

scanf ("%lf", &y);

}

for (i=0; i<n; i++) {

sumx+=x;

sumy+=y;

sumxquad+=pow(x,2);

sumxy+=x*y;

}

a=(n*sumxy-sumy*sumx)/(n*sumxquad-pow(sumx,2));

b=(sumy*sumxquad-sumx*sumxy)/(n*sumxquad-pow(sumx,2));

printf ("\nDella retta y=ax+b, il valore di a è %f", a);

printf ("\nDella retta y=ax+b, il valore di b è %f", b);

printf ("\nInserire la varianza delle y(inserire 0 se non è nota): ");

scanf ("%lf",&sigmay);

if (sigmay==0) {

for (i=0; i<n; i++) {

persigmay+=pow((y-b-a*x),2);

}

sigmay=sqrt(persigmay/(double)(n-2));

}

printf ("\npersigmay=%f", persigmay);

printf ("\nsigmay=%f", sigmay);

erra=sigmay*sqrt(n/(n*sumxquad-pow(sumx,2)));

errb=sigmay*sqrt(sumxquad/(n*sumxquad-pow(sumx,2)));

printf ("\nL'indeterminazione associata al parametro a della retta y=ax+b è %f", erra);

printf ("\nL'indeterminazione associata al parametro b della retta y=ax+b è %f", errb);

}

Il programma compila ed esegue perfettamente se utilizzo Cigwin in Windows; ma se lo faccio sul Mac con Xcode, succede che se digito i dati richiesti molto velocemente il programma esegue bene fino alla fine, mentre se lo faccio a una velocità normale (ad esempio se devo copiare i dati da un foglio) , il programma si chiude da solo così, mi sparisce, e non capisco perchè (come se ci fosse un tempo limite per eseguirlo). Il problema della scritta (lldb) invece non c'è più, ma se n'è andato da solo, non ho idea di che cos'era e del perchè adesso non ci sia più (ma comunque è un bene)..

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...