Mérési adatgyűjtés és adatfeldolgozás. BME TTK Fizika Tanszék 2013/2014 tavaszi félév Copyright Geresdi Attila, Halbritter András

Hasonló dokumentumok
Számítógépes mérésvezérlés

Fizika Laboratórium KF 2011/2012 őszi félév. BME TTK Fizika Tanszék

Mérési adatgyűjtés és adatfeldolgozás 2. előadás

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

A C# PROGRAMOZÁSI NYELV

Informatika terméktervezőknek

A C# programozási nyelv alapjai

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

Access adatbázis elérése OLE DB-n keresztül

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás Szükséges névterek Attribútumok. 1.3.

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Johanyák Zsolt Csaba: Grafikus felület programozása. Copyright 2008 Johanyák Zsolt Csaba

BME MOGI Gépészeti informatika 1.

BME MOGI Gépészeti informatika 13.

BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = +

BME MOGI Gépészeti informatika 6.

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

A szerzõrõl... xi Bevezetés... xiii

BME MOGI Gépészeti informatika 7.

C# gyorstalpaló. Készítette: Major Péter

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

Vizuális, eseményvezérelt programozás I.

Objektumorientált Programozás III.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

C#, OOP. Osztályok tervezése C#-ban

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor

Bánsághi Anna 2014 Bánsághi Anna 1 of 35

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

AWK programozás, minták, vezérlési szerkezetek

Objektumorientált programozás C# nyelven

Szoftvertechnológia alapjai Java előadások

Programozás I. Első ZH segédlet

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

BME MOGI Gépészeti informatika 5.

Segítség a megoldáshoz: 1. Készítse el a Window-t az ábrának és az osztálydiagramnak megfelelően.

Objektum Orientált Programozás IV.

Java II. I A Java programozási nyelv alapelemei

C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán

Java II. I A Java programozási nyelv alapelemei

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Szoftvertervezés és -fejlesztés I.

Pénzügyi algoritmusok

Objektumorientált Programozás IV.

II. Programozási technológiák

A C programozási nyelv II. Utasítások. A függvény.

Programozási nyelvek II.: JAVA

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

BME MOGI Gépészeti informatika 4.

Programozási nyelvek II.: JAVA

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Eseményvezérelt alkalmazások

Programozási nyelvek JAVA EA+GY 1. gyakolat

components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem

Ugráló gomb oktatási segédlet Ugráló gomb

Programozás 2., II. kötet Windows form alkalmazások

Programozás II. 2. Dr. Iványi Péter

Bánsághi Anna 2015 Bánsághi Anna 1 of 31

Objektumorientált programozás C# nyelven

INFORMATIKAI ALAPISMERETEK

Kalapácsvetés 2016 szöveges

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

AWK programozás, minták, vezérlési szerkezetek

Programozás BMEKOKAA146. Dr. Bécsi Tamás 10. Előadás

2018, Funkcionális programozás

GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>();

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

BME MOGI Gépészeti informatika 14.

Programozási nyelvek Java

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

PROGRAMOZÁS ALAPFELADATOK

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

C# 6 - a Gyakorlat Windows Form alkalmazások

Programozási nyelvek II.: JAVA, 4. gyakorlat

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

BME MOGI Gépészeti informatika 8.

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész

A Java nyelv. Dialógus ablakok. Elek Tibor

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

A C programozási nyelv I. Bevezetés

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Széchenyi István Egyetem

3. Gyakorlat Ismerkedés a Java nyelvvel

Segédanyag: Java alkalmazások gyakorlat

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

I. fejezet Hello Világ! Programozás tankönyv. II. Fejezet. Helló Világ! avagy a Miért?-ek elkezdődnek

Maximum kiválasztás tömbben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Átírás:

Mérési adatgyűjtés és adatfeldolgozás BME TTK Fizika Tanszék 2013/2014 tavaszi félév Copyright 2008-2009 Geresdi Attila, Halbritter András

Tartalom Alapok Objektumorientált programozás koncepciója Mérésvezérlés számítógéppel Adatok feldolgozása, ábrázolása Programozási feladatok Visual Studio 2005 környezetben Grafikus felület fejlesztése Soros porti műszer programozása Kommunikáció a műszerrel Adatok grafikus megjelenítése Összetett mérésvezérlési és -kiértékelési feladat önálló megoldása Digitális multiméter használata Mérőkártya programozása USB porton

Honlap Információk http://fizipedia.bme.hu/index.php?title=mérési_adatgyűjtés_és_feldolgozás Visual Studio 2005 Beszerzés egyetemi hálózatról: ftp://szoftver.eik.bme.hu/microsoftcampus/regi_verziok/visualstudio/visualstudio2005/ (javasolt: *files.zip, ne *image.zip) Segítség az egyetemi hálózat eléréséhez kívülről: http://www.hszk.bme.hu/mittegyek.html#bmevpnproxy John Sharp: Microsoft Visual C# 2008 Tutorial: http://www.tutorialspoint.com/csharp/index.htm

