Autore Topic: Prime difficoltà col 'C'  (Letto 4904 volte)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Prime difficoltà col 'C'
« Risposta #15 il: 10 Settembre 2010, 22:12:43 »
il codice va in loop indipendentemente da ciò che scegli? cioè si o no?

Il programma si ferma solamente alla 1^ digitazione float. Non appena conclusa col tasto INVIO va subito in loop. Perciò non riesco a fare alcuna scelta.
:ciao:

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Prime difficoltà col 'C'
« Risposta #16 il: 10 Settembre 2010, 22:29:54 »
Ho eliminato dal programma il ciclo while; pertanto le istruzioni rimaste sono solamente:
 
Codice: c [Seleziona]
 printf("\n\ndigita Quota (Importo parziale):");
   scanf("%.2f", &QuoDig);
   printf("\ndigita Montante (Importo Globale):");
   scanf("%.2f", &MontDig);
   QuotaX = QuoDig * MontDig / MontGlob;
   printf("\nQuota proporzionale calcolata =  %.2f\n", QuotaX);

   printf("Vuoi continuare ?  (0=si ,  1=No):");
   scanf("%d", &SiNo);

   return 0;

Ecco cosa succede:
Citazione
digita Quota (Importo parziale):147.25

digita Montante (Importo Globale):
Quota proporzionale calcolata =  0.00
Vuoi continuare ?  (0=si ,  1=No):
piero@fedora-pct:~/C$
:ciao:

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Prime difficoltà col 'C'
« Risposta #17 il: 11 Settembre 2010, 00:57:17 »
il codice va in loop indipendentemente da ciò che scegli? cioè si o no?

Il programma si ferma solamente alla 1^ digitazione float. Non appena conclusa col tasto INVIO va subito in loop. Perciò non riesco a fare alcuna scelta.

È un comportamento troppo strano....ho provato a fare una semplice prova (scusa ilo gioco di parole) e funziona...

Codice: c [Seleziona]
# include <stdio.h>

int main()
{
    int i;
    while(i!=1)
    {
        printf("digiti: ");
        scanf("%d", &i); 
    }

    return 0;
}

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Prime difficoltà col 'C'
« Risposta #18 il: 11 Settembre 2010, 12:17:53 »
Ho provato anch'io il codice che mi hai citato e funziona benissimo.

Sono sempre convinto che ho sbagliato io qualcosa nel mio programmino-studio. Ma tu l'hai provato?
:ciao:

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Prime difficoltà col 'C'
« Risposta #19 il: 11 Settembre 2010, 13:27:07 »
Ho modificato per prova il mio programmino:
Codice: c [Seleziona]
#include <stdio.h>
int main()
{
 int QuoDig = 0; /* Quota_Digitata */
 
 float MontDig = 0; /* Montante_digitato */
 float MontGlob = 210000.00; /* Montante_Globale */
 float QuotaX = 0; /* Quota_Digitata */

 int SiNo; /* 0 ==> SI    1 ==> NO */
 
 while ( SiNo != 1 )
 {
   printf("\n\ndigita Quota (Importo parziale):");
   scanf("%d", &QuoDig);
   printf("Vuoi continuare ?  (0=si ,  1=No):\n");
   scanf("%d", &SiNo);
  }
 return 0;
 }


Come puoi vedere ho lasciato solo le variabili int. Così facendo la funzione while funziona perfettamente ed il loop é scomparso. Quindi il problema é l'utilizzo delle variabili float. É necessario perciò che capisca come gestire i numeri in virgola mobile, dall'immissione da tastiera fino alla stampa.
Già avere scoperto la natura del problema é una gran cosa.
 :)
Ciao.
:ciao:

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Prime difficoltà col 'C'
« Risposta #20 il: 11 Settembre 2010, 14:26:05 »
Onestamente il tuo problema mi è del tutto nuovo e non mi ci sono mai imbattuto nonostante molte volte ho utilizzato anche cicli volutamente infiniti...

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Prime difficoltà col 'C'
« Risposta #21 il: 11 Settembre 2010, 16:01:02 »
Finalmeeeeeeenteee  ♬♬♩♫ ;D
Ce l'ho fatta. Come? Modificando il carattere di formattazione in ciascuna scanf per la lettura di valori float:
Citazione
scanf("%.2f", &variabile
scanf("%f", &variabile);
mentre la printf é rimasta inalterata
 
Codice: [Seleziona]
printf("\nQuota proporzionale calcolata =  %.2f\n", QuotaX);

Probabilmente, all'atto dell'immissione, non é prevista la lunghezza dei decimali. É possibile?
 :) :D ;D
Ciao.
:ciao:

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Prime difficoltà col 'C'
« Risposta #22 il: 11 Settembre 2010, 23:49:02 »
Dopo la prova ben riuscita, ho portato il programmino al suo definitivo assetto. Devo dire che per piccole soluzioni il "C" é molto pratico e veloce da sviluppare. Infatti, esso permette, in certi casi, di non scomodare Mr.Gambas, Per me é un'eccellente alternativa.
 8)

Ora mi sento meglio e posso studiare il "C" con più calma, mentre ritorno ad occuparmi del mio programma in Gambas che ho dovuto sospendere per quell'impatto sui metodi nascosti. Infatti, penso che dovrò rivederlo quasi tutto.
 :)

A questo punto però é necessario sviluppare la sequenza: 
1) brindisi d'autoaugurio  :2birre:
2) una lunga  :sleepy:  per ricaricarmi
3) ed infine sgobbare, sgobbare, ...  :coder: :coder: :coder:
----------------------------------------------------------
 :D :D
Ciao.



:ciao: