II. Programozási technológiák

Hasonló dokumentumok
Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

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

Bánsághi Anna

A C# PROGRAMOZÁSI NYELV

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

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

A C# programozási nyelv alapjai

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

OOP #14 (referencia-elv)

Szoftvertechnológia alapjai Java előadások

VB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System

Programozási nyelvek Java

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Objektumorientált programozás C# nyelven

Programozás 2., I. kötet Az objektumorientált paradigma alapjai

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

Eseményvezérelt alkalmazások fejlesztése II 1. előadás. A.NET keretrendszer és a C# programozási nyelv. A.NET keretrendszer Eredete

Java II. I A Java programozási nyelv alapelemei

INFORMATIKAI ALAPISMERETEK

ISA szimulátor objektum-orientált modell (C++)

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

BME MOGI Gépészeti informatika 7.

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Java programozási nyelv 5. rész Osztályok III.

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Bánsághi Anna

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Informatika terméktervezőknek

MUNKAANYAG. Szabó Mária. Programozás - Objektumorientált. gyakorlatban. A követelménymodul megnevezése: Informatikai ismeretek

C++ programozási nyelv Konstruktorok-destruktorok

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven III.

INFORMATIKAI ALAPISMERETEK

Java programozási nyelv 4. rész Osztályok II.

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

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

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

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

C# osztályok. Krizsán Zoltán

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

Java II. I A Java programozási nyelv alapelemei

JAVA PROGRAMOZÁS 2.ELŐADÁS

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

BME MOGI Gépészeti informatika 8.

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Kalapácsvetés 2016 szöveges

A.NET Framework és programozása C# nyelven. Kedd I104

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

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

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

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

117. AA Megoldó Alfréd AA 117.

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

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

OOP: Java 8.Gy: Abstract osztályok, interfészek

Objektumorientált programozás C# nyelven

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

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

Bevezetés. Dr. Iványi Péter

Magas szintű programozási nyelvek 2 Előadás jegyzet

Programozás I. Első ZH segédlet

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

386 processzor címzés

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

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

Objektumorientált programozás C# nyelven

OOP és UML Áttekintés

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

TestLine - OO Programozás alapjai Minta feladatsor

BME MOGI Gépészeti informatika 6.

Szoftvertervezés és -fejlesztés I.

500. AA Megoldó Alfréd AA 500.

Objektumorientált programozás IX. Osztályok, objektumok

Alprogramok, paraméterátadás

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

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

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozás II gyakorlat. 4. Öröklődés

Pénzügyi algoritmusok

Eseményvezérelt alkalmazások fejlesztése II. A.NET keretrendszer és a C# programozási nyelv. Objektumorientált programozási nyelvek A Smalltalk nyelv

Események C#-ban Krizsán Zoltán iit

Bevezetés, a C++ osztályok. Pere László

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Java Programozás 11. Ea: MVC modell

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Imperatív és procedurális programozás a Javában

Programozás C++ -ban 2007/7

.NET Microsoft.Net Framework

Objektumorientált programozás C# nyelven

Stack Vezérlés szerkezet Adat 2.

Algoritmizálás és adatmodellezés tanítása 1. előadás

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Java és web programozás

Átírás:

II. Programozási technológiák 1

II.1 A gépi kódú program Az algoritmuslépések kódja + memória címek. II.2 Programkészítő programok MOV AX,1234h ;0B8h 34h 12h - szám (1234h) az AX reg.-be MUL WORD PTR [5678h] ;0F7h 26h 78h 56h - szor a cím adatával (extra szegmensen) MOV [5678h],AX ;0A3h 78h 56h - AX a címre Forrásnyelvű program Fordító/Interpreter Futtatható program Programozási nyelv generációk Generation of Language 1GL: gépi kód 2GL: assembly (mnemonic) 3GL: magas-szintű procedurális FORTRAN, PASCAL, C 4GL: probléma orientált Funkcionális: LISP (LISt Processing), Logikai: PROLOG (PROgraming LOGics), Adatbázis kezelés: SQL, Objektum-orientált: C++, JAVA. C#, Komponens alapú fejlesztők. 5GL: természetes nyelvek??? 2

