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

Министерство образования и науки Российской Федерации



Министерство образования и науки Российской Федерации

«Алтайский государственный технический университет

им.И.И.Ползунова»

 

Факультет____________________________________

Кафедра______________________________________

Расчётное задание

Защищено с оценкой______________

“___”_______________201_г.

 

Пояснительная записка

к расчётному заданию

 

 

по дисциплине_________________________________________________________________

______________________________________________________________________________

 

Студент группы ЭТМ-21 Мерзликин Николай Александрович

 

Руководитель расчётного задания________________________________________________

 

Барнаул 2012

Введение

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

Краткое содержание работы:

Введение…………………………………………………………………………

1. Разработка алгоритма……………………………………………………….

2. Создание программного модуля с пояснением каждой строки…………..

3. Описание формы расчётного задания……………………………………...

4. Заключение…………………………………………………………………..

5. Список используемой литературы…………………………………………

Приложение……………………………………………………………………..

Работа содержит:

Страниц ………………………………………………………………………....18

Рисунков………………………………………………………………………… 2

 

 

Задание 1: Дано натуральное число n, действительные числа a1, a2, …., an.

Вычислить:

Задание 2: Даны натуральные числа n, a1, a2, …., an. Найти члены последовательности: являющиеся удвоенными не чётными числами.

Задание 3: Дана строка символов, в которой есть двоеточие. Получить все символы, расположенные между первым и вторым двоеточием. Если второго двоеточия нет, то получить все символы, расположенные до единственного имеющегося двоеточия.

Алгоритм решения задания

 

 

Выход

 

M(i) < 0

M(i) = M(i) * (-1)

Вывод C

Next i

C <√M(i)

C = √M(i)

i ≤ N

i = 2

 

C = √M(1)

M(1) = M(1) * (-1)

M(1) < 0

Next i

Ввод M(i)

i = 1

i ≤ N

Ввод N

Вход

 

Задание 1

 

Next i

Ввод M(i)

i = 1

i ≤ N

Ввод N

Вход

 

Задание 2

Выход

 

Next i

Вывод M(i)

M(i) mod 4 ≠ 0

 

2 gziS/gAAAOEBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAi0AFAAG AAgAAAAhADj9If/WAAAAlAEAAAsAAAAAAAAAAAAAAAAALwEAAF9yZWxzLy5yZWxzUEsBAi0AFAAG AAgAAAAhALs/oJHjAQAA2gMAAA4AAAAAAAAAAAAAAAAALgIAAGRycy9lMm9Eb2MueG1sUEsBAi0A FAAGAAgAAAAhAI/SH+PdAAAACwEAAA8AAAAAAAAAAAAAAAAAPQQAAGRycy9kb3ducmV2LnhtbFBL BQYAAAAABAAEAPMAAABHBQAAAAA= " strokecolor="black [3200]" strokeweight=".5pt">

M(i) mod 2 = 0



i = 1

 

i ≤ N

 

 

Ввод S

Вход

 

Задание 3

i ≤ Len(S)

i = 1

d 5GZbb6W8vpqfHoFFnOOfGX7wEzpUienoJ9KBWQn3eZbQo4S7bJkDS45f5ShhJcQKeFXy/xuqbwAA AP//AwBQSwECLQAUAAYACAAAACEAtoM4kv4AAADhAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRl bnRfVHlwZXNdLnhtbFBLAQItABQABgAIAAAAIQA4/SH/1gAAAJQBAAALAAAAAAAAAAAAAAAAAC8B AABfcmVscy8ucmVsc1BLAQItABQABgAIAAAAIQBPpATL9wEAAAEEAAAOAAAAAAAAAAAAAAAAAC4C AABkcnMvZTJvRG9jLnhtbFBLAQItABQABgAIAAAAIQBPkJJS3wAAAAsBAAAPAAAAAAAAAAAAAAAA AFEEAABkcnMvZG93bnJldi54bWxQSwUGAAAAAAQABADzAAAAXQUAAAAA " strokecolor="black [3200]" strokeweight=".5pt">

Mid(S, i, 1) = ":"

C = 0

 

 


C = 0

Next i

