Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/22: Рейтинг темы: голосов - 22, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 27.05.2013
Сообщений: 39

Зачет по функциональному программированию

27.05.2013, 11:13. Показов 4374. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Перечень практических заданий по функциональному программированию
(из них будут отобраны задачи для экзамена)

1. В наборе из трех чисел вернуть значение второго числа.
2. Создать список, повторив нужное число раз определенную цифру (использовать функции copy и repeat).
3. Написать функцию, которая преобразует строчку произвольной длины в строчку указанной длины. Если новая длина больше исходной длины, то пробелы добавляются после слова. Если меньше, то слово обрезается справа.
4. Написать функцию для объединения двух упорядоченных по возрастанию списков в один упорядоченный по возрастанию список.
5. Написать функцию для вставки элемента в список, не нарушив при этом его упорядоченности.
6. Написать функцию для определения первой позиции вхождения заданного элемента в список.
7. Определить, является ли указанное число элементом списка.
8. Создать конечный список Пифагоровых троек.
9. Написать функцию для определения всех делителей числа.
10. Написать функцию для проверки, равно ли число сумме своих делителей.
11. Из списка первых 10 натуральных чисел выбрать четные (использовать функции filter и even).
12. Вывести на экран все натуральные числа, меньшие n (с помощью конструкции [q | q < – n]).
13. Найти наименьшее число, равное сумме своих делителей.
14. Оставить в списке только элементы, не кратные голове списка.

15. Получить список чисел Евклида (10 элементов).
16. Получить 8 первых чисел Ферма.
17. Удалить из списка все повторяющиеся элементы.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2013, 11:13
Ответы с готовыми решениями:

Задача по функциональному программированию
Найти произведение матрицы на вектор Haskell

Как научится функциональному программированию?
Имею на данный момент следующий план действий. Так как изучаю Python, собираюсь установить модуль, расширяющий функциональные возможности...

