Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» Страница 143

Тут можно читать бесплатно Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория». Жанр: Разная литература / Газеты и журналы. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте 500book.ru или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»
  • Категория: Разная литература / Газеты и журналы
  • Автор: Журнал «Домашняя лаборатория»
  • Страниц: 192
  • Добавлено: 2024-04-22 04:38:35
  • Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту pbn.book@yandex.ru для удаления материала


Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» краткое содержание

Прочтите описание перед тем, как прочитать онлайн книгу «Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»» бесплатно полную версию:

Интернет-журнал колхозников, инженеров и разнорабочих науки. Журнал содержит материалы найденные в Интернет или написанные для Интернет и является полностью некоммерческим.

Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» читать онлайн бесплатно

Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» - читать книгу онлайн бесплатно, автор Журнал «Домашняя лаборатория»

два будет не точно 4, а, скажем, 4.00000000000381. Связано это с особенностями представления десятичных дробей в компьютерах. В большинстве реальных задач такая маленькая погрешность несущественна, однако существуют задачи, где точность нужна абсолютная. При использовании же типов целых чисел Visual Basic присматривает за тем, чтобы все числа и результаты были абсолютно точными целыми числами. Конечно, при делении в этом случае приходится округлять.

Если вам нужна абсолютная точность при работе с числами, а величина чисел превышает два миллиарда, тип Long будет слишком узок для вас. Воспользуйтесь типом Currency. Этот тип хоть и имеет дробную часть в размере 4 десятичных знаков после запятой, действия над числами выполняет абсолютно точно. Диапазон представляемых им величин весьма велик — примерно от -900 000 000 000 000 до 900 000 000 000 000.

Совет: Если вам необходимо, чтобы переменная была целым числом и никогда дробным, объявляйте ее целым типом, в противном случае — десятичным.

Не очень устаревшие способы объявления переменных

Вы еще не столкнулись со странной привычкой Visual Basic ставить после чисел в окне кода какие-то значки? Например, вы не объявляли переменную а и собираетесь написать а = 123456789012345, получается же а = 123456789012345#. Ничего страшного, не обращайте внимания, это Visual Basic сообщает вам, что с его скромной точки зрения переменная а имеет тип Double.

У шести типов есть свои значки, по которым их можно узнать (тип String еще не проходили):

Дальше. Если вам лень писать Dim b As Double, вам достаточно в окне кода, там, где переменная b встречается в первый раз, написать b# вместо Ь, например, b# = 5 вместо b=5. Visual Basic будет считать, что вы нормально объявили переменную. Впрочем, этот способ объявления мне не нравится.

Есть еще один способ объявления, совсем страшный. Написав DefInt I — М, вы тем самым объявите компьютеру, что переменнные, имена которых начинаются с букв I, J, К, L, М, N, обязаны иметь тип Integer. Ну и для других типов аналогично: DefLng, DefSng, DefDbl и так далее.

Форматирование результата

Взгляните на такую программу:

Dim a As Double

Dim b As Double

Dim у As Double Private

Sub Command1_Click()

   a = 2457642345034.78: b = 0.00000000037645: у = a/b: Debug.Print у

End Sub

Прикиньте без компьютера, каков будет результат. Ясно, что очень большое число, но какое — неясно. Запустите программу. Вот результат:

6,52846950467467Е+21

Что это значит? Это значит, что Visual Basic, видя, что вы работаете с такими гигантскими числами, подумал, что вы большой ученый, и представил вам результат не в нормальном, как для простых смертных, а в так называемом экспоненциальном или научном формате (виде). Но не так страшен черт. Оказывается, это получается шесть целых и сколько-то там дробных и все это умножено на 10 в 21-й степени. Конструкция Е+21 и означает умножение на 1021. По-другому, вам нужно передвинуть запятую на 21 позицию направо — и получится нормальное число, то есть 6528469504674670000000. Кстати, о точности. Обратите внимание, что поделено было неточно. Точно получилась бы бесконечная периодическая дробь, а где ее хранить, бесконечную?

Если бы вместо Е+21 было Е-21, это означало бы умножение на 10-21, то есть деление на 1021, то есть передвижение запятой на 21 позицию налево, то есть очень маленькое число.

Если после этих объяснений вы все еще не полюбили экспоненциальный формат, вы можете приказать компьютеру, чтобы он вас им не утомлял, а показывал результаты по-человечески. Для этого в операторе Debug.Print нужно вместо у написать Format(y, "0.0000"). Получится Debug.Print Format(y, "0.0000"). Конструкция в кавычках состоит из нулей и точки и означает, что вы желаете видеть число в обычном виде, дробную часть числа состоящей ровно из 4 цифр, а остальные пусть Visual Basic вам не показывает. Целую же часть числа Visual Basic покажет вам полностью в любом случае, какова бы она ни была. Вот тот же результат в новом формате:

6528469504674670000000,0000

Вот вам и первое улучшение для калькулятора, ведь он тоже норовит показывать длинные результаты в экспоненциальном формате. Вместо

Результат.Text = Val(Число1.Text) / Val(Число2.Text)

можете написать

Результат.Text = Format(Val(Число1.Text) / Val(Число2.Text),"0.00000000000000000000")

Только имейте в виду — если ваш результат будет такой маленький, что 20 цифр, указанных мной после точки, его "не почувствуют", то ничего, кроме нулей, вы в результате и не увидите, а вот экспоненциальный формат покажет вам настоящий, хоть и непривычный для чтения, результат.

Еще о пользе переменных

Значения переменных величин не обязаны, подобно надписям и значениям текстовых полей, отображаться "на медлительной поверхности проекта". Они спрятаны глубоко в сверхбыстрой оперативной памяти компьютера, там над ними удобно и быстро проводить вычисления и разнообразные логические преобразования. Фактически вся мыслительная работа компьютера проводится над переменными величинами. И лишь иногда, когда человеку понадобится, они показываются "на поверхности" в виде содержимого текстовых полей или как-нибудь еще.

Создавая калькулятор, мы не ведали ни о каких переменных, поэтому вместо изящного

Рез = Чис1 + Чис2 писали громоздкое

Результат.Text = Val(Число1.Text) + Val(Число2.Text)

Вообще, попытки использовать для вычислений вместо переменных текстовые поля напоминает попытку неуклюжих королей-тугодумов (текстовых полей) договориться между собой. После безуспешных попыток они вызывают своих шустрых министров иностранных дел (переменные величины), которые в два счета договариваются и отдают готовый договор на подпись королям (имеется в виду, что результат вычислений показывается в текстовом поле).

С учетом сказанного попробуем улучшить программу калькулятора:

Dim Чис1 As Double 'Переменная, содержащая число из текстового поля Число1

Dim Чис2 As Double 'Переменная, содержащая число из текстового поля Число2

Dim Рез As Double 'Переменная-результат, предназначенный для текстового поля Результат

___________

Private Sub Кл_сложения_Click ()

Чис1 = Число1.Text 'Значения исходных данных переходят в переменные из текстовых полей

Чис2 = Число2.Text

Рез = Чис1 + Чис2 'Обработка переменных для получения результата

Результат.Text = Рез 'Значение результата переходит из переменной в текстовое поле

End Sub

Эта схема, когда информация из текстовых полей (или других средств задания исходных данных) передается в переменные, затем обрабатывается, а затем из переменных передается обратно — в текстовые поля — весьма разумна и я рекомендую ей пользоваться.

Три совета

Дорогой читатель! Если вы сейчас сидите

Перейти на страницу:
Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.
Комментарии / Отзывы
    Ничего не найдено.