Форум программистов, компьютерный форум, киберфорум
Наши страницы
Haskell
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
dzuin
0 / 0 / 0
Регистрация: 27.05.2013
Сообщений: 39
1

Ещё задачи в Хаскелле

27.05.2013, 13:34. Просмотров 1557. Ответов 7
Метки нет (Все метки)

17.Определить количество отрицательных чисел из четырех.
18.Найти произведение тех чисел из трех, которые по модулю меньше 10.
19.Определить, является ли данное число четным, нечетным, кратным восьми.
20.Составить программу поиска наибольшего общего делителя двух чисел.
21.Составить программу поиска наименьшего общего кратного двух чисел.
22.Найти сумму цифр трехзначного числа.
23.Написать для двузначного числа функцию определения числа - перевертыша.
24.Написать функцию определения, является ли трехзначное число палиндромом.
25.Определить, есть ли такое трехзначное число, которое было бы равно сумме факториалов его цифр.
26.Вводятся координаты центра и радиусы двух окружностей. Определить количество точек пересечения.
27.Получить первую цифру дробной части вещественного положительного числа.
28.Решить линейное уравнение ax=b
29.Решить квадратное уравнение ax2+bx+c=0
30.Решить линейное неравенство ax<b или ax>b
31.Написать функцию определения, является ли число полным квадратом.
32.Поменять местами половины четырехзначного числа.
33.Из четырехзначного числа сформировать двузначное, полученное как объединение двух цифр, первая цифра - сумма тысяч и сотен, вторая - десятков и единиц.
34.Определить, сумма каких двух слагаемых равна их разности. Привести пример.
35.Произведение трех последовательных натуральных чисел равно 3024. Найти эти числа.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 13:34
Ответы с готовыми решениями:

GUI и графика на хаскелле
Какие для этого есть библиотеки/фреймворки? Или другие средства? Есть привязка к Qt, а кроме неё...

Документация по распараллеливанию программ на Хаскелле
Есть ли где нибудь вменяемый гайд по распараллеливанию программ на haskell?

Вывести на экран номер максимального элемента массива(+ ещё 3 задачи)
Программирование на легком уровне, так как только на 1 курсе, задача на МАССИВЫ! ...

Определить является ли заданное шестизначное число счастливым(+ ещё 3 задачи решите мне)
Народ вообщем плиз нужно написать проги на dev c++ для решения задач 1.Определить является ли...

Найти сумму элементов одного столбца и ещё две задачи такого же типа
http://cs631322.vk.me/v631322208/29f8a/Yl4Qg68EcPo.jpg

7
Catstail
Модератор
25040 / 12740 / 2340
Регистрация: 12.02.2012
Сообщений: 20,732
27.05.2013, 14:27 2
Цитата Сообщение от dzuin Посмотреть сообщение
35.Произведение трех последовательных натуральных чисел равно 3024. Найти эти числа.
- похоже, нет таких... Ты не ошибся?
0
dzuin
0 / 0 / 0
Регистрация: 27.05.2013
Сообщений: 39
27.05.2013, 15:20  [ТС] 3
Цитата Сообщение от Catstail Посмотреть сообщение
Ты не ошибся?
я не знаю какие препод задачи дал такие и скинул сам на хаскелле программировать вообще не понимаю
0
Catstail
Модератор
25040 / 12740 / 2340
Регистрация: 12.02.2012
Сообщений: 20,732
27.05.2013, 22:07 4
Вот код:

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
task :: Int -> Int -> (Int,Int,Int)
task k n | n > (round ((fromIntegral k) ** (1.0/3.0))) = (0,0,0)
         | (n*(n+1)*(n+2)) == k = (n,(n+1),(n+2))
         | otherwise = task k (n+1)
 
-- Проверяем:
 
Main> task 60 1
(3,4,5) -- верно
Main> task 226920 1
(60,61,62) -- верно
Main> task 3024 1
(0,0,0)   -- решений нет
Добавлено через 4 минуты
Проверка, является ли число палиндромом... Но почему ограничиваться трехзначными числами?

Haskell
1
2
3
4
5
6
7
8
9
isPal :: Int -> Bool
isPal x = (sx == rx) where sx = (show x); rx = reverse sx       
   
Main> isPal 11
True
Main> isPal 12
False          
Main> isPal 121
True
Добавлено через 3 минуты
Haskell
1
2
3
4
-- Поменять местами половинки 4-х значного числа
 