Tárgykövetelmények Jelenléti követelmények: A félévközi jegy megszerzésének szükséges feltétele az összes laborgyakorlat teljesítése. Félévközi számonkérések: A laboratóriumi gyakorlatok elvégzése előzetes önálló felkészülést igényel. A gyakorlatok elején a hallgatók felkészültségét rövid írásbeli számonkéréssel ellenőrizzük. Osztályzat: ZH 20 pont + jegyzőkönyv 100 pont 40% alatt elégtelen (1) 40% és 55% között elégséges (2) 55% és 70% között közepes (3) 70% és 85% között jó (4) 85% felett jeles (5) Amennyiben egy leadott jegyzőkönyv, program vagy írásbeli dolgozat vagy ezeknek egy része bizonyíthatóan nem önálló munka eredménye, akkor azt automatikusan - a másolás mértékétől függetlenül - az adott munkára adható maximális pontszám mínusz egyszeresével értékeljük!

Számítógépes mérésvezérlés Feladatok: automatizált mérés, adatgyűjtés valósidejű kiértékelés Eszközök: Mérőműszer: valamilyen fizika mennyiség mérésére; Számítógép: adatok gyűjtése, megjelenítése, feldolgozása

Számítógépes mérésvezérlés Feladatok: automatizált mérés, adatgyűjtés valósidejű kiértékelés Eszközök: Mérőműszer: valamilyen fizika mennyiség mérésére; Számítógép: adatok gyűjtése, megjelenítése, feldolgozása

Számítógépes mérésvezérlés Feladatok: automatizált mérés, adatgyűjtés valósidejű kiértékelés Eszközök: Mérőműszer: valamilyen fizika mennyiség mérésére; Számítógép: adatok gyűjtése, megjelenítése, feldolgozása Kommunikáció: szabványos csatolófelületek: - RS-232 - USB - LPT - GPIB

Objektumorientált programozás - alapok Mi is az az objektum? A program olyan egysége, ami kommunikál a többi objektummal: üzeneteket kap, adatokat dolgoz fel, üzeneteket küld. Forrás: Wikipédia Mérésvezérlés: - gyors fejlesztés - modularitás - eseményvezérelt működés

Objektumorientált programozás - Példa: rajzolóprogram alapok Osztály Alakzat Property: color Method: draw Event: onclick téglalap Property: a, b kör Property: r... - gyors fejlesztés - modularitás - eseményvezérelt működés

C# Objektumorientált, eseményvezérelt, általános, programnyelv.net Framework CLR Common Language Runtime Class Library MONO (LINUX)

Objektumorientált programozás - alapok Mi is az az objektum? A program olyan egysége, ami kommunikál a többi objektummal: üzeneteket kap, adatokat dolgoz fel, üzeneteket küld. Példa: véletlenszám generálása: Forrás: Wikipédia Class: az objektum típusa Random rand01; rand01 = new Random(); Az egyedi objektum Constructor: az objektum létrehozása Double FloatRandomNumber = rand01.nextdouble(); Int32 IntRandomNumber = rand01.next(maxrandomnumber); Method: visszaadja a következő véletlenszámot.

Objektumorientált programozás Visual Studio 2005

Objektumorientált programozás Visual Studio 2005

Objektumorientált programozás Hello World! program: Visual Studio 2005 namespace proba public partial class Form1 : Form public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) StartButton.Text = "Start!"; private void StartButton_Click(object sender, EventArgs e) MessageBox.Show("Hello World!");

Objektumorientált programozás Visual Studio 2005 event Hello World! program: namespace namespace proba public partial class Form1 : Form public Form1() function InitializeComponent(); private void Form1_Load(object sender, EventArgs e) StartButton.Text = "Start!"; property private void StartButton_Click(object sender, EventArgs e) MessageBox.Show("Hello World!"); method

Objektumorientált programozás - alapok Mi is az az objektum? A program olyan egysége, ami kommunikál a többi objektummal: üzeneteket kap, adatokat dolgoz fel, üzeneteket küld. Forrás: Wikipédia Mérésvezérlés: - gyors fejlesztés - modularitás - eseményvezérelt működés

Objektumorientált programozás - alapok Mi is az az objektum? A program olyan egysége, ami kommunikál a többi objektummal: üzeneteket kap, adatokat dolgoz fel, üzeneteket küld. Példa: véletlenszám generálása: Forrás: Wikipédia Class: az objektum típusa Random Rand01; Rand01 = new Random(); Az egyedi objektum Constructor: az objektum létrehozása Double FloatRandomNumber = Rand01.NextDouble(); Int32 IntRandomNumber = Rand01.Next(MaxRandomNumber); Method: visszaadja a következő véletlenszámot.

