Сделать домашней|Добавить в избранное
 

Сайт, посвящен программированию,
исходникам разных программ и
известным алгоритмам

 
Исходники программ » Языки программирования » Haskell » Лабораторная работа № 1 (Haskell)
ivi.ru [CPS]
на правах рекламы

Лабораторная работа № 1 (Haskell)

Автор: admin от 3-01-2012, 19:16

Задание № 1:
   Приведите пример нетривиальных отношений, принадлежащих следующему типу на функциональном языке программирования haskell.

(([Double],[Bool]),[Integer])
Результат:
Prelude>:set +t
Prelude>(([1.2,5.3],[True,False]),[12,18])
(([1.2,5.3],[True,False]),[12,18]) :: (([Double],[Bool]),[Integer])
   (требование нетривиальности в данном случае означает, что встречающиеся в выражениях списки должны содержать больше одного элемента)

Задание № 2:
   Функция isParallel, возвращающая True(истину), если два отрезка, концы которых задаются в аргументах функции, параллельны (или лежат на одной прямой). Например, значение выражения isParallel (1,1) (2,2) (2,0) (4,2) должно быть равно True, поскольку отрезки (1,1) – (2,2) и (2,0) – (4,2) параллельны.
  Исходный код этой программы, который расположен ниже, необходимо напечатать в блокнот(notebook) и сохранить с расширением ".hs", в нашем случае это "laba1.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
Результат:
Prelude> :load "c:\\haskell\\laba1.hs"
Reading file "c:\haskell\laba1.hs":

Hugs session for:
C:\Haskell\lib\Prelude.hs
c:\haskell\laba1.hs  
Main> isParallel 1 1 2 2 2 0 4 2
True :: Bool

Main> isParallel 1 1 2 0 2 0 4 0
False :: Bool
Дополнительное задание:
   Функция, определяющая максимум из 3-х чисел:
maxChislo :: Integer -> Integer -> Integer -> Integer
maxChislo x1 x2 x3 = if ((x1>x2)&&(x1>x3)) then x1
             else if ((x2>x1)&&(x2>x3)) then x2  else x3
Результат:
Main> maxChislo 1 7 5
7 :: Integer

 

Если вам нравится то, что мы пишем, пожалуйста, нажмите на интересующую вас рекламу сбоку, сверху, или сразу после статьи. Будет стимул писать лучше и чаще. Хорошего вам дня.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий