7

1. Wykonaj formularz o rozmiarach wys.=245, szer.=300, składający się z elementów zaprezentowanych na rysunku obok (8 etykiet, 7 pól tekstowych, 1 listy kombinowanej, 1 ramki i 5 przycisków polecenia). Wszystkie napisy są wykonane czcionką Tahoma (12 pogrubione – tytuł, 10 pogrubione – przyciski polecenia, 10 zwykła – reszta). Przycisk polecenia „Pobierz dane” ma być nieaktywny.

2. Napisz procedurę startową, która załaduje formularz do pamięci, ustawi kursor w pierwszym polu tekstowym, pobierze z Arkusza1, z komórek A2:A7, nazwy związków do listy rozwijanej i wyświetli formularz.

3. Napisz procedurę obsługującą kliknięcie przycisku „Czyść” (czyści pola tekstowe, ustawia kursor w pierwszym polu tekstowym, nie czyści listy kombinowanej, ale powoduje, że pole edycji tej listy jest wyczyszczone, czyni przycisk polecenia „Pobierz dane” nieaktywnym).

4. Napisz procedurę obsługi zdarzenia związanego z kliknięciem przycisku „Zakończ”. Procedura powinna ukrywać formularz przed użytkownikiem i wyładować go z pamięci.

5. Po wybraniu związku z listy kombinowanej następuje aktywacja przycisku polecenia „Pobierz dane”.

Napisz procedurę związaną z kliknięciem przycisku „Pobierz dane”

6. Po kliknięciu tego przycisku polecenia, w arkuszu mają zostać odnalezione i wpisane do odpowiednich pól tekstowych wartości współczynników wielomianu (a, b, c i d) oraz wartość dH0[kJ/*mol*K)] odpowiadające wybranemu na liście kombinowanej związkowi. .

Napisz procedurę związaną z kliknięciem przycisku „dH [kJ/mol]”

7. Program służy do obliczania (wzory do obliczeń - obok) entalpii molowej w podanej temperaturze dla wybranego związku (wybieranego z listy rozwijanej). Kliknięcie przycisku „dH [kJ/mol]” powoduje, że obliczenia są wykonywane, a ich wynik jest wyświetlany w polu tekstowym obok przycisku.

Napisz procedurę związaną z kliknięciem przycisku „Do pliku”

8. Po kliknięciu tego przycisku polecenia nazwa związku i obliczone H kopiowane są do nowo tworzonego pliku tekstowego. Dane mają być rozdzielone średnikami.

Sub start()

Load UserForm1 'ładuje

UserForm1.TextBox1.SetFocus ' kursor

UserForm1.ComboBox1.RowSource = "A2:A7" ' wpisuje dane z arkusza do combo listu

UserForm1.Show 'pokazuje

End Sub

Option Explicit

Private Sub ComboBox1_Change()

If ComboBox1.ListIndex > -1 Then CommandButton1.Enabled = True 'to co odblokowuje jesli coś jest w liście

End Sub

Private Sub CommandButton1_Click() 'to co pobiera dane

Dim wiersz As Byte

While Cells(2 + wiersz, 1) <> "" ' jak cos jest w arkuszu nie puste to pobiera do listy

If Cells(2 + wiersz, 1) = ComboBox1.Value Then 'odpowiednie ciepło do związku

TextBox2 = Cells(2 + wiersz, 2)

TextBox3 = Cells(2 + wiersz, 3)

TextBox4 = Cells(2 + wiersz, 4)

TextBox5 = Cells(2 + wiersz, 5)

TextBox6 = Cells(2 + wiersz, 6)

Exit Sub 'żeby zakończyć mu pętle po 1 serii danych

End If

wiersz = wiersz + 1

Wend

MsgBox ("Nie znaleziono związku chemicznego, masz pecha") 'dla pustych wartości

End Sub

Private Sub CommandButton2_Click() ' do obliczeń dH

Dim a As Double, b As Double, n As Long, wynik As Double, eps As Double, wynik1 As Double

a = 298 ' temperatura standardowa

b = Val(TextBox1) 'temperatura nasza

n = 1000 'ilości podzialow dla eulera

eps = 0.000001 ' to jest ta dokładność

Do ' pętla licząca ta calkę

Call Euler(a, b, n, wynik)

n = 2 * n ' przelicza przedzialy do eurela

Call Euler(a, b, n, wynik1)

Loop Until Abs(wynik - wynik1) < eps

TextBox7 = Val(TextBox2) + wynik ' wyrzuca sumę już dla konkretnej temperatury (txt2-standard, i dodaje to co policzylo)

End Sub

Private Sub CommandButton3_Click() 'to jest to do pliku

Dim nazwa As String, wiersz As String

nazwa = Application.GetSaveAsFilename 'to okno zapisz jako i definiujemy nazwe

Open nazwa For Output As #1 'ten plik o naszej nazwie tylko do zapisu

wiersz = ComboBox1.Value & "; " & TextBox7 ' w wierszu zapisuje związek i wartosc entalpii ze srednikiem

Print #1, wiersz ' zapisz ten wiersz

Close #1 'zamknij ten plik sekwencyjny

End Sub

Private Sub CommandButton4_Click() 'czyszczenie

TextBox1 = ""

TextBox2 = ""

TextBox3 = ""

TextBox4 = ""

TextBox5 = ""

TextBox6 = ""

TextBox7 = ""

CommandButton1.Enabled = False

ComboBox1.ListIndex = -1 'żeby ten warunek listykombo był spelniony

TextBox1.SetFocus

End Sub

Private Sub CommandButton5_Click() 'zamykanie

UserForm1.Hide

Unload UserForm1

End Sub

Private Sub Euler(a As Double, b As Double, n As Long, wynik As Double) 'metoda Eulera

Dim dx As Double, licz As Long, su As Double

dx = (b - a) / n ' obliczamy szerokość podprzedziału

For licz = 1 To n - 1

su = su + f(a + dx * (licz - 1)) ' wyznaczamy sumę wartości funkcji w punktach podziału przedziału całkowania

Next

wynik = dx * (su + (f(a) + f(b)) / 2) ' obliczamy całkę oznaczoną, zgodnie ze wzorem

End Sub

Function f(x As Double) As Double 'funkcja do cp

f = Val(TextBox3) + Val(TextBox4) * x + Val(TextBox5) * x ^ 2 + Val(TextBox6) * x ^ 3

End Function


Wyszukiwarka

Podobne podstrony:
7
7
7
7
STR6 7
Badania na zawartość? 7
str6 7
7
7
7
7
7
7
7
(7)
7
7
7
cw 7?danie ukladow regulacji dwupolozeniowej
7?ch młodego słuchacza generacja Millenium

więcej podobnych podstron