# PBinfo #3530 – oop_2 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: Darius

## Enunț

Se consideră următoarea definiție a clasei Tablou în C++

class Tablou
{
public:
    int *t; // tabloul unidimensional
    int n; // dimensiunea fizica si logica tabloului
    // constructorul
    Tablou(int dim, int a, int b, int c, int d)
    {
        n = dim;
        t = new int[n];
        t[0] = a;
        for (int i = 1; i < n; i++)
            t[i] = 1 + (t[i - 1] * b + c) % d;
    }
    // destructorul
    ~Tablou()
    {
        n = 0;
        delete[] t;
    }
    // returneaza maximul din t
    int Max()
    {
        // TO DO
    }
    // returneaza prima pozitie unde se gaseste val in t,
    // sau returneaza -1 daca val nu apare in t
    int Cauta(int val)
    {
        // TO DO
    }
};
Clasa gestionează un tablou unidimensional alocat dinamic. Constructorul clasei inițializează un vector t de dimensiune dim, iar componentele sunt create după o relație de recurență. Așa cum se observă, vectorul este indexat de la 0.

Cerinţa
Scrieți definiția completă a metodelor Max și Cauta. Funcția Max trebuie să returneze valoarea maximă din vectorul t. Funcția Cauta(val) caută valoarea val în vectorul t și fie trebuie să returneze cea mai din stânga poziție unde se află valoarea val, fie să returneze -1 dacă val nu se află în t.

Restricţii şi precizări

numele metodelor sunt Max și Cauta

Important
Soluţia propusă va conţine definiţia completă a funcţiilor cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

## Cod sursă C++

```cpp
    // returneaza maximul din t
    int Max()
    {
        int M = t[0];
        for (int i = 1; i < n; i++)
            if (M < t[i]) M = t[i];
        return M;
    }
    // returneaza prima pozitie unde se gaseste val in t,
    // sau returneaza -1 daca val nu apare in t
    int Cauta(int val)
    {
        for (int i = 0; i < n; i++)
            if (t[i] == val) return i;
        return -1;
    }
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3530)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3530/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3530/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
