Работа с большими числами

Простейшие вопросы в области инженерной разработки
Ответить
AbsoluteZero
interested
interested
Сообщения: 7
Зарегистрирован: 26 май 2020, 17:03
Версия LabVIEW: 16

Работа с большими числами

Сообщение AbsoluteZero »

Помогите пожалуйста
Нужно создать программу, выполняющую следующее:

1) Преобразовать две строки, в которую входят только цифры в массивы цифр.
2) Найти сумму.
3) Найти произведение.
Необходимо провести проверку на правильность ввода пользователем значений в строки и обеспечить выполнение программы в случае превышения максимально допустимых числовых значений в labview
Последний раз редактировалось AbsoluteZero 27 май 2020, 13:30, всего редактировалось 1 раз.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Работа с большими числами

Сообщение IvanLis »

AbsoluteZero писал(а): 26 май 2020, 17:09В данном задании необходимо производить математические операции над большими числами (больше, чем позволяют использовать числовые типы), например над числами сорокового порядка.
Посмотрите: http://www.labviewportal.org/viewtopic. ... 669#p52669
AbsoluteZero
interested
interested
Сообщения: 7
Зарегистрирован: 26 май 2020, 17:03
Версия LabVIEW: 16

Re: Работа с большими числами

Сообщение AbsoluteZero »

IvanLis писал(а): 26 май 2020, 17:22 Посмотрите: http://www.labviewportal.org/viewtopic. ... 669#p52669
да, видела это, но не совсем поняла как работают данные функции, там на вход подаётся булевая переменная и на выходе такая же, мне нужно выходе получить число :cry:
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Работа с большими числами

Сообщение Artem.spb »

AbsoluteZero писал(а): 26 май 2020, 17:09 В данном задании необходимо производить математические операции над большими числами
вспоминайте школу. И как учили, в столбик :)
Можно десятичными знаками оперировать, можно двоичными.
AbsoluteZero
interested
interested
Сообщения: 7
Зарегистрирован: 26 май 2020, 17:03
Версия LabVIEW: 16

Re: Работа с большими числами

Сообщение AbsoluteZero »

Artem.spb писал(а): 26 май 2020, 19:10 вспоминайте школу. И как учили, в столбик :)
Можно десятичными знаками оперировать, можно двоичными.
Снимок.PNG
вот что я сделала, но работает не верно. в чем может быть ошибка
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Работа с большими числами

Сообщение Artem.spb »

AbsoluteZero писал(а): 26 май 2020, 19:35 вот что я сделала, но работает не верно. в чем может быть ошибка
я, конечно, извиняюсь, но что это за дичь?
если у вас разрядность не позволяет хранить числа как числа, то какой смысл строку в число сразу гнать?
Но это ещё ладно.
зачем сортировать массивы??? :crazy:
вы при сложении столбиком сначала цифры в порядке возрастания записываете?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Работа с большими числами

Сообщение Artem.spb »

Вот вам два варианта перевода строки в десятичные разряды
dig.png
.
Дальше уж самостоятельно. Только не надо сортировать эти массивы
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Работа с большими числами

Сообщение Borjomy_1 »

Если я правильно понял задание, то должно быть так
первые два цикла создают массивы цифр. Если ошибок нет, то размеры выравниваются по максимально длинному числу + 1, если будет перенос разряда самого последнего сложения. Сложения по-цифрово, с переносом разряда переполнения на следующую итерацию. Если последнего переноса не было, то сборка в строку производится без последнего разряда.
Вложения
Сложение строковых чисел 1.png
Последний раз редактировалось Borjomy_1 26 май 2020, 20:27, всего редактировалось 2 раза.
AbsoluteZero
interested
interested
Сообщения: 7
Зарегистрирован: 26 май 2020, 17:03
Версия LabVIEW: 16

Re: Работа с большими числами

Сообщение AbsoluteZero »

Borjomy_1 писал(а): 26 май 2020, 20:00 Если я правильно понял задание, то должно быть такСложение строковых чисел.png
Не совсем оптимально, но работает. Это сложение по-каждой цифре, если сумма больше 10, то разряд переносится на следующую итерацию
Спасибо! :thank:
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Работа с большими числами

Сообщение Borjomy_1 »

Поправил код
orinoko
beginner
beginner
Сообщения: 35
Зарегистрирован: 29 сен 2010, 14:00
Версия LabVIEW: 2013
Контактная информация:

Re: Работа с большими числами

Сообщение orinoko »

Вот ещё вариант. Его же можно использовать как SubVI для умножения
Добавил умножение. Для умножения нужен SubVI сложения.
Вложения
add_long_num.vi
(17.56 КБ) 82 скачивания
mux_long_num.vi
(17.44 КБ) 92 скачивания
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»