Gépinfó EA 67-90

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

Függvények, Metódusok

Console.WriteLine(a1 + a2);
a3 = Console.ReadLine();
a4 = Math.Pow(a1,0.5);
a5 = Math.Round(g,0); def break_all():
a6 = Math.PI; for j in range(1, 5):
for i in range(1,4):
if i*j == 6:
static int osszead(int x, int y) return(i)
{return x + y;} print(i*j)

static void var()


{Console.ReadLine();}

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 67


Függvények

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 68


Eljárások

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 69


Függvény paraméterek
static void tomb(int[] x) {}
static void refer(ref int x) {}
static void kimeno(int x, out int y);

tomb(d);
refer(ref a);
kimeno(a, out b);

def func(arg1, arg2=10 , *args, kwarg1, kwarg2=2, **kwargs):


pass

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 70


Függvények túlterhelése

Képek forrása: google.com

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 71


Egymásba ágyazott függvények
def makeInc(x):
def inc(y):
nonlocal x
x += y
return x def make_adder(n):
return inc def adder(x):
return n + x
incOne = makeInc(1)
incOne(5) # out: 6 return adder

add5 = make_adder(5)
add6 = make_adder(6)
add5(10) # out: 15
add6(10) # out: 16

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 72


Enumerate, map, lambda

for index, item in enumerate(['one', 'two', 'three', 'four']):


print(index, '::', item)

x = map(lambda e : e.upper(), ['one', 'two', 'three', 'four'])

a_dictionary.sort(key=lambda item: item['name’])

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 73


Dokumentálás (Google)
def hello(name, language="en"):
"""Say hello to a person.

Args:
name: the name of the person as string
language: the language code string

Returns:
A number.
"""
Képek forrása: google.com

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 74


OOP – Objektumorientált programozás
• Osztályok, objektum típusok
• Objektumok, osztály példányok
• Logikus adatstruktúra
12
• Egységbezárás int x

• Adatok elrejtése 23
• Öröklés 45 34

• Konstruktor
Random veletlen1 = new Random(); 56 67
int a = veletlen1.Next(12, 23);

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 75


.NET alkalmazásfejlesztés (ismétlés)
• C# nyelv
• Alkalmazás
• Fordított állomány
• Névtér
Application
• Osztály Assembly
Assembly (.dll, .exe)
Namespace
Class Class
Namespace Data Methods
• Tulajdonság, Assembly Class

Adatmező
Namespace Methods

Assembly Class
Namespace Methods
• Tagfüggvény,
Metódus

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 76


Gépészeti Informatika,
Informatika Terméktervezőknek

Az informatika és a programozás alapjai


Dr. Fekete Róbert Tamás
BME-MOGI, frt@mogi.bme.hu
A szoftverfejlesztési folyamat

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 78


Megfelelő specifikálás frt@mogi.bme.hu

• A mérkőzések kimenetelét rögzítsük egy szöveges változóban


string eredmény = “abbaaabaaabbabababbbaabbababb”
• FELADAT: Mondjuk meg, hogy ki nyert!

Képek forrása: wikipedia.org

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 79


Megfelelő specifikálás frt@mogi.bme.hu

• A mérkőzések kimenetelét rögzítsük egy szöveges változóban


string eredmény = “abbaaabaaabbabababbbaabbababb”
• FELADAT: Mondjuk meg, hogy ki nyert!

ciklus eredmény
ha eredmény[index] == ’a’: a++
egyébként: b++
ha a > b: print(“a nyert”)
egyébként: print(“b nyert”)

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 80


Megfelelő specifikálás
• A mérkőzések kimenetelét rögzítsük egy szöveges változóban
string eredmény = “abbaaabaaabbabababbbaabbababb”
• FELADAT: Mondjuk meg, hogy ki nyert!

ha eredmény[utolsó] == “a”: print(“a nyert”)


egyébként: print(“b nyert”)

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 81


Strukturált programozás
• Programépítési alapelv
• Az elvégzendő feladatot kisebb, egymáshoz csak meghatározott
módon kapcsolódó részfeladatokra kell felbontani
• A részfeladatokat megoldva és azokat egymáshoz illesztve
megszületik a teljes feladat megoldása
• A feladat felosztásakor a részfeladatok csak három szerkezeti
mintázat szerint kapcsolódhatnak egymáshoz, ezek a szekvencia, a
szelekció és az iteráció

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 82


Algoritmus és Eljárás
• Algoritmus: Véges utasítássorozat (lépések), amely bármely
bemenet esetén véges lépésszám után megáll és eredményt ad
• Megengedett lépések definiálásának fontossága

• Determinált az algoritmus, ha ugyanazokra a kezdőállapotokra és


ugyanarra a bemenetre ugyanazt az eredményt adja
• Determinisztikus az algoritmus, ha minden időpontban egyértelmű,
hogy mi lesz a következő lépés

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 83


A központi feldolgozó egység
• CPU = Központi
feldolgozó egység
• Utasításkészlet
• CU és ALU
• Regiszter (32 és 64 bit)

Képek forrása: wikipedia.org

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 84


A CPU és a Tárolók
• Adatbuszok (32 és 64 bit)
• Operatív tárak (RAM, Cache)
• Háttér tárak (HDD, SSD)
• Hozzáférési idő

Képek forrása: wikipedia.org

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 85


Egyéb egységek
• Periféria
• Interface
• Illesztő
• Driver

Képek forrása: wikipedia.org

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 86


Alaplap

Képek forrása: wikipedia.org

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 87


Imperatív versus Deklaratív paradigma
• Procedurális paradigma: Lépésről lépésre
pontosan leírják azt az eljárást, amelyet
legalább az adott programozó szerint követni
kell egy adott probléma megoldásához.
• Objektumorientált paradigma: Az adatokat
és a metódusokat egy egységként,
objektumnak nevezik.
• Funkcionális paradigma: A programozó
inkább azt specifikálja programban, mit kell
kiszámítani, nem azt, hogy hogyan, milyen
lépésekben. (Például az iterációk helyett
rekurziót alkalmazhatunk.) Képek forrása: google.com

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 88


Rekurzió frt@mogi.bme.hu

FELADAT: Mekkora járólap kell, hogy hézagmentesen lerakhassuk?

A helyiség mérete:
150 x 345 cm

Képek forrása: google.com

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 89


Rekurzió
függvény (a, b)
ha b % a != 0:
függvény(b % a, a)
egyébként print(a)

f(150,345)
f(45,150)
f(15,45)

Gépészeti Informatika, Informatika Terméktervezőknek Dr. Fekete Róbert Tamás 90

You might also like