Pornire rapidă „Numere în C#”

Introducere

Această pornire rapidă vă învață despre tipurile de numere în C# în mod interactiv, folosind browser-ul pentru a scrie C# și a vedea rezultatele compilării și rulării codului dvs. Ea conține o serie de lecții care explorează numere și operații matematice în C#. Aceste lecții vă învață elementele fundamentale ale limbajului C#.

Explorați matematica numerelor întregi

Rulați codul următor în fereastra interactivă. Pentru a face aceasta, tastați următorul bloc de cod în fereastra interactivă și faceți clic pe butonul Run:

int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);

Tocmai ați văzut una dintre operațiile matematice fundamentale cu întregi. Tipul int reprezintă un întreg, un pozitiv sau negativ număr întreg. Folosiți simbolul + pentru adunare. Alte operații matematice pentru întregi includ:
  • - pentru scădere
  • * pentru înmulțire
  • / pentru împărțire
Sfat. De-a lungul acestei porniri rapide, puteți explora dvs. înșivă modificând codul pe care l-ați scris în fereastra interactivă. Această pornire rapidă oferă exemple pe care le puteți încerca la fiecare pas.

Începeți prin a explora toate aceste operații diverse. Modificați a treia linie pentru a încerca fiecare din aceste operații. După fiecare editare, faceți clic pe butonul Run.

Scădere:

int c = a - b;

Înmulțire:

int c = a * b;

Împărțire:

int c = a / b;

Puteți de asemenea experimenta făcând mai multe operații matematice în același rând, dacă doriți.

Sfat. În timp ce explorați C# (sau oricare limbaj de programare), veți face greșeli când scrieți cod. Compilatorul va găsi aceste erori și vi le va raporta. Când ieșirea conține mesaje de eroare, priviți atent la codul exemplu și la codul din fereastra interactivă pentru a vedea ce să reparați. Acest exercițiu vă va ajuta să învățați structura codului C#.

Explorați ordinea operațiilor

Limbajul C# definește precedența a diferiți operatori matematici cu reguli consistente cu regulile pe care le-ați învățat în matematică. Înmulțirea și împărțirea au precedență mai mare decât adunarea și împărțirea. Explorați aceasta rulând următorul cod în fereastra interactivă:

int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);

Ieșirea demonstrează că înmulțirea este efectuată înaintea adunării.

Puteți forța o ordine diferită de operare adăugând paranteze în jurul operației sau operațiilor pe care le doriți efectuate mai întâi:

int a = 5;
int b = 4;
int c = 2;
int d = (a  + b) * c;
Console.WriteLine(d);

Explorați mai departe combinând mulți diferiți operatori. Înlocuiți linia a patra de deasupra cu ceva asemănător cu asta:

int d = (a + b) - 6 * c + (12 * 4) / 3 + 12;

Poate ați observat un comportament interesant pentru numerele întregi. Împărțirea întregilor întotdeauna produce un rezultat întreg, chiar și atunci când v-ați aștepta ca rezultatul să includă o parte zecimală sau fracțională.

Dacă nu ați văzut acest comportament, încercați următorul:

int a = 7;
int b = 4;
int c = 3;
int d = (a  + b) / c;
Console.WriteLine(d);

Faceți clic pe Run din nou pentru a vedea rezultatele.

Explorați precizia și limitele numerelor întregi

Ultimul exemplu v-a arătat că împărțirea întreagă trunchiază rezultatul. Puteți obține restul folosind operatorul modulo, caracterul %.

int a = 7;
int b = 4;
int c = 3;
int d = (a  + b) / c;
int e = (a + b) % c;
Console.WriteLine($"cat: {d}");
Console.WriteLine($"rest: {e}");

Tipul întreg din C# diferă de tipul matematic număr întreg în încă un mod: tipul int are limite minimă și maximă. Rulați acest cod în fereastra interactivă pentru a vedea aceste limite.

int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine($"Intervalul de intregi este de la {min} la {max}");

Dacă un calcul produce o valoare care trece de aceste limite, aveți o condiție de underflow sau overflow (condiție de depășire). Răspunsul pare să înfășoare de la o limită la alta. Adăugați aceste două linii la fereastra interactivă pentru a vedea un exemplu:

