|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2005
Città: Salerno
Messaggi: 477
|
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!
![]() ![]() ![]() |
![]() |
![]() |
![]() |
#2 | |
Bannato
Iscritto dal: Nov 2004
Messaggi: 124
|
Re: PROGRAMMA IN C
Quote:
Dopo pranzo controllo...oggi tanto devos studiare programmazione 1...altrimenti potrei provarlo ad implementare l'algoritmo...dopo vedo che posso fà.... Ciao Andrea |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2005
Città: Salerno
Messaggi: 477
|
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!
|
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Nov 2004
Messaggi: 124
|
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à |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
ho trovato questo su internet, spero ti aiuti:
Codice:
#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); }
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#6 | |
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Re: PROGRAMMA IN C
Quote:
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à.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Mar 2005
Città: Salerno
Messaggi: 477
|
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!
![]() |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Oct 2004
Città: Acireale
Messaggi: 447
|
Quote:
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!!! ![]()
__________________
Ho concluso acquisti e/o vendite con : SHIVA>>LuR<<, TheGaiden, ArvMau |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:24.