Вівторок, 23.04.2024
Творча лабораторія

Навчальні посібники та робочі зошити з інформатики - якісно і дешево


Меню сайту
Реклама
Категорії каталогу
MS Visual C++ 2005 Express Edition [3]
Середовища програмування [8]
Особливості встановлення та використання різних середовищ програмування
MS Visual Basic 6 [1]
Microsoft Visual Basic
C# [8]
Програмування мовою C#
C++ [3]
Паскаль [5]
ЛОГО [1]
Олімпіадне програмування [0]
Python [1]
Головна » Статті » Програмування » MS Visual Basic 6

Навчальний проект "Розв'язування трикутників" (MS Visual Basic 6)

Нові статті

[19.02.2020] [C#]
Задача про розрізання квадрата (ООП, C#)
[09.02.2020] [Python]
Задача про розрізання квадрата (ООП, Python)
[06.02.2020] [Паскаль]
Задача про розрізання квадрата (ООП, Free Pascal)

Встановлення Dev-C++

Пилипчук О.П., вчитель інформатики Гаврилівської ЗОШ І-ІІІ ступенів Теофіпольського району Хмельницької області

Навчальний проект "Розв'язування трикутників" (MS Visual Basic 6)

Пропонований проект демонструє, що навіть початківець з мінімальними навичками програмування у сучасних візуальних середовищах може розробляти досить ефектні програми. Для реалізації потрібно вміти:
  • встановлювати на форму і змінювати деякі властивості (розміри, розміщення, підпис Caption) форми, кнопок, текстових полів і написів;
  • використовувати оператор присвоєння;
  • записувати математичні вирази.
Після виконання проекту можна:
  • навчитись створювати проекти, що включають декілька вікон;
  • зрозуміти різницю між звичайним і модальним режимами відкривання вікна;
  • навчитись  забезпечувати при виконанні програми відкривання вікон в різних режимах.

Задача

Розробити програму для розв'язування трикутників різних видів (тобто, для знаходження невідомих елементів трикутника за певним набором відомих елементів).

Опис роботи програми

1. Головне вікно програми після запуску має такий вигляд:



2. Після клацання кнопки з вибраним типом трикутника відкривається головне вікно стає недоступним, натомість відкривається інше вікно, наприклад, таке (для прямокутного трикутника):



При закриванні цього вікна знову стає доступним головне вікно. Такий режим відкривання діалогового вікна називається модальним.

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



4. Після введення даних і клацання кнопки "=" з'являються написи з результатами:



5. При спробі змінити після обчислення дані в текстових полях, результати попереднього обчислення мають зникати.

Послідовність виконання

1)    Створити проект за шаблоном Стандартний EXE.

2)    На головній формі розмістити кнопки та написи так, як показано на малюнку вище. Налаштувати властивості форми (розміри, заголовок Caption).

3)    Додати до проекту ще одну форму. Для цього на панелі інструментів клацнути кнопку Додати форму (див. малюнок):



Нехай це буде форма для уточнення елементів прямокутного трикутника, як на малюнку вище. Розмістіть на ній кнопки Два катети, Катет і гіпотенуза, Гіпотенуза і гострий кут та напис "Які елементи відомі?".

4)    Додайте до проекту ще одну форму і розмістіть на ній елементи для ведення діалогу: 2 текстові поля TextBox, кнопку CommandButton і 6 написів Label:



В нижній половині малюнка - три написи (елемент Label), в яких замість тексту (властивість Caption) вписані зірочки.

5)    А зараз налаштуємо роботу програми так, щоб вікна відкривались у потрібній послідовності. Перейдіть до вікна з макетом головної форми. Це можна швидко зробити, клацнувши її ім'я Form1 у Провіднику проекту:



6)    При клацанні на кнопці Прямокутний має відкриватись друга форма Form2. Двічі клацніть згадану кнопку і ви побачите шаблон процедури-обробника подіїї: два рядочки тексту, між якими блимає курсор. Додайте між ними лише один рядок з командою Form2.Show (1):

Private Sub Command1_Click()
Form2.Show (1)
End Sub


Таким чином, кнопка спричинятиме виклик методу Show для об'єкту Form2, тобто для другої форми. А метод  Show якраз і призначений для відображення форми на екрані. В дужка вказаний параметр 1, який означає, що форма Form2 буде відкрита як модальне вікно: доки користувач її не закриє, форма, з якої відбувся виклик буде недоступною. Якщо ж цей параметр зробити рівним 0, то друга форма відкриється у звичайному режимі. Таким самим буде результат виклику методу без параметру:  Form2.Show

