VARIABILI. FORMATI DI USCITA


Variabili
Una variabile è una cella nella memoria del computer che ha un nome e memorizza un valore corrispondente a il 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,
- variabili intere – 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 in memoria;
- caratteri (type char – da carattere inglese – symbol), 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ò, devi dichiarare una variabile, ovvero specificare quale tipo di valore memorizzerà e assegnarle un nome.
Inoltre, se necessario, puoi assegnargli dei valori iniziali. 

Prendiamo come esempio un programma:
utilizzando il sistema;
classe Programma {
    vuoto statico Main()
    {
        int a = 6, b; // dichiara due variabili di tipo intero, nella variabile a salva immediatamente il valore 6.
  // La variabile b non è stata inizializzata;
                      // cosa sarà in memoria in questo caso, non lo sappiamo.
    }
}


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ì.

Esempio
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, invece 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:
Console.WriteLine(a + "+" + b + "=" + (a+b));
Se vogliamo visualizzare il valore di una variabile, dobbiamo solo specificarne il nome senza virgolette. Se vogliamo visualizzare il risultato di un'espressione aritmetica, è sufficiente scrivere correttamente l'espressione aritmetica. Nota: 
Le variabili e il testo sono separati l'uno dall'altro dall'operatore "+", mentre il testo è scritto tra virgolette e le variabili senza di esse.
 

Inserisci istruzione
Affinché l'utente possa impostare autonomamente il valore della variabile, è necessario poter inserire i valori dalla tastiera. 
C# ha due operatori di input di valore: Console.Read(); e Console.ReadLine();
 
Leggi legge solo un carattere dai valori inseriti, o -1 se non ci sono più caratteri da leggere. Inoltre, il metodo restituisce un codice carattere intero, quindi per ottenere una variabile carattere, è necessario eseguire una conversione utilizzando il Convert.ToChar().
 
int x = Console.Read(); // legge il codice carattere
char a = Convert.ToChar(x); // convertendo il codice ricevuto nel valore di una variabile carattere
 
Con ReadLine() , puoi leggere una sequenza di stringhe prima di inserire una nuova riga. Di conseguenza, il metodo può restituire una stringa o null se non ci sono più stringhe.

Ad esempio, la voce legge la riga:
stringline = Console.ReadLine();

Per leggere un valore intero, devi leggere la stringa e convertirla in un numero:
 
int a = int.Parse(Console.ReadLine());
 
Se i numeri vanno in una riga, devi contare la riga, & nbsp; e ottenere un array di stringhe da esso utilizzando il carattere spazio come separatore. E poi ogni elemento dell'array viene convertito in un numero:
string[] numeri = Console.ReadLine().Split(' ');
int a = int Parse(numeri[0]);
int b = int.Parse(numeri[1]);

Specificatori di output
Per generare valori reali, basta chiamare il metodo Console.WriteConsole.WriteLine:
  doppio a = 0,9999; Console.Write(a);  
Ma a volte è necessario preformattare l'output dei valori, è conveniente farlo utilizzando il metodo String.Format, maggiori dettagli qui.
Output con una certa precisione
Per formattare i numeri frazionari, viene utilizzato lo specificatore f, il numero dopo il quale indica quanti caratteri ci saranno dopo il separatore. doppia a = 12,123; Console.WriteLine(String.Format("{0:f2}", a)); Il risultato sarà 12,12, ma se utilizzi il valore 0.9999, si verificherà un arrotondamento incontrollato e   1.00.

Pertanto, il seguente algoritmo viene utilizzato per eliminare i segni anziché l'arrotondamento:
1) moltiplicare il valore originale per 10, tante volte quante è necessario lasciare i decimali;
2) utilizzando il metodo   Math.Truncate, lasciamo solo la parte intera;
3) dividere il valore risultante per 10, tante volte è necessario lasciare i decimali.

Esempio di output con precisione di due decimali: 
doppio a = 0,9999; a = a * Math.Pow(10, 2); a = Math.Truncate(a); a = a / Math.Pow(10, 2);
 
Il tipo di separatore durante l'output del risultato (punto o virgola) dipende dalle impostazioni internazionali del computer, quindi per utilizzare sempre un punto come separatore, è necessario modificare le impostazioni internazionali in invariant, esempio risultante:
 
CultureInfo ci = new CultureInfo(""); doppio a = 0,9999; a = a * Math.Pow(10, 2); a = Math.Truncate(a); a = a / Math.Pow(10, 2); Console.WriteLine(a.ToString(ci));