Алгоритмизация и программирование процессов обработки данных в среде Visual Basic 6

Автор работы: Пользователь скрыл имя, 18 Марта 2013 в 15:38, курсовая работа

Описание работы

В данной работе изложены 6 заданий.
Название работы: Задание 1.
Тема задания: “Разветвляющиеся вычислительные процессы”.
Цель задания: Освоение методов программирования решения задач, требующих выполнения разных участков алгоритма в зависимости от истинности или ложности некоторого условия. Ознакомление с логическим типом данных, операциями отношений, логическими функциями и формами условного оператора и оператора выбора.

Файлы: 1 файл

курсовой проект.doc

— 655.00 Кб (Скачать файл)

Федеральное управление по образованию

Государственное образовательное  учреждение

Высшего профессионального  образования

«государственный университет управления»

 

 

Институт Государственного и муниципального управления

 

Кафедра Компьютерной подготовки

Специальность: государственное и муниципальное управление

Специализация: государственное и  муниципальное управление

Форма обучения: очная

 

 

КУРСОВОЙ ПРОЕКТ

По дисциплине «Информатика»

Алгоритмизация и программирование процессов обработки данных

в среде 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-ей задачи:

 

             Процедуры перерисовки изображений  на элементах Image:

 

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) натуральных  чисел. Заменить на сумму тех элементов, которые находятся выше и левее  его.  Первые строка и столбец  неизменны.

    

         Решение обеих задач производится  на одной форме. Создаем на дискете папку “Задание_4”, в которой нужно будет сохранить проект с 4-м заданием.

Открываем новый проект и размещаем на форме метку  и 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, нормальный, размер 

Информация о работе Алгоритмизация и программирование процессов обработки данных в среде Visual Basic 6