II.3. Adatok és programok II.3.1 Adatkezelés Egészek Case sensitive [const readonly] típus_név nev[, ][ = kez_dért] byte / sbyte 0..255 / -128..127 1 byte ushort / short 0..65 535 / -32 768..32 767? 2 byte uint, int 0.. 4 294 967 295 / -2 147 483 648..2 147 483 648.. 4 byte Logikai típus bool false..true true, false 1 byte Lebegőpontos (valós) típus float -3.4 10 38.. 3.4 10 38 4 byte double ±5.0 10 324.. ±1.7 10 308 1.3, 2.1e6, 3.4F, 4.2L 8 byte decimal (-7.9 x 10 28.. 7.9 x 10 28 ) / (10 0.. 28 ) 28, 29 számjegy Betű char A, \n, \t (!!!) 2 byte string Alma n*2byte Felsorolt enum enum szam {egy, ketto, harom //0,1,2 enum ez {a=6,b=11 //0..15 szam.ketto 3

II.3.2 Alap algoritmus elemek II.3.2.1 Rákövetkezés (konkatenáció) int i = 3; int j = 4; int k = i + j; II.3.2.2 Választás (alternáció) if (i > j) { k = i - j; else { k = j - i; II.3.2.3 Ciklus (iteráció) i = 0; k = 0; while (i < 10) { k += i++; p i h p i/h h/i 5

II.4. Alprogramok, függvények típus nev ([paraméterek]) { // függvénytörzs [lokális definíciók, deklarációk] [utasítások] [return [érték]; // ha van] call fv call fv fv return SP nev([param1, param2, ]); i = nev([param1, param2, ]); int main () { 6

II.5. Objektum-osztály Rejtett adatok a középpont koordinátáinak Program Adat Objektum Konstruktor Property - Metódusok a középpont adatainak írására, olvasására Virtuális kerületszámítás Virtuális területszámítás 7

Rejtett adat a sugárra Property - Metódus a sugár írására, olvasására A kör kerületszámítása A kör területszámítása Rejtett adatok az oldalakra Property-k - Metódusok az oldalak írására, olvasására A téglalap kerületszámítása A téglalap területszámítása 8

// II.5.1 Osztály információ struktúra minta // példány adott struktúrájú adathalmaz class Síklap { // Síklap osztály // Belső tárolók // II.5.2 Adatmezők adatok tárolása protected double kx; // A kpont x koordinátájának tárolója protected double ky; // A kpont y koordinátájának tárolója // Nem publikus tulajdonságok // II.5.3 Tagfüggvények, metódusok adatok feldolg // speciális metódusok konstruktor, destruktor public Síklap() { // Konstruktor kx = 0; // Attribútumok ky = 0; // Attribútumok // II.5.4 Attribútumok szabályozott hozzáférés public double ox { // A középpont x koord. get { // Olvasás return kx; set { // Írás kx=value; 9

public double oy { // A középpont y koordinátája get { // Olvasás return ky; set { // Írás ky=value; // II.5.5 Az adatrejtés elve - (private, public, protected) saját, // nyilvános és védett elemek // II.5.6 Sokoldalúság az osztályhierarchiában // korai és késői kötés virtuális és dinamikus függv // absztrakt elemek public virtual double ker() { // Alap kerület return 0; public virtual double ter() { // Alap terület return 0; // A síklap alaposztály 10

// II.5.7 Osztályok hierarchiája egyszeres (és többszörös) öröklődés // Például a körlap class Körlap : Síklap { // Körlap oszt. a siklap leszarm. // Belső tároló private double r; // A sugár tárolója public Körlap() { // Konstruktor kx = 0; // Attribútumok ky = 0; // Attribútumok public double sugar { // A sugár tul. get { // Olvasás return r; set { // Írás r = value; // késői kötés virtuális és dinamikus fv public override double ker() { //A ker. return 2*r*Math.PI; public override double ter() { //A ter. return Math.PI*Math.Pow(r, 2); // Az egyik leszármazott 13

// Például a téglalap class Téglalap : Síklap { // Teglalap osztály a siklap leszarm. // Belső tárolók private double a; private double b; public Téglalap() { // Konstruktor kx = 0; // Attribútumok ky = 0; // Attribútumok public double a_oldal { // Az a_oldal get { // Olvasás return a; public Körlap() { // Konstruktor set { // kx Írás = 0; // Attribútumoka = value; ky = 0; // public Attribútumok double b_oldal { // A b_oldal get { // Olvasás return b; set { // Írás b = value; public override double ker() { //A kerület return 2 * (a + b); public override double ter() { //A terület return a*b; 14

// Példa körlap és téglalap példány // Körlap k = new Körlap(); k.ox = 10; k.oy = 10; Console.Write("A kör sugara="); k.sugar=convert.todouble(console.readline()); Console.WriteLine("A kör kerülete={0,8:f2",k.ker()); Console.WriteLine("A kör területe={0,8:f2",k.ter()); // Téglalap t = new Téglalap(); Console.Write("Az a oldal="); t.ox = 0; t.oy = 0; t.a_oldal = Convert.ToDouble(Console.ReadLine()); Console.Write("A b oldal="); t.b_oldal = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("A téglalap kerülete={0,8:f2", t.ker()); Console.WriteLine("A téglalap területe={0,8:f2", t.ter()); // 17

II.6. A Windows működése eseményvezérelt program Windows Message queue WinMain Message Loop CallBack namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); private void button1_click( object sender, EventArgs e) { Console.Beep(); Case DefWindowProc non pre emptive multitasking 19

II.7 Windows multiprogramozás (preemptive) Rendszer és alkalmazás várakozó sorok Eszközök Nyomtató Lemezek Billentyûzet Egér Üzenetek Várakozó sor Rendszer Alkalmazások Üzenetek 32 bites szál várakozó sor 32 bites szál várakozó sor 32 bites szál várakozó sor elsõdleges 16 bites alk. várakozó sor Időszelet osztás változó prioritásokkal System VM MS-DOS VM MS-DOS VM 32 bites alkalmazások Szál1 pr=4 16 bites alkalmazások Szál3 pr=16 Szál4 pr=20 Szál5 pr=12 Szál2 pr=20 Elsõdleges scheduler 2 4 Idõszelet osztás 20

II.8. Rapid Application Development Environment Komponensalapú fejlesztés: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); private void button1_click(object sender, EventArgs e) { button1.text = "alma"; BackColor = System.Drawing.Color.Red; 21

II.9. Microsoft.Net Célok: Biztonságos programfejlesztés Több (Objektum és komponens orientált) nyelv támogatása Platform-független kialakítás Hálózati megoldások CLI Common Language Infrastructure C# Managed C++ VB.Net JScript J# Stb. CIL Common Web-szolgáltatások Létező műveletek (fájlnyitás) Web/Windows felhasználói felület Adatok, többszintű típusellenőrzésel (XML - extensible Markup Language) Alaposztályok CLR Common Language Runtime (kód futtatás virtuális gépen) Új, csak a CLR műveletek, (szemétgyűjtés) Intermediate Language CTS Common Type Strudcture JIT Just In Time fordító Operációs rendszer 22