5 MNtqi3h9NT89ggg0hzMMv/pRHcrodHATay96hPssu40owipbgojA3+KAkN6lIMtC/m9Q/gAAAP// AwBQSwECLQAUAAYACAAAACEAtoM4kv4AAADhAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRf VHlwZXNdLnhtbFBLAQItABQABgAIAAAAIQA4/SH/1gAAAJQBAAALAAAAAAAAAAAAAAAAAC8BAABf cmVscy8ucmVsc1BLAQItABQABgAIAAAAIQBMIKts9gEAAAEEAAAOAAAAAAAAAAAAAAAAAC4CAABk cnMvZTJvRG9jLnhtbFBLAQItABQABgAIAAAAIQAKX9W53QAAAAkBAAAPAAAAAAAAAAAAAAAAAFAE AABkcnMvZG93bnJldi54bWxQSwUGAAAAAAQABADzAAAAWgUAAAAA " strokecolor="black [3200]" strokeweight=".5pt">

N = i

C = C+1

Выход

 

i = 1

Mid(S, i, 1) ≠ ":"

Вывод Mid(S, i, 1)

i = i+1

C > 1

i = N+1

Mid(S, i, 1) ≠ ":"

Вывод Mid(S, i, 1)

C = 1

i = i+1

i = i+1

 

 


Создание программного модуля

 

Запуск макроса (Module1):

Sub start()
Dim frm As UserForm1 'Переменная типа UserForm1
Set frm = New UserForm1 'Создаем главное окно
frm.Show 'Открываем главное окно
End Sub

Главная форма (UserForm1):

Private Sub CommandButton1_Click() 'Нажатие на кнопку ЗАДАНИЕ 1
Dim frm1 As UserForm2 'Объявляем переменную типа UserForm2
Set frm1 = New UserForm2 'Создаем окно ЗАДАНИЕ 1
frm1.Show 'Открываем его
End Sub

Private Sub CommandButton2_Click() 'Нажатие на кнопку ЗАДАНИЕ 2
Dim frm2 As UserForm3 'Объявляем переменную типа UserForm3
Set frm2 = New UserForm3 'Создаем окно ЗАДАНИЕ 2
frm2.Show
End Sub

Private Sub CommandButton3_Click() 'Нажатие на кнопку ЗАДАНИЕ 3
Dim frm3 As UserForm4 'Объявляем переменную типа UserForm4
Set frm3 = New UserForm4 'Создаем окно ЗАДАНИЕ 3
frm3.Show 'Открываем его
End Sub

Private Sub CommandButton4_Click() 'Нажатие на кнопку ВЫХОД
Unload Me 'Закрываем окно
End Sub

Решение задания 1 (UserForm2):

Private Sub CommandButton1_Click() 'Нажатие на кнопку РЕШЕНИЕ
Dim i As Integer 'Целочисленная переменная для счетчика циклов
Dim N As Integer 'Целочисленная переменная для количества элементов последовательности
Dim C As Double 'Вещественная переменная для хранения максимума
Dim M() As Double 'Динамический массив для хранения последовательности вещественных чисел
N = CInt(TextBox1.Text) 'Считываем значение N из текстового поля
ReDim M(1 To N) As Double 'Устанавливаем размер массива дляпоследовательности
For i = 1 To N 'Начиная со 1го элемента и до последнего
M(i) = InputBox("Введите действительное число a" & i & ":", "Ввод элемента последовательности", 0) 'Запрашиваем ввод i-го элемента
Next i 'Переходим к следующему элементу
'Установим начальный максимум
If M(1) < 0 Then 'если первый элемент меньше 0, то
M(1) = M(1) * (-1) 'умножим его на -1
End If
C = Sqr(M(1)) 'Запишем начальный максимум в C
For i = 2 To N 'Начиная со второго элемента и до последнего, выполняем:
If M(i) < 0 Then 'если i-й элемент меньше 0,то
M(i) = M(i) * (-1) 'умножим его на -1
End If
If C < Sqr(M(i)) Then 'если текущий максимум меньше корня из модуля i-го элемента
C = Sqr(M(i)) 'Тогда запишем этот корень как максимум
End If
Next i 'перейдем к следующему элементу последовательности
TextBox2.Text = C 'Выведем значение максимума в текстовое поле
End Sub