Objektumorientált programozás - alapok Mi is az az objektum? A program olyan egysége, ami kommunikál a többi objektummal: üzeneteket kap, adatokat dolgoz fel, üzeneteket küld. Példa: nyomógomb: Forrás: Wikipédia Property: a StartButton objektum egyik tulajdonsága StartButton.Text= Start! private void StartButton_Click(object sender, EventArgs e) Event: a StartButtonhoz kötődő esemény bekövetkezésekor fut le

Objektumorientált programozás - alapok Mi is az az objektum? A program olyan egysége, ami kommunikál a többi objektummal: üzeneteket kap, adatokat dolgoz fel, üzeneteket küld. Forrás: Wikipédia Összefoglalás: - Class: az objektum típusa; - Object: az egyedi objektum; - Method: az objektumra jellemző képesség; - Property: az objektum egyik tulajdonsága; - Event: az objektumhoz kötődő esemény.

Objektumok Button: using System.Windows.Forms; Properties Name Az objektum azonosítója Text A gomb felirata Methods Hide Elrejti a gombot Show Megmutatja a gombot Events Click Kattintáshoz tartozó esemény

Objektumok Form: using System.Windows.Forms; Properties Name Az objektum azonosítója Text A Form fejléce Methods Show Megnyitja a Formot Close Bezárja a Formot Events Load Close A Form megjelenésekor fut le A Form bezárásakor fut le

Objektumok TextBox: using System.Windows.Forms; Properties Name Az objektum azonosítója Text A szövegdoboz tartalma Methods Hide Elrejti a szövegdobozt Show Megmutatja a szövegdobozt Events TextChanged Click A szövegdoboz tartalmának változásakor fut le A szövegdobozra kattintáskor fut le

Objektumok Label: using System.Windows.Forms; Properties Name Az objektum azonosítója Text A címke tartalma Methods Hide Elrejti a címkét Show Megmutatja a címkét Events VisibleChanged Click A címke elrejtésekor/megjelenésekor fut le A címkére kattintáskor fut le

Objektumok StreamWriter, StreamReader: using System.IO; Constructor StreamWriter FileWriter = new StreamWriter( File Neve ); StreamReader FileReader = new StreamReader( File Neve ); Methods Write( Text ) Szöveget ír a megnyitott file-ba WriteLine( Text ) Szöveget ír és új sort kezd Read() Beolvassa a következő karaktert ReadLine() Egy egész sort olvas be Close() Bezárja a file-t Properties EndOfStream Jelzi, ha elértük a file végét

Objektumok OpenFileDialog, SaveFileDialog : using System.Windows.Forms; Methods ShowDialog() Reset() Properties FileName Title InitialDirectory DefaultExt Megnyitja az ablakot Törli az objektum beállításait A kiválasztott file elérési útja Az ablak fejléce Alapértelmezett elérési út Alapértelmezett kiterjesztés

Objektumok StreamReader példa: using System.IO;... StreamReader reader = new StreamReader("filename.txt"); string line; while ((line = reader.readline())!= null) TextBox1.AppendText(line); reader.close();

Objektumok StreamWriter, SaveFileDialog példa using System.IO;... // a SaveFileDialog objektum létrehozva a designer-ben, vagy: // SaveFileDialog sfdialog = new SaveFileDialog();... if(sfdialog.showdialog() == DialogResult.OK) StreamWriter writer = new StreamWriter(sfDialog.FileName); writer.writeline("your text"); writer.close();

C# alapok Deklaráció: int i; Inicializáció: i = 5; Egyszerre: double j=1.5; Int32 int, Int64 long Tömbök: double[] data = new double[16]; data[0]=1.5; data[15]=2.3;

C# alapok Függvények: private Int32 Function(arglist)... Függvényhívás: Int32 x = Function(arglist); private: csak az adott osztályon belülről érhető el public: kívülről is elérhető Típuskonverzió: x = Convert.ToDouble(Object); string = Convert.ToString(Object); i = Convert.ToInt(Object);... Overloading! Stringek: string Text = Hello ; int length = Text.Length; string Part = Text.Substring(start, hossz); int index = Text.IndexOf(char); Text = Object.ToString( Format );

string manipuláció string Text = alma ; string hossza: int length = Text.Length; C# alapok Trim(): eltávolítja a white space-t a string elejéről és végéről (tovább paraméterezhető) TrimStart(), TrimEnd(): hasonlóan, de csak a string elejéről vagy végéről newtext = Text.Trim(); // alma newtext = Text.TrimStart(); // alma newtext = Text.TrimEnd(); // alma Substring(): // Text.Substring(start,length); newtext = Text.Substring(0,4) // al Split(): string text = 6+3; string [] numbers = text.split('+'); // numbers[0] = 6 // numbers[1] = 3

