Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Visualizzare i procedimenti che la macchina esegue..
Forum - C/C++ - Visualizzare i procedimenti che la macchina esegue..

Avatar
matteomitico (Normal User)
Newbie


Messaggi: 3
Iscritto: 11/03/2012

Segnala al moderatore
Postato alle 11:20
Domenica, 11/03/2012
Giorno a tutti, avrei una domanda da porvi e spero capirete quello che voglio dire visto che è difficile spiegarlo per scritto: vorrei che il programma mi stampasse a schermo i calcoli che esegue su questo programma:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int main()
  6. {
  7. int a,b,c,delta;
  8. float x1,x2,radice;
  9. do
  10. {
  11. printf ("inserisci a\n");
  12. scanf ("%d", &a);
  13. } while (a==0);
  14. printf ("inserisci b\n");
  15. scanf ("%d", & b);
  16. printf ("inserisci c\n");
  17. scanf ("%d", &c);
  18. delta= (b)*(b)-(4*a*c);
  19. if (delta<0)
  20. {
  21. printf ("no soluzioni");
  22. }
  23. if (delta==0)
  24. {
  25. radice= sqrt (delta);
  26. x1= (-b)/(2*a);
  27. x2=x1;
  28. printf ("x1 vale %d e x2 vale %d", x1,x2);
  29. }
  30. if (delta>0)
  31. {
  32. radice= sqrt (delta);
  33. x1= (-b+radice)/(2*a);
  34. x2= (-b-radice)/(2*a);
  35. printf ("x1 vale %d e x2 vale %d", x1,x2);
  36. }
  37. system ("pause");
  38. }



in poche parole, quando ad esempio calcola un equazione con delta==0, vorrei che mi scrivesse calcolo per calcolo e che me lo stampasse a schermo, come potrei fare?? grazie dell'aiuto ;)

EDIT: vediamo se riesco a spiegarti meglio: se ho un'equazione da risolvere, scrivero prima la a, poi la b, poi la c, ed iniziero a farmi i calcoli per arrivare alla soluzione.. il mio programma invece basta immettere i 3 valori e ti da immediatamente la risposta; quello che vorrei fare e visualizzare quei passaggi intermedi.. basterebbe una printf?? se si dove dovrei inserirle nel programma??

Ultima modifica effettuata da matteomitico il 11/03/2012 alle 12:49
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 12:34
Domenica, 11/03/2012
Non ti capisco ma se usi la

printf

puoi visualizzare quello che vuoi.

vediamo se riesco a spiegarti meglio: se ho un'equazione da risolvere, scrivero prima la a, poi la b, poi la c, ed iniziero a farmi i calcoli per arrivare alla soluzione.. il mio programma invece basta immettere i 3 valori e ti da immediatamente la risposta; quello che vorrei fare e visualizzare - matteomitico - 11/03/12 12:48
visualizzare ... ? ... In ogni caso, come ti ho detto, utilizza la printf per visualizzare tutto quello che vuoi ... - nessuno - 11/03/12 14:59


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM
Avatar
subazu (Normal User)
Rookie


Messaggi: 35
Iscritto: 06/08/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 15:51
Domenica, 11/03/2012
Prova a fare alcuni esempi....
scrivi l'output terminale che viene prodotto adesso e quello che invece vorresti che venisse prodotto.
con magari diversi valori per le variabili A, B e C


PM
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 18:37
Domenica, 11/03/2012
Ho capito cosa intendi dire, ti scrivo il ragionamento da seguire :

- chiedi A, B e C finché essi sono uguali a 0
- stampa a schermo A, B e C
- calcola il delta
- visualizza tutte le operazioni effettuate sul calcolo del delta
- se il delta è uguale a 0 stampa a schermo che è uguale a zero e calcola X1 e X2 mostrando le operazioni effettuate per calcolare le due variabili
- altrimenti se il delta è minore di 0 visualizza che non ci sono soluzioni
-altrimenti se il delta è maggiore di zero stampa a schermo che è maggiore a zero e calcola X1 e X2 mostrando le operazioni effettuate per calcolare le due variabili
- infine stampa i valori delle variabili

si ma la domanda è: come faccio a mostrare le operazioni effettuate?? mi basta un printf("%d", variabile)? - matteomitico - 11/03/12 20:15
Certo... - Nullable - 11/03/12 20:29
è possibile far scrivere il numero in frazione invece che scriverlo con la virgola? - matteomitico - 11/03/12 20:45
Certo, basta conoscere il procedimento matematico e trascriverlo in C. - Nullable - 11/03/12 20:47
perchè invece di 1/2 mi scrive 0.5.. comunque, ho un problema col while: dopo che metto tutto nel do, scrivo while (a,b,c==0); oppure (a==0, b==0, c==0) ma non funzionano, come posso fare?? - matteomitico - 11/03/12 20:51
Non è così si fa per verificare il valore delle variabili nel ciclo do-while...devi usare gli "operatori logici" : while( a == 0 && b == 0 && c == 0) - Nullable - 11/03/12 20:55
manco cosi funziona, se scrivo 0 mi passa a b - matteomitico - 11/03/12 20:58
Il ciclo viene verificato DOPO che hai assegnato il valore alle variabili, se queste sono TUTTE uguali a 0 allora ti farà riscegliere il loro valore. - Nullable - 11/03/12 21:04
ho risolto in maniera mia, è brutto da leggere ma l'importante è la funzionalità :) adesso pero scrivo printf ("%d", "%d", "%d", a,b,c); pero mi scrive a vale 4406305... come mai? - matteomitico - 11/03/12 21:12
lascia perdere quello che ho scritto prima, niubbaggine mia.. te mi hai detto "visualizza tutte le operazioni effettuate sul calcolo del delta", ma come faccio?? se dichiato il delta e lo stampo a schermo me lo da gia risolto - matteomitico - 11/03/12 21:17
Pensavo lo avessi capito : devi scrivere passaggio dopo passaggio, non devi scrivere la formula e basta. Se vuoi fare quello che vuoi fare tu allora devi calcolare ogni singola operazione ( anche se questa cosa che vuoi fare la ritengo inutile... ) - Nullable - 11/03/12 21:18


Hai perso.
PM
Avatar
subazu (Normal User)
Rookie


Messaggi: 35
Iscritto: 06/08/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 18:09
Lunedì, 12/03/2012
Scusate se insisto, ma se provi a scrivere in un foglio ciò che vuoi che venga prodotto a video, nei 3 casi:
delta==0
delta<0
delta>0
riesci a far capire meglio ciò che ti serve, non per niente un immagine è meglio di mille parole, e dato che si parla di terminale, l'unica cosa che si può vedere sono lettere, posta ciò che vuoi che venga scritto!!

In ogni caso a parer mio il problema non sta nel come ma nel cosa...


PM