Tipul înregistrare

Tipul înregistrare: struct (doar matematică-informatică)

Doar la matematică-informatică. Cum definești un struct, cum accesezi un câmp, tablouri în înregistrări și înregistrări în tablouri. Citirea expresiei din afară spre înăuntru și cum punctează baremul II.3.

  • 20 min
  • La BAC: I · Subiectul al II-lea, 3 (6p)
  • De revizuit
Ilustrație: Tipul înregistrare: struct (doar matematică-informatică)
Ilustrație generată pentru ZECE (artistică, nu o planșă științifică: pentru detalii exacte vezi schemele din lecție).

ții minte doar fișa asta și ești acoperit

Fișa de aur

  1. 01

    Doar la matematică-informatică. La științele naturii datele stau în variabile separate.

  2. 02

    Definirea: struct eticheta { tip camp; ... } variabila;

  3. 03

    Accesul: variabila.camp. Eticheta nu apare niciodată într-o expresie de acces.

    Truc: Pornești de la variabilă și mergi spre câmpul dorit.

  4. 04

    Indicele stă lângă numele care e tablou: p[2].pret, dar p.informatii[0].

  5. 05

    II.3 (definire) = 6 p: de obicei definire 4 p (bază, etichetă, câmpuri), declarare 1 p, corectitudine globală 1 p.

1 din 8

Pe scurt

1 minesențialul, de recitit oricând

Culorile din lecție:termenidee-cheie

  • Lecția e doar pentru matematică-informatică.
  • Înregistrarea (struct) adună sub un nume câmpuri de tipuri diferite.
  • Accesul se face cu punct, de la variabilă spre câmp.
  • La Subiectul I alegi expresia corectă, iar la II.3 definești o structură sau scrii o secvență.

Ideea, apoi definiția

2 min

La o sală de spectacole ții minte numărul de locuri și prețul biletului. Sunt două valori despre același lucru. Ai vrea să le ții împreună și să le dai un singur nume. Asta face înregistrarea.

struct sala
{ int nrLocuri;
  int pret;
} s;

Oficial: sala e eticheta (numele tipului), nrLocuri și pret sunt câmpurile, s e variabila. La câmpuri ajungi cu punct: s.pret.

În C++ poți declara și separat, cu sala s;. În C scrii struct sala s;.

În Pascal, type pantof=record marime:integer; pret:real end; și var p:array[0..99] of pantof;, ca în varianta Pascal a modelului 2027. Accesul e tot p[2].pret.

Trei forme de combinații

3 min o întrebare la final

Tablou de înregistrări
Declarare
struct pantof { int marime; float pret; } p[100];
Acces
p[2].pret
Înseamnă
prețul perechii de pe poziția 2
Câmp care e tablou
Declarare
struct prajitura { int cod; float pret; int informatii[3]; } p;
Acces
p.informatii[0]
Înseamnă
primul element din tablou
Înregistrare în înregistrare
Declarare
vezi mai jos
Acces
b.metal.pret
Înseamnă
câmpul pret din câmpul metal
1 / 3

Cum accesezi prețul celei de a treia perechi, dacă p e tablou de 100 de struct pantof?

Oficial: itemi de grilă

5 min 2 întrebări la final

Toate cer același lucru: alege expresia cu acces corect.

Model 2027, I.2
Declarare
p[100] de struct pantof
Se cere
prețul perechii a treia
Răspuns din barem
D: p[2].pret
Iunie 2026 var. 3, I.3
Declarare
struct progresie { int prim; int ratie; } p;
Se cere
al 10-lea termen
Răspuns din barem
b: p.prim+9*p.ratie
Iulie 2024 var. 3, I.4
Declarare
x[20] de struct ciocolata
Se cere
tipul sortimentului 11
Răspuns din barem
d: x[10].tip
August 2026 var. 1, I.3
Declarare
struct magazin cu tablourile valoare, exemplare
Se cere
suma de la primul tip
Răspuns din barem
c: m.valoare[0]*m.exemplare[0]
Rezervă 2026 var. 5, I.3
Declarare
s cu câmpul doi, cu min și sec
Se cere
durata în secunde
Răspuns din barem
a: s.doi.sec+60*s.doi.min
Rezervă 2025 var. 7, I.2
Declarare
m cu câmpul expira de tip data
Se cere
expiră în 2025, după octombrie
Răspuns din barem
c: m.expira.an==2025 && m.expira.luna>10
1 / 6

