1 BME VEGYÉSZMÉRNÖKI ÉS BIOMÉRNÖKI KAR MESTERSZINTŰ MŰSZERES ANALITIKA KÉMIA SZAKIRÁNYÚ TOVÁBBKÉPZÉSI SZAK INFORMATIKA (SZÁMÍTÁSTECHNIKA) 2010/2011. őszi félév Tanár: Kollárné Dr. Hunek Klára, Szervetlen és Analitikai Kémia Tanszék, Ch. I/9 tárgy honlapja: másolat :
2 Előadás: nov. 15. és h (CH. 305) Gyakorlatok a CH. gépteremben jan Követelmények Az előadásokon kijelölt HF-k határidőre történő beadása A géptermi gyakorlatok gyakorló feladatainak megoldása Az utolsó komplex labor-feladat legalább 40%-os szinten (min. 32p, max 80p.) történő megoldásával megajánlott vizsgajegy szerezhető. A komplex labor-feladattal ill. a kijelölt hf beadásokkal szerzett félévközi pontok alapján a megajánlott vizsgajegyek ponthatárai: 40 – 59 pont: 2 ; 60 – 74 pont: 3 ; 75 – 89 pont: 4 ; 90 ponttól: 5
3 MS Office részei Ezekkel foglalkozunk
4 Előadások: Nov. 15. Az Ms Office részei Az Ms Excel részei: Worksheet, Diagram, Modul, UserForm Cellahivatkozások, munkalap-függvények, Solver A Visual Basic for Excel alapjai,, értékadás,,, típusok HF: A 2. programtípus létrehozása a feladatlap szerint. Solver Nov. 22. Ciklusok. Alprogramok: Function, paraméteres Sub Access alapok. HF: Ciklusok. Access lekérdezés és jelentés készítése Géptermi gyakorlatok (Excel, VB for Excel): Fájlból olvasás, tömbök Makrók rögzítése VB Function és paraméteres Sub UserForm megtervezése, létrehozása, alkalmazása Komplex feladat megoldása
5 Az Ms Excel részei: Worksheet (Munkalap) Diagram (Ábra-lap) Modul (Modul-lap) UserForm (Űrlap)
6 Egy kis Excel emlékeztető 1. Excel alapjai: Cellák típusa, szegély, háttérszín Munkalap létrehozása, átnevezése Adatfájl betöltése, tizedesvessző! Grafikon készítése Pont XY ( Grafikon !) 2. Írjuk be egy Excel munkalapba az itt látható táblázat oszlop-címeit, valamint a B2, E1, E2, F1, F2 cellák tartalmát. Ezután töltsük ki az A oszlopot, majd a B és C oszlopokat a következő formulák „lehúzásával”: b3= b2+(a3-a2)*4*cos(5*a3) c2= $f$1*sin($f$2*a2)/5 - “ Változtassuk a ill. b értékét 2,3 ill. 5,8-ra
7 - Minimalizáljuk Soverrel a D17 cella értékét, az F1 és F2 cellák értékét változtatva. Kérjünk Eredmény jelentést! Solver Mivel a C oszlop a c2= $f$1*sin($f$2*a2)/5 formula „lehúzásával” készült, minden cellája, s ezeken keresztül a D oszlop celláinak értékei is függenek az F1 és F2 cellák értékeitől.
8 Ha a Solver-t nem látja az Eszközök között, kapcsolja be a Bővítménykezelő-ben!
9 Egyenletrendszer megoldása Solverrel
10 ProgramozásProgramozás a program az utasításokat sorban hajtja végre, kivéve….(ld. később) pontosan olyan, mintha egy könyvet olvasnánk, amiben le van írva, hogy sorjában mit kell tennünk éppen most, beleértve, hogy hova lapozzunk a következő teendő elolvasásához kicsit „kínai”, de meg lehet szokni sokféle kínai van, de ha egyet ismer az ember, az nagyon segít a többi felismerésében a programozás filozófiáját érdemes megtanulni
11 Egy „programocska” A VBA program: Amit a program kiír A blokkdiagram: Start Kiír: „x” „x köbe” x=2 kiír: x, x 3 x=x+1 x<=8 ? igen nem Stop
12 Egy „programocska” Sub ( ) End Sub VBA program felépítése: Amit a program kiír A deklaráció a változók típusát adja meg: Ha pl. a és b számok, és értékük 1 ill. 2, akkor a+b kifejezés értéke 3 lesz. De ha a és b típusa string, és értékük „1” ill. „2”, akkor a+b értéke „12” lesz.
13 VáltozókVáltozók változókA program az adatokat változókban tárolja papírfecnik (pl. kis papírfecnik, amikre számokat/betűket írunk) axpl. ha a=2, akkor x=a^3-15 = -7 byvagy, pl. ha b=8, akkor y=3*b/2 = 12 a, b,változóta számítógép az a, b, vagy bármely más változót mindig az értékével helyettesíti akkor is, ha nem adtunk neki értéket, csak akkor nem tudjuk, milyen értékkel…
14 A számítógép szempontjából fontos a változó típusa a műveletek miatt –egész : integer –tört: single, double –szöveg: string xxxpl. ha x egész és x=5/2, akkor 2 lesz x értéke yyypl. ha y tört és y=5/2, akkor 2.5 lesz y értéke de pl. „nótás”/2 nem lesz „félnótás”… VáltozókVáltozók
15 MűveletekMűveletek Matematikai alapműveletek x=1+2 y=18-2*x x=y/24 String műveletek ha s=„osztogat”, akkor s=„f”+s után s=„fosztogat” Kiiratás cells(1,1)=„Sziasztok!!” Adatbeolvasás cellából A=cells(1,1)
16 Deklarációk: Sub () Dim k As Integer, n% Dim cim As String, nevem$ Dim a As Double, b # cim=“mi ez?” : nevem=“Jancsi” k=3 : n=k-15 a=atn(1) b=cos(4*a)+2.5 End Sub Adatbevitel: x = Inputbox(“x?”) y = Inputbox(“y értéke”) Adatbevitel és konverzió: x = CDbl(Inputbox(“x?”)) y = CInt(Inputbox(“y értéke”)) Visual Basic for Excel – elméleti összefoglaló
17 A korábbi Excel feladat VBA programmal 1. Korábban beírtuk egy Excel munkalapba az itt látható táblázat oszlop-címeit, valamint a B2, E1, E2, F1, F2 cellák tartalmát. Ezután kitölttöttük az A oszlopot, majd a B és C oszlopokat a következő formulák „lehúzásával”: b3= b2+(a3-a2)*4*cos(5*a3) c2= $f$1*sin($f$2*a2)/5 - “ 2. Új feladat: Az Excel munkalap A oszlopát átmásoltuk egy másik munkalapra. Ezután megnyitottuk a Visual Basic Editort (Eszközök Makrók VB Editor), és beszúrtunk egy modul-lapot, ahová beírtuk a programot: Sub elso() Dim x As Double, k As Integer Dim a#, b# Cells(1, 2) = "f": Cells(1, 3) = "fc" k = 2: Cells(k, 2) = 0 x = Cells(k, 1) a = InputBox("a?", "itt vagyok", 2) b = InputBox("Add meg b értékét",, 6) Cells(k, 3) = a * Sin(b * x) / 5 vissza: k = k + 1 x = Cells(k, 1) Cells(k, 2) = Cells(k - 1, 2) + (x - Cells(k - 1, 1)) * 4 * Cos(5 * x) Cells(k, 3) = a * Sin(b * x) / 5 If k < 16 Then GoTo vissza Cells(17, 1) = "itt a vége" End Sub
18 Figyelem! Ha az Excel biztonsági szintje a makróvédelem szempontjából megfelelően van beállítva, makrót tartalmazó fájl megnyitásakor a következő figyelmeztetés jelenik meg: Amennyiben nem ez figyelmeztetés jelenik meg, vagy egyáltalán nem jelenik meg figyelmeztetés, állítsa be a megfelelő biztonsági szintet: Eszközök Beállítások Biztonság Makróvédelem Közepes
19 1.Készítse el az itt megadott táblázat “A” oszlopát „lehúzással”, valamint töltse ki a táblázat fejlécét, a B2 cellát és az “E” és “F” oszlopok első két sorát. 2.Töltse ki a táblázat második és harmadik oszlopait az alábbi formulák “lehúzásával”: b3=b2+(a3-a2)*5*sin(4*a3) c2= $f$2*(1-cos($f$1*a2))/2 Elküldendő nov. 20-ig:.xls fájl a címre 1.HF 4.Változtassa meg az F1 ill. F2 cellák értékét 4,5 ill. 2,5, majd 4,3 ill. 2,4 értékekre 5.A „D” oszlopot töltse ki a d2=(c2-b2)^2 formula „lehúzásával”, a D16 cellába kerüljön a fölötte levő számok összege. Minimalizálja a D16 cella értékét Solver használatával! Kérjen Eredmény jelentést! 6.Az „A” oszlopot másolja át egy másik Excel munkalapra. Írjon VBA programot a munkalap „B” és „C” oszlopának kitöltésére úgy, hogy az 1. és 2. feladat szerinti értékek kerüljenek a megfelelő cellákba! F1 és F2 cellákba ne írjon számot, helyettük c és k változókat használjon! A 16. sor 1. cellájába írja ki saját nevét! Tárgy honlapja: knight.kit.bme.hu/szakmern másolat: 3.Készítse el a táblázat első 3 oszlopából az itt látható diagramot.