(Java) Variabili. Formati di output


Un computer non sarebbe necessario se non avesse la capacità di memorizzare varie informazioni nella sua memoria e di elaborare informazioni dello stesso tipo utilizzando gli stessi algoritmi. 
Per creare programmi più interessanti, bisogna imparare a immagazzinare informazioni nella memoria del computer. Allo stesso tempo, dobbiamo imparare come accedere in qualche modo alle celle di memoria del computer. 
Nella programmazione, come nella vita, per riferirsi a qualsiasi parte della memoria del computer ricorre per nome. Usando questo nome, puoi sia leggere le informazioni che scriverle lì.

Una variabile è una posizione nella memoria del computer che ha un nome e memorizza un valore corrispondente al tipo.

La parola "variabile" ci dice che il suo valore può cambiare durante l'esecuzione del programma.  Quando viene salvato un nuovo valore di variabile, quello vecchio viene cancellato


Per un computer, tutte le informazioni sono dati nella sua memoria - insiemi di zeri e uno (per dirla semplicemente, qualsiasi informazione in un computer è solo numeri e li elabora allo stesso modo). Tuttavia, sappiamo che i numeri interi e i numeri frazionari funzionano in modo diverso. Pertanto, ogni linguaggio di programmazione ha diversi tipi di dati, che vengono elaborati utilizzando metodi diversi.