Variantele greșite se repetă: pret[2].p, p.pret[2], m.data.an, x.ciocolata[10].tip. Fie folosesc eticheta, fie pun indicele lângă alt nume.

Suma de bani din bancnotele de primul tip, în struct magazin cu tablourile valoare și exemplare?

Durata părții a doua, în secunde, în s.doi.min și s.doi.sec?

Oficial: II.3, definește structura

5 min

Enunțul îți dă expresiile și cere definiția. Mergi invers: din fiecare expresie deduci câmpul.

Iunie 2025, varianta 1, II.3 (6 p). Pentru o prăjitură: cod (natural de două cifre), preț (real) și trei informații naturale. Expresiile sunt p.cod, p.pret, p.informatii[0]. Eticheta cerută: prajitura.

struct prajitura
{ int cod;
  float pret;
  int informatii[3];
} p;

Barem: definire 4 p (câte 1 p: definire de bază, etichetă, câmpuri de tip simplu cod, pret, câmp de tip structurat informatii), declarare 1 p, corectitudine globală 1 p.

Sesiunea specială 2026, varianta 4, II.3 (6 p). Variabila s memorează numărul de stele (din [10,200]) și, pentru fiecare, magnitudinea (reală) și distanța (naturală). Expresiile sunt s.numar, s.stea[0].magnitudine, s.stea[0].distanta. Eticheta cerută: observator.

Din s.stea[0].magnitudine deduci că stea e un tablou de înregistrări, cu cel mult 200 de elemente.

struct detalii
{ float magnitudine;
  int distanta;
};
struct observator
{ int numar;
  detalii stea[200];
} s;

August 2025, varianta 4, II.3 (6 p). Bijuteria are greutate, iar metalul are denumire (șir de cel mult 30 de caractere) și preț. Expresiile sunt b.metal.denumire și b.greutate*b.metal.pret. Eticheta cerută: bijuterie.

struct bijuterie
{ int greutate;
  struct
  { char denumire[31];
    int pret;
  } metal;
} b;

Barem la ultimele două: definire 4 p (definire de bază, etichetă, câmp simplu, câmp structurat), declarare 1 p, corectitudine globală 1 p. Baremul spune explicit că tipul câmpului structurat poate fi definit înainte, ca la detalii, sau în interior, ca aici.

Oficial: II.3, secvență cu câmpuri

2 min

Sesiunea specială 2025, varianta 6, II.3 (6 p). Variabila d are câmpurile A și B de tip punct, cu x și y: colțul stânga-sus și colțul dreapta-jos ale unui dreptunghi cu laturile paralele cu axele. Se afișează DA dacă e pătrat, altfel NU.

Pe x latura este d.B.x-d.A.x. Pe y, pentru că A e sus, latura este d.A.y-d.B.y.

if(d.B.x-d.A.x==d.A.y-d.B.y) cout<<"DA";
else cout<<"NU";

Barem: acces la câmpurile de pe primul nivel 2 p, acces la câmpurile de pe al doilea nivel 2 p, corespondență mesaje-proprietate 1 p, corectitudine globală 1 p.

Ce se cere la BAC

1 mincum apare la examen

  • II.3: a apărut cu struct în 7 din 15 lucrări MI numărate, 2024–2027: definire de structură sau secvență cu câmpuri.
  • Subiectul I: expresia corectă, cu un nivel sau cu două.
  • Combinațiile cu două niveluri apar frecvent: s.stea[0].distanta, b.metal.pret.

Greșeli care costă puncte

1 mincapcanele de evitat

  • Eticheta folosită ca variabilă: prajitura.cod în loc de p.cod.
  • Nu ai declarat variabila cerută: definești doar tipul și pierzi 1 p.
  • Indicele lângă alt nume: s[0].stea.distanta în loc de s.stea[0].distanta.
  • char denumire[30] pentru 30 de caractere: lipsește locul pentru caracterul nul.
  • Fără ; după definiția structurii.

Termeni-cheie

Înregistrare
Tip de date care grupează, sub un singur nume, câmpuri de tipuri diferite. În C/C++ se scrie cu struct.
Câmp
O componentă a înregistrării. Se accesează cu punct: variabila.camp.
Etichetă
Numele tipului, scris după struct. Nu apare în expresii de acces.
Tablou de înregistrări
Fiecare element e o înregistrare: p[2].pret.
Câmp tablou
Un câmp care e tablou: p.informatii[0].
Câmp de tip înregistrare
O înregistrare în altă înregistrare: b.metal.pret.

Notițele mele

Salvat local

Surse