Контролно 1, Условия на задачите
Задача 1. Да се напише функция, която по даден списък от точки в декартовата равнина да намира координатите на горния ляв ъгъл на най-малкия (по площ) правоъгълник, който съдържа всички точки от списъка.
Пример: за точките с координати (-1,1), (2,2) и (0,-3), търсената точка е (-1,2)
Задача 2. Да се напише функция, която за даден символен низ, съдържащ само латински букви и интервали, да намира броя на думите, започващи с главна буква. “Дума” дефинираме като последователност от букви, отделени от останалите символи с интервал или краищата на низа.
Пример: за символния низ “Hi how are you Today”, търсеното число е 2
Задача 3. Едно положително цяло число ще наричаме съвършено, ако е равно на сумата от своите делители (без самото число). Например: 6 е съвършено, защото 6 = 1+2+3, а числото 9 не е съвършено (1+3 ≠ 9). Да се дефинира функция, която проверява дали дадено положително цяло число е съвършено.
(Бонус): Да се състави списък от всички съвършени числа.
Задача 4. Да се напише функция, която приема списък xs :: [a] и стойност x :: a и построява списък с поредните номера на елементите на xs, които съвпадат с x.
Пример: за списъка [1,2,1,3,1,4] и елемент 1, резултатът е [0,2,4].
Задача 5. Дадени са списък от двойки xs :: [(a,a)] и списък choice :: [Bool]. За всеки елемент от x :: (a,a) от xs, съответния му елемент (като поредност) ch :: Bool от choice определя дали се интересуваме от първия или втория елемент на x. Ако ch е истина, вземаме първия компонент на x, а в противен случай - втория. Да се напише функция, която при подадени списъци xs и choice построява списък [a] по горното правило.
Пример: За списъците xs = [(0,1),(0,1),(0,1)] и choice = [True, False, True], резултатът ще е [0,1,0].
Задача 6. Да се дефинира функция, която приема списък [a] и заменя всички непрекъснати последователности от еднакви елементи x с единичен елемент x.
Пример: за списъка [0,0,1,2,2,2,3,4], резултатът е [0,1,2,3,4]