Социальная сеть FreeStudents | Галерея

Правила  •  Поиск  •  Войти  •  Зарегистрироваться!
Калькулятор по УВП
 
Начать новую тему   Ответить на тему    Список форумов -> Помоги студенту!
 
Автор Сообщение
Weman



Репутация: +5   
Возраст: 20
Гороскоп: Лев Год Дракона
Пол: <br />Пол:Муж
Сообщения: 536
Стаж: 1 год 11 месяцев
[] Сообщение27.02.2007 21:11 Калькулятор по УВП Ответить с цитатой

Люди, помогите! Может у кого есть по учебно-вычислительной практике (УВП) программа-кальклятор, которая выполняем сложение, вычитание, умножение, деление (или хотя бы часть этих действий) чисел в форме с плавающей запятой? Срочно надо!
Преподаватель - Суетина.
Кто чем может помочь? В долгу не останусь! Заранее спасибо!


_________________
Завтранах-универсальный ответ на любую просьбу.

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail М-Агент
Sovie



Репутация: +20/–1   
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 787
Стаж: 2 года 7 месяцев
[] Сообщение27.02.2007 21:24 Ответить с цитатой

Прости, что-то не догоняю, а чём написание программы-калькултора для чисел с плавающей запятой отличается от такой же программы для чисел с фиксированной запятой?

В каком виде вводятся числа? Сразу формулой?

На каком языке пишешь?

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Weman



Репутация: +5   
Возраст: 20
Гороскоп: Лев Год Дракона
Пол: <br />Пол:Муж
Сообщения: 536
Стаж: 1 год 11 месяцев
[] Сообщение27.02.2007 21:31 Ответить с цитатой

Число с плавающей запятой состоит из мантиссы и порядка.
Чтобы ввести число, сначало вводим мантиссу числа, потом порядок. Так для 2 чисел.

Пишу на С/С++.


_________________
Завтранах-универсальный ответ на любую просьбу.

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail М-Агент
Sovie



Репутация: +20/–1   
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 787
Стаж: 2 года 7 месяцев
[] Сообщение27.02.2007 22:38 Ответить с цитатой

Ну, может, я и не понимаю чего, но в Си и С++ предусмотрен ввод таких чисел сразу. Например,

Код:
#include <stdio.h>

void main()
{
   float a, b;
   scanf("%e %e", &a, &b);
   printf("%f %f\n", a, b);
   printf("a + b = %f [%e]\n", a+b, a+b);
}


Вводи, скажем, 1e-1 и 1e2

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Weman



Репутация: +5   
Возраст: 20
Гороскоп: Лев Год Дракона
Пол: <br />Пол:Муж
Сообщения: 536
Стаж: 1 год 11 месяцев
[] Сообщение27.02.2007 22:44 Ответить с цитатой

Sovie
блин, забыл сказать, что числа вводятся в двоичной системе счисления. Двоичное число со знаком - в старшем разряде - знак числа.
Если было бы в 10СС было бы все намного проще Смайлик


_________________
Завтранах-универсальный ответ на любую просьбу.

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail М-Агент
Sovie



Репутация: +20/–1   
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 787
Стаж: 2 года 7 месяцев
[] Сообщение27.02.2007 22:51 Ответить с цитатой

А как ты будешь организовывать хранение? Например, можно в виде символьного массива. А можно с помощью побитовых опеаций. А числа какой разрядности?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Weman



Репутация: +5   
Возраст: 20
Гороскоп: Лев Год Дракона
Пол: <br />Пол:Муж
Сообщения: 536
Стаж: 1 год 11 месяцев
[] Сообщение27.02.2007 22:54 Ответить с цитатой

Sovie
хранение будет в виде символьного массива - это 100%.
Преподаватель сказал делать 32-х разрядную.


_________________
Завтранах-универсальный ответ на любую просьбу.

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail М-Агент
Kabal
Инноватор-самоучка


Репутация: +19/–1   
Возраст: 26
Гороскоп: Козерог Год Петуха
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 3252
Стаж: 2 года 9 месяцев
[] Сообщение28.02.2007 1:10 Ответить с цитатой

Weman
Таким образом твоя задача сводится к переводу из двоичного в нормальный, произведение операции и обратный перевод Смайлик. Но это конечно несерьезное, но вполне неплохое решение Смайлик. А уж если будешь делать только с массивом, то сложение и вычитание тебе проблем не доставят, а вот умножение и тем более деление .... будет весело разбираться со сдвигами Смайлик


_________________

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Skype Name
Weman



Репутация: +5   
Возраст: 20
Гороскоп: Лев Год Дракона
Пол: <br />Пол:Муж
Сообщения: 536
Стаж: 1 год 11 месяцев
[] Сообщение28.02.2007 6:40 Ответить с цитатой

Kabal
вариант с выполнением действий в 10СС отпадает - нам так нельзя Смайлик . Если были бы числа с фиксированной запятой, то там было бы легче.
А тут вроде чтобы сделать сложение необходимо:
1) Уравнивание порядков - меньший порядок делаем большим.
2) Мантиссы обоих слагаемых переводятся в модифицированный дополнительный код.
3) Сложение мантисс.
4) Мантисса суммы переводится в прямой код, если нужно нормализуется, округляется и приписывается порядок.

Преподаватель нам сказала, что вроде есть какие-то специальные алгоритмы для этих действий, и согласно их можно "легко" выполнить эти действия. Смайлик


_________________
Завтранах-универсальный ответ на любую просьбу.

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail М-Агент
Kabal
Инноватор-самоучка


Репутация: +19/–1   
Возраст: 26
Гороскоп: Козерог Год Петуха
Пол: <br />Пол:Муж
Откуда: Санкт-Петербург
Сообщения: 3252
Стаж: 2 года 9 месяцев
[] Сообщение28.02.2007 7:52 Ответить с цитатой

Weman
Сложение и вычитание - это достаточно просто, как ты и сказал. А вот с умножением и тем более делением - мучаться тебе не перемучаться Смайлик. Я поищу щас алгоритмы операции деления/умножения с плавающей запятой.


_________________

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Skype Name
Weman



Репутация: +5   
Возраст: 20
Гороскоп: Лев Год Дракона
Пол: <br />Пол:Муж
Сообщения: 536
Стаж: 1 год 11 месяцев
[] Сообщение28.02.2007 15:22 Ответить с цитатой

Kabal спасибо за содействие в решении проблемы! Смайлик
Буду ждать, а заодно и сам поищу - может что-нибудь нарою.


_________________
Завтранах-универсальный ответ на любую просьбу.

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail М-Агент
Weman



Репутация: +5   
Возраст: 20
Гороскоп: Лев Год Дракона
Пол: <br />Пол:Муж
Сообщения: 536
Стаж: 1 год 11 месяцев
[] Сообщение05.03.2007 1:43 Ответить с цитатой

Нам преподаватель сказал, что надо отслеживать еще и переполнение - в мантиссе и в порядке. Как переполнение может получится в мантиссе я представляю (при сложении значащий разряд может перенестись в знаковый). А вот как переполнение может получиться в порядке мне что то не понятно.

Может что подскажете?


_________________
Завтранах-универсальный ответ на любую просьбу.

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail М-Агент
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов -> Помоги студенту! Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы
© 2004—2008 «Сайт Свободных Студентов»