Одномерный массив. Зачёт/ не зачёт для студентов
Нужно сделать массив для 20 студентов, из которого можно вывести &quot;зачет/не зачет&quot; по 5 предметам (современные информационные...

7
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38189 / 21124 / 4307
Регистрация: 12.02.2012
Сообщений: 34,730
Записей в блоге: 14
27.05.2013, 12:24
Haskell
1
2
3
4
-- Из набора трех вернуть второе
 
midNum :: a -> a -> a -> a
midNum _ x _ =x
Добавлено через 2 минуты

Haskell
1
2
3
4
-- Список из одной цифры повторением
 
mkList :: Int -> a -> [a]
mkList = replicate
Добавлено через 9 минут
Haskell
1
2
3
4
5
6
-- Преобр. строки
 
prokrust :: Int -> String -> String
prokrust n s | l == n = s
             | l < n = s ++ (replicate (n - l) ' ')
             | otherwise = take n s where l=length s
Добавлено через 6 минут
Haskell
1
2
3
4
5
6
7
8
-- слияние упорядоченных массивов
 
mergeLists ::  Ord a => [a] -> [a] -> [a]
mergeLists [] y = y
mergeLists x [] = x
mergeLists xx@(x:xs) yy@(y:ys) | (x < y) =  x : mergeLists xs yy
                               | (x == y) = x : y : mergeLists xs ys
                               | otherwise = y : mergeLists xx ys
Добавлено через 5 минут
Haskell
1
2
3
4
5
6
7
-- Вставка в упорядоченный список
 
insertInList :: Ord a => a -> [a] -> [a]
insertInList n [] = [n]
insertInList n (x:xs) | (n < x) = n : x : xs
                      | (n == x) = n : x : xs
                      | otherwise = x : (insertInList n xs)
Добавлено через 15 минут
Haskell
1
2
3
4
5
6
-- Позиция в списке
 
posInList :: Eq a => a -> [a] -> Int -> Int
posInList n [] k = -1
posInList n (x:xs) k | (x == n) = k+1
                     | otherwise = posInList n xs (k+1)
Добавлено через 3 минуты
Haskell
1
2
3
4
5
6
-- Входит ли элемент в список
 
isInList :: Eq a => a -> [a] -> Bool
isInList _ [] = False
isInList n (x:xs) | (n == x) = True
                  | otherwise = isInList n xs
Добавлено через 7 минут
Haskell
1
2
3
4
-- Пифагоровы тройки
 
pifagor :: Int -> [(Int,Int,Int)]
pifagor n = [(x,y,z) | x <- [1..n], y <- [1..n], z <- [1..n], x*x+y*y == z*z]
Добавлено через 8 минут
Haskell
1
2
3
4
5
6
7
8
9
-- Список делителей
 
divList' :: Int -> Int -> [Int]
divList' n k | (k > (n `div` 2)) = []
             | (n `mod` k) == 0 = k : divList' n (k+1)
             | otherwise =  divList' n (k+1)
 
divList :: Int -> [Int]
divList n = divList' n 1
Добавлено через 4 минуты
Haskell
1
2
3
4
-- Равно ли число сумме своих делителей
 
testPerf :: Int -> Bool
testPerf n = (n == (foldl (+) 0 (divList n)))
Добавлено через 3 минуты
Haskell
1
2
3
-- четные из первого десятка
 
filter even [1..10]
2
0 / 0 / 0
Регистрация: 27.05.2013
Сообщений: 39
27.05.2013, 12:25  [ТС]
С каждой решенной задачей я приближаюсь к получению зачета и все больше уверяюсь в том, что есть на свете добрые люди, готовые помочь!
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38189 / 21124 / 4307
Регистрация: 12.02.2012
Сообщений: 34,730
Записей в блоге: 14
27.05.2013, 12:38
Haskell
1
2
3
4
5
-- минимальное совершенное число
 
minPerf :: Int -> Int
minPerf n | (testPerf n) == True = n
          | otherwise = minPerf (n+1)
Добавлено через 4 минуты
Haskell
1
2
3
4
-- Удалить кратные голове списка.
 
del1 :: [Int] -> [Int]
del1 (x:xs) = filter (\ z -> (z `mod` x) /= 0) xs
Добавлено через 1 минуту
Цитата Сообщение от dzuin Посмотреть сообщение
есть на свете добрые люди, готовые помочь!
- эх... Не все, кто "помогает", приносят реальную пользу... Учи Haskell! Это красивый язык.
1
 Аватар для Сtrl
144 / 134 / 8
Регистрация: 19.07.2011
Сообщений: 184
27.05.2013, 12:53
Цитата Сообщение от dzuin Посмотреть сообщение
16. Получить 8 первых чисел Ферма.
Haskell
1
fermat = map (\x -> 2^(2^x)+1) [0..]
Получить первые 8 можно с помощью функции take:
Haskell
1
xs = take 8 fermat
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38189 / 21124 / 4307
Регистрация: 12.02.2012
Сообщений: 34,730
Записей в блоге: 14
27.05.2013, 13:21
Haskell
1
2
3
4
5
-- Удалить повторы из списка
 
uniqEl :: Eq a => [a] -> [a]
uniqEl [] = []
uniqEl (x:xs) = if (x `elem` xs) then uniqEl xs else x : (uniqEl xs)
1
31.05.2015, 18:52

Не по теме:

Цитата Сообщение от dzuin Посмотреть сообщение
С каждой решенной задачей я приближаюсь к получению зачета и все больше уверяюсь в том, что есть на свете добрые люди, готовые помочь!
тем самым отбирая у вас полжизни, которые вы могли бы сэкономить используя Haskell и фундаментальные знания :]
просто вы не догадываетесь, что получите если решите эти задачки, а те кто помогают понимают насколько это ценные умения - самостоятельно решать подобные задачки.
сейчас сам занимаюсь поиском интересных задачек по монадам, то есть я ищу не просто упражнения, а упражнения в которых бы у меня был стимул. Чтобы не приходилось себя пересиливать.
например в эту тему я пришёл, решая задачку по криптографии Расшифровка текста
некоторые ответы на ваши упражнения мне пригодились.
подумайте, где бы вам пригодились решения этих задач...
я понимаю, что, когда сам приходишь к изучению Haskell-я и когда тебя заставляют решать задачки в универе - это большая разница.

0
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 6
19.10.2015, 22:51
Добрый вечер, помогите с задачей: Найти значение наименьшего числа в списке
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2015, 22:51
Помогаю со студенческими работами здесь

Calculate the distance from the function
Товарищи, выручайте! Вызвали на деканатскую комиссию в университете, хотят от меня решение задачи 4 с картинки. Я вообще не разбираюсь в...

Литература по функциональному анализу
Доброй ночи. Посоветуйте, пожалуйста, книги по фунану и предметам которые необходимо знать, чтобы его комфортно изучать. Очень хотелось...

Ведущий инженер по функциональному тестированию
Требования: обязательно наличие опыта тестирования необходимые умения: опыт руководства группой из 3-5 человек знание различных...

Выделение процедуры и функции разместить в модули по функциональному признаку
Выделение процедуры и функции разместить в модули по функциональному признаку. Массив D1, D2,...,Dm такой, что D1=Cm,...

Какая книга по программированию обьясняет все с математикой и подробно излагает все темы?По программированию?
Не Бьерн Страуструп?А то не нравится мне у Лафоре тип изложения книги,довольно не в мою логику там упирается,да и нравится перестал,уж...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru