В лабораторной работе № 1 задание № 2 такое:
Функция isParallel, возвращающая True(истину), если два отрезка, концы которых задаются в аргументах функции, параллельны (или лежат на одной прямой). Например, значение выражения isParallel (1,1) (2,2) (2,0) (4,2) должно быть равно True, поскольку отрезки (1,1) – (2,2) и (2,0) – (4,2) параллельны.
1) Решение состоит из двух этапов - первое решение самой задачи сначала на бумаге, а потом набираем её в виде программы в блокноте и сохраняем её в формате .hs
На бумаге думаю вы решите сами, т.к. математические формулы общедоступны; если непонятно что-то, то спросите в комментариях.
2) Следующий этап запуск, вписываем как на картинке выражение ":load laba1.hs", оно означает загрузить для исполнения файл laba1.hs.
Далее выскакивает после исполенения команды слово "Main>", это означает, что мы вошли в файл и можем проверить правильно ли мы его составили.
Теперь мы, как показано на картинке внизу, введём название функции и коэффициенты через пробел, и нажмём Enter. Если в результате стоит значение True, значит на параллельных линиях, если - False, то не на параллельных.
Функция isParallel, возвращающая True(истину), если два отрезка, концы которых задаются в аргументах функции, параллельны (или лежат на одной прямой). Например, значение выражения isParallel (1,1) (2,2) (2,0) (4,2) должно быть равно True, поскольку отрезки (1,1) – (2,2) и (2,0) – (4,2) параллельны.
1) Решение состоит из двух этапов - первое решение самой задачи сначала на бумаге, а потом набираем её в виде программы в блокноте и сохраняем её в формате .hs
На бумаге думаю вы решите сами, т.к. математические формулы общедоступны; если непонятно что-то, то спросите в комментариях.
Вверху вы видите код, который вам нужно набрать в блокноте.isParallel :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Bool
isParallel x1 y1 x2 y2 x3 y3 x4 y4 = if (((x1-x2)*(y3-y4)-(y1-y2)*(x3-x4)) == 0) then True else False
2) Следующий этап запуск, вписываем как на картинке выражение ":load laba1.hs", оно означает загрузить для исполнения файл laba1.hs.
Далее выскакивает после исполенения команды слово "Main>", это означает, что мы вошли в файл и можем проверить правильно ли мы его составили.
Теперь мы, как показано на картинке внизу, введём название функции и коэффициенты через пробел, и нажмём Enter. Если в результате стоит значение True, значит на параллельных линиях, если - False, то не на параллельных.
А вот задачи 7 варианта. №7 и №5
ОтветитьУдалитьkv :: Integer -> Integer
kv x = x*x
twopow :: Integer -> Integer
twopow 0 = 1
twopow x = if even x then kv (twopow (div x 2))
else (kv (twopow (div x 2)))*2
t1 = twopow 6
t2 = twopow 5
removeEmpty :: [String] -> [String]
removeEmpty [] = []
removeEmpty (x:xs) = if x == "" then removeEmpty xs
else x:removeEmpty xs