swap4 :: Int -> Int
swap4 n = 100 * (n `mod` 100) + (n `div` 100)
Добавлено через 6 минут
Haskell
1
2
3
4
-- Первая цифра дробной части
 
hfract :: Float -> Int
hfract x = (floor (x*10)) `mod` 10
Добавлено через 4 часа 55 минут
Числа, равные сумме факториалов цифр:

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
fact' :: Int -> Int
fact' 0 = 1
fact' n = n * fact' (n-1)
 
digList :: Int -> [Int]
digList n | (n < 10) = [n]
          | otherwise = (n `mod` 10) : digList (n `div` 10)
          
checkNum :: Int -> Bool
checkNum n = (n == (foldl (+) 0 (map fact' (digList n))))
 
[x | x <- [100..999], (checkNum x)] 
 
-- находит 145 = 1+24+120
Добавлено через 7 минут
Когда сумма равна разности:

Haskell
1
2
3
4
5
6
Main> [(x,y) | x <- [-10..10], y <- [-10..10], (x+y == x-y) || (x+y == y-x)]
[(-10,0),(-9,0),(-8,0),(-7,0),(-6,0),(-5,0),(-4,0),(-3,0),(-2,0),(-1,0),(0,-10),(0,-9),(0,-8),(0,-7),
(0,-6),(0,-5),(0,-4),(0,-3),(0,-2),(0,-1),(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(0,9)
,(0,10),(1,0),(2,0),(3,0),(4,0),(5,0),(6,0),(7,0),(8,0),(9,0),(10,0)] 
 
-- как ни крути, одно число должно быть = 0
Добавлено через 4 минуты
Сумма любого Int (неотрицательного):

Haskell
1
2
3
sumDig :: Int -> Int 
sumDig n | (n < 10) = n
         | otherwise = (n `mod` 10) + (sumDig (n `div` 10))
1
27.05.2013, 22:07
dzuin
0 / 0 / 0
Регистрация: 27.05.2013
Сообщений: 39
28.05.2013, 09:03  [ТС] 5
Цитата Сообщение от Catstail Посмотреть сообщение
sumDig :: Int -> Int
sumDig n | (n < 10) = n
* * * * *| otherwise = (n `mod` 10) + (sumDig (n `div` 10))
А это решение для какой задачи?
0
Catstail
Модератор
25040 / 12740 / 2340
Регистрация: 12.02.2012
Сообщений: 20,732
28.05.2013, 10:56 6
сумма цифр любого числа
0
dzuin
0 / 0 / 0
Регистрация: 27.05.2013
Сообщений: 39
28.05.2013, 12:20  [ТС] 7
Цитата Сообщение от Catstail Посмотреть сообщение
Main> task 60 1
(3,4,5) -- верно
Main> task 226920 1
(60,61,62) -- верно
Main> task 3024 1
(0,0,0) * -- решений нет
Еще вопрос а что значит 1 после ввода числа
0
Catstail
Модератор
25040 / 12740 / 2340
Регистрация: 12.02.2012
Сообщений: 20,732
28.05.2013, 13:32 8
Цитата Сообщение от dzuin Посмотреть сообщение
Еще вопрос а что значит 1 после ввода числа
- единица - это второй параметр функции (т.н. накопительный параметр). Если его не хочется задавать, то можно сочинить функцию-обертку:

Haskell
1
2
3
4
5
6
7
8
9
task' :: Int -> Int -> (Int,Int,Int)
task' k n | n > (round ((fromIntegral k) ** (1.0/3.0))) = (0,0,0)
         | (n*(n+1)*(n+2)) == k = (n,(n+1),(n+2))
         | otherwise = task' k (n+1)
 
-- а теперь функция task уже не требует "лишнего" параметра:
 
task :: Int -> (Int,Int,Int)
task n = task' n 1
1
28.05.2013, 13:32
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2013, 13:32

Какими ещё способами можно ещё сделать?
Задание: Известно, что: 1 в третей степени будет=1 2 в третей степени будет=3+5 3 в третей...

Отмена задачи, запуск задачи после отмены, перезапуск уже запущенной задачи
Добрый день. Сейчас разбираю TPL и у меня возник вопрос следующего содержания: у меня есть пример...

ещё о столкновении...
к примеру, для столкновения двух квадратов мы делали вот так if(fabs(cube1.x-cube2.x) &lt;...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.