[RISOLTO]sbaglia sempre i calcoli

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
danzio
Prode Principiante
Messaggi: 18
Iscrizione: lunedì 17 febbraio 2014, 17:12
Desktop: Unity
Distribuzione: Ubuntu 14.04 64 bit

[RISOLTO]sbaglia sempre i calcoli

Messaggio da danzio »

Salve a tutti, premetto che è da un paio di settimane che cerco di imparare il linguaggio c. Dopo aver letto le funzioni base di c avevo pensato di programmare un codice che permettesse di svolgere equazioni di secondo grado. Adesso il punto è che inizialmente ho trovato un po' di difficolta, ma adesso sembra filare tutto liscio, con la particolarità che il delta non assume mai il valore corretto e il programma lo posso eseguire solo su geany :(
Uso Geany come Ide e compilatore. Mentre se uso gcc me lo fa compilare ma non me lo fa eseguire

Codice: Seleziona tutto

#include <stdio.h>
#include <math.h>
int main()
{
	int i, a, b, c;
	float x1, x2;
	printf("Scrivere 1 o 2 se si tratta rispettivamente di: \n 1)Equazione \n 2)Disequazione\n");
	scanf("%d",&i);
	if( i == 1 )
    {
    float delta;
	printf("\n Il modello scelto equivale ad un equazione del tipo ax^2+bx+c=0 \n");
	printf("inserire a=");
	scanf("%d", &a);
	printf("\ninserire b=");
	scanf("%d", &b);
	printf("\ninserire c=");
	scanf("%d", &c);
	delta = (float)b*(float)b-4*(float)a*(float)c;
	printf("\n il delta è uguale a %f\n", delta);
	if(delta < 0)
    {
		printf("\n l'equazione corrisponente non è mai uguale a 0 \n");
	
  }
	 else
	       {
		   float rad_delta;
		   rad_delta = sqrt(delta);
	       x1 = (( - b - rad_delta ) / (2 * a) );
	       x2 = (( - b + rad_delta ) / (2 * a) );
	       if(x1==x2)
	       {
	       printf("l'equazione ammette due valori coincidenti x1=x2=%f", x1);
	   }
	       else
	       {
           printf("\n l'equazione ammette due soluzioni distinte x1= %f, x2=%f\n", x1, x2);
           	}
     }
     

}
else
{
 printf("le disequazioni non le trattiamo al momento"); 
}
return 0;
}
mentre su gcc l'errore è il seguente

Codice: Seleziona tutto

danzio@danzio-SVE1513Q1ESI:~$ cd /home/danzio/Documenti/prova
danzio@danzio-SVE1513Q1ESI:~/Documenti/prova$ gcc -Wall  -o equazioni equazioni.c -lm
danzio@danzio-SVE1513Q1ESI:~/Documenti/prova$ gcc equazioniequazioni: nella funzione "_fini":
(.fini+0x0): definizione multipla di "_fini"
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_info): relocation 0 has invalid symbol index 7
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_info): relocation 1 has invalid symbol index 8
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_info): relocation 2 has invalid symbol index 9
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_ranges): relocation 0 has invalid symbol index 4
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_ranges): relocation 1 has invalid symbol index 4
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_ranges): relocation 2 has invalid symbol index 5
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_ranges): relocation 3 has invalid symbol index 5
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o:(.fini+0x0): definito qui per la prima volta
equazioni: nella funzione "data_start":
(.data+0x0): definizione multipla di "__data_start"
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 0 has invalid symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 1 has invalid symbol index 12
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 2 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 3 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 4 has invalid symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 5 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 6 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 7 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 8 has invalid symbol index 12
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 9 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 10 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 11 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 12 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 13 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 14 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 15 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 16 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 17 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 18 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 19 has invalid symbol index 21
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_line): relocation 0 has invalid symbol index 2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o:(.data+0x0): definito qui per la prima volta
equazioni: nella funzione "data_start":
(.data+0x8): definizione multipla di "__dso_handle"
/usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o:(.data+0x0): definito qui per la prima volta
equazioni:(.rodata+0x0): definizione multipla di "_IO_stdin_used"
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o:(.rodata.cst4+0x0): definito qui per la prima volta
equazioni: nella funzione "_start":
(.text+0x0): definizione multipla di "_start"
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o:/build/buildd/eglibc-2.17/csu/../sysdeps/x86_64/start.S:119: definito qui per la prima volta
equazioni: nella funzione "_init":
(.init+0x0): definizione multipla di "_init"
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_line): relocation 0 has invalid symbol index 4
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_line): relocation 1 has invalid symbol index 5
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o:/build/buildd/eglibc-2.17/csu/../sysdeps/x86_64/crti.S:64: definito qui per la prima volta
/usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o:(.tm_clone_table+0x0): definizione multipla di "__TMC_END__"
equazioni:(.data+0x10): definito qui per la prima volta
/usr/bin/ld: error in equazioni(.eh_frame); no .eh_frame_hdr table will be created.
collect2: error: ld returned 1 exit status
danzio@danzio-SVE1513Q1ESI:~/Documenti/prova$
Un altra cosa... Tutto questo mi accade anche anche se uso codici sorgente reperibili nella rete, e questo suona abbastanza strano XD
Qualcuno può dirmi gentilmente cosa sta succedendo?? grazie in anticipo :D

