Limbaje de programare: Laborator 2

În această lucrare vom rezolva probleme scriind diferite funcții simple. În fiecare caz se va scrie și un program principal care apelează funcția și tipărește valoarea returnată.

Funcții cu expresii matematice

1. Scrieți doua funcții care convertesc grade Celsius în grade Fahrenheit și invers. Se știe că: 0°C = 32°F; -40°C = -40°F; intervalul de un grad Fahrenheit e 5/9 din intervalul unui grad Celsius.

Funcții care necesită o decizie

2. În general, temperatura atmosferei scade cu altitudinea, cu cca 6.5 grade Celsius la fiecare kilometru.
Scrieți o funcție care ia ca parametru altitudinea în kilometri și returnează temperatura, presupunând că la nivelul mării e de 20 Celsius. Peste 11 km se consideră că temperatura rămâne constantă.

3. Scrieți o funcție care ia ca parametri trei numere naturale și determină dacă ele pot forma laturile unui triunghi. Funcția va returna 1 dacă răspunsul e da, și 0 în caz contrar.

4. Un funcționar lucrează la ghișeu, cu pauză de prânz între 12 și 13. Un client vine cu o sarcină care durează două ore. Scrieți o funcție care returnează ora la care clientul termină problema la ghișeu, în funcție de ora la care vine.

5. Scrieți o funcție care returnează mediana (adică numărul din mijloc ca mărime) a trei numere date ca parametri.

Funcții recursive

5. Scrieți o funcție care ia ca parametru un număr natural și o cifră și returnează numărul de apariții a cifrei în scrierea numărului (în baza 10).

6. Scrieți o funcție recursivă care calculează cel mai mare divizor comun a două numere naturale.

7. Rădăcina unei funcții. Găsiți, cu o aproximație dată, rădăcina unică a unei funcții continue și monotone f pe un interval [a, b] pe care funcția schimbă semnul. (Rezolvați pentru un caz concret al valorilor a, b și a funcției f).
Problema se rezolvă înjumătățind la fiecare pas intervalul de căutare, până când acesta devine mai mic decât precizia cerută. Se calculează valoarea funcției în mijlocul intervalului. Indiferent de semnul ei, cum în funcția are semne diferite în capetele intervalului, ea schimbă semnul pe una din cele două jumătăți de interval. Ajungem astfel la aceeași problemă, dar cu intervalul redus la jumătate. Cazul de bază e când lungimea intervalului e sub precizia cerută: orice valoare din interval e o aproximație suficientă.
Se poate eventual testa suplimentar dacă funcția e nulă în mijlocul intervalului, și returna direct rădăcina în acest caz.

8. Scrieți o funcție recursivă care returnează numărul de combinații prin care un număr natural se poate scrie însumând numere cu valoarea 1, 2 sau 3 (fără a ține cont de ordine).
Exemplu: 5 = 1 + 1 + 1 + 1 + 1 = 1 + 1 + 1 + 2 = 1 + 2 + 2 = 1 + 1 + 3 = 2 + 3 (5 combinații)
Indicație: Dacă folosim numărul 3, rămâne să-l scriem pe n - 3 în toate combinațiile posibile. Dacă nu folosim 3, trebuie scris n folosind doar valori de 1 și 2 (pentru a număra aceste combinații putem scrie altă funcție).
Generalizați pentru trei valori oarecare în loc de 1, 2 și 3.


Marius Minea
Last modified: Tue Oct 2 11:30:00 EEST 2012