int what = max + 3;
Console.WriteLine($"Un exemplu de depasire pozitiva (overflow): {what}");

Observați că răspunsul este foarte aproape de cel mai mic întreg (negativ). Este la fel ca min + 2. Operația de adunare a depășit pozitiv valorile permise pentru întregi. Răspunsul este un foarte mare număr negativ deoarece o depășire pozitivă "se întoarce" de la cea mai mare valoare posibilă întreagă la cea mai mică.

Există alte tipuri numerice cu diferite limite și precizie pe care le-ați folosi când tipul int nu vă împacă nevoile. Haideți să le explorăm pe acestea în continuare.

Lucrați cu tipul double

Tipul numeric double reprezintă un număr în virgulă mobilă de precizie dublă. Acești termeni ar putea fi noi pentru dvs. Un număr în virgulă mobilă este folositor pentru a reprezenta numere ne-întregi care ar putea fi foarte mari sau mici în dimensiune. Precizie dublă înseamnă că aceste numere sunt stocate folosind precizie mai mare decât precizie simplă. Pe calculatoarele moderne, este mai comun să se folosească precizie dublă decât numere de precizie simplă. Haideți să explorăm. Încercați următorul cod în fereastra interactivă și vedeți rezultatul:

double a = 5;
double b = 4;
double c = 2;
double d = (a  + b) / c;
Console.WriteLine(d);

Observați că răspunsul include partea zecimală a câtului. Încercați o expresie puțin mai complicată cu double-uri:

double a = 19;
double b = 23;
double c = 8;
double d = (a  + b) / c;
Console.WriteLine(d);

Intervalul unei valori double este mult mai mare decât valorile întregi. Încercați următorul cod în fereastra interactivă:

double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"Intervalul lui double este de la {min} la {max}");

Valorile acestea sunt tipărite în notație științifică. Numărul din stânga lui E este significandul. Numărul din dreapta este exponentul, ca o putere a lui 10.

La fel ca numerele zecimale în matematică, numerele double în C# pot avea erori de rotunjire. Încercați acest cod:

double third = 1.0. / 3.0;
Console.WriteLine(third);

Știți că 0.3 cu 3 repetându-se nu este exact același cu 1/3.

Provocare

Încercați alte calcule cu numere mari, numere mici, înmulțire și împărțire folosind tipul double. Încercați calcule mai complicate.

Lucrați cu tipuri în virgulă fixă

Ați văzut tipurile numerice de bază în C#: întregi și double-uri. Există un alt tip de învățat: tipul decimal. Tipul decimal are un interval mai mic dar precizie mai mare decât double. Termenul virgulă fixă înseamnă că punctul zecimal (sau punct binar) nu se mișcă. Haideți să aruncăm o privire:

decimal min = decimal.MinValue;
decimal max = decimal.MaxValue;
Console.WriteLine($"Intervalul tipului decimal este între {min} și {max}");

Observați că intervalul este mai mic decât tipul double. Puteți vedea mai marea precizie cu tipul decimal încercând următorul cod:

double a = 1.0;
double b = 3.0;
Console.WriteLine(a / b);

decimal c = 1.0M;
decimal d = 3.0M;
Console.WriteLine(c / d);

Sufixul M pe numere este cum indicați că o constantă trebuie să folosească tipul decimal.

Observați că matematica folosind tipul decimal are mai multe cifre în dreapta punctului decimal.

Provocare

Acum că ați văzut diferite tipuri numerice, scrieți cod care calculează aria unui cerc a cărui rază este 2.50 centimetri. Țineți minte că aria unui cerc este raza ridicată la pătrat înmulțit cu PI. Un indiciu: .NET conține o constantă pentru PI, Math.PI pe care o puteți folosi pentru această valoare.

Ar trebui să obțineți un răspuns între 19 și 20.

Provocare finalizată

Ați venit cu ceva asemănător cu aceasta?

double raza = 2.50;
double aria = Math.PI * raza * raza;
Console.WriteLine(aria);


Încercați câteva alte formule dacă doriți.

Felicitări!

Ați încheiat pornirea rapidă „Numere în C#”.

Puteți învăța mai multe despre numere în C# în următoarele subiecte:
Tradus din această pagină oficială de documentație Microsoft.

Niciun comentariu:

Trimiteți un comentariu