Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Порядок создания простого вычислительного проекта

Поиск

Все, что здесь сказано, полезно не только для вычислительных, но и для всех других проектов.

Задача:

Даны размеры спичечной коробки. Вычислить площадь основания коробки, ее объем и полную площадь поверхности.

 

Порядок создания проекта:

1. Программист сам должен знать решение задачи. Ведь программа - это инструкция по ее решению. Нельзя давать инструкцию, не зная, как решать.

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

 

1. площадь основания = ширина х толщину

2. объем = площадь основания х высоту

3. периметр основания = две ширины + две толщины

4. площадь боковой поверхности = периметр основания х высоту

5. полная площадь поверхности = две площади основания + площадь боковой поверхности

 

Как видите, я для стройности вычислений ввел периметр основания и площадь боковой поверхности.

 

2. Нужно придумать имена переменным. Имя переменной должно говорить о ее смысле. Если смыслом является ширина коробки, то не ленитесь и не называйте ее а, потому что через полгода, разбираясь в своей полузабытой программе, вы будете долго тереть лоб и думать – Что, черт возьми, я обозначил через а? Называйте ее Ширина (если вы не знаете английского) или, к примеру, Width (если знаете). Так делают все профессиональные программисты (а они, как известно, терпеть не могут трудиться зря, значит, зачем-то это им нужно).

Удовлетворимся такими именами:

Ширина - ширина
Толщина - толщина
Высота - высота
S_основ - площадь основания
V - объем

Периметр - периметр основания
S_бок - площадь боковой поверхности
S_полн - полная площадь поверхности

3. Нужно определить, какого типа будут переменные. Поскольку нам заранее неизвестно, будут ли исходные данные целыми, объявляем все переменные - Double. Первые строки программы будут такими:

'Задача вычисления площади основания, объема и полной площади поверхности

'спичечной коробки по известным ее размерам

'Объявляем переменные величины

Dim Ширина As Double 'ширина

Dim Толщина As Double 'толщина

Dim Высота As Double 'высота

Dim S_основ As Double 'площадь основания

Dim V As Double 'объем

Dim Периметр As Double 'периметр основания

Dim S_бок As Double 'площадь боковой поверхности

Dim S_полн As Double 'полная площадь поверхности

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

Вот следующие строки программы:

Private Sub Command1_Click()

'Ввод исходных данных

Ширина = InputBox("Введите ширину коробки")

Толщина = InputBox("Введите толщину коробки")

Высота = InputBox("Введите высоту коробки")

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

'Вычисление результатов

S_основ = Ширина * Толщина

V = S_основ * Высота

Периметр = 2 * Ширина + 2 * Толщина

S_бок = Периметр * Высота

S_полн = 2 * S_основ + S_бок

6. После получения результатов их нужно показать человеку. Действительно, все операторы присваивания компьютер выполняет "в уме". После их выполнения в ячейках памяти будут находиться числовые результаты решения задачи. Чтобы их увидеть, человек может использовать текстовые поля, как это мы только что сделали, улучшая калькулятор. В 4.10 описывается, как выводить информацию в текстовое поле. Однако, я использую новый для нас оператор Print, который в нашем случае будет печатать результат прямо на поверхности формы (в отличие от Debug.Print, который печатает в окне Immediate):

'Отображение результатов

Print "Площадь основания ="; S_основ

Print "Объем ="; V

Print "Полная площадь поверхности ="; S_полн

End Sub

Обратите внимание, что здесь в первом операторе Print - два элемента печати, разделенные точкой с запятой: текстовое пояснение "Площадь основания =" и собственно переменная, значение которой мы хотим увидеть - S_основ. То же самое и в других операторах Print. То же самое можно делать и в Debug.Print. Полностью правила записи и возможности этих операторов вы найдете в 4.8.

 

