Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 21
1

Типы, Функции и ввод с клавиатуры

22.05.2012, 00:31. Показов 2868. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Парочка заданий .

1. с вложения

2. Реализовать программу : В равнобедренном треугольнике боковая сторона A, а основание B. Найти высоту, опущенную на основание. Параметры функций должны считываться с клавиатуры.

Спасибо большое.
Миниатюры
Типы, Функции и ввод с клавиатуры  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2012, 00:31
Ответы с готовыми решениями:

Реализация нетривиального выражения, ввод с клавиатуры
Здравствуйте. Помогите, пожалуйста, реализовать пример нетривиального выражения, принадлежащего...

Ввод функции с клавиатуры
Здравствуйте. Необходима помощь в написании программы на С. Программа поиска минимума и максимума...

Ввод функции с клавиатуры
Доброго времени суток! Подскажите пожалуйста, как можно осуществить ввод функции одной...

Ввод функции с клавиатуры
Как сделать так чтобы функция вводилаль пользователем с клавиатуры а не задавалась в ручную в коде...

1
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
22.05.2012, 01:55 2
Кат
1. Решение взял у calabi-yau с хардфорума (потому что я ленивый петух):

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
data LibE = Book      {title :: String, author ::  String}
          | Magazine  {title :: String, date   :: (Int, Int)}
          | Newspaper {title :: String, date   :: (Int, Int), day :: Int}
            deriving Show
 
isPeriodic :: LibE -> Bool
isPeriodic (Book _ _) = False
isPeriodic _          = True
 
getByTitle :: String -> [LibE] -> [LibE]
getByTitle t = filter ((t ==) . title)
 
getByMonth :: (Int, Int) -> [LibE] -> [LibE]
getByMonth dt = filter (\t -> isPeriodic t && ok t)
  where ok t = date t == dt
 
getByMonths :: [(Int, Int)] -> [LibE] -> [LibE]
getByMonths dts xs = concatMap (flip getByMonth xs) dts
 
getAuthors :: [LibE] -> [String]
getAuthors = map author . filter (not . isPeriodic)
 
-- База данных с двумя журналами
library :: [LibE]
library = [Magazine "Progz" (1,2011),
           Magazine "Progz" (3,1917)]
 
-- Заранее сформированный запрос к БД
janAndFeb2011Stuff = getByMonths [(01,2011), (02,2011)] library
Haskell
1
2
*Main> janAndFeb2011Stuff
[Magazine {title = "Progz", date = (1,2011)}]
2. 1-ый способ (чтение аргументов из командной строки):
Haskell
1
2
3
4
5
6
7
8
9
10
11
import System.Environment (getArgs)
 
height :: Double -> Double -> Double
height a b = sqrt $ a ^ 2 - b ^ 2 / 4
 
main :: IO ()
main = do args <- getArgs
          case args of [a, b] -> do putStr "Высота, опущенная на основание: "
                                    print $ height (read a) (read b)
                       _      -> putStrLn "Некорректные данные, \
                                          \программа ожидает боковую сторону (a) и основание (b)"
Haskell
1
2
3
4
5
6
7
8
9
10
11
12
Prelude> :load "sample.hs"
[1 of 1] Compiling Main             ( sample.hs, interpreted )
Ok, modules loaded: Main.
-- Без компиляции
*Main> :main 5 8
Высота, опущенная на основание: 3.0
-- С компиляцией
*Main> :! ghc --make sample.hs
*Main> :! sample.exe 5 8
Высота, опущенная на основание: 3.0
*Main> :! sample.exe 123
Некорректные данные, программа ожидает боковую сторону (a) и основание (b)
2. 2-ой способ:
Haskell
1
2
3
4
5
6
7
8
9
10
height :: Double -> Double -> Double
height a b = sqrt $ a ^ 2 - b ^ 2 / 4
 
main :: IO ()
main = do putStr "Введите боковую сторону: "
          a <- readLn
          putStr "Введите основание: "
          b <- readLn
          putStr "Высота, опущенная на основание: "
          print $ height a b
Haskell
1
2
3
4
5
6
7
Prelude> :load "sample.hs"
[1 of 1] Compiling Main             ( sample.hs, interpreted )
Ok, modules loaded: Main.
*Main> :main
Введите боковую сторону: 5
Введите основание: 8
Высота, опущенная на основание: 3.0
0
22.05.2012, 01:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2012, 01:55
Помогаю со студенческими работами здесь

Реализовать ввод с функции с клавиатуры
Я нашкодил программу для решения нелинейных уравнений методом дихотомии. Но не могу реализовать...

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

Реализовать функции, обеспечивающую ввод данных с клавиатуры и их проверку на корректность
1. Реализовать функцию, обеспечивающую ввод данных с клавиатуры и их проверку на корректность; тип...

Вычислить значение функции, заданной графически. Ввод аргумента х выполнить с клавиатуры
Задание 1. Вычислить значение функции, заданной графически. Ввод аргумента х выполнить с...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru