Autore |
Discussione  |
|
klaudio
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Triggiano
|
Inserito il - 14/12/2006 : 09:38:34
|
Qualcuno che ha avuto la fortuna di avere un professore che gli abbia insegnato a programmare in c potrebbe per favore spiegarmi cosa fa esattamente il programma!! Se digito la lettera a mi restituisce in valore letto il codice ascii della lettera a(97)e in valore intero calcolato 49 che equivale a 1 nella tabella ascii. Se digito 1 mi restituisce in valore letto il codice ascii di 1 e in valore intero calcolato 1. Cioè trasforma 1cifra in 1 intero e la lettera a in cosa viene trasformata?? Il nostro prof di progra vuole adesso farci modificare il programma facendoci digitare un intero e trasformarlo in una sequenza di caratteri..........E come si fa??
//QUESTO PROGRAMMA LEGGE UNA SEQUENZA DI CARATTERI NUMERICI
//E LA TRASFORMA IN UN NUMERO INTERO
//!!!ATTENZIONE!!! //IN C NON ESISTE L'OPERATORE DI ELEVAMENTO A POTENZA //COSTRUIAMO UNA FUNZIONE DI ELEVAMENTO A POTENZA FRA INTERI
#include <stdio.h> #define zero '0' #define base 10 int potenza(int , int ); ***********Perche è necessario definire una funzione per l’elevamento a potenza??***********
int main() { char car, v[10]; int cifra, intero; int n_v,i; //LEGGE LA SEQUENZA DI CARATTERI NUMERICI printf("\nDIGITA UNA SEQUENZA DI CARATTERI NUMERICI, MASSIMO 8 CARATTERI"); printf("\n"); scanf("%c",&car); i=0; ************Perchè inizializza i a 0************ while((car!=' ')&&(car!='\n')) { v[i]=car; i++; scanf("%c",&car); } n_v=i; *********Cosa fa questo assegnamento??*********** printf("\nVALORE LETTO = "); for(i=0;i<n_v; i++)printf("%c",v[i]); printf("\n"); // //TRASFORMA LA SEQUENZA IN NUMERO INTERO intero=0; for(i=0;i<n_v;i++) { //TRASFORMA IL CARATTERE i.mo IN CIFRA cifra=v[i]-zero; //AGGIORNA INTERO intero=intero+cifra*(potenza(base,(n_v-1-i))); ****Cosa fa???***** } printf("\nVALORE INTERO CALCOLATO =%d",intero); printf("\n"); system("pause"); return 0; }
int potenza(int b,int e) { int i, p; p=1; for(i=0; i<e; p*=b,i++); return p; }
|
Addante Claudio |
|
fabbattista
utente SEMPRE giovane
 

Regione: Puglia
Prov.: Bari
Città: Bari
|
Inserito il - 14/12/2006 : 09:46:46
|
se posso dare un consiglio, prima di capire cosa fa il codice, chiarisciti le idee su quale algoritmo stai usando per fare la operazione di conversione in questione.... |
 |
|
genius
dott. ing. cav. ...FN
    

Regione: Puglia
Prov.: Bari
Città: Molfetta - Caput Mundi
|
Inserito il - 14/12/2006 : 15:43:54
|
bè io direi che il tuo problema non è il c. Prima di capire il programma, cerca di capire cosa vuoi fare. Nella fattispecie stai trasformando la stringa '12345' nel numero 12345, leggendo questa stringa carattere per carattere da tastiera. Come sicuramente saprai (lo sai vero???) il sistema di numerazione decimale (e in generale tutti i sistemi di numerazione + usati) è un sistema 'posizionale'. Questo significa ke la cifra 1 ha valore 1 nel numero 21, ma ha valore 100 nel numero 120. La funzione potenza ti serve a calcolare il valore di una cifra in base alla sua posizione e alla base del sistema di numerazione ke stai usando (decimale, binario, ottale...) |
"...e se non hai morale e se non hai passione se nessun dubbio ti assale perché la sola ragione che ti interessa avere è una ragione sociale soprattutto se hai qualche dannata guerra da fare non farla nel mio nome non farla nel mio nome che non hai mai domandato la mia autorizzazione se ti difenderai non farlo nel mio nome che non hai mai domandato la mia opinione..."
Un blog farlocco |
 |
|
|
Discussione  |
|
|
|