Запустите проект и убедитесь в его работоспособности. Вы спросите - зачем было так долго трудиться для решения такой простой задачи? Действительно, для простых исходных данных эту задачу быстрее решить в уме. Однако, соблюдение приведенного мной порядка составления программы облегчит вам в дальнейшем программирование реальных задач для компьютера. Этот порядок - начинаем со ввода исходных данных, затем преобразовываем их в переменные величины, затем, обрабатывая переменные величины, получаем результат, затем преобразовываем результат из переменных величин в нечто видимое - общепринят.

 

Замечание. Попробуйте в режиме работы потаскать форму по экрану, нечаянно затащив часть ее напечатанных результатов за пределы экрана. Вы видите, что эта часть результатов стерлась. Чтобы такого не происходило, в режиме проектирования установите свойству AutoRedraw формы значение True.

 

Задания 11-13:

Написать с использованием переменных программы для решения следующих задач:

 

11) Автомобиль 3 часа ехал со скоростью 80 км/час и 2 часа со скоростью 90 км/час. Вычислить среднюю скорость автомобиля (она равна суммарному пути, деленному на суммарное время). Значения переменным задать операторами присваивания, результат напечатать оператором Debug.Print с пояснениями.

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

13) Ввести из текстового поля радиус окружности. Вычислить длину окружности и площадь круга. Результаты с пояснениями печатать с 5 знаками после десятичной точки с помощью оператора Print.

Строковые переменные

Строковые переменные очень важны. Без них, например, невозможен разговор с компьютером. Да и вообще, значительная часть информации, с которой работает компьютер, текстовая (то есть строковая).

Создайте двухкнопочный проект с такой программой:

Dim a As Integer

Dim b As String

_____________________________

Private Sub Command1_Click()

a = 98

Debug.Print a

End Sub

_____________________________

Private Sub Command2_Click()

b = "Привет всем!"

Debug.Print b

End Sub

 

 

Сравним две процедуры.

Объявление Dim a As Integer говорит о том, что переменная a обязана иметь числовое значение, и поэтому в первой процедуре оператор a=98 записывает в ячейку a число 98.

Объявление Dim b As String говорит о том, что переменная b обязана иметь строковое (текстовое) значение, то есть ее значением будет не число, а произвольная цепочка символов, например, Привет всем! или рпН2Н(*fD6:u. Поэтому во второй процедуре оператор b ="Привет всем!" записывает в ячейку b строкуПривет всем!. Оператор Debug.Print b, поскольку он обязан всегда выводить на экран содержимое ячейки b, выведет на экран текст Привет всем!

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

Информация в ячейке памяти под строковую переменную может в процессе выполнения программы меняться точно так же, как и в ячейке для числовой переменной. Например, при выполнении фрагмента

a="Минуточку!": Debug.Print a: a="Здравствуйте!": a="До свидания!": Debug.Print a

в ячейке a будут по очереди появляться строки

Минуточку! Здравствуйте! До свидания!

а на экран будут выведены строки:

Минуточку!

До свидания!

Еще пример:

a="Цикл": Debug.Print a: a=a+a: Debug.Print a+a+a +"Конец цикла"

Поскольку знак + по отношению к строкам есть знак соединения, то a+a будет равняться "ЦиклЦикл" и это же - новое значение a. Поэтому здесь на экран будут выведены строки:

Цикл

ЦиклЦиклЦиклЦиклЦиклЦиклКонец цикла

Выражения a+a и a+a+a +"Конец цикла" в последнем примере являются ни чем иным, как строковыми выражениями, по той простой причине, что в них производятся действия, результатом которых является строка.

Строковую переменную можно задавать не только оператором присваивания, но и функцией InputBox. При вводе ставить кавычки тоже не надо. Пример:

Dim a As String

Private Sub Command1_Click()

a = InputBox("Введите какое-нибудь слово")

Debug.Print "Вы ввели слово "; a

End Sub

Обратите внимание на пробел перед второй кавычкой в операторе Debug.Print. Он нужен для того, чтобы слова при выводе не сливались.

Прежде, чем идти дальше, нужно, конечно, разобраться с хитросплетениями запятых, точек с запятыми, кавычек и пробелов в операторе Print:



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 243; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.42.25 (0.009 с.)