Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Практическая работа 5. Типы данных (Long, Single, Currency); ошибка вычислений






Проводятся расчеты ошибок вычислений (DelLong, DelSing) при расчетах с использованием данных типа Long, Single, вычисляется итоговая ошибка. Далее проводятся аналогичные расчeты для данных типов Long и Currency.

1. Создать на форме:

o 2 вертикальных ряда по 5 объектов-меток с надписями, см. свойство Caption, рис. 1.8. слева и в центре (на рисунке цвет - черный),

o текстовое поле txt1 для ввода значений переменной J в средине формы (см.: 999999),

o две командные кнопки слева и справа от текстового поля (Caption = Long-Single, Caption = Long- Currency),

o 2 метки вверху в центре:

o с надписью Zahl::,

o со списком значений переменной J, которые следует вводить после старта проекта,

o два массива из 4-х элементов текстовых полей: txt10(0), txt11(0) - слева вверху, txt10(1), txt11(1) - слева ниже. Остальные 4: txt10(2), txt11(2) - справа вверху, txt10(3), txt11(3) - справа ниже,

o два вертикальных ряда по 5 меток (напротив предыдущего ряда меток) для вывода результатов вычислений (lbl2(0), lbl22(0), lbl4(0) lbl44(0), lbl6(0), lbl2(1), lbl22(1), lbl4(1) lbl44(1), lbl6(1)),

o командную кнопку для процедуры завершения выполнения программы (Command3),

2. ввести код, данный ниже:

Private Sub Command1_Click()Rem описание переменных для блока Long-SingleDim Xlong As Long, Xl As Long, Dx As Single, Xsingle As SingleDim Xs As SingleRem переменная, определяющая число цикловDim J As Long Dim I As Long, DelLong As Long Dim DelSing As SingleJ = CLng(txt1.Text) Rem организовать блок для работы с данными типа LongXlong = 2000000000: txt10(0).Text = XlongXlong = CLng(Xlong / J)txt11(0).Text = Xlong & " " & CLng(Xlong * J)Rem Xl образуется суммированием XlongFor I = 1 To JXl = CLng(Xl + Xlong)Next IRem в поле элемента управления Label выводятсяRem результаты - значение Xl и ошибки вычисленийlbl2(0).Caption = Xl: DelLong = CLng(2000000000 - Xl)lbl22(0).Caption = DelLongRem организовать аналогичный блок для работой с даннымиRem типа SingleXsingle = 2000000000: txt10(1).Text = XsingleXsingle = CSng(Xsingle / J)txt11(1).Text = Xsingle & " " & CSng(Xsingle * J)For I = 1 To JXs = CSng(Xs + Xsingle)Next I lbl4(0).Caption = Xs: DelSing = CSng(2000000000 - Xs) lbl44(0).Caption = DelSingRem проведение вычислений и вывод в левую нижню меткуRem итоговой ошибки вычисленийDx = CSng(Xl - Xs): lbl6(0).Caption = DxEnd SubRem код поцедуры Command2_Click() аналогичен коду проце-Rem дуры Command1_Click(); здесь проводится вычислениеRem ошибки вычислений при работе с данными типа Long Rem и CurrencyPrivate Sub Command2_Click()Dim Xlong As Long, Xl2 As Long, Dx2 As Currency Dim Xcurrency As Currency, Xc As Currency, J As LongDim I As Long, DelLong2 As Long, DelCurrency As CurrencyPrint " Warten Sie mal! " ' нужно подождать! J = CLng(txt1.Text): Xlong2 = 2000000000txt10(2).Text = Xlong2: Xlong2 = CLng(Xlong2 / J)txt11(2).Text = Xlong2 & " " & CLng(Xlong2 * J)For I = 1 To JXl2 = CLng(Xl2 + Xlong2)Next Ilbl2(1).Caption = Xl2DelLong2 = CLng(2000000000 - Xl2)lbl22(1).Caption = DelLong2Xcurrency = 2000000000: txt10(3).Text = XcurrencyXcurrency = CCur(Xcurrency / J)txt11(3).Text = Xcurrency & " " & CCur(Xcurrency * J)For I = 1 To JXc = CCur(Xc + Xcurrency)Next Ilbl4(1).Caption = XcDelCurrency = CCur(2000000000 - Xc)lbl44(1).Caption = DelCurrencyDx2 = CCur(Xl2 - Xc): lbl6(1).Caption = Dx2Rem удалить предыдущую запись и напечатать " Готово!!! " Me.Cls: Print " Fertig!!! " End SubPrivate Sub Сommand3_Click()EndEnd Sub

3. cтартовать проект, вводить последовательно значения J, данные вверху формы, 3, 11: 9999999, делать щелчки на кнопках Long-Single, Long - Currency после каждого ввода J, наблюдать разницу результатов, рис. 1.8.

В примере последовательно используются данные разного типа и над ними выполняются одинаковые операции сложения и деления.Xlong и Xl - это целые типа Long, первое из них равно 2 млрд., а 2-ое приблизительно такое же, но полученное в результате вычислений. Исходное число 2 млрд. делится на J и затем с использованием цикла For: Next проводится сложение J раз. Из-за ошибок вычислений полученный результат отличается от исходного числа. Аналогичные вычисления проводятся для другой пары типов данных - Long - Currency. Значения J, используемые в примере, даны в таблице, Для значения J порядка 10 млн. величина ошибки может составить около 10% исходного значения.

Рис. 1.8. Типы данных; ошибка вычислений (Long, Single, Currency); результаты






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.