PCLP Laborator11: Problemset (extra)
Probleme extra propuse pentru PCLP Laborator11.
1. Evaluare polinom cu coeficienți și grade
Se primește prin linia de comandă un polinom sub forma unei liste de perechi (coeficient grad) și, ca date de intrare, valoarea x. Programul trebuie să:
- Determine gradul maxim al polinomului automat, pe baza gradelor date.
- Completeze coeficienții lipsă cu 0 pentru toate gradele de la 0 la gradul maxim.
- Calculeze valoarea polinomului pentru
x. - Calculeze valoarea primei derivate pentru același
x. - Afișeze polinomul complet, valoarea și derivata.
Exemplu
// Input:
./poly 1 3 -3 1 4 0 2
2
// Output:
Polinom complet: 1*x^3 + 0*x^2 - 3*x + 4
P(2) = 6
P'(2) = 9
Explicație
În exemplul dat, programul primește în linia de comandă perechile (coeficient grad) și valoarea lui x.
Astfel, 1 3 indică coeficientul 1 pentru x³, -3 1 coeficientul -3 pentru x¹, iar 4 0 coeficientul 4 pentru x⁰. Gradul 2 lipsește, deci coeficientul pentru x² este completat automat cu 0.
Polinomul complet devine 1·x³ + 0·x² - 3·x + 4. Programul calculează valoarea polinomului pentru x = 2, obținând P(2) = 6, și apoi prima derivată a polinomului, obținând P'(2) = 9.
2. Matrice pătratică
Programul matrix primește prin linia de comandă elementele unei matrice. Porgramul va trebui să:
- Afișeze matricea.
- Calculeze suma fiecărei linii și a fiecărei coloane.
- Calculeze suma elementelor de pe diagonala principală și diagonala secundară.
- Înlocuiască toate valorile de pe diagonala principală cu zero și afișeze noua matrice.
Tip Scrieți funcții separate pentru: afișare, calcul sume, zero pe diagonală.
Exemplu
#Input:
./matrix 1 2 3 2 4 5 3 5 6
#Output:
1 2 3
2 4 5
3 5 6
Suma linii: 6 11 14
Suma coloane: 6 11 14
Suma diagonala principala: 11
Suma diagonala secundara: 10
Diagonala principală zero:
0 2 3
2 0 5
3 5 0
3. Harta gigantică
Ești un explorator care a descoperit o peșteră uriașă, plină de comori. Harta peșterii este stocată într-un fișier binar și fiecare cameră conține un anumit număr de monede. Trebuie să faci un raport detaliat pentru cercetători despre distribuția comorilor și descoperirile tale. Harta este foarte mare și nu poate fi încarcată în întregime în memorie. Va trebui să utilizați părți ale fișierului binar.
Cerințe
Programul primește două argumente în linia de comandă:
- Fișierul binar care conține harta comorilor.
- Fișierul text unde se vor scrie rezultatele.
Programul trebuie să genereze un raport complet, incluzând:
- Harta comorilor.
- Suma monedelor pe fiecare rând și pe fiecare coloană.
- Media cantităților din întreaga matrice.
- Camera cu cele mai multe monede și coordonatele ei.
- Identificarea camerelor cu cantitatea sub media generală.
- Modificarea valorilor minime de pe fiecare coloană cu
-1pentru a fi ocolite (nu sunt profitabile) și afișarea hărții modificate.
Hint fseek()
Testați problema utilizând fișierul:
harta_gigant.bin