valellamac Inviato 25 Maggio 2012 Segnala Condividi Inviato 25 Maggio 2012 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 Altre opzioni di condivisione...
valellamac Inviato 25 Maggio 2012 Autore Segnala Condividi Inviato 25 Maggio 2012 Ah un'altra cosa: mi succede anche che mentre eseguo un programma, mi si chiude da solo prima che abbia finito! Perchè?? Link al commento Condividi su altri siti Altre opzioni di condivisione...
fra.makaveli Inviato 26 Maggio 2012 Segnala Condividi Inviato 26 Maggio 2012 Potresti postare del codice, errori, qualcosa.... Link al commento Condividi su altri siti Altre opzioni di condivisione...
valellamac Inviato 26 Maggio 2012 Autore Segnala Condividi Inviato 26 Maggio 2012 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 Altre opzioni di condivisione...
fra.makaveli Inviato 26 Maggio 2012 Segnala Condividi Inviato 26 Maggio 2012 Io ho provato ad eseguirlo e funziona alla perfezione.... non so cosa dirti... Immagino che hai l'ultima versione di Xcode (4.3.2) ? Altra cosa che puoi provare è, data la semplicità del programma, compilarlo ed eseguirlo da riga di comando... Link al commento Condividi su altri siti Altre opzioni di condivisione...
valellamac Inviato 26 Maggio 2012 Autore Segnala Condividi Inviato 26 Maggio 2012 Potrebbe essere un problema del mio computer? Sì dovrebbe essere l'ultima versione, c'è scritto Version 4.3.2 (4E2002) ! Che cosa significa eseguirlo da riga di comando? Link al commento Condividi su altri siti Altre opzioni di condivisione...
fra.makaveli Inviato 26 Maggio 2012 Segnala Condividi Inviato 26 Maggio 2012 Per eseguirlo da riga di comando vai nella cartella dove c'è il main.c (oppure copialo da un'altra parte). Poi apri il terminale e una volta spostata nella cartella dove c'è il main.c dai i seguenti comandi: clang main.c ./a.out Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.