7)    Зрозуміло, що кнопка Гіпотенуза і гострий кут відкриє в модальному режимі третю форму, якщо її обробник зробити таким:

Private Sub Command3_Click()
Form3.Show (1)
End Sub


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

8)    Залишилось забезпечити функціонування елементів третьої форми, які мають забезпечувати діалог з користувачем і обчислення. Двічі клацніть на кнопці "=" і допишіть у програмний код такі рядки (крім виділених курсивом, які з'являться самі :):

Dim a, k1, k2, G, S, P As Double
Const pi = 3.141592
Private Sub Command1_Click()
G = Val(Text1.Text)
a = Val(Text2.Text)
k1 = Round(G * Sin(a * pi / 180), 4)
k2 = Round(G * Cos(a * pi / 180), 4)
Label4.Caption = "Довжини катетів: " + Str(k1) + " та " + Str(k2)
Label5.Caption = "Периметр: " + Str(G + k1 + k2)
Label6.Caption = "Площа: " + Str(k1 * k2 / 2)
End Sub


Розглянемо їх детальніше.

Dim a, k1, k2, G, S, P As Double
Const pi = 3.141592

- тут описуються 6 змінних з іменами a, k1, k2, G, S, P дійсного типу (Double) та вводиться константа для числа пі (воно знадобиться для переведення кута з градусної міри в радіанну).

G = Val(Text1.Text)

- змінна G (гіпотенуза) отримує своє значення з текстового поля Text1. При цьому функція Val перетворює текстове значення властивості Text у число. Подібним чином отримує значення змінна a (кут альфа:).

k1 = Round(G * Sin(a * pi / 180), 4)

- змінна k1 (катет 1) набуває значення, отриманого при обчисленні виразу. Функція Round округлює це значення до 4-ї цифри після коми. А якраз на місці аргументу функції Sin записаний вираз для переведення кута в радіанну міру. Подібним чином отримує значення змінна k2 (другий катет).

Label4.Caption = "Довжини катетів: " + Str(k1) + " та " + Str(k2)
Label5.Caption = "Периметр: " + Str(G + k1 + k2)

- нарешті - виведення результатів. Значення змінних ( k1,k2) і навіть виразів ( G + k1 + k2) функція Str перетворює на текстові рядки, які, після з'єднання з пояснювальним текстом (знак "+"), виводяться на відповідні елементи Label (властивість Caption).

9)    За умовою, результати обчислень мають зникати, якщо користувач змінить текст у текстових полях. Двічі клацнувши одне з текстових полів, допишіть обробник події, щоб він став таким:

Private Sub Text2_Change()
Label4.Caption = "*"
Label5.Caption = "*"
Label6.Caption = "*"
End Sub

Оскільки це - обробник події Зміна ( Change), то він якраз і буде викликаний тоді, коли зміниться текст. А в ньому написано, що кожен з написів, на яких виведені результати, змінить значення властивості Заголовок (Caption) на скромну зірочку. Звичайно, такий самий обробник слід створити й для другого текстового поля.

10)    Нарешті - запуск діючої програми! Звичайно, якщо в текст не "вскочила" помилка. Оскільки форми створені не для всіх видів обчислень, то й функціональність проекту "трохи" обмежена. На головній формі діє кнопка Прямокутний, на другій формі - кнопка За гіпотенузою й гострим кутом, а відрите нею діалогове вікно виконує свої функції. Доки користувач з ним працює, інші вікна недоступні.

Завдання

  1. Доповніть проект діалоговими вікнами, що відкриваються кнопками Два катети і Катет і гіпотенуза.
  2. Налаштуйте функціонування кнопок РівнобедренийРівносторонній та  Довільний головної форми.

Интернет реклама
Категорія: MS Visual Basic 6 | Додав: teachlab (31.08.2008)
Переглядів: 5764 | Рейтинг: 5.0/2
Всього коментарів: 0
Додавати коментарі можуть тільки зареєстровані користувачі.
[ Реєстрація | Вхід ]
Форма входу
Пошук
Друзі сайту

Підтримка

Система Orphus

Маєте свій сайт?
Заробіть на ньому грошей!


Не маєте власного сайту?
Заробіть на обміні файлами!
Статистика
Copyright Пилипчук О.П. © 2024
div id=