mda

Post on 26-Sep-2015

5 views 1 download

description

ASDSAA

Transcript of mda

  • Training_R2_P2 __________________________________________________________________

    1

    Viticultorii dintr-o anumit regiune faimoas pentru vinurile sale se hotrsc s nfiineze o asociaie pentru a-i putea promova mai bine produsele. Fiecare viticultor are o suprafa de vie de pe care are o anumit producie de struguri. Din producia de struguri, o parte se vinde ca atare (se vnd struguri), o alt parte din producie va fi transformat n must i valorificat acest produs, iar cea mai mare parte din producia de struguri va fi folosit pentru producerea vinului pentru care regiunea este faimoas. Fiecare viticultor din asociaie are libertatea de a stabili procentul din producia de struguri alocat fiecrui produs (struguri, must sau vin). Trebuie s se calculeze:

    1) Care este producia total de struguri a asociaiei? 2) tiind c la vremea culesului un kilogram de struguri de vinde cu p lei, care este venitul

    asociaiei obinut din valorificarea strugurilor ca atare? 3) Care este procentul din producie rezervat de asociaie pentru producia de vin?

    Date de intrare

    Datele de intrare se citesc dintr-un fiier dat ca argument al liniei de comanda i care are pe prima linie un numr ntreg care reprezint numrul membrilor asociaiei de viticultori. Pe urmtoarea linie se gsesc n numere reale reprezentnd producia de struguri a fiecruia dintre membrii asociaiei. Numerele reale sunt separate de cte un spaiu. Pe urmtoarele n linii se gsesc cte trei numere reale reprezentnd procentele din producie rezervate de fiecare viticultor pentru cele trei tipuri de produse (struguri, must i vin). Atenie! Suma celor trei numere de pe fiecare linie trebuie s fie egal cu 100. Pe ultima linie se gsete un numr real reprezentnd preul unui kilogram de struguri.

    Date de ieire Rezultatele obinute trebuie nscrise ntr-un fiier al crui nume coincide cu numele fiierului de intrare, dar are extensia out, iar datele de intrare trebuie afiate pe monitor pentru a verifica citirea lor corect. Dac nu exist argument n linia de comand pentru numele fiierului de intrare, rezultatele se vor afia pe monitor. (Numele unui fiier este format din numele propriu-zis, urmat de caracterul '.' (punct) i de extensie format din cel mult trei caractere). Valorile rezultate vor integrate n mesaje la nscrierea n fiier (de exemplu, n fiier se va nscrie 'Producia total a asociaiei este 1542,37 kg.'sau 'Asociatia a rezervat pentru producia de vin 76% din productia de struguri').

    Procentele stabilite de fiecare viticultor pentru valorificarea produciei sale de struguri vor fi memorate ntr-o structur numit PROCENTE care are ca membri trei numere reale a cror sum trebuie s fie egal cu 100. Procentele corespunztoare tuturor membrilor asociaiei vor fi memorate prin intermediul unui pointer la structura PROCENTE pentru care se face alocare dinamic de memorie.

    Linia de comand Forma liniei de comand este urmtoarea: prod [/t] [/s] [/p] [/h] nume_fisier

    n care:

    prod este numele programului;

    /t opiune care determin scrierea valorii produciei totale; /s opiune care determin scrierea venitului obinut din vnzarea strugurilor; /p opiune care determin scrierea procentului din producie rezervat de asociaie pentru producia de vin.

    /h opiune care permite afiarea unui mesaj care sa indice funcionalitatea programului i forma corect a liniei de comand. Dac nu este indicat nici o opiune atunci se scriu n fiier toate cele trei valori. n linia de comand poate aprea una, dou sau trei opiuni. Opiunea /h poate aprea doar ca singur opiune. Numele fiierului este ntotdeauna prezent n linia de comand (n afara de cazul n care avem opiunea /h).

  • Training_R2_P2 __________________________________________________________________

    2

    Barem de notare Programul trebuie s fie funcional, iar funciile scrise trebuie s poat fi verificate prin rularea programului.

    Tabel nr. 1

    A1 Citirea produciei realizate de membrii asociaiei de viticultori (funcia primete ca parametri un pointer la o structur FILE, un tablou de numere reale i un ntreg i nu returneaz nimic)

    0,5

    A2 Citirea procentelor stabilite de membrii asociaiei pentru cele trei tipuri de folosire a produciei de struguri (funcia are ca parametri un pointer la o structur FILE i un numr ntreg i returneaz un pointer la o structur PROCENTE).

    0,5

    A2a Alocare dinamic (cu resetarea zonei de memorie - completarea cu zero a zonei de memorie alocate) pentru un pointer la structura de tip PROCENTE.

    0,5

    A2b Citirea valorilor procentelor stabilite de un membru al asociaiei (funcia are ca parametri un pointer la o structur FILE i returneaz o structur PROCENTE).

    0,5

    A2c Verificarea corectitudinii procentelor dintr-o structur PROCENTE (funcia primete ca parametru un pointer la o structur PROCENTE i returneaz 1 sau 0 dup cum suma este corect sau nu). Dac suma nu este corect se ntrerupe funcionarea programului cu afiarea unui mesaj de eroare.

    0,5

    A3 Calcularea produciei totale de struguri (funcia primete ca parametri un pointer la un real i un ntreg i returneaz un real)

    0,5

    A4 Determinarea venitului realizat din valorificarea strugurilor ca atare (funcia primete un pointer la o structur PROCENTE, un pointer la un real, un ntreg i un real i returneaz un real n dubl precizie)

    0,5

    A5 Determinarea procentului din producie rezervat de asociaie pentru producia de vin (funcia returneaz un real i are parametri de intrare necesari pentru calculul valorii cerute)

    0,5

    A6 Scrierea pe monitor a datelor de intrare (funcia nu returneaz nimic i are parametri necesari pentru nscrierea tuturor datelor de intrare pe monitor).

    0,5

    A7 Scrierea n fiier a rezultatelor (funcie care nu returneaz nimic i are parametri necesari pentru nscrierea tuturor rezultatelor n fiier)

    0,5

    A8 Dealocarea corect a zonelor de memorie alocate 0,5

    A9 Deschiderea i nchiderea corect a fiierelor cu care se lucreaz 0,5

    A10 Scrierea corect a fiierului header 0,5

    A11 Scrierea funciei main (corect i complet) 1

    A11a Analiza liniei de comand 0,75

    A11b Formarea numelui fiierului de intrare 0,75

    A12 Funcionarea corect a programului 1

    TOTAL TABEL 1 10 p

    Nefolosirea funciilor scrise -10 p