Programowanie funkcyjne/Zadania egzaminacyjne

Z Studia Informatyczne
Wersja z dnia 15:35, 24 sie 2006 autorstwa Kubica (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Propozycje zadań egzaminacyjnych:

  • Napisz procedurę posumuj, która dla danej niemalejącej listy dodatnich liczb całkowitych (a1an) oblicza listę (b1bn), gdzie bi=k=ainak. (Pamiętaj o tym, że jeśli m>n, k=mnak=0.)
  • Tomek ma zabawkę, z której wystają drewniane słupki różnej wysokości. Jednym uderzeniem młotka może wbić lub wysunąć wybrany słupek o 1. Napisz procedurę słupki, która dla danej listy początkowych wysokości słupków obliczy minimalną liczbę uderzeń młotka potrzebnych do wyrównania wysokości słupków.
  • Napisz funkcję max_diff : int list int, która dla niepustej listy [x1;;xn] znajdzie maksymalną różnicę xjxi dla 1ijn. Jaką złożoność ma Twoja procedura?
  • Napisz procedurę przedziały:int list -> int*int, która dla danej listy [a1,,an] oblicza taką parę liczb (k,l), 1kln, dla której suma ak++al jest największa. Oblicz i podaj złożoność Twojego rozwiązania.