Input di numeri con due o più cifre[Risolto]

di il
14 risposte

Input di numeri con due o più cifre[Risolto]

Ciao a tutti
Vorrei sapere gentilmente come si può ricevere in input un numero costituito da due cifre o più...
In pratica vorrei creare un programma che faccia la media di due numeri (nulla di particolarmente complesso).
Grazie

p.s.
Forse chiedo troppo ma l'input di numeri decimali è una cosa fattibile o troppo complicata?

14 Risposte

  • Re: Input di numeri con due o più cifre[Risolto]

    I passi da seguire, a grandi linee sono

    1) esegui l'input in un buffer di lunghezza fissa per il numero di cifre che vuoi per il tuo numero. L'input sarà in ASCII

    2) converti il valore da stringa ASCII in intero binario in memoria o in un registro
  • Re: Input di numeri con due o più cifre[Risolto]

    Ad esempio nel primo caso chiedo prima di quante cifre è il numero e poi lo ricevo in input tramite un buffer come nel caso in cui tempo fa ti avevo chiesto l'input di una stringa?
  • Re: Input di numeri con due o più cifre[Risolto]

    Un valore intero a 32 bit prevede al massimo 9 cifre ... Non so quali sono le specifiche dell'esercizio che vuoi fare ma perché non prevedi un numero massimo di cifre per il numero (ad esempio fino a 9999) ...?
  • Re: Input di numeri con due o più cifre[Risolto]

    L'esercizio consiste nella creazione di un programma che permette di digitare due numeri
    Poi esegue la media dei numeri
  • Re: Input di numeri con due o più cifre[Risolto]

    Ma "numeri" può significare tante cose... Per impostare correttamente il codice devi essere più preciso... Ad esempio questo 3,1415926 è un numero
  • Re: Input di numeri con due o più cifre[Risolto]

    Per ora mi basta lavora con i numeri interi in input

    In futuro magari anche quelli decimali ma per ora già quelli interi mi bastano u.u

    Fra i due metodi mi sembra più semplice il secondo, quello con il buffer non saprei da che parte iniziare
  • Re: Input di numeri con due o più cifre[Risolto]

    Ok per i numeri interi ma devi stabilire un numero massimo di cifre e indicarlo all'utente che inserisce il valore.

    I due punti che avevo indicato non sono due soluzioni ... sono due passi del programma che devi implementare ...
  • Re: Input di numeri con due o più cifre[Risolto]

    Quindi in pratica prima compare la domanda che mi chiede se il numero che digiterà in input è a uno o più cifre, poi dopo aver risposto a questa prima domanda digita il numero vero e proprio.
    Giusto?
  • Re: Input di numeri con due o più cifre[Risolto]

    coppolino ha scritto:


    Quindi in pratica prima compare la domanda che mi chiede se il numero che digiterà in input è a uno o più cifre,
    NO. Questa domanda non esiste. Si indica all'utente di inserire un valore, ad esempio, compreso tra 0 e 9999. L'utente non indica il numero di cifre ma direttamente il valore.

    Tale valore, come stringa (sequenza di caratteri ASCII) finisce in un buffer.

    Il programma converte i caratteri ASCII del buffer in un valore binario.
  • Re: Input di numeri con due o più cifre[Risolto]

    Scusami se ti rispondo solo ora dopo così tanto tempo ma ho avuto diversi impegni...

    Non ho capito il discorso della conversione da ASCII a binario, la devo fare io questa conversione?
  • Re: Input di numeri con due o più cifre[Risolto]

    Certo che la devi fare tu ... l'input è in ASCII, i calcoli sono in binario ...
  • Re: Input di numeri con due o più cifre[Risolto]

    Il problema sono riuscito a risolverlo in questo modo, utilizzando lo stack
    
    MOV BX,0 ;azzero il registro BX
    	
    	CICLO:
    	MOV AH,01H ;richiesta per il valore in input
    	INT 21H ;interrupt che che permette l'input del carattere
    		
    	CMP  AL,0DH ;controllo che il tasto premuto sia il tasto INVIO 
    	JE FINE ;se il tasto premuto è INVIO allora salto all'etichetta "FINE"
    	
    	;se invece il carattere digitato è un numero allora...
    	MOV AH,00H
    	PUSH AX ;metto AX nello stack 
    	MOV AX,BX ;sposto il valore di BX in AX in quanto viene moltiplicato sempre il registro AX
    	MUL DIECI 
    	MOV BX,AX ;sposto il risulato della moltiplicazione che è contenuto in AX in BX
    	POP AX ;ripesco il carattere messo nello stack qualche istruzione prima
    	SUB AL,30H ;conversione del numero
    	MOV AH,0
    	ADD BX,AX ;sommo il numero che è contenuto in BX con quello di AX
    	;BX è il numero che costituisce tutti quelli prima digitati, AX solo l'ultima cifra
    	
    	JMP CICLO 
    		
    	FINE:      ...altre istruzioni...
    
    
  • Re: Input di numeri con due o più cifre[Risolto]

    Ok, la conversione la fai con la SUB ... La linea

    MOV AH,00H

    è superflua, puoi eliminarla
  • Re: Input di numeri con due o più cifre[Risolto]

    Hai ragione
    Questo forum è davvero il top
Devi accedere o registrarti per scrivere nel forum
14 risposte