Private Sub CommandButton2_Click() 'Нажатие на кнопку ОЧИСТИТЬ
TextBox1.Value = 1 'Запишем 1 в строку ввода N
SpinButton1.Value = 1 'Установим значение счетчика в 1
TextBox2.Text = "" 'Запишем пустую строку в поле ответа
End Sub

Private Sub CommandButton3_Click() 'Нажатие на кнопку ВЫХОД
Unload Me 'Закрываем окно
End Sub

Private Sub SpinButton1_SpinUp() 'Увеличить значение N
TextBox1.Value = SpinButton1.Value 'Записываем в поле значение счетчика
End Sub

Private Sub SpinButton1_SpinDown() 'Уменьшить значение N
TextBox1.Value = SpinButton1.Value 'Записываем в поле значение счетчика
End Sub

Решение задания 2 (UserForm3):

Private Sub CommandButton1_Click() 'Нажатие на кнопку РЕШЕНИЕ
Dim i As Integer 'Целочисленная переменная для счетчика циклов
Dim N As Integer 'Целочисленная переменная для количества элементов последовательности
Dim C As Integer 'Целочисленная переменная для проверки, было ли записано число в ответ
C = 0 'Записываем в C ноль, что означает, что в ответ ничего не записано
Dim M() As Integer 'Целочисленный динамический массив для хранения последовательности
N = CInt(TextBox1.Text) 'Считываем значение N из текстового поля
ReDim M(1 To N) As Integer 'Устанавливаем размер массива для последовательности
TextBox2.Text = "" 'Чистим поле вывода ответа
For i = 1 To N 'Начиная со 1го элемента и до последнего
M(i) = InputBox("Введите целое число a" & i & ":", "Ввод элемента последовательности", 0) 'Запрашиваем ввод i-го элемента
Next i 'Переходим к следующему элементу
For i = 1 To N 'Начиная со 1го элемента и до последнего
If M(i) Mod 2 = 0 Then 'Если i-й элемент кратен двум
If M(i) Mod 4 <> 0 Then 'и если он не кратен четырем
If C > 0 Then 'если в ответе уже есть числа, то
TextBox2.Text = TextBox2.Text & "," 'допишем запятую
End If
C = 1 'Запишем в C единицу, что говорит о том, что в ответе есть числа
TextBox2.Text = TextBox2.Text & M(i) 'допишем в ответ число, кратное двум, но не кратное четырем
End If
End If
Next i 'Переходим к следующему элементу
End Sub

Private Sub CommandButton2_Click() 'Нажатие на кнопку ОЧИСТИТЬ
TextBox1.Value = 1 'Запишем 1 в строку ввода N
SpinButton1.Value = 1 'Установим значение счетчика в 1
TextBox2.Text = "" 'Запишем пустую строку в поле ответа
End Sub

Private Sub CommandButton3_Click() 'Нажатие на кнопку ВЫХОД
Unload Me 'Закрываем окно
End Sub

Private Sub SpinButton1_SpinUp() 'Увеличить значение N
TextBox1.Value = SpinButton1.Value 'Записываем в поле значение счетчика
End Sub

Private Sub SpinButton1_SpinDown() 'Уменьшить значение N
TextBox1.Value = SpinButton1.Value 'Записываем в поле значение счетчика
End Sub

Задание задания 3 (UserForm4):

