|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.01.2011, 18:45 | #1 |
Пользователь
Регистрация: 05.01.2011
Сообщений: 11
|
Haskell Обыкновенные числа в бинарные
Привет!
Мне надо функцию, которая бы закодировать слова и функцию, которая потом раскодировала бы. .т.е. IN: "BCD..." OUT:1011... Я написала программу, которая кодирует букву в цифру. IN: 'C' OUT: 3 IN: 'c' OUT: 3 lett2num :: Char -> Int lett2num x | (ord 'A' <= ord x) && (ord x <= ord 'Z') = (ord x - ord 'A') + 1 | (ord 'a' <= ord x) && (ord x <= ord 'z') = (ord x - ord 'a') +1 num2lett :: Int -> Char num2lett n | (n <= ord 'A') && (n <= ord 'Z') = chr(ord 'A'+ n - 1) | (n <= ord 'a') && (n <= ord 'Z') = chr(ord 'A'+ n - 1) И теперь у меня тупик. Я не знаю как обыкновенные числа закодировать в бинарные. Я предполагаю это сделать с mod , но я не знаю как написать функцию, чтобы мне из 5 выдавало 101, чтобы программа выдавала все остатки. Помогите, пожалуйста. ps. Меня осенило num2bin :: Int->[Int] num2bin 0 = [] num2bin n | n>=0 = n `mod` 2 : (num2bin( n `div` 2)) Но как мне теперь получить результат не в листе?? Я не хочу лист. если убрать num2bin :: Int->Int num2bin 0 = [] num2bin n | n>=0 = n `mod` 2 : (num2bin( n `div` 2)) то второе действие неправильно. я не знаю на что его поменять Последний раз редактировалось kikat; 13.01.2011 в 19:15. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Haskell Обыкновенные числа в бинарные | kikat | Помощь студентам | 0 | 13.01.2011 02:12 |
Лабораторная работа по Haskell | Alitar32 | Помощь студентам | 0 | 30.05.2010 23:42 |
Абстрагирование списков на Haskell | Lakiii | Помощь студентам | 0 | 17.12.2009 15:00 |
Haskell | Katech | Свободное общение | 5 | 12.07.2009 23:40 |
Haskell | Анастасия52 | Помощь студентам | 0 | 05.05.2009 14:09 |