98-361: Core programming

Bun, partea de core programming se referă la înțelegerea următoarelor:

  • Tipurile de date și de stocare
  • Blocurile de decizie din programare
  • Blocurile repetitive
  • Controloarea erorilor

Să o luăm cu începutul prin a zice că în C# totul este un obiect! Astfel că întregii, stringurile, char-urile toate sunt obiecte și derivă din System.Object!

Tipurile de date în c#:

  • bool: expresii de tip true/false
  • byte: 0..255, 1 byte
  • char: un singur caracter, 2 bytes
  • date: o dată între 1 Ianuarie 0001 ora 00:00 și 31 Decembrie 9999 ora 11:59:59, 8 bytes
  • decimal: un număr float cu precizie foarte mare, 16 bytes
  • double: un număr float, 8 bytes
  • int: de la -2,147,483,648 la 2,147,483,647, 4 bytes
  • long: de la -9,223,372,036,854,775,808 până la 9,223,372,036,854,775,807, 8 bytes
  • string: de la 0 până la aprox 2 miliarde de caractere
  • Object: definit de către program, este o structră care ia valoarea atât cât ii permite memoria.

Când double și când decimal?

Folosesc double pt calcul științific și decimal pentru calcul de natură economică. Double calculează în sistem binar iar decimal în sistem decimal. Chiar dacă decimal este mult mai exact nefiind nativ calculatoarelor este de 10 ori mai lent decât calcularea unui double.

doubledecimal

 

Blocuri decizionale

În c# precum și în alte limbaje de programare există două tipuri de blocuri decizionale. IF ELSE și SWITCH CASE.

if (a>b) a++; else b++;

switch (a)
{
case 2: DoSomething(); break;
case 4: DoSomethingElse(); break;
case 9: DoAnotherThing(); break;
default: DoNothing(); break;
}

Expresia din switch poate fi scrisă și ca

if (a==2) DoSomething();
else if (a==4) DoSomethingElse();
else if (a==0) DoAnotherThing();
else DoNothing();

 

Blocuri de iterație (repetitive)

Right, avem următoarele cazuri: for, while, do, foreach.

  • for îl folosim când știm numărul de iterații

    (for int i=0; i<10; i++) { DoSometing(); DoSomethingSomething(); }

  • while repetă codul din block până când condiția devină falsă. Mai întâi se verifică îndeplinirea condiției și după se execută codul.

    while (a>b) { b++; }

  • do repetă codul din block până când condiția devine falsă. Mai întâi se execută codul și după se verifică îndeplinirea condiției.

    do {b++} while (a>b);

  • foreach-ul practic repetă block-ul atâta timp cât în lista mea există iteme

    foreach (char c in “adrian”) {Console.WriteLine(c);}.

    Acest lucru va afișa:

    a
    d
    r
    i
    a
    n

 

Controlul erorilor, excepțiilor

Controlul excepțiilor este procesul în care un programator răspunde la erorile și anomaliile care pot apărea în timpul procesării codului. De exemplu:

int a=10;
int b=0;
int c=a/b;

Acest calcul va da System.DivideByZeroException.
Ce pot face este urumătorul lucru:

int a=10;
int b=0;
try
{
int c=a/b;
}
catch (Exception ex)
{
Console.WriteLine(“Ai încercat să împarți la 0! Don’t do that!”);
//putem să facem compilatorul să ne și afișeze eroarea
Console.WriteLine(“A apărut următoarea eroare: “ex.Message());
}

Putem să aruncăm în mod voit o excepție cu ajutorul cuvântului throw:

if (b==0) throw new System.DivideByZeroException();

De-asemenea putem să folosim blocul finally pentru a ne asigura că indiferent dacă o am trecut sau nu prin try sau catch acea bucată de cod va rula:

try
{
Console.WriteLine(“O să încerc să execut:”); DoSomething();
}
catch (Exception ex)
{
Console.WriteLine(“Dacă apare o eroare, voi executa: “); ExceptionCought(ex);
}
finally
{
Console.WriteLine(“Indiferent dacă a apărut sau nu o excepție, voi executa: “); BloculFinally();
}




Leave a Comment

Blog

Recent posts