Федеральное государственное бюджетное образовательное учреждение высшего образования
«Саратовский государственный технический университет имени Гагарина Ю.А.»
Кафедра «Экспертиза и управление недвижимостью»
Алгоритмизация. Программирование на VBAна примерах.
Методические указания для практических занятий и самостоятельной работы по информатике и информационным технологиям для студентов строительных специальностей
Одобрено:
Каф. Экспертиза и управление недвижимостью»
_________________
УМКН «Строительство» САДИ СГТУ
__________________
Саратов 2016
Рассматриваются 5 типовых задач на составление алгоритмов и программ. Для реализации выбран VBA. Для каждой задачи дана постановка, построена блок-схема алгоритма. Созданы формы в редакторе VBA (лента Разработчик, редактор VBA). При построении форм и программировании макросов необходимо разрешить их подключение в параметрах безопасности
VBA (Visual Basic for Application) был разработан компанией Microsoft. Данный язык предназначен для универсального программирования и для автоматизации процессов в пакете MS Office. VBA широко используется в Excel, а также в Access, Word и других программах пакета MS Office. VBA - простой язык программирования. Изучив его, можно предоставлять команды Excel, чтобы оперировать с колонками, строками, значениями в ячейках, перемещать/добавлять/сортировать листы, выводить заранее запрограммированные сообщения, писать свои формулы и функции и т.д. Суть языка заключается в оперировании объектами (что относит его к объектно-ориентированному программированию). Этот язык находит применение и в САПР для создания макросов, уменьшающих трудозатраты проектировщика на рутинные операции.
Чтобы работать с VBA кодом, нам нужен редактор, который уже установлен по умолчанию. Он встроен в пакет MS Office, поэтому всегда имеется.
При разборе задач рассматривается решение каждой задачи в
1. Visual Basic for Application
2. Borland C++
3. Borland Delphi
Сравнивая программные коды, можно понять различие и сходство универсальных алгоритмических языков и их сред.
Даны действительные числа x, y. Определить, принадлежит ли точка с координатами (x, y) заштрихованной области.
Создаем форму следующего вида, с данными элементами управления
Свойство “Caption” объекта “Label1” изменяем на “x=”.
Свойство “Caption” объекта “Label2” изменяем на “y=”.
Свойство “Caption” объекта “Label3” изменяем на “ ”.
Свойство “Caption” объекта “CommandButton1” изменяем на “Вычислить”.
Тогда форма примет вид:
На нажатие объекта “CommandButton1” определим следующую процедуру:
Private Sub CommandButton1_Click()
x = Val(TextBox1.Text)
y = Val(TextBox2.Text)
If (x ^ 2 + y ^ 2 <= 1) And (x >= 0) Then
Label3.Caption = "Точка принадлежит заштрихованной области"
Else
Label3.Caption = "Точка не принадлежит заштрихованной области"
End If
End Sub
Запуск программы: “Run” – “Run”
#include <iostream.h>
#include <math.h>
int main() {
float x;
float y;
cout << "Введите координаты x и y: ";
cin >>x>>y;
if ((x*x+y*y<=1) && (x>=0))
cout << "Точка лежит в заштрихованной области";
else
cout << "Точка не лежит в заштрихованной области";
cout << endl;
return 0;
}
Запуск программы: “Run” – “Run”
Program z1;
Var x,y:real;
Begin
Write(‘Введите координаты x и y : ’);
Readln(x,y);
If (x*x+y*y<=1) and (x>=0) then
Writeln(‘Точка лежит в заштрихованной области')
else
Writeln(‘Точка не лежит в заштрихованной области');
End.
Запуск программы: “Run” – “Run”
Написать программу вычисления функции . Заполнить таблицу значений при с шагом .
Создаем форму следующего вида, с данными элементами управления
Свойство “Caption” объекта “Label1” изменяем на “a=”.
Свойство “Caption” объекта “Label2” изменяем на “b=”.
Свойство “Caption” объекта “Label3” изменяем на “h=”.
Свойство “Caption” объекта “Label4” изменяем на “”.
Свойство “Caption” объекта “Label5” изменяем на “ ”.
Свойство “Caption” объекта “CommandButton1” изменяем на “Вычислить”.
Тогда форма примет вид:
На нажатие объекта “CommandButton1” определим следующую процедуру:
Private Sub CommandButton1_Click()
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
h = Val(TextBox3.Text)
Label4.Caption = ""
Label5.Caption = ""
For x = a To b Step h
If x < 3 Then
f = 2 * x ^ 3 - 7 * x ^ 2 + 5 * x + 3
Else
f = x + Log(Abs(Cos(2 * x) - 1))
End If
Label4.Caption = Label4.Caption & Round(x, 2) & Chr(13)
Label5.Caption = Label5.Caption & Round(f, 4) & Chr(13)
Next x
End Sub
Запуск программы: “Run” – “Run”
#include <iostream.h>
#include <math.h>
int main() {
float a,b,h;
float x,f;
int i;
cout << "Введите числа a, b и h: ";
cin >>a>>b>>h;
cout << "x y";
cout << endl;
for (i=0; i<(b-a)/h; i++) {
x=a+i*h;
if (x<3)
f= 2*x*x*x-7*x*x+5*x+3;
else
f= x+Ln(fAbs(Cos(2*x)-1));
cout << x;
cout << " ";
cout << f;
cout << endl;
}
return 0;
}
Запуск программы: “Run” – “Run”
Program z2;
Var a,b,h,x,f:real;
Begin
Write(‘Введите числа a, b и h : ’);
Readln(a,b,h);
For i:=0 to trunc((b-a)/h) do
Begin
x=a+i*h;
if (x<3) then
f= 2*x*x*x-7*x*x+5*x+3
else
f= x+Ln(Abs(Cos(2*x)-1));
Writeln(‘x= ‘, x, ‘ f= ‘, f);
End;
End.
Запуск программы: “Run” – “Run”
На интервале значений (0,1) найти с точностью ξ=10-5 корни уравнения x2-0,5=0 методом деления отрезка пополам.
Уравнение представить в виде f(х)=0. За нулевое приближение корня уравнения принять x0=(a+b)/2. Если f(x0)=0, то x0 является корнем уравнения. Если f(x0)≠0, то проверить условия
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.