Programare C# - Tipuri de date și variabile
35 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Ce lucru se întâmplă atunci când o variabilă de tip valoare este atribuită unei alte variabile de același tip?

  • Se face o copie a datelor în variabila destinație. (correct)
  • Se alocă automat spațiu pentru ambele variabile.
  • Se copiează referința variabilei inițiale.
  • Variabila inițială și cea destinată devin identice.

Care este procesul numit 'transmitere prin valoare'?

  • Se copiază datele dintr-o variabilă în altă variabilă independent. (correct)
  • O referință la obiectul inițial este copiată.
  • Obiectul inițial este modificat direct prin referință.
  • Valoarea implicită este alocată variabilelor referință.

Ce se întâmplă cu variabilele de tip referință inițializate la null?

  • Se copiază datele în alte variabile.
  • Se alocă automat memorie pentru ele.
  • Trebuie să fie alocate explicit pentru a putea fi folosite. (correct)
  • Ele devin obiecte valide.

Care este principalul diferenței între tipurile valoare și tipurile referință?

<p>Tipurile valoare sunt copiate, iar cele referință sunt legate prin referință. (D)</p> Signup and view all the answers

Ce se întâmplă atunci când se modifică o variabilă de tip valoare după atribuirea acesteia?

<p>Variabila destinată rămâne neschimbată. (B)</p> Signup and view all the answers

Ce tip de proprietate are HasValue în contextul tipurilor nulabile din C#?

<p>Indică dacă valoarea este diferită de null (C)</p> Signup and view all the answers

Care este semnificația operatorului binar ?? în C#?

<p>Returnează primul operant dacă nu este null, altfel returnează al doilea (A)</p> Signup and view all the answers

Care este rezultatul expresiei if (a > b) dacă a este 5 și b este 7?

<p>Rezultatul va fi &quot;primul este mai mic&quot; (D)</p> Signup and view all the answers

Ce instrucțiune este folosită pentru a repeta execuția unui bloc de cod în C#?

<p>while (A)</p> Signup and view all the answers

Care dintre următoarele opțiuni este o structură de control de flux în C#?

<p>break (C)</p> Signup and view all the answers

Care este valoarea implicită a primului membru al unei enumerări?

<p>0 (B)</p> Signup and view all the answers

Ce restricție există referitor la referințele circulare în enumerări?

<p>Nu se admit referințe circulare. (D)</p> Signup and view all the answers

Ce tip implicit este utilizat pentru o enumerare, dacă nu se specifică altceva?

<p>int (D)</p> Signup and view all the answers

Care dintre următoarele opțiuni nu poate fi clasificată ca membru al unei enumerări?

<p>Metodă (A)</p> Signup and view all the answers

Ce se întâmplă când o enumerare este definită fără a specifica un tip?

<p>Tipul implicit devine int. (A)</p> Signup and view all the answers

Cum se poate defini o enumerare care depinde de o altă membru al enum?

<p>Nu se admit referințe circulare. (C)</p> Signup and view all the answers

Ce este un tip nulabil în contextul tipurilor valoare?

<p>Un tip care permite stocarea valorilor din aria tipurilor de bază, inclusiv null. (B)</p> Signup and view all the answers

Care este formatul corect pentru declararea unei enumerări?

<p>[atribute] enum NumeEnumerare [: Tip] {} (D)</p> Signup and view all the answers

Ce tip de variabilă este folosit în exemplul de cod pentru a crea un obiect care poate fi modificat?

<p>StringBuilder (A)</p> Signup and view all the answers

Care este domeniul de valori pentru tipul 'byte'?

<p>0; 255 (A)</p> Signup and view all the answers

Ce va afișa codul pentru variabila 'b' după ce 'a' devine null?

<p>Salut (B)</p> Signup and view all the answers

Ce tip de date este utilizat pentru a reprezenta valori zecimale cu precizie mare?

<p>decimal (B)</p> Signup and view all the answers

Care este sufixul folosit pentru a indica un tip 'ulong'?

<p>UL (A)</p> Signup and view all the answers

Care este corectă în ceea ce privește tipurile de date întregi?

<p>sbyte are o capacitate de 8 biți (C)</p> Signup and view all the answers