Private Sub CommandButton1_Click() 'Нажатие на кнопку РЕШЕНИЕ
Dim i As Integer 'Целочисленная переменная для счетчика циклов
Dim N As Integer 'Целочисленная переменная для хранения позиции первого двоеточия
Dim C As Integer 'Целочисленная переменная для хранения количества двоеточий
C = 0 'Сначала количество двоеточий равно нулю
Dim S As String 'Строковая переменная для хранения строки
S = CStr(TextBox1.Text) 'Считываем строку из поля ввода
TextBox2.Text = "" 'Чистим поле ответа
For i = 1 To Len(S) 'Начиная с первого символа строки и до последнего, выполняем:
If Mid(S, i, 1) = ":" Then 'Если i-й символ строки - двоеточие, тогда
If C = 0 Then 'Если двоеточий еще не находили, то
N = i 'запишем позицию первого двоеточия
End If
C = C + 1 'Увеличим значение количества двоеточий
End If
Next i 'Перейдем к следующему символу строки
If C = 1 Then 'Если двоеточие одно, тогда
i = 1 'Установим в i номер первого символа строки
Do While Mid(S, i, 1) <> ":" 'Пока i-й символ не является двоеточием,
TextBox2.Text = TextBox2.Text & Mid(S, i, 1) 'дописываем его в поле ответа
i = i + 1 'переходим к следующему символу
Loop
End If
If C > 1 Then 'Если дветочий больше, чем одно, тогда
i = N + 1 'Установим начальным номер символа, следующего за первым двоеточием
Do While Mid(S, i, 1) <> ":" 'Пока i-й символ не является двоеточием,
TextBox2.Text = TextBox2.Text & Mid(S, i, 1) 'дописываем его в поле ответа
i = i + 1 'переходим к следующему символу
Loop
End If
End Sub

Private Sub CommandButton2_Click() 'Нажатие на кнопку ОЧИСТИТЬ
TextBox1.Text = "" 'Записываем пустую строку в поле ввода
TextBox2.Text = "" 'Записываем пустую строку в поле ответа
End Sub

Private Sub CommandButton3_Click() 'Нажатие на кнопку ВЫХОД
Unload Me 'Закрываем окно
End Sub

 

Описание формы расчётного задания

Расчётное задание полностью создавалось в Microsoft Visual Basic for Applications

Вводить данные будем в элемент “Текстовое поле”, а выводить результат будем в элементе “Надпись”. Решение уравнения должно происходить при нажатии на кнопку “Решить”. Кнопки “Очистить” и “Выход” предназначены, соответственно, для удаления результатов решения и исходных данных из полей ввода и выхода из программы.

 

 

1,2,3,4,7,12,13,15 – элемент управления “Кнопка”

10,16 – элемент управления “Надпись”

8,9 – элемент управления “Текстовое поле”

5,11 – элемент управления “Рамка”

6,14 – диалоговая форма, на которой размещаются элементы управления.

 

 

Заключение

В процессе написания расчётного задания было проанализировано методическое указание по данной теме

В ходе решения расчётного задания было сделано следующее:

· Определены цель и основные задачи данного расчётного задания

· Формы расчётного задания

· Решены поставленные задачи

· При этом были изучены принципы программирования и создания форм с помощью языка программирования Visual Basic for Applications.

 

 

 

Литература

1. Бизяев С.Н., Сгибнев А.В. Основы программирования на VBA. Методическое указание по курсу “Информатика” для студентов специальности 150200 “Автомобили и автомобильное хозяйство”. Часть 2 / Алт. гос. техн. ун-т им. И. И. Ползунова.- Барнаул: Изд-во АлтГТУ, 2002. 71с.

2. Бизяев С.Н., Сгибнев А.В. Создание диалоговых форм на VBA. Методическое указание по курсу “Информатика” для студентов специальности 150200 “Автомобили и автомобильное хозяйство”. Часть 3 / Алт. гос. техн. ун-т им. И. И. Ползунова.- Барнаул: Изд-во АлтГТУ, 2002. 79с.

 

Приложение

Задание 1: Дано натуральное число n, действительные числа a1, a2, …., an.

Вычислить:

Задание 2: Даны натуральные числа n, a1, a2, …., an. Найти члены последовательности: являющиеся удвоенными не чётными числами.

Задание 3: Дана строка символов, в которой есть двоеточие. Получить все символы, расположенные между первым и вторым двоеточием. Если второго двоеточия нет, то получить все символы, расположенные до единственного имеющегося двоеточия.

Программный Код

Запуск макроса (Module1):

Sub start()
Dim frm As UserForm1
Set frm = New UserForm1
frm.Show
End Sub

Главная форма (UserForm1):

Private Sub CommandButton1_Click()
Dim frm1 As UserForm2
Set frm1 = New UserForm2
frm1.Show
End Sub

