Студопедия
rus | ua | other

Home Random lecture






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


Date: 2015-10-07; view: 466.


Практическая работа 4. Типы данных; тип Boolean

Практическая работа 3. Функции Val(string), Str(number)

1. Создать на форме 2 объекта текстового поля; свойствам Name присвоить значения txtOper1 и txtOper2 соответственно, создать объекты CommandButton и TextBox (Name = txtAdd),

2. очистить свойства Text текстовых полей,

3. ввести код процедуры Command1_Сlick():

Dim Oper1 As Single, Oper2 As Single, Result As SingleOper1=Val(txtOper1.Text): Oper2=Val(txtOper2.Text)Result=Oper1+Oper2txtAdd.Text=Str(Result)

4. стартовать проект,

5. ввести числа в первое и второе текстовые поля, сделать щелчок на командной кнопке, результаты выводятся в 3-е текстовое поле.

· Создать на форме объекты CommandButton, Label, TextBox,

· ввести код процедуры Command1_Click():

· Dim x As Boolean· x=Val(txt1.Text)lbl1.Caption=x

· стартовать проект, ввести последовательно числа 1, -2, 0, нажимая после ввода командную кнопку, наблюдать результат. Значению 0 соответствует False, все другие интерпретируются как True.

Проводятся расчеты ошибок вычислений ( 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 Ilbl4(0).Caption = Xs: DelSing = CSng(2000000000 - Xs)lbl44(0).Caption = DelSingRem проведение вычислений и вывод в левую нижню меткуRem итоговой ошибки вычисленийDx = CSng(Xl - Xs): lbl6(0).Caption = DxEnd Sub Rem код поцедуры 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 I lbl2(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, наблюдать разницу результатов,

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


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


<== previous lecture | next lecture ==>
Константа | Практическая работа 6. Метод Move
lektsiopedia.org - 2013 год. | Page generation: 0.019 s.