C# alapok string manipuláció IndexOf(): a keresett karakter indexét adja vissza (ha nincs találat, -1-et) int index = Text.IndexOf( m ); // index=4 ToString(): // Text = Object.ToString( Format ); double szam = 5.0133; Text = szam.tostring( 0.00 ); // fix 2 tizedesjegy, 5.01

C# alapok Karakterek: char c= g ; c=(char)103; //ASCII g karakter string Text=c.ToString(); char[] Text2=Text.ToCharArray(); //string->karakterlánc Text2[0]=c; //karakterlánc feltöltése Speciális karakterek: char c; c= \t ; c= \n ; c= \r ; c= \\ ; c= \ ; c= \ ; //Tabulátor //új sor //Carriage return //Backslash //Idézőjel //Dupla idézőjel

C# alapok if elágazás: int seconds = 0; int minutes = 0;... if (seconds == 59) seconds = 0; minutes++; else seconds++; Másik példa: if (day == 0) dayname = Sunday ; else if (day == 1) dayname = Monday ;... else if (day == 6) dayname = Saturday ; else dayname = unknown ; switch elágazás : switch (day) case 0 : dayname = Sunday ; break; case 1 : dayname = Monday ; break; case 2 : dayname = Tuesday ; break;... default : dayname = Unknown ; break; Csak beépített adattípusokra (pl. int, string) A felvett értéket konstanshoz kell hasonlítani

C# alapok while ciklus: int i = 0; while (i < 10) MessageBox.Show(i.ToString()); i++; do ciklus: int i = 0; do MessageBox.Show(i.ToString()); i++; while (i < 10); for ciklus: for (int i = 0; i < 10; i++) Console.WriteLine(i); Példa több inicializációra: for (int i = 0, j = 10; i <= j; i++, j--)...

C# alapok Math osztály Matematikai függvények: Math.Cos(rad): koszinusz függvény Math.Sin(rad): szinusz függvény Math.Min(szám1, szám2): a kisebbik számot adja vissza Math.Abs(szám): abszolútérték függvény Math.Pow(alap, kitevő): hatványfüggvény Math.Exp(x): e x Math.Round(szám, tizedesjegyek): kerekítés Math.Sqrt(szám): négyzetgyökvonás... Beépített állandók: Math.PI: π Math.E: e

C# alapok Buktatók 1. Egész számok osztása: double d; d = 4/5; // d = 0 d = (double) 4/5; // d = 0.8 2. A Convert.ToDouble() érzékeny a Windows területi beállításaira (tizedes elválasztójel). 3. Két darab, közvetlenül egymás után konstruált Random objektum ugyanazt az álvéletlen számsorozatot fogja szolgáltatni. 4. Textbox.Textchanged() lefut már egyetlen karakter begépelése után. 5. Összetett objektumok nem konvertálhatók, pl. Convert.ToDouble(TextBox1). Helyesen: TextBox1.Text. 6. A SubString() metódus argumentumában nem a kezdő- és végindex, hanem a kezdőindex és a hossz szerepel.

Hibakeresés (debugging) Debug QuickWatch: kifejezések kiértékelése objektumok manipulálása breakpoint Változó nyomon követése: debug módban jobb klikk a változóra > Add watch

Változók hatásköre (scope-ja) namespace helloworld az osztályon belül minden függvényből elérhető public partial class Form1 : Form string globaltext = "Hello World!"; public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) MessageBox.Show(globalText); private void button1_click(object sender, EventArgs e) string text = "Message"; MessageBox.Show(text); csak a button1_click() függvényből érhető el

Listák C#-ban: <list> Listák: a C# dinamikus tömbjei Példa: egész számokból álló lista List<int> szamlista = new List<int>(); szamlista.add(20); szamlista.add(30); szamlista.add(50); szamlista.add(70); int hossz = szamlista.count; // hossz = 4 int elem = szamlista[2]; // elem = 50 szamlista.removeat(3); További metódusok: Clear(), Find(), Sort()

Gyakorló feladatok 1. Módosítsuk a Hello World! programot úgy, hogy gombnyomásra egy TextBox szövegét írja ki a MessageBox! 2. Írjuk ki valamely tulajdonságát a StartButton-nak a gomb lenyomásának hatására (pl.: Text, Font, TextAlign...) 3. Kérjünk be két számot plusz jellel elválasztva TextBoxba, majd írjuk ki az eredményt egy másik TextBoxba! 4. Írjuk ki az egész számokat 1-től 100-ig, vesszővel elválasztva egy file-ba felhasználva egy SaveFileDialog objektumot! 5. Az XY_data.txt file összetartozó [X,Y] adatokat tartalmaz. Olvassuk be a tartalmát és számoljuk ki külön-külön az X és Y adatok átlagát és szórását! Használjuk az OpenFileDialog objektumot! A szórás számítása: