Sunteți pe pagina 1din 3

SET 4

(laboratoarele 10, 11)


______________________________________________________________________________________________________________________________________________________________________

Structuri si Uniuni

1. Se da o variabila SIU_PCR care impacheteaza urmatoarele campuri (valori pozitive): DSC, ODE, HYS,
WPE si WPS ( vezi figura de mai jos ).
La definirea SIU_PCR se vor folosi structuri si uniuni astfel incat sa se poata modifica/accesa
independent campurile variabilei cat si intreaga variabila SIU_PCR.

Se va scrie o functie care seteaza campurile variabilei SIU_PCR cu valori citite de la tastatura. Valorile
vor fi date ca parametri in functie. Setarea campurilor se va face prin intermediul unui pointer catre
SIU_PCR.

Se va scrie o functie care afiseaza la consola valoarea variabilei SIU_PCR cat si valorile campurilor.

NOTA 1: Se vor folosi fisiere header pentru declararea variaiblelor globale folosite, directive de
preprocesare, prototipuri de functii etc.
NOTA 2: Arhitectura sistemului este little-endian.

1/2 vladimir.milosev@continental-corporation.com | CETP 10 | Laboratoare C - Set 4


2. Se da un sistem compus din port-uri de intrare-iesire. Numarul de port-uri din sistem este definit prin
intermediul unei directive de preprocesare.
Un port este alcatuit din doua linii digitale, una de iesire ( Out ) respectiv una de feedback ( In ).
Un port este caracterizat de 3 stari ( normala, scurt-circuit la masa, scurt-circuit la baterie ), o singura
stare fiind activa la un anumit moment de timp, in functie de valorile liniilor de intrare/iesire.
Tranzitiile intre stari sunt prezentate in diagrama de mai jos.

Programul trebuie sa indeplineasca urmatoarele:

- pentru fiecare port sa se stocheze informatii despre valoare Out/In si starea curenta.
- pentru simularea valorilor Out si In se va folosi functia rand()%2 astfel incat sa existe
valori aleatoare de 0 si 1 ( pentru functia rand() trebuie inclus stdlib.h )
- pentru starea curenta se va folosi tipu lde data enum
- pentru alegerea starii se va folosi switch-case
- se va folosi cate o functie pentru tratarea fiecarei stari a unui port
- initial, fiecare port este in starea “Normal”
- programul va rula in bucla de un numar limitat de ori (specificat printr-o directiva de
preprocesare)

2/2 vladimir.milosev@continental-corporation.com | CETP 10 | Laboratoare C - Set 4


3. Fie o “baza de date” cu parametrii de calibrare. Pentru fiecare parametru de calibrare, stocati
urmatoarele informatii: nume parametru, tip (intreg pe 8biti, intreg pe16biti, intreg pe 32biti, boolean,
float) – folositi un enum, valoarea.
a) Scrieti o functie prin care initializati baza de date cu toti parametri.
b) Scrieti o functie care afiseaza baza de date.
c) Scrieti o functie care sorteaza parametrii dupa tip (in ordinea: (intreg pe 8biti, intreg pe16biti, intreg
pe 32biti, boolean, float) si o alta functie care sorteaza dupa valoare (pentru parametrii de tip
boolean: valorile true=1 si false=0).
Folositi metoda bubble-sort, pentru swap folositi o functie separata.

3/2 vladimir.milosev@continental-corporation.com | CETP 10 | Laboratoare C - Set 4

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