Автор работы: Пользователь скрыл имя, 18 Марта 2013 в 15:38, курсовая работа
В данной работе изложены 6 заданий.
Название работы: Задание 1.
Тема задания: “Разветвляющиеся вычислительные процессы”.
Цель задания: Освоение методов программирования решения задач, требующих выполнения разных участков алгоритма в зависимости от истинности или ложности некоторого условия. Ознакомление с логическим типом данных, операциями отношений, логическими функциями и формами условного оператора и оператора выбора.
Федеральное управление по образованию
Государственное образовательное учреждение
Высшего профессионального образования
«государственный университет управления»
Институт Государственного и муниципального управления
Кафедра Компьютерной подготовки
Специальность: государственное и муниципальное управление
Специализация: государственное и муниципальное управление
Форма обучения: очная
КУРСОВОЙ ПРОЕКТ
По дисциплине «Информатика»
Алгоритмизация и
в среде Visual Basic 6
Москва-2009
Описание выполнения Задания 1.
Название работы: Задание 1.
Тема задания: “Разветвляющиеся вычислительные процессы”.
Цель задания: Освоение методов программирования решения задач, требующих выполнения разных участков алгоритма в зависимости от истинности или ложности некоторого условия. Ознакомление с логическим типом данных, операциями отношений, логическими функциями и формами условного оператора и оператора выбора.
Условие задания:
Составить программу вычисления функции:
Y = (Sin(X) + 5) * Exp(X), если X > 5
Y = Exp(-X) / (Cos(X) - 3), если X <= 1
Напечатать: При x = … функция вычислялась по формуле: …
Получен результат: y = … .
Открываем новый проект. На форме располагаем 5 меток, 3 текстовых окна и 2 командные кнопки. В окне свойств задаем свойства формы в соответствии с таблицей:
Таблица свойств формы frmZ2r и расположенных на ней
элементов управления.
Объект |
Свойство |
Значение свойства |
Форма |
Name Caption |
frmZ2r Разветвляющиеся вычислительные процессы |
Метка |
Name Caption Alignment Font |
Label1 “ Условие задачи: “ 2-по центру Times New Roman, жирный, Размер 16 |
Метка |
Name Caption Alignment Font |
Label2 Задается в процедуре загрузки формы 2-по центру Times New Roman, нормальный, размер 12 |
Метка |
Name Caption Alignment Font |
Label3 “При x = “ 1-правая привязка Times New Roman, нормальный, размер 12 |
Метка |
Name Caption Alignment Font |
Label4 “функция вычислялась по формуле: “ 1 -правая привязка Times New Roman, нормальный, размер 12 |
Метка |
Name Caption Alignment Font |
Label5 “Получен результат:” 1-правая привязка Times New Roman, нормальный, размер 12 |
Текстовое окно |
Name Alignment Font |
Text1 0-левая привязка Times New Roman, нормальный, размер 12 |
Текстовое окно |
Name Alignment Font |
Text2 0-левая привязка Times New Roman, нормальный, размер 12 |
Текстовое окно |
Name Alignment Font |
Text3 Times New Roman, нормальный, размер 120-левая привязка |
Командная кнопка |
Name Caption Font |
Command1 “Решить” Times New Roman, нормальный, размер 12 |
Командная кнопка |
Name Caption Font |
Command2 “Выход” Times New Roman, нормальный, размер 12 |
Расчетные соотношения:
Y = (Sin(X) + 5) * Exp(X), если X > 5
Y = Exp(-X) / (Cos(X) - 3), если X <= 1
Таблица используемых идентификаторов.
Идентификатор |
Тип прораммного объекта |
Тип данного |
Значение |
Физический смысл |
X |
переменная |
Single |
вводится |
исходное данное |
Y |
переменная |
Single |
вычисляется |
результат |
Вид формы frmZ2r:
Процедуры формы frmZ2r:
Private Sub Form_Load()
Label2 = " Найти значение Y для заданного x, если:" & vbCrLf & _
" Y = (Sin(X) + 5) * Exp(X), если X > 5" & vbCrLf & _
" Y = Exp(-X) / (Cos(X) - 3), если X <= 1"
Label3 = "При x = "
Label4 = "функция вычислялась по формуле "
Label5 = "Получен результат Y = "
Text1 = "": Text2 = "": Text3 = ""
End Sub
Private Sub Command1_Click()
Dim X As Single, Y As Single
X = Val(InputBox("Введите значение x"))
Text1 = Str(X)
If X > 5 Then
Y = (Sin(X) + 5) * Exp(X)
Text2 = "Y = (Sin(X) + 5) * Exp(X)"
Text3 = Str(Format(Y, "Fixed"))
ElseIf (X <= 1) Then
Y = Exp(-X) / (Cos(X) - 3)
Text2 = "Y = Exp(-X) / (Cos(X) - 3)"
Text3 = Str(Format(Y, "Fixed"))
Else
Text2 = "Функция неопределена"
Text3 = "-"
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Сохраняем проект в заранее созданной папке Задание_2 на дискете. Переходим в эту папку и запускаем проект на выполнение. Щелкаем на кнопке “Решить” и наблюдаем результат решения задачи. Щелкаем на кнопке “Выход” для завершения работы приложения.
Добавляем к проекту форму-заставку с именем frmZ2z. Для ее командной кнопки процедура должна иметь вид:
Private Sub Command1_Click()
frmZ2z.Hide
frmZ2r.Show
End Sub
Задание2 полностью выполнено. Запускаем его на выполнение.
Вид рабочей формы с результатом решения задачи Задания №2.
Описание выполнения Задания 3.
Название работы: Задание 3.
Тема задания: “Обработка чисел и числовых последовательностей”.
Цель задания: Освоение типовых алгоритмов обработки чисел и числовых последовательностей, а также использование этих алгоритмов для решения практических задач в соответствии с индивидуальным заданием. Ознакомление с элементами управления OptionButton, Image, ListBox и Frame.
В этом задании нужно решить 3 задачи. В качестве примера ниже рассмотрены следующие задачи:
1. Обработка числа (целого или вещественного)
Дано натуральное число. Определить, является ли четным произведение его не равных 0 цифр.
2. Обработка числовой последовательности с известным количеством
элементов.
В числовую переменную последовательно вводятся N натуральных чисел. сколько из них больше своих соседей?
3. Обработка числовой последовательности с неизвестным
количеством элементов.
Найти количество всех min членов последовательности с неопределенным числом элементов.
Решение всех трех задач производится на одной форме frmZ3r. Открываем новый проект и размещаем на форме 7 меток, 2 текстовых окна, командную кнопку, 5 элементов Image, элемент ListBox и элемент Frame (контейнер). После размещения элемента Frame размещаем на нем 3 элемента OptionButton. При этом нужно следить за тем, чтобы в момент начала размещения каждого из элементов OptionButton на контейнере Frame курсор мышки находился на контейнере Frame. Иначе нарисованный элемент OptionButton хотя и будет выглядеть принадлежащим элементу Frame, но фактически принадлежать ему не будет.
В папку проекта копируем 2 разных файла с расширением ico, которые содержат небольшие графические изображения. Свойству Picture элемента Image1 присваиваем значение какого-либо из этих рисунков. Второй рисунок присваиваем значениям свойства Picture всех остальных элементов Image. Процесс нанесения изображения на элемент Image прост: в окне свойств нужно щелкнуть на свойстве Picture, а затем на появившемся в его строке значке троеточия. В результате откроется окно, в котором будет список скопированных в папку проекта графических файлов. Выделяем один из них и щелкаем в этом окне по кнопке “Открыть”. После нанесения изображений на все элементы Image графические файлы можно удалить из папки проекта, так как теперь они будут храниться в автоматически созданном файле с расширением frx. Понятно, что удалять графические файлы из папки проекта можно только после сохранения проекта. В итоге форма должна принять изображенный на рисунке вид.
Таблица свойств формы и расположенных на ней элементов управления
Объект |
Свойство |
Значение свойства |
Форма |
Name Caption |
frmZ3r Задание № 1. Обработка чисел и числовых последовательностей |
Метка |
Name Caption
Alignment Font |
Label1 Устанавливается в процедурах для каждой из решаемых задач 2-центровка Times New Roman, жирный, размер 10 |
Метка |
Name Caption Alignment Font |
Label2 Решение задачи № 1 0-левая привязка Times New Roman, обычный, размер 8 |
Метка |
Name Caption Alignment Font |
Label3 Решение задачи № 2 0-левая привязка Times New Roman, обычный, размер 8 |
Метка |
Name Caption Alignment Font |
Label4 Решение задачи № 3 0-левая привязка Times New Roman, обычный, размер 8 |
Метка |
Name Caption
Alignment Font |
Label5 Устанавливается в процедурах для каждой из решаемых задач 1-правая привязка Times New Roman, обычный, размер 8 |
Метка |
Name Caption
Alignment Font |
Label6 Устанавливается в процедурах для каждой из решаемых задач 1-правая привязка Times New Roman, обычный, размер 8 |
Метка |
Name Caption
Alignment Font |
Label7 Устанавливается в процедурах для каждой из решаемых задач 2-центровка Times New Roman, обычный, размер 8 |
Текстовое окно |
Name Text Alignment Font |
Text1 Используется для вывода результата 0-левая привязка Times New Roman, обычный, размер 8 |
Текстовое окно |
Name Text Alignment Font |
Text2 Используется для вывода результата 0-левая привязка Times New Roman, обычный, размер 8 |
Командная кнопка |
Name Caption Font Style BackColor |
Command1 Выход Times New Roman, обычный, размер 8 Graphical vbYellow |
Контейнер |
Name Caption Font |
Frame1 № задачи |
Селекторная кнопка |
Name Caption Alignment Font |
Option1 Задача № 1 0-левая привязка Times New Roman, обычный, размер 8 |
Селекторная кнопка |
Name Caption Alignment Font |
Option2 Задача № 2 0-левая привязка Times New Roman, обычный, размер 8 |
Селекторная кнопка |
Name Caption Alignment Font |
Option3 Задача № 3 0-левая привязка Times New Roman, обычный, размер 8 |
Рисунок |
Name Picture Stretch |
Image1 Выбрать самостоятельно Stretch |
Рисунок |
Name Picture
Stretch |
Image2 Выбрать самостоятельно отличающимся от Image1 Stretch |
Рисунок |
Name Picture Stretch |
Image3 Такой, как у Image2 Stretch |
Рисунок |
Name Picture Stretch |
Image4 Такой, как у Image2 Stretch |
Рисунок |
Name Picture Stretch |
Image5 Такой, как у Image2 Stretch |
Список |
Name Font |
List1 Times New Roman, обычный, размер 10 |
Процедуры формы frmZ3:
Процедура решения 1-ой задачи:
Private Sub Image3_Click()
Dim n&, b As Boolean, ost%
Text1 = "": Text2 = ""
Label1 = "Дано натуральное число. Определить, является ли " & _
"четным произведение его не равных 0 цифр."
Label5 = "Исходное число:": Label6 = "Результат:"
Label7.Visible = False
List1.Visible = False
If Option1.Value Then
n = InputBox("Введите число")
Text1 = Str(n)
b = False
Do While n > 0
ost = n Mod 10
If ost Mod 2 = 0 Then b = True
n = n \ 10
Loop
If b Then Text2 = "Четно" Else Text2 = "Не четно"
End IfEnd Sub
Вид рабочей формы с результатом решения 1-ой задачи:
Процедура решения 2-ой задачи:
Private Sub Image4_Click()
Dim i%, j%, n%, k%, s&, a&, sled%, pred1%, pred2%
If Option2.Value Then
Text1 = "": Text2 = ""
Label1 = "В числовую переменную последовательно вводятся N " & _
"натуральных чисел. сколько из них больще своих соседей?"
n = InputBox("Введите количество чисел")
Text1 = Str(n)
Label5 = "Колич.чисел:": Label6 = "Результат:"
Label7 = "Введенные числа:"
Label7.Visible = True
List1.Visible = True: List1.Clear
Randomize
k = 0: s = 0
pred1 = -100
For i = 1 To n
If i <> 1 Then
pred2 = pred1
pred1 = a
End If
a = Rnd * 100:
List1.AddItem Str(a)
If i <> 1 Then
If a < pred1 And pred1 > pred2 Then
k = k + 1
End If
End If
Next i
If a > pred1 Then k = k + 1
End If
Text2 = k
End Sub
Вид рабочей формы с результатом решения 2-ой задачи:
Процедура решения 3-ей задачи:
Private Sub Image5_Click()
Dim n%, k%, i%, kd%, sum&, sd&, p$, f As Boolean
If Option3.Value Then
Text1 = "": Text2 = ""
Label5 = "Кол-во чисел:": Label6 = "Кол-во min чисел:"
Label7 = "Введенные числа:"
Label7.Visible = True
List1.Visible = True: List1.Clear
Label1 = "Найти количество всех min членов последовательности " & _
"с неопределенным числом
i = o: k = 0
Randomize
Do
i = i + 1
n = Rnd * 3 + 1
List1.AddItem Str(n)
If i = 1 Or Min > n Then Min = n: k = 0
If Min = n Then k = k + 1
Loop Until MsgBox("Закончить ввод? ", 36) = vbYes
Text1 = Str(i): Text2 = Str(k)
End If
End Sub
Вид рабочей формы с результатом решения 3-ей задачи:
Процедуры перерисовки
Private Sub Option1_Click()
Image3.Picture = Image1.Picture
Image4.Picture = Image2.Picture
Image5.Picture = Image2.Picture
End Sub
Private Sub Option2_Click()
Image4.Picture = Image1.Picture
Image3.Picture = Image2.Picture
Image5.Picture = Image2.Picture
End Sub
Private Sub Option3_Click()
Image5.Picture = Image1.Picture
Image3.Picture = Image2.Picture
Image4.Picture = Image2.Picture
End Sub
Процедура завершения работы приложения:
Private Sub Command1_Click()
End
End Sub
Как обычно добавляем к проекту форму-заставку frmZ3z. Разработав ее, запускаем приложение на выполнение. Оформляем отчет о выполнении задания.
Описание выполнения Задания 4-1.
Название работы: Задание 4.
Тема задания: “Обработка одномерных и двумерных массивов”.
Цель задания: Освоение типовых алгоритмов обработки массивов и матриц, а также использование этих алгоритмов для решения практических задач в соответствии с индивидуальным заданием. Ознакомление с элементом управления MSFlexGrid.
В этом задании нужно решить 2 задачи.
1. Обработка одномерных массивов:
Дан массив из N целых чисел. Напечатать сумму элементов, стоящих на нечетных местах и сумму элементов кратных 5.
2. Обработка двумерных массивов (матриц):
Дан массив A(M,M) натуральных чисел. Заменить на сумму тех элементов, которые находятся выше и левее его. Первые строка и столбец неизменны.
Решение обеих задач
Открываем новый проект и размещаем на форме метку и 3 командные кнопки. Нам потребуется также элемент MSFlexGrid. Его на панели элементов нет. Чтобы вызвать его на панель элементов управления, нужно выполнить: “Проект\ Компоненты” и в открывшемся окне щелкнуть на значке квадратика, стоящего левее строки “Microsoft FlexGrid Control 6”. Затем щелкнуть в том же окне на “Применить” и “Ok”. После этого пиктограмма элемента появится на панели элементов управления. Размещаем его на форме и изменяем его имя на fg.
Теперь нам нужно разместить поверх элемента MSFlexGrid элемент Frame. Он должен быть такого же размера, как и элемент MSFlexGrid, т.е. должен полностью закрывать собой элемент MSFlexGrid. При прорисовке элемента Frame нужно, чтобы точка начала прорисовки находилась вне элемента MSFlexGrid. На элементе Frame размещаем 3 метки и 1 элемент ListBox, 3 текстовых окна.
Таблица свойств формы и расположенных на ней элементов управления
Объект |
Свойство |
Значение свойства |
Форма |
Name Caption Font |
frmZ4r Обработка одномерных и двумерных массивов Times New Roman, жирный, размер 12 |
Метка |
Name Caption Alignment Font |
Label1 Выводится условие текущей задачи 0-левая привязка Times New Roman, жирный, размер 12 |
Командная кнопка |
Name Caption Font |
Command1 Задача № 1 Times New Roman, обычный, размер 10 |
Командная кнопка |
Name Caption Font |
Command2 Задача № 2 Times New Roman, обычный, размер 10 |
Командная кнопка |
Name Caption Font |
Command3 Выход Times New Roman, обычный, размер 10 |
MSFlexGrid |
Name |
fg |
Фрейм |
Name |
Frame1 |
Метка на контейнере |
Name Caption Alignment Font |
Label2 Исходный массив 2-центровка Times New Roman, жирный, размер 10 |
Метка на контейнере |
Name Caption Alignment Font |
Label3 Результат 2-центровка Times New Roman, жирный, размер 10 |
Список на контейнере |
Name |
List1 |
Текстовое окно |
Name Font |
Text1 Times New Roman, нормальный, размер 12 |
Текстовое окно |
Name Font |
Text2 Times New Roman, нормальный, размер 12 |
Текстовое окно |
Name Font |
Text3 Times New Roman, нормальный, размер |