Private Sub CommandButton2_Click()
Dim frm2 As UserForm3
Set frm2 = New UserForm3
frm2.Show
End Sub

 

Private Sub CommandButton3_Click()
Dim frm3 As UserForm4
Set frm3 = New UserForm4
frm3.Show
End Sub

Private Sub CommandButton4_Click()
Unload Me
End Sub

 

Программный код для задания 1:

Private Sub CommandButton1_Click()
Dim i As Integer
Dim N As Integer
Dim C As Double
Dim M() As Double
N = CInt(TextBox1.Text)
ReDim M(1 To N) As Double
For i = 1 To N
M(i) = InputBox("Введите действительное число a" & i & ":", "Ввод элемента последовательности", 0)
Next i
If M(1) < 0 Then
M(1) = M(1) * (-1)
End If
C = Sqr(M(1))
For i = 2 To N
If M(i) < 0 Then
M(i) = M(i) * (-1)
End If
If C < Sqr(M(i)) Then
C = Sqr(M(i))
End If
Next i
TextBox2.Text = C
End Sub

Private Sub CommandButton2_Click()
TextBox1.Value = 1
SpinButton1.Value = 1
TextBox2.Text = ""
End Sub

Private Sub CommandButton3_Click()
Unload Me
End Sub

Private Sub SpinButton1_SpinUp()
TextBox1.Value = SpinButton1.Value
End Sub

Private Sub SpinButton1_SpinDown()
TextBox1.Value = SpinButton1.Value
End Sub

 

Программный код для задания 2:

Private Sub CommandButton1_Click()
Dim i As Integer
Dim N As Integer
Dim C As Integer
C = 0
Dim M() As Integer
N = CInt(TextBox1.Text)
ReDim M(1 To N) As Integer
TextBox2.Text = ""
For i = 1 To N
M(i) = InputBox("Введите целое число a" & i & ":", "Ввод элемента последовательности", 0)
Next i
For i = 1 To N
If M(i) Mod 2 = 0 Then

If M(i) Mod 4 <> 0 Then
If C > 0 Then
TextBox2.Text = TextBox2.Text & ","
End If
C = 1
TextBox2.Text = TextBox2.Text & M(i)
End If
End If
Next i
End Sub

Private Sub CommandButton2_Click()
TextBox1.Value = 1
SpinButton1.Value = 1
TextBox2.Text = ""
End Sub

Private Sub CommandButton3_Click()
Unload Me
End Sub

Private Sub SpinButton1_SpinUp()
TextBox1.Value = SpinButton1.Value
End Sub

Private Sub SpinButton1_SpinDown()
TextBox1.Value = SpinButton1.Value
End Sub

 

Программный код для задания 3:


Private Sub CommandButton1_Click()
Dim i As Integer
Dim N As Integer
Dim C As Integer
C = 0
Dim S As String
S = CStr(TextBox1.Text)
TextBox2.Text = ""
For i = 1 To Len(S)
If Mid(S, i, 1) = ":" Then
If C = 0 Then
N = i
End If
C = C + 1
End If
Next i
If C = 1 Then
i = 1
Do While Mid(S, i, 1) <> ":"
TextBox2.Text = TextBox2.Text & Mid(S, i, 1)
i = i + 1
Loop
End If
If C > 1 Then
i = N + 1
Do While Mid(S, i, 1) <> ":"
TextBox2.Text = TextBox2.Text & Mid(S, i, 1)
i = i + 1
Loop
End If
End Sub

Private Sub CommandButton2_Click()
TextBox1.Text = ""
TextBox2.Text = ""
End Sub

Private Sub CommandButton3_Click()
Unload Me
End Sub

 


Дата добавления: 2015-09-29; просмотров: 29 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Ингридиенты: мороженое, кокос, крахмал и слегка взбитый яичный белок. Рецепт: 1. Достаньте замороженные шарики мороженого и обмакните сначала в крахмал, потом в белок, затем в кокос. 2. Отправьте | Автогрейдеры относятся к группе землерой-но-транспортных машин, состоящих из грейдерного оборудования и базовой машины. Предназначены автогрейдеры для профилирования и планировки поверхности

mybiblioteka.su - 2015-2024 год. (0.022 сек.)