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. Scrieți o funcție care ia ca parametri trei numere reale și determină dacă ele pot forma laturile unui triunghi. Funcția va returna 1 dacă răspunsul e da, și 0 în caz contrar.

3. Un funcționar lucrează la ghișeu, cu pauză de prânz între 12 și 13. Un client vine cu o problemă a cărei rezolvare necesită două ore de lucru din partea funcționarului. Scrieți o funcție care returnează ora la care clientul termină problema la ghișeu, în funcție de ora la care vine.

4. 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 recursivă pentru termenul n din progresia aritmetică: x0=2, xn=xn-1+3, pentru n>0. Adunați rația progresiei înainte de apelul recursiv, acumulând un rezultat parțial transmis ca parametru.

6. Scrieți o funcție care, date fiind doi întregi a și b calculează produsul tuturor numerelor dintre ele (inclusiv capetele, indiferent de ordinea lor).

7. Scrieți o funcție recursivă care returnează termenul n din șirul lui Fibonacci, fără a repeta calcule inutile.
Indicație: cum termenul curent se calculează ca sumă a celor doi termeni anteriori, aceștia pot fi transmiși ca parametri la funcție.

8.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.


Marius Minea
Last modified: Tue Oct 4 18:00:00 EET 2011