Oppure

Loading
23/02/14 16:12
perillitommaso
no allora io forse diciamo non mi sono spiegato, io ho pensato questo nella mia mente ma non ho detto che devo fare solo quello che penso io altrimenti non sarei venuto qui, stiamo discutendo ho aperto questo topic apposta x vedere chi la pensa così e chi la pensa in un altro modo. No non ho fatto le strutture, in informatica siamo solo arrivati alle procedure
aaa
23/02/14 16:21
perillitommaso
poi io non dico che non voglio usare o non posso usare ciò che mi dici tu, ma semplicemente non so come usarlo...
aaa
23/02/14 17:00
Allora ricominciamo.

Il problema che devi risolvere prima di tutto è dove inserire i valori BCD.
Se non usiamo né vettori né strutture allora ci rimane una variabile intera a 32 bit che è sufficiente per inserire le 5 cifre BCD + il segno, ma dovremo usare un po' più codice.

Chiama la prima variabile A e la seconda B e azzerale.

Poi, dato che devi eseguire un input che non può avvenire direttamente nel formato BCD, utilizza una variabile per l'input da usare nella scanf.

Puoi partire con questo codice e poi si continua?
23/02/14 18:13
perillitommaso
Certo, va bene
/*Questo programma esegue la somma tra due numeri binari espressi col codice PACKED BCD*/
#include <stdio.h>
#include <stdlib.h>



int main()
{
    int N;
    int A,B;
    A=0;
    B=0;
    /*Leggiamo i due numeri decimali*/
    printf("Inserisci il primo numero in decimale: \n");
    scanf("%d",&A);
    printf("Inserisci il secondo numero in decimale: \n");
    scanf("%d",&B);

    return 0;
}

E' così che mi dici si?
aaa
23/02/14 19:47
Non esattamente.

A e B sono i valori in BCD e quindi non vanno nella scanf.

Io pensavo di usare N e seguire questo schema

- input di N con la scanf
- conversione in BCD di N in A
- input di N con la scanf
- conversione in BCD di N in B

La conversione la fai chiamando una funzione apposita del tipo

A = BinToBCD(N);

la prima volte e

B = BinToBCD(N);

la seconda.
23/02/14 22:58
pierotofy
Postato originariamente da perillitommaso:
si ma io non ho ancora fatto i vettori :( non so cosa siano ...


Occasione per imparare, su... leggiteli, studiali e vedrai quanto sono utili. :pat:

Non e' che manca la documentazione su internet eh... un po' di iniziativa!
Il mio blog: piero.dev
24/02/14 14:30
perillitommaso
Postato originariamente da nessuno:

Non esattamente.

A e B sono i valori in BCD e quindi non vanno nella scanf.

Io pensavo di usare N e seguire questo schema

- input di N con la scanf
- conversione in BCD di N in A
- input di N con la scanf
- conversione in BCD di N in B

La conversione la fai chiamando una funzione apposita del tipo

A = BinToBCD(N);

la prima volte e

B = BinToBCD(N);

la seconda.


ecco fatto, non pensavo esistesse una funzione per convertire in BCD:
/*Questo programma esegue la somma tra due numeri binari espressi col codice PACKED BCD*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int N;
    int A,B;
    A=0;
    B=0;
    /*Leggiamo i due numeri decimali*/
    printf("Inserisci il primo numero in decimale: \n");
    scanf("%d",&N);
    A = BinToBCD(N); 
    printf("Inserisci il secondo numero in decimale: \n");
    scanf("%d",&N);
    B = BinToBCD(N); 
    return 0;
}

è così si? Ma adesso quindi se stampo A o B visualizzo il numero N inserito convertito in BCD?
Ultima modifica effettuata da perillitommaso 24/02/14 14:32
aaa
24/02/14 14:40
No Tommaso ... non ci capiamo ...

NON esiste la funzione per convertire.

Quello era solo uno spunto ... il main va bene ma la funzione la devi scrivere tu ...
Comincia a ragionarci e ti dò una mano ...


int BinToBCD(int n)
{
    int valBCD = 0;

    ....


    return valBCD;
}

Ultima modifica effettuata da 24/02/14 14:42