Ad esempio,
interi variabili – type int (dall'inglese integer – whole), occupa 4 byte in memoria;
variabili reali che possono avere una parte frazionaria (tipo float – dall'inglese floating point – floating point) occupano 4 byte di memoria< br /> - caratteri (digitare char – da carattere inglese – simbolo), occupano 1 byte in memoria

Proviamo ad aggiungere qualche variabile al nostro programma.
Prima di utilizzare una variabile, è necessario dire al computer di allocare spazio in memoria per essa. Per fare ciò, la variabile deve essere dichiarata, ovvero specificare quale tipo di valore memorizzerà e assegnarle un nome.
Inoltre, se necessario, puoi assegnargli dei valori iniziali. 

Prendiamo un programma come esempio
classe pubblica Main {  
    public static void main(String[] args) {  
        int a=6, b;  //due variabili di tipo intero sono state dichiarate nella variabile a e subito salvato il valore 6. La variabile b non è stata impostata al valore iniziale; cosa sarà nella memoria in questo caso non lo sappiamo.
    }
}

Ora prova tu stesso.

Proviamo a scrivere una calcolatrice per i numeri primi

Il nostro compito è visualizzare un'espressione aritmetica sullo schermo e farla calcolare al computer.
Ad esempio: 
5+7=12
Inoltre, al posto di 5 e 7 possono esserci numeri diversi, a seconda dei valori delle variabili a e b nel programma.

Nell'istruzione di output è possibile visualizzare non solo il testo, ma anche i valori delle variabili, nonché il risultato di un'espressione aritmetica. Inoltre, la sequenza di output potrebbe essere diversa. Ad esempio, per visualizzare l'espressione precedente, è necessario scriverla in questo modo:
System.out.print(a+"+"+b+"="+(a+b));
Se vogliamo visualizzare il valore di una variabile, è sufficiente specificarne il nome senza virgolette.Se vogliamo visualizzare il risultato di un'espressione aritmetica, è sufficiente scrivere correttamente l'espressione aritmetica.

*** Approfondimento: input formattato ***
Nella stringa di formato, il numero di identificatori di output non è limitato, la cosa principale per ogni specificatore dopo la stringa di formato è elencare tutti i valori separati da virgole, che verranno sostituiti dal modello. Ad esempio: System.out.printf("%d+%d=%d",a,b,a+b); La stringa di formato specifica tre identificatori per stampare invece valori interi.  ; L'ordine di sostituzione è diretto.  Quelli. al posto del primo template %d verrà visualizzato il valore della variabile a; invece del secondo -  il valore della variabile b; e  invece del terzo - il valore dell'espressione a+b E ora scriveremo un programma che visualizzi il risultato di operazioni aritmetiche di base con queste variabili

Affinché l'utente possa impostare lui stesso il valore della variabile, è necessario poter inserire i valori dalla tastiera. Per questo, viene utilizzato l'oggetto in, che è scritto così:
Scanner in = nuovo Scanner(System.in); 
Ma affinché funzioni, devi prima importarlo usando import java.util.Scanner

Per ottenere un valore intero, usa   in.nextInt();, il cui risultato deve essere assegnato a una variabile.
Ad esempio, 
int a = in.nextInt();
Esistono altri metodi per altri tipi di dati: 
  • next(): legge la riga di input fino al primo spazio
  • nextLine(): legge l'intera riga di input
  • nextInt(): legge l'int inserito
  • nextDouble(): legge l'input double
  • nextBoolean(): legge un valore booleano
  • nextByte(): legge il numero di byte inserito
  • nextFloat(): legge il float inserito
  • nextShort(): legge il numero inserito in breve

*** materiale di approfondimento: per chi è interessato al linguaggio Java ***
Specificatori di output aggiuntivi ti consentono di controllare l'output dei numeri in determinati formati.

Larghezza minima del campo
Esempio:
%04d  - il numero verrà visualizzato in 4 posizioni, se ci sono meno di quattro cifre, le prime saranno zeri
int a=34; System.out.printf("%04d",a); //sullo schermo: 0 0 3 4   
Il carattere di sottolineatura è posizionato qui appositamente per la visualizzazione visiva dell'output del numero.   

%4d – lo stesso, ma al posto degli zeri ci saranno degli spazi
int a=34; System.out.printf(“%4d”,a); //sullo schermo:      3 4 < /codice>

Output con una certa precisione - usato per emettere numeri reali. Per impostazione predefinita, i numeri reali vengono visualizzati con una precisione fino a 6 cifre decimali. Ma ci sono casi che devono essere emessi con una precisione diversa. In questo caso è necessario specificare quanti posti di familiarità destinare al numero stesso e quanti dopo la virgola.
Ad esempio,
%9.3f   - verrà visualizzato un numero reale in 9 posizioni, con tre cifre decimali.

doppio a=34.24356; System.out.printf("%9.3f",a); // sullo schermo: _ _ _ 3 2 . 2 4 4


Proviamo a utilizzare queste informazioni nella pratica.

Questo materiale è destinato a uno studio più approfondito. Analizzeremo come stampare le variabili utilizzando l'operatore di output Java (printf)
*** Materiale profondo ***


Come visualizzare il valore di una variabile sullo schermo?
Per fare ciò, all'interno della stringa di formato nell'istruzione di output, è necessario specificare un modello, al posto del quale verrà visualizzato il valore della variabile.
Il modello da utilizzare dipende dal tipo di variabile. 
Questi modelli sono chiamati identificatori di output e sono presentati nella tabella. Viene fornito un numero sufficiente di specificatori. Non è necessario memorizzarli tutti. 
Nella maggior parte dei casi, utilizzeremo gli specificatori per produrre numeri interi, numeri reali, nonché caratteri e stringhe. Ma puoi tornare a questa lezione in qualsiasi momento e vedere il modello che ti serve.
 
Codice Formato
%c Simbolo
%d Intero decimale con segno
%i Intero decimale con segno
%e Formato scientifico (e minuscola)
%E Formato scientifico (E maiuscola)
%f Vero float 
%g A seconda del formato più breve, viene utilizzato %e o %f
%G A seconda del formato più breve, viene utilizzato %E o %f
%o Ottale firmato
%s Stringa di caratteri
%u Intero decimale senza segno
%x Numero esadecimale senza segno (minuscolo)
%X Numero esadecimale senza segno (maiuscolo)
%p Indice
%n Puntatore a una variabile intera. Lo specificatore fa sì che a questa variabile intera venga assegnato il numero di caratteri stampati prima di essa
%% Firma %                           

Aggiunte:
Per visualizzare variabili come short int  viene utilizzato il modificatore h (ad esempio, \(\%hd\))
Per visualizzare i valori delle variabili di tipo long int, utilizzare il modificatore l (ad esempio, \(\%ld \))< br /> Il modificatore L può essere usato come prefisso prima degli specificatori e, f, g. Significa che sullo schermo viene visualizzato un valore di tipo long double.  (ad es. \(\%Lf\))

Diamo un'occhiata a un esempio pratico

 

A  l'output di un numero reale è stato garantito con un punto come separatore, è necessario utilizzare il layout americano, che è collegato con:
  Locale.setDefault(Impostazioni locali .Stati Uniti);