MaxEdu.ru
» » » Операции многократной точности операции с длинными числами
Вернуться назад

Операции многократной точности операции с длинными числами

Операции многократной точности (т.е. операции с длинными числами).
Конкретизация задания
Сначала буквам присваивается значение – например: а=23850934, причем все переменные – целые числа, которые по длине не должны превышать 300 знаков. Потом пишется выражение, например f=(a+b)/c+(d+a). При этом деление – это целое от деления делимого на делитель. Операции сложения, вычитания, умножения – обычные арифметические операции, только это операции над длинными числами. Кроме сложения, вычитания, умножения и деления еще могут быть использованы скобки.
Формат ввода
Любую строку в поле ввода можно представить в виде
S={C,V}
Где S – константа либо вычисляемое значение. Если это – константа, то С – число в строковом виде, перед которым стоит символ «@», а если S надо найти то S=V, где V – выражение с переменными и числами. В строке не должно быть пробелов и все переменные состоят из одой буквы. Между строками в поле ввода не должно быть пустых строк. Вывод идет аналогично вводу. Пример ввода и вывода можно посмотреть на рисунке
Интерфейс программы.
Интерфейс программы – ее внешний вид является наглядным и удобным. В верхнем поле ввода пишутся известные величины и формулы, потом жмется кнопка «Расчитать» и в нижнем поле выводятся в алфавитном порядке все переменные. Программа написана в среде программирования Delphi 6. Использовались только стандартные компоненты – TEdit и TButton. Итого на форме размещено поле ввода, поле вывода и кнопка – для запуска процесса расчета. Использование визуаль

ных средств разработки на много ускорило процесс написания программы.
Структура хранения
Все длинные числа представляются в виде строки, каждый элемент которой – цифра. Если число отрицательное, то первым символом строки будет “-“. Чтобы считать по формуле используем структуру, описанную ниже
type
dd= record
lin:array[1..300] of string;
dl:integer;
end;
var
mas:array[1..300] of dd;
В массиве mas хранится уравнение. Каждый элемент массива – отдельное уравнение. В lin хранятся отдельные элементы уравнения. Например mas[3].lin=(‘A’,’=’,’3’,’/’,’(‘,’B’,’-‘,’1’,’)’) соответствует уравнению A=3/(B-1). В первом элементе (mas[i].lin[1]) всегда хранится буква, во втором (mas[i].lin[2]) символ “=”. Такая форма ведения уравнения нужна для удобства вычисления длинных формул. В dl хранится текущее число элементов в уравнении+1. Можно сказать – если dl=4, то в данном элементе хранится не формула, которую надо вычислить, а значение.
Количество строк введенных в поле ввода должно быть не более 300 – это задается размерностью массива mas.
Используемые процедуры и функции
zapolnenie ; - заполнение массива mas из поля edt1.
sum (a,b:string):string; - сумма чисел, хранящихся в a и b.
minus (a,b:string):string; - разностьчисел, хранящихсяв a и b. minus=a-b
umn (a:integer;var xx:string):string; - умножениечислаххнацифруа. Используетсявфункции umnozen.
umnozen (a,b:string):string; - произведение чисел, хранящихся в a и b.
del2 (str:string):string; - делитчисло str на 2.
sravnenie (a,b:string):shortint; - сравнивает число a с числом b. Возвращается результат:
· если а>b, то sravnenie =1
· если а<b, то sravnenie =-1
· если а<b, то sravnenie =0
delen (a,b:string):string; - частное от деления a на b. Берется целая часть.
po _ ch _ num (ch:string;varznach:string):boolean; - ищет значение буквы в массиве mas. Если значение найдено то возвращается значение «Истина», в противном случае «Ложь». Функция используется для подстановки чисел в выражения. Аргументы: ch – буква, значение которой мы ищем, znach – найденное значение.
sislo (ch:char):boolean; - проверяет – является ли символ ch цифрой. Если да – то возвращается «Истина». Функция используется для определения константа или выражения соответствует заданной букве.
poisk (z:integer); - процедура для вычисления значения выражения. Она опирается на все предыдущие процедуры и функции. Z – номер вычисляемого значения в массиве mas. Алгоритм ее работы таков: считаем количество открывающихся скобок и если они есть, то начинаем считать с самой вложенной, потом идет умножение и деление, потом сумма и разность. После каждой операции длина уравнения уменьшается и обращение идет опять к процедуре poisk с тем же параметром z.
vivod ; - вывод найденных значений в поле вывода memo3.
TForm 1. Button 1 Click (Sender: TObject); - процедура нажатия на кнопку «Расчет».
TForm 1. Button 2 Click (Sender: TObject); - процедура нажатия на кнопку «Задание».
Все функции используют глобальную переменную mas и все процедуры и функции между собой тесно связаны.

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать полную версию
Рефераты по информатике Операции многократной точности (т.е. операции с длинными числами). Конкретизация задания Сначала буквам присваивается значение – например:
Оценок: 318 (Средняя 5 из 5)

Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.

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

© 2014 - 2022 MaxEdu.ru