Sunteți pe pagina 1din 2

PROBĂ SCRISĂ LA INFORMATICĂ

clasa a X-a, profil MATE-INFO, INTENSIV INFO

3. Se consideră declarările de mai jos, în care tabloul unidimensional c memorează informații


despre 200 de concurenți participanți la un concurs sportiv. Pentru fiecare concurent se
memorează: numele prin câmpul nume_concurent, denumirea probei la care participă prin
câmpul proba și punctajul obținut prin câmpul punctaj. Denumirea unei probe poate conține
mai multe cuvinte separate prin spațiu. Variabila p memorează denumirea unei probe din
concurs.
struct concurs{
char nume_concurent[25],proba[50];
int punctaj;
} c[200];
char p[50];
Scrieți o secvență de instrucțiuni C/C++ care citește variabila p, determină și afișează pe ecran,
separate prin virgulă, numele concurenților care au obținut un punctaj egal cu 100 la proba cu
denumirea p. (10p.)

4. O structură de date neomogenă memorează date despre elevii unei clase: numele are cel
mult 30 de caractere, două note de tip întreg şi media notelor. Scrieţi definiţia completă a
structurii şi declaraţi corespunzător variabila x, astfel încât să se poată realiza următoarea
operaţie: x.media=9.5; (6p)

5. În declararea alăturată, variabila A memorează în câmpurile x și y coordonatele carteziene


ale unui punct din planul xOy, iar variabila C memorează raza și coordonatele centrului unui
cerc.
struct punct
{float x,y;} A;
struct cerc
{punct p; float r;} C;
float d;
Scrieți o secvență de instrucțiuni prin care se calculează în variabila d distanța de la punctul A
la centrul cercului și apoi se verifică poziția punctului față de cerc afișându-se, în funcție de
rezultatul obținut, mesajul INTERIOR, EXTERIOR, respectiv PE CERC. (6p)
6. Fie următoarea definiție și declarație:
struct examen{
char nume[30], prenume[30], initiala;
float nota[3], medie;
}e[300];
Să se scrie secvența de program care citește pentru n candidați la examenul de bacalaureat
următoarele date: numele, inițiala tatălui, prenumele, notele la cele trei probe și calculează
media obținută la examen. În cazul în care candidatul a promovat cele trei probe și examenul
de bacalaureat să se afișeze media sau mesajul respins în caz contrar (un candidat este
promovat dacă are cel puțin nota 5 la fiecare probă și media cel puțin 6). (10p)

7. Să considerăm două variabile P1 şi P2, care reţin coordonatele carteziene a două puncte în
plan, ca și în declarația de mai jos. Care dintre următoarele variante reprezintă lungimea
segmentului determinat de punctele memorate în variabilele P1 şi P2? (4p)

struct Punct {double x, y;} P1, P2;

a. sqrt((P1.x-P1.y)* (P1.x-P1.y)+ (P2.x-P2.y)* (P2.x-P2.y));


b. sqrt((P1.x-P2.x)* (P1.x-P2.x)+ (P1.y-P2.y)* (P1.y-P2.y));
c. sqr((P1.x-P2.x)* (P1.x-P2.x)+ (P1.y-P2.y)* (P1.y-P2.y));
d. sqrt((P1.x-P2.x)^2+ (P1.y-P2.y)^2);

8. Variabila s memorează simultan următoarele date despre fiecare dintre cele 40 de clase din
cadrul unei școli: un cod de maximum 5 caractere, reprezentând numele clasei, numărul de
elevi din clasă și mediile acestora. În fiecare clasă sunt maximum 30 de elevi. Știind că
expresiile C/C++ de mai jos au ca valori un șir de caractere ce reprezintă codul celei de a 2-a
clase, o valoare naturală ce reprezintă numărul de elevi din cea de a 2-a clasă, respectiv o
valoare reală ce reprezintă media celui de al 3-lea elev din a 2-a clasă, scrieți definiția unei
structuri cu eticheta clasa, care permite memorarea datelor despre o clasă, și declarați
corespunzător variabila s. (6p.)
s[1].cod s[1].NrElevi s[1].Medie[2]

9. Variabila p memorează simultan informații referitoare la cei 100 angajați ai unei companii:
numărul de identificare (un număr natural), numele (un șir cu maxim 50 caractere), salariul (un
număr real), data nasterii și data angajării (ziua, luna și anul numere naturale). Știind că
expresiile C/C++ de mai jos au ca valori id-ul, prima literă a numelui primului angajat, luna
nașterii și anul angajării acestuia, scrieți definiția unei structuri cu eticheta angajat, care
permite memorarea datelor despre angajații companiei, și declarați corespunzător variabila p.
(6p)
p[0].Id p[0].Nume[0] p[0].Data_N.luna p[0].Data_A.an

10. Se consideră următoarea declarație:


struct cerc
{ float r;
struct
{int x,y;}centru;
}c1,c2;
Scrieți o expresie C++ care să fie adevarată dacă și numai dacă cele două cercuri c1 si c2, de
centre diferite, nu se intersectează. (6p)

S-ar putea să vă placă și