Ce se va întâmpla dacă se încearcă atribuirea unei valori mai mari decât 255 unei variabile de tip 'byte'?

<p>Se generează o eroare de compilare. (C)</p> Signup and view all the answers

Care dintre următoarele tipuri nu este un tip predefinit în C#?

<p>List (A)</p> Signup and view all the answers

Ce tip de date este utilizat pentru stocarea valorii 'true' sau 'false'?

<p>bool (D)</p> Signup and view all the answers

Care este formula utilizată pentru a verifica coliniaritatea punctelor M1, M2 și M3?

<p>E = (x2 - x1)(y3 - y1) - (x3 - x1)(y2 - y1) (D)</p> Signup and view all the answers

Ce se întâmplă dacă punctele M1, M2 și M3 nu sunt coliniare?

<p>Se afișează &quot;Puncte necoliniare&quot;. (C)</p> Signup and view all the answers

Cum se verifică dacă un număr întreg x este într-un interval dat [a, b]?

<p>Dacă x &gt;= a și x &lt;= b (C)</p> Signup and view all the answers

Ce se întâmplă când a este mai mare decât b?

<p>Se fac schimburi între a și b. (C)</p> Signup and view all the answers

Ce tip de date este utilizat pentru a stoca coordonatele punctelor?

<p>double (B)</p> Signup and view all the answers

Ce se întâmplă în cazul în care x nu este inclus în intervalul [a, b]?

<p>Se afișează &quot;x nu este în interval&quot;. (C)</p> Signup and view all the answers

Care este rezultatul dacă E este egal cu 0?

<p>Punctele sunt coliniare. (A)</p> Signup and view all the answers

Ce face instrucțiunea 'Convert.ToInt32' în program?

<p>Transformă un string într-o valoare întreagă. (B)</p> Signup and view all the answers

Flashcards

Tipuri valoare

Variabilele de tip valoare stochează direct o valoare, iar la atribuire se creează o copie a valorii. Modificarea unei variabile de tip valoare nu afectează variabila iniţială.

Tipuri referinţă

Variabilele de tip referinţă stochează doar o referinţă la o locaţie de memorie. La atribuire, se copiază doar referinţa, nu datele în sine. Modificarea unui obiect printr-o referinţă afectează obiectul original.

Aliasing

Atribuirea unei variabile de tip referinţă creează un alias, unde ambele variabile referă la acelaşi obiect. Modificările la un obiect printr-un alias vor afecta şi obiectul original.

Stiva vs. Heap

Tipurile valoare sunt create în stivă, iar tipurile referinţă sunt create în heap. Stiva de memorie este o structură LIFO (Last In First Out), iar heap-ul oferă o flexibilitate mai mare.

Signup and view all the flashcards

Transmisie prin valoare

Transmisia prin valoare implică copierea valorii unei variabile în alta. Modificarea variabilei destinatare nu influenţează variabila iniţială.

Signup and view all the flashcards

string

Tipul de date care reprezintă o secvență de caractere Unicode, cu aliasul System.String în .NET.

Signup and view all the flashcards

sbyte

Un tip de date întreg cu semn, cu 8 biți, cu aliasul System.Sbyte în .NET.

Signup and view all the flashcards

short

Un tip de date întreg cu semn, cu 16 biți, cu aliasul System.Int16 în .NET.

Signup and view all the flashcards

int

Un tip de date întreg cu semn, cu 32 biți, cu aliasul System.Int32 în .NET.

Signup and view all the flashcards

long

Un tip de date întreg cu semn, cu 64 biți, cu aliasul System.Int64 în .NET.

Signup and view all the flashcards

byte

Un tip de date întreg fără semn, cu 8 biți, cu aliasul System.Byte în .NET.

Signup and view all the flashcards

ushort

Un tip de date întreg fără semn, cu 16 biți, cu aliasul System.Int16 în .NET.

Signup and view all the flashcards

uint

Un tip de date întreg fără semn, cu 32 de biți, cu aliasul System.UInt32 în .NET.

Signup and view all the flashcards

ulong

Un tip de date întreg fără semn, cu 64 de biți, cu aliasul System.UInt64 în .NET.

Signup and view all the flashcards

float

Un tip de date cu virgulă mobilă, simplă precizie, cu 32 de biți, cu aliasul System.Single în .NET. (8 pentru exponent, 24 pentru mantisă).

Signup and view all the flashcards

Tipul enumerare în C#

Un tip de date definit de utilizator care asociază nume cu valori numerice. Asemănător cu tipul enum din C++.

Signup and view all the flashcards

Valori implicite în enumerări

Prima valoare a enumerării este 0 în mod implicit, iar următoarele valori sunt incrementate cu 1.

Signup and view all the flashcards

Restricții de inițializare

Valorile utilizate pentru inițializarea membrilor unei enumerări trebuie să fie în intervalul valorilor tipului specificat.

Signup and view all the flashcards

Referințe circulare

Nu se permit referințe circulare în enumerări. Un membru nu poate depinde de el însuși direct sau indirect.

Signup and view all the flashcards

Ierarhie de tipuri pentru enumerări

Tipul de date enum în C# este derivat din clasa System.Enum care, la rândul său, este derivată din clasa System.ValueType.

Signup and view all the flashcards

Tipuri nulabile

Un tip de date valoare pentru care se pot memora valori din aria tipurilor de date de bază, inclusiv valoarea null.

Signup and view all the flashcards

Valori implicite pentru tipuri nulabile

La declararea unei variabile cu tip de date valoare, aceasta va conține valoarea implicită a tipului. Tipurile nulabile permit ca la declarare valoarea variabilei să fie nedefinită.

Signup and view all the flashcards

Utilizări comune ale tipurilor nulabile

Tipurile nulabile sunt folosite atunci când se dorește ca valoarea unei variabile să fie nedefinită sau neinițializată la declararea ei.

Signup and view all the flashcards

Tipul "string" în C#

Un tip de date care poate stoca o secvență de caractere, cum ar fi litere, numere și simboluri.

Signup and view all the flashcards

Tipuri nulabile în C#

Permite adăugarea de valori nule la tipurile de date valoare, oferindu-se un mod de a reprezenta absența unei valori.

Signup and view all the flashcards

Operatorul de coalescență nulă (??)

Operatorul ?? este un operator binar care evaluează expresia din dreapta doar dacă expresia din stânga este null. Rezultatul este valoarea din stânga dacă nu este null, altfel este valoarea din dreapta.

Signup and view all the flashcards

Instrucțiunea "if" în C#

O instrucțiune care execută un bloc de cod doar dacă o condiție este adevărată. Bloc de cod alternativ poate fi executat dacă condiția este falsă.

Signup and view all the flashcards

Instrucțiunea "switch" în C#

O structură care permite executarea selectivă a blocurilor de cod, în funcție de valori specifice ale unei variabile. Instrucțiunile "switch" și "case" definesc condițiile, iar instrucțiunea "default" se execută dacă niciuna dintre condiții nu este îndeplinită.

Signup and view all the flashcards

Ce este un șir de caractere (string)?

O secvență de caractere, cum ar fi "Salut!" sau "1234".

Signup and view all the flashcards

Ce înseamnă că trei puncte sunt coliniare?

Reprezintă o linie dreaptă ce trece prin punctele date.

Signup and view all the flashcards

Care este scopul programului din exemplul 24?

Determină dacă trei puncte date sunt coliniare sau nu, folosind o formulă specifică.

Signup and view all the flashcards

Ce este un interval [a, b]?

Un interval de numere întregi între a și b, inclusiv.

Signup and view all the flashcards

Care este scopul programului din exemplul 25?

Verifică dacă un număr intreg x se află în intervalul [a, b].

Signup and view all the flashcards

Ce este condiția x >= a && x <= b?

O condiție logică ce verifică dacă numărul x este mai mare sau egal cu a și mai mic sau egal cu b.

Signup and view all the flashcards

Ce scop are blocul if (a > b) { ... }?

Asigură că a este întotdeauna mai mic sau egal cu b, inversând valorile dacă este necesar.

Signup and view all the flashcards

Ce se întâmplă în secțiunea Console.WriteLine(...)?

Citirea datelor de la utilizator (numere întregi) pentru a defini un interval și un număr ce va fi testat.

Signup and view all the flashcards

Study Notes