edit: ho sostituito code su spoiler
Ultima modifica di danzio il martedì 8 aprile 2014, 23:24, modificato 2 volte in totale.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: sbaglia sempre i calcoli

Messaggio da Zoff »

Che comando sarebbe questo?

Codice: Seleziona tutto

 gcc equazioniequazioni: nella funzione "_fini":
A me funziona:

Codice: Seleziona tutto

Scrivere 1 o 2 se si tratta rispettivamente di: 
 1)Equazione 
 2)Disequazione
1

 Il modello scelto equivale ad un equazione del tipo ax^2+bx+c=0 
inserire a=1

inserire b=-2

inserire c=1

 il delta è uguale a 0.000000
l'equazione ammette due valori coincidenti x1=x2=1.000000

Codice: Seleziona tutto

Scrivere 1 o 2 se si tratta rispettivamente di: 
 1)Equazione 
 2)Disequazione
1

 Il modello scelto equivale ad un equazione del tipo ax^2+bx+c=0 
inserire a=5

inserire b=4

inserire c=3

 il delta è uguale a -44.000000

 l'equazione corrisponente non è mai uguale a 0

Codice: Seleziona tutto

Scrivere 1 o 2 se si tratta rispettivamente di: 
 1)Equazione 
 2)Disequazione
1

 Il modello scelto equivale ad un equazione del tipo ax^2+bx+c=0 
inserire a=4

inserire b=2

inserire c=-4

 il delta è uguale a 68.000000

 l'equazione ammette due soluzioni distinte x1= -1.280776, x2=0.780776
PS: Il tag corretto per postare codice è

Codice: Seleziona tutto

 non [spoiler]
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
danzio
Prode Principiante
Messaggi: 18
Iscrizione: lunedì 17 febbraio 2014, 17:12
Desktop: Unity
Distribuzione: Ubuntu 14.04 64 bit

Re: sbaglia sempre i calcoli

Messaggio da danzio »

e allora quale può essere il problema? perchè anche a me sembra strano
danzio
Prode Principiante
Messaggi: 18
Iscrizione: lunedì 17 febbraio 2014, 17:12
Desktop: Unity
Distribuzione: Ubuntu 14.04 64 bit

Re: sbaglia sempre i calcoli

Messaggio da danzio »

comunque non è un comando che ho dato io xD non so cosa c'entri
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: sbaglia sempre i calcoli

Messaggio da Zoff »

Beh magari ti sei sbagliato con un copia/incolla.
L'errore dipende da quel comando.

Posta un output errato.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
danzio
Prode Principiante
Messaggi: 18
Iscrizione: lunedì 17 febbraio 2014, 17:12
Desktop: Unity
Distribuzione: Ubuntu 14.04 64 bit

Re: sbaglia sempre i calcoli

Messaggio da danzio »

adesso ho controllato, appena scrivo

Codice: Seleziona tutto

gcc equazioni
mi dà quell'errore, ma se risalgo su trovo scritto quel comando strano...
Ultima modifica di danzio il martedì 8 aprile 2014, 23:14, modificato 1 volta in totale.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: sbaglia sempre i calcoli

Messaggio da Zoff »

Beh è normale stai cercando di compilare il file binario invece dei sorgenti
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
danzio
Prode Principiante
Messaggi: 18
Iscrizione: lunedì 17 febbraio 2014, 17:12
Desktop: Unity
Distribuzione: Ubuntu 14.04 64 bit

Re: sbaglia sempre i calcoli

Messaggio da danzio »

ok Quindi cosa dovrei fare in definitiva??
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: sbaglia sempre i calcoli

Messaggio da Zoff »

Il primo comando che hai dato è corretto:

Codice: Seleziona tutto

gcc -Wall  -o equazioni equazioni.c -lm
Dai quel comando, poi posta l'output di:

Codice: Seleziona tutto

./equazioni
dopo aver inserito i valori
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
danzio
Prode Principiante
Messaggi: 18
Iscrizione: lunedì 17 febbraio 2014, 17:12
Desktop: Unity
Distribuzione: Ubuntu 14.04 64 bit

Re: sbaglia sempre i calcoli

Messaggio da danzio »

grazie mille :D :D adesso tutto funziona.
Adesso mi metto all'opera per le disequazioni :D :D
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 16 ospiti