1. Creați o clasă BankAccount care primește la inițializare doi parametri: unul este numele băncii, iar celălalt este o sumă de bani. Creați apoi pe acestă clasă două metode, una care depunde bani în cont si alta care extrage. Fiecare dintre ele primește ca parametru o sumă de bani ce va fi depusă/extrasă. Metoda care extrage o sumă de bani nu va permite ajungerea la un sold negativ și va afișa un mesaj de genul “Fonduri insuficiente!”.

  2. Creați o clasă Person care primește la inițializare trei parametri: numele persoanei, un cont bancar( instanță a lui BankAccount) și salariul cu valoarea implicită 0. Pentru că salariul este confidențial, atributul salary ar trebui să fie privat. Definiți o proprietate care permite setarea salariului, iar la interogare (obj.salary) întoarce “Confidential!”. Creați apoi o metodă receive_salary() care la apel va depune în contul bancar al persoanei salariul pe care aceasta îl are.

  3. a) Scrieți o clasă Student care primește la inițializare nume și vârstă.

    b) În afara clasei, scrieți o funcție student_factory care primește o listă de tupluri. Fiecare tuplu este o pereche de forma (nume, vârstă). Funcția întoarce o listă de obiecte de tip Student inițializate cu valorile primite.

    c) Scrieți o altă funcție care primește o listă de obiecte Student și întoarce vârstele studenților al căror nume se termină în ‘escu’, sortate crescător.

  4. Creați clasa SpecialBankAccount derivată din BankAccount care permite ajungerea la un sold negativ (descoperire de cont). Aceasta va avea un atribut overdraft care specifică suma maximă care se poate retrage în plus față de debitul contului. Metoda de extragere va afișa un mesaj de genul “Creditul maxim a fost atins.” dacă se încearcă extragerea unei sume mai mari. Pentru a testa funcția implementată, creați o nouă metodă make_shopping() pe clasa Person prin intermediul căreia o persoane poate face cumpărături de o anumită sumă de bani.

  5. Creați o clasa Zar care întoarce un număr random între 1 și 6 la apelarea metodei roll. Creați o altă clasă ZarNecinstit care întoarce întotdeauna ceva între 1 și 6 care nu e random, ci fix, la apelarea metodei roll. Creați o listă de 5 zaruri atât corecte și incorecte și iterați pe ele apelând metoda roll.

  6. Creați o clasă Masa care primește la inițializare parametrul de tip string meniu. Adaugati o metoda menu_price ce va returna: ‘12 Lei’ daca meniul ales este ‘meniu 1’ ‘17 Lei’ daca meniul ales este ‘meniu 2’ ‘Nu exista acest meniu’ pentru orice alta varianta.

  7. Creați o clasă Vehicul care primește la inițializare parametrii numar_pasageri,capacitate_rezervor si cantitate_combustibil.Implementati o metoda use_gas, ce primeste parametrul kilometrii_parcursi care va modifica valoarea atributului cantitate_combustibil dupa urmatoarea formula: cantitate_combustibil = cantitate_combustil - (kilometrii_parcursi * numar_pasageri)/100 Implementati o metoda load_gas, ce primeste parametrul cantitate ce va modifica valoarea atributului cantitate_combustibil. Atentie! Valoarea atributului cantitate_combustibil nu trebuie sa depaseasca valoarea atributului capacitate_rezervor.