Tipuri de date în C#

  • Toate tipurile de date derivă din tipul System.Object.
  • Toate tipurile valoare derivă din clasa System.ValueType, care la rândul ei derivă din System.Object.
  • Pentru tipurile valoare, declararea unei variabile implică alocarea de spațiu.
  • La atribuire, valoarea este copiată în variabila destinație, fără a mai fi legată de variabila inițială. Acest proces se numește transmitere prin valoare.

Tipuri valoare și Referință

  • Spre deosebire de tipurile valoare, pentru tipurile referință, declararea unei variabile nu implică automat alocarea de spațiu.
  • Inițial, referințele sunt null.
  • Trebuie să alocați explicit memorie pentru obiectul referit.
  • Atribuirea unei variabile de referință copează doar referința la obiect, nu obiectul în sine.

Tipuri predefinite în C#

  • object: Tipul de bază din care derivă toate tipurile.
  • string: Secvență de caractere Unicode.
  • sbyte: Tip întreg cu semn pe 8 biți.
  • short: Tip întreg cu semn pe 16 biți.
  • int: Tip întreg cu semn pe 32 biți.
  • long: Tip întreg cu semn pe 64 biți.
  • byte: Tip întreg fără semn pe 8 biți.
  • ushort: Tip întreg fără semn pe 16 biți.
  • uint: Tip întreg fără semn pe 32 biți.
  • ulong: Tip întreg fără semn pe 64 biți.
  • float: Tip cu virgulă mobilă simplă precizie pe 32 biți.
  • double: Tip cu virgulă mobilă dublă precizie pe 64 biți.
  • decimal: Tip zecimal pe 128 biți.
  • bool: Tip boolean (true sau false).
  • char: Caracter din setul Unicode pe 16 biți.

Tipuri numerice: Domenii de valori

  • Fiecare tip numeric are un domeniu de valori specific.
  • Aceste valori sunt prezentate în document.

Tipuri Enumerare

  • Tipul enumerare permite asocierea unor nume simbolice unor valori numerice.
  • Este derivat automat din clasa System.Enum.
  • Tipul implicit este int, dar se poate specifica alt tip.

Tipuri Nulabile

  • System.Nullable<T> sau T?: Tipuri care pot avea valoarea null în afară de valoarea implicită a tipului T.

Instrucțiuni condiționale

  • Instrucțiunea if permite executarea unor blocuri de cod în funcție de o condiție.
  • Există și instrucțiuni else if și else pentru mai multe condiții.

Instrucțiuni iterative

  • Instrucțiunea while execută un bloc de cod atâta timp cât o condiție este adevărată.
  • Instrucțiunea do-while execută un bloc de cod cel puțin o dată, și apoi atâta timp cât o condiție este adevărată.
  • Instrucțiunea for este o formă mai compactă de while, utilizată pentru iterații cu contor.
  • Instrucțiunea foreach iterează prin elementele unei colecții.

Instrucțiunea switch

  • Instrucțiunea switch permite selectarea unui bloc de cod pe baza unei expresii.
  • Fiecare caz (case) are o valoarea specifică, dacă nu există o potrivire se execută default.

Instrucțiuni goto, continue, break

  • Instrucțiunea goto execută un salt la eticheta specificată.
  • Folosesc în mod limitat în programe bine structurate
  • continue – se sare la iterația următoare a ciclului.
  • break – se întrerupe ciclul.

Instrucțiuni try-catch-finally

  • Instrucțiuni exception handling, pentru gestionarea erorilor.
  • Blocul try conține codul care poate genera erori.
  • Blocul catch gestionează excepțiile generate în blocul try.
  • Blocul finally conține codul care se execută indiferent dacă a apărut sau nu o excepție.

Instrucțiunea throw

  • throw este utilizată pentru a arunca o excepție.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Curs 2_3 Instrucțiuni PDF

Description

Acest quiz abordează concepte esențiale din programarea C#, axându-se pe tipurile de date, variabile, și diferențele dintre acestea. Întrebările acoperă noțiuni precum transmisia prin valoare, proprietățile tipurilor nulabile și structurarea controlului fluxului. Testează-ți cunoștințele și îmbunătățește-ți abilitățile în C#!

More Like This

Use Quizgecko on...
Browser
Browser