View Full Version : PROGRAMMA IN C
Salve a tutti, ho un problemuccio: non riesco a scrivere un programma in C che dato in input un numero binario mi dia in output il corrispettivo numero in decimale! se c'è qualcuno di buona volontà che mi scrive il codice sorgente mi farebbe proprio comodo! Grazie a tutti in anticipo CMQ!:muro: :muro: :muro:
Ir0nM4id3n84
06-03-2005, 12:56
Originariamente inviato da Oppid
Salve a tutti, ho un problemuccio: non riesco a scrivere un programma in C che dato in input un numero binario mi dia in output il corrispettivo numero in decimale! se c'è qualcuno di buona volontà che mi scrive il codice sorgente mi farebbe proprio comodo! Grazie a tutti in anticipo CMQ!:muro: :muro: :muro:
mmm forse esiste qualche funzione nella libreria matematica nel file math.h
Dopo pranzo controllo...oggi tanto devos studiare programmazione 1...altrimenti potrei provarlo ad implementare l'algoritmo...dopo vedo che posso fà....
Ciao
Andrea
Ok....grazie, cmq questo esercizio stava nella parte del libro dove ancora non sono state spiegate le funzioni matematiche quindi credo che si può risolvere con l'algoritmo!
Ir0nM4id3n84
06-03-2005, 13:20
oddio si...però non è che c'è troppo da spiegare.
includi il file math.h cerchi se c'è una funzione che fa al caso tuo (mica te le spiega nessuno funzione per funzione...basta che sai che là ci sono quelle che fanno operazioni matematiche e poi le cerchi volta per volta) e la invochi passandogli il valoe da convertire...dopo vedo che posso fà
RaouL_BennetH
06-03-2005, 13:56
ho trovato questo su internet, spero ti aiuti:
#include <stdio.h>
#include <math.h>
int main()
{
int cifraBinaria;
int numeroDecimale;
long int numBinario; /* long perchŠ dovr… contenere (eventualmente) 1111111111 */
int numCifra;
int esponente;
numeroDecimale=0;
numBinario=0;
printf("\nInserire la lunghezza (nø cifre) del numero binario da convertire (max 10)
= ");
scanf("%d",&numCifra);
while
(numCifra <0 || numCifra>10)
{
printf("Errore.\nRe-inserire il numero di cifre = ");
scanf("%d",&numCifra);
}
printf("\nInserire il numero binario di %d cifre una cifra alla volta
...\n",numCifra);
while (numCifra >= 1)
{
printf("Inserire la cifra nø%d = ",numCifra);
scanf("%d",&cifraBinaria);
while
(cifraBinaria <0 || cifraBinaria>1)
{
printf("Errore.\nRe-inserire la cifra nø%d = ",numCifra);
scanf("%d",&cifraBinaria);
}
esponente=numCifra-1;
numeroDecimale=numeroDecimale + (cifraBinaria * pow(2,esponente));
/* genera (in una variabile long int) la sequenza di cifre corrispondenti a
quelle binarie inserite */
/* ------------ */
numBinario=numBinario+(cifraBinaria*pow(10,esponente));
/* ------------ */
numCifra=numCifra -1;
}
printf("\nIl numero binario %ld in base 10 è %d",numBinario, numeroDecimale);
}
Ziosilvio
06-03-2005, 14:00
Originariamente inviato da Oppid
se c'è qualcuno di buona volontà che mi scrive il codice sorgente mi farebbe proprio comodo!
Stai chiedendo che ti facciamo i compiti a casa?
Sappi che questo comportamento è mal visto sia nei forum (anche se qui sembra sia in atto un'inversione di tendenza; non so perché), sia nei gruppi di discussione.
Sono invece sempre bene accette le richieste di spiegazioni.
Per esempio: qui è ovvio che non ti è molto chiaro il modo in cui i numeri vengono letti e visualizzati da riga di comando.
Anzitutto, tieni a mente che qualunque cosa passi da riga di comando, è una sequenza di caratteri, e va trattata come tale.
Per convertire una stringa di caratteri in un numero macchina (e viceversa) ci sono funzioni apposite; per conoscere il loro funzionamento, c'è la documentazione.
Io ti consiglio di leggere quella relativa a printf, scanf (dichiarate in stdio.h) e strtol (dichiarata in stdlib.h).
In alternativa, potresti scrivere tu stesso una funzione che legge una sequenza di 0 e 1, un carattere alla volta, e la traduce in un numero; dopo, potresti usare printf per visualizzare il numero come una stringa decimale. Fa' attenzione, perché devi convertire caratteri ASCII in numeri.
L'esercizio è un classico, e una volta che hai letto quello che ti ho detto di leggere, l'esercizio non dovrebbe presentare difficoltà.
Grazie c'è l'ho fatta!! è stato solamente che non riuscito a fare le potenze poi ho trovato la funzione nel file math.h . Non chiedevo di farmi fare i compiti a casa ma solamente un aiuto perchè sono stato su questo problema tutta domenica mattina! Cmq adesso funziona! Grazie! :D
Stai chiedendo che ti facciamo i compiti a casa?
Sappi che questo comportamento è mal visto sia nei forum (anche se qui sembra sia in atto un'inversione di tendenza; non so perché), sia nei gruppi di discussione.
Sono d'accordo con te!
Alla fine questo non è un esercizio complicato e in questo caso
non è consigliato secondo me postare il codice completo del
programma, ma di dare un breve suggerimento su come
implementarlo.
Riutilizzo del software ok, ma chi inizia a programmare deve
capire come funzionano i programmini base!!! :O
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.