F# (efsárp) példaprogramok



Hasonló dokumentumok
Koordináta-geometria feladatgyűjtemény (A feladatok megoldásai a dokumentum végén találhatók)

Koordináta-geometria feladatgyűjtemény

Érettségi feladatok: Koordináta-geometria 1/5

Érettségi feladatok Koordinátageometria_rendszerezve / 5

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

54. Mit nevezünk rombusznak? A rombusz olyan négyszög,

10. Tétel Háromszög. Elnevezések: Háromszög Kerülete: a + b + c Területe: (a * m a )/2; (b * m b )/2; (c * m c )/2

1.Háromszög szerkesztése három oldalból

Síkgeometria 12. évfolyam. Szögek, szögpárok és fajtáik

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

Feladatok. 1. a) Mekkora egy 5 cm oldalú négyzet átlója?

Form1 Form Size 400;400 Text Mozgó kör timer1 Timer Enabled True Interval 100

Skaláris szorzat: a b cos, ahol α a két vektor által bezárt szög.

Pitagorasz-tétel. A háromszög derékszögű, ezért írjuk fel a Pitagorasz-tételt! 2 2 2

10. Koordinátageometria

Minimum követelmények matematika tantárgyból 11. évfolyamon

c.) Mely valós számokra teljesül a következő egyenlőtlenség? 3

(d) a = 5; c b = 16 3 (e) b = 13; c b = 12 (f) c a = 2; c b = 5. Számítsuk ki minden esteben a háromszög kerületét és területét.

Geometriai feladatok, 9. évfolyam

BME MOGI Gépészeti informatika 14.

Eseményvezérelt alkalmazások fejlesztése II 3. előadás. Windows Forms dinamikus felhasználói felület, elemi grafika

VISUAL BASIC ALAPISMERETEK

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

Érettségi feladatok: Síkgeometria 1/6

Geometria. a. Alapfogalmak: pont, egyenes, vonal, sík, tér (Az alapfogalamakat nem definiáljuk)

Helyvektorok, műveletek, vektorok a koordináta-rendszerben

2. Síkmértani szerkesztések

Nagy András. Feladatok a koordináta-geometria, egyenesek témaköréhez 11. osztály 2010.

VI.1. NEVEZETESSÉGEK HÁROMSZÖGORSZÁGBAN. A feladatsor jellemzői

Koordináta-geometria feladatok (középszint)

HASONLÓSÁGGAL KAPCSOLATOS FELADATOK. 5 cm 3 cm. 2,4 cm

Hetedik témakör kiegészítés:

Matematika A 9. szakiskolai évfolyam. 15. modul SÍKIDOMOK. Készítette: Vidra Gábor

Telek-Alakítási feladatok napjainkban. Poligon(ok) egyedi (fel)darabolása Pr-SoftWare

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

Koordináta-geometria feladatok (emelt szint)

BME MOGI Gépészeti informatika 1.

Koordinátageometriai gyakorló feladatok I ( vektorok )

XI.5. LÉGY TE A TANÁR! A feladatsor jellemzői

Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása

3. MINTAFELADATSOR KÖZÉPSZINT JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

EGYBEVÁGÓSÁGI TRANSZFORMÁCIÓK TENGELYES TÜKRÖZÉS

Vektorok összeadása, kivonása, szorzás számmal, koordináták

Vektorok és koordinátageometria

Egybevágóság szerkesztések

Síkbeli egyenesek. 2. Egy egyenes az x = 1 4t, y = 2 + t parméteres egyenletekkel adott. Határozzuk meg

Exponenciális és logaritmusos kifejezések, egyenletek

Háromszögek ismétlés Háromszög egyenlőtlenség(tétel a háromszög oldalairól.) Háromszög szögei (Belső, külső szögek fogalma és összegük) Háromszögek

Hasonlóság. kísérleti feladatgyűjtemény POKG osztályos matematika

egyenletrendszert. Az egyenlő együtthatók módszerét alkalmazhatjuk. sin 2 x = 1 és cosy = 0.

Geometria 1 összefoglalás o konvex szögek

Koordináta-geometria alapozó feladatok

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

. Typeset by AMS -TEX 0

= Y y 0. = Z z 0. u 1. = Z z 1 z 2 z 1. = Y y 1 y 2 y 1

Objektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer

Add meg az összeadásban szereplő számok elnevezéseit!

Arany Dániel Matematikai Tanulóverseny 2009/2010-es tanév első (iskolai) forduló haladók II. kategória

15. Koordinátageometria

Geometria I. Vígh Viktor

Python tanfolyam Python bevezető I. rész

15. Koordinátageometria

Háromszögek, négyszögek, sokszögek 9. évfolyam

Síkgeometria. Ponthalmazok

Vizuális programozás gyakorlat

Mentsd el code file-t kektura.cs néven, illetve kiterjesztéssel! Másold be a kektura.csv állományt a Projects munkamappa megfelelő almappájába!

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT. Koordináta-geometria

Síkbeli egyenesek Egy egyenes az x = 1 4t, y = 2 + t parméteres egyenletekkel adott. Határozzuk meg

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

Interaktív geometriai rendszerek használata középiskolában -Pont körre vonatkozó hatványa, hatványvonal-

Racionális számok: Azok a számok, amelyek felírhatók két egész szám hányadosaként ( p q

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Megoldás: Mindkét állítás hamis! Indoklás: a) Azonos alapú hatványokat úgy szorzunk, hogy a kitevőket összeadjuk. Tehát: a 3 * a 4 = a 3+4 = a 7

Exponenciális és logaritmusos kifejezések, egyenletek

EÖTVÖS LORÁND SZAKKÖZÉP- ÉS SZAKISKOLA TANÍTÁST SEGÍTŐ OKTATÁSI ANYAGOK MÉRÉS TANTÁRGY

GÉPÉSZETI ALAPISMERETEK

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Koordináta-geometria

Kisérettségi feladatsorok matematikából

Megoldás A számtani sorozat első három eleme kifejezhető a második elemmel és a differenciával. Összegük így a 2. d =33, azaz 3a 2. a 2.

Az egyenes és a sík analitikus geometriája

I. Vektorok. Adott A (2; 5) és B ( - 3; 4) pontok. (ld. ábra) A két pont által meghatározott vektor:

ÁR kulcsrakész ÁR lapraszerelt

Dobos Sándor és Hraskó András: Inverzió. Inverzió. 2. Adott egy kör a középpontjával, és még egy további pont. Szerkeszd meg az adott pont adott

Java programozási nyelv 8. rész Grafikus felhasználói felület

BME MOGI Gépészeti informatika 7.

2. ELŐADÁS. Transzformációk Egyszerű alakzatok

1. Munkalap. 1. Fejezze be az előrajzolás szerinti vonalfajták ábrázolását! Ügyeljen a vonalvastagságra!

GEOMETRIA. b a X O Y. A pótszögek olyan szögpárok, amelyek az összege 90. A szögek egymás pótszögei. b a

Arany Dániel Matematikai Tanulóverseny 2016/2017-es tanév Kezdők III. kategória I. forduló

Grafikai lehetőségek

bool _freehand = false; QPoint _lastpoint; // ebben a pontban volt az utolsó rajzolásnál az egérmutató

1. A komplex számok ábrázolása

Osztályozóvizsga-tematika 8. évfolyam Matematika

Forgáshenger normálisának és érintősíkjának megszerkesztése II/1

Feladatok MATEMATIKÁBÓL II.

Programozás 7.o Az algoritmus fogalma (ismétlés)

XVIII. Nemzetközi Magyar Matematika Verseny

Átírás:

21

/ A beírt kör sugarának meghatározása: let sugárbeírt = terület / félk // A beírt kör rajzolása: feketekör(b, sugárbeírt) // Közvetlen számítás: a beírt kör középpontja és sugara: let (Z, r) = BeírtKör U V W if (Z - B).Abs < PICINY && Math.Abs(sugárBeírt - r) < PICINY then kereszthelyett(b) // A kilencpontos kör középpontjának meghatározás: let Z9 = M.Scal(FÉL) felirat(z9, 20, "z9", -30, 0, Color.Black) // A kilencpontos kör berajzolása: kör(2, Color.Blue, Z9, sugár * FÉL) // Kijelölt pontok kereszttel jelölése: feketekereszt O; feketekereszt U; feketekereszt V; feketekereszt W; feketekereszt S; feketekereszt B feketekereszt M; feketekereszt Z9; feketekereszt TU; feketekereszt TV; feketekereszt TW feketekereszt UV; feketekereszt VW; feketekereszt WU feketekereszt FU; feketekereszt FV; feketekereszt FW // Feliratozás: let sorköz = 40 let sorok = Komplex(80.0,-320.0) normálfelirat(sorok, 22, "Színezés:", 100, 0 * sorköz - 10, Color.Silver) normálfelirat(sorok, 22, "oldal", 100, 1 * sorköz, Color.Red) normálfelirat(sorok, 22, "súlyvonal", 100, 2 * sorköz, Color.DarkBlue) normálfelirat(sorok, 22, "magasságvonal", 100, 3 * sorköz, Color.Lime) 22

normálfelirat(sorok, 22, "szögfelező", 100, 4 * sorköz, Color.Cyan) normálfelirat(sorok, 22, "oldalfelező merőleges", 100, 5 * sorköz, Color.DarkRed) normálfelirat(sorok, 22, "kilencpontos kör", 100, 6 * sorköz, Color.Blue) normálfelirat(sorok, 22, "Euler egyenes", 100, 7 * sorköz, Color.Magenta) rajz.drawtobitmap(bitkép, képnégyzet) // Ez a képrajzoló függvény utolsó sora: a kép elmentése // Új felület a képdoboz elhelyezésére, valamint a képdoboz beépítése a felületre: let ablak = new Form( Text = "HÁROMSZÖG a Komplex számsíkon", Visible = true, TopMost = true, Width = teljesszélesség, Height = teljesmagasság, Left = (Screen.PrimaryScreen.Bounds.Width - teljesszélesség) / 2, Top = (Screen.PrimaryScreen.Bounds.Height - teljesmagasság) / 2) ablak.controls.add(rajz) let mappanév = "Háromszög" let munkamappa: string = Path.GetDirectoryName(System.AppDomain.CurrentDomain.BaseDirectory.Substring (0, System.AppDomain.CurrentDomain.BaseDirectory.IndexOf ("\\" + mappanév + "\\" + mappanév) + mappanév.length + 2)) let elmentés(egér : MouseEventArgs) = bitkép.save(path.combine(munkamappa,mappanév + ".bmp")) ablak.close() // A Paint eseményhez és a MouseClick eseményhez eseményfeldolgozó függvény rendelése: rajz.paint.add(rajzolj) rajz.mouseclick.add(elmentés) // A program indítása: [<STAThread>] ignore < do Application.Run(ablak) 23

KomplexPéldák (program, amely a két első modult alkalmazza) open System open System.Windows open System.Windows.Forms open System.Drawing open System.Drawing.Imaging open System.IO open Komplex_műveletek open Rajz_készítése let melyik : int = 44 // 1.. 44 lehet let mutable Z0 = O let mutable Z1 = O let mutable Z2 = O let mutable Z3 = O let mutable Z4 = O let mutable h = NULLA let mutable o = NULLA let mutable p = NULLA let mutable q = NULLA let mutable r = NULLA let mutable ru = NULLA let mutable rv = NULLA let mutable rw = NULLA let mutable s = NULLA let mutable T = O let mutable T1 = O 24

let mutable T2 = O let mutable U = O let mutable U1 = O let mutable U2 = O let mutable V = O let mutable V1 = O let mutable V2 = O let mutable W = O let mutable W1 = O let mutable W2 = O let mutable E = O let mutable F = O // A rajz lapja egy képdoboz: let rajz = new PictureBox(Left = 0, Top = 0, Width = int(szélesség), Height = int(magasság)) rajz.backcolor <- Color.White rajz.borderstyle <- BorderStyle.None let bitkép = new Bitmap(szélesség, magasság) let képnégyzet = new Rectangle(0, 0, szélesség, magasság) let névindex = melyik // Az alábbiakban az egyes ábrákat előállító függvényeket láthatják (mindegyik önálló függvény): let körszerkesztéskétpontéssugár(sug : double) = // 1 U <- Komplex(-70.0, 330.0); V <- Komplex(60.0, -100.0) r <- sug Z0 <- (U + V).Scal(FÉL) let h = (V - U).Abs / KETTŐ let p = Math.Sqrt(r * r - h * h) Z2 <- Z0 + ((V - U) * Ima).Scal(p / (h + h)) 25

Z1 <- Z0 - ((V - U) * Ima).Scal(p / (h + h)) félkövérdőltfelirat(z2, 16, "z2", 5, -15, Color.Magenta) félkövérdőltfelirat(z1, 16, "z1", 5, -15, Color.Magenta) félkövérdőltfelirat(z0, 16, "z0", 10, -30, Color.Silver) vonal(2,color.silver, U, Z0) félkövérdőltfelirat((u + Z0).Scal(FÉL), 16, "h", -15, -30, Color.Silver) vonal(2,color.silver, Z0, Z1) félkövérdőltfelirat((z0 + Z1).Scal(FÉL), 16, "p", 5, -25, Color.Silver) vonal(1,color.silver, Z0, V) vonal(1,color.silver, U, Z1) félkövérdőltfelirat((u + Z1).Scal(FÉL), 16, "r", -15, -20, Color.Silver) félkövérdőltfelirat(u, 16, "u", -20, 0, Color.Black) félkövérdőltfelirat(v, 16, "v", 5, -30, Color.Black) feketekereszt V; feketekereszt U; feketekereszt Z0 eredménykereszt Z1; eredménykereszt Z2 eredménykör(z1, r); eredménykör(z2, r) kitakarás(rajz.backcolor,komplex(-500.0, -500.0), Komplex(500.0, -450.0)) félkövérfelirat(komplex(-250.0,-400.0), 20, "Két ponton átmenő, r sugarú kör szerkesztése", 5, 0, Color.DarkCyan) let körszerkesztéshárompont(kell: bool) = // 2 U <- Komplex(150.0, -350.0); V <- Komplex(-290.0, 300.0); W <- Komplex(350.0, 250.0) Z1 <- (U + V).Scal(FÉL) Z2 <- (V + W).Scal(FÉL) Z3 <- Z1 + (V - U) * Ima.Scal(FÉL) Z4 <- Z2 + (W - V) * Ima Z0 <- Metszés Z1 Z3 Z2 Z4 r <- (U - Z0).Abs eredménykör(z0,r) félkövérfelirat(komplex(-250.0,-470.0), 20, "Három ponton átmenő kör szerkesztése", 5, 0, Color.DarkCyan) 26

félkövérdőltfelirat(u, 16, "u", -30, -5, Color.Black) félkövérdőltfelirat(v, 16, "v", -30, -20, Color.Black) félkövérdőltfelirat(w, 16, "w", 10, -10, Color.Black) félkövérdőltfelirat(z1, 16, "z1", 10, -15, Color.Silver) félkövérdőltfelirat(z2, 16, "z2", 10, -25, Color.Silver) félkövérdőltfelirat(z3, 16, "z3", 5, -10, Color.Silver) félkövérdőltfelirat(z4, 16, "z4", 10, -10, Color.Silver) vonal(1,color.black,u,v) vonal(1,color.black,v,w) vonal(1,color.silver,z1,z3) vonal(1,color.silver,z2,z4) vonal(1,color.magenta,z0,u) feketekereszt V; feketekereszt U; feketekereszt W feketekereszt Z1; feketekereszt Z2; feketekereszt Z3; feketekereszt Z4 félkövérdőltfelirat((z0 + U).Scal(FÉL), 16, "r3", 10, -25, Color.Magenta) eredménykereszt Z0 félkövérdőltfelirat(z0, 16, "z0", 10, -25, Color.Magenta) let körszerkesztéskétmetszőegyeneséssugár(sug: double) = // 3 T <- Komplex(400.0,-250.0); U <- Komplex(-350.0, 300.0) V <- Komplex(-90.0, -250.0); W <- Komplex(150.0, 300.0) r <- sug p <- (T - U).Abs U1 <- U - ((T - U) * Ima).Scal(r/p) U2 <- U + ((T - U) * Ima).Scal(r/p) T1 <- U1 + (T - U) T2 <- U2 + (T - U) q <- (W - V).Abs V1 <- V - ((W - V) * Ima).Scal(r/q) V2 <- V + ((W - V) * Ima).Scal(r/q) W1 <- V1 + (W - V) 27

W2 <- V2 + (W - V) Z1 <- Metszés T1 U1 W1 V1 Z2 <- Metszés T2 U2 W1 V1 Z3 <- Metszés T1 U1 W2 V2 Z4 <- Metszés T2 U2 W2 V2 félkövérdőltfelirat(t, 16, "t", -25, -15, Color.Black) félkövérdőltfelirat(u, 16, "u", -25, 0, Color.Black) félkövérdőltfelirat(v, 16, "v", 10, -20, Color.Black) félkövérdőltfelirat(w, 16, "w", 10, -10, Color.Black) vonal(1,color.black,t,u) vonal(1,color.black,v,w) vonal(1,color.silver,t1,u1) vonal(1,color.silver,v1,w1) vonal(1,color.silver,t2,u2) vonal(1,color.silver,v2,w2) feketekereszt T; feketekereszt V; feketekereszt U; feketekereszt W feketekereszt V1; feketekereszt V2; feketekereszt W1; feketekereszt W2 feketekereszt T1 ;feketekereszt T2; feketekereszt U1; feketekereszt U2 eredménykereszt Z1; eredménykereszt Z2; eredménykereszt Z3; eredménykereszt Z4; félkövérdőltfelirat(z1, 16, "z1", 10, -5, Color.Magenta) félkövérdőltfelirat(z2, 16, "z2", 10, -5, Color.Magenta) félkövérdőltfelirat(z3, 16, "z3", 10, -5, Color.Magenta) félkövérdőltfelirat(z4, 16, "z4", 10, -5, Color.Magenta) eredménykör(z1, r); eredménykör(z2, r); eredménykör(z3, r); eredménykör(z4, r) félkövérdőltfelirat(t1, 16, "t1", -35, -15, Color.Silver) félkövérdőltfelirat(t2, 16, "t2", -35, -15, Color.Silver) félkövérdőltfelirat(u1, 16, "u1", -30, 0, Color.Silver) félkövérdőltfelirat(u2, 16, "u2", -30, 0, Color.Silver) félkövérdőltfelirat(v1, 16, "v1", 10, -20, Color.Silver) félkövérdőltfelirat(v2, 16, "v2", 10, -20, Color.Silver) félkövérdőltfelirat(w2, 16, "w2", 10, -10, Color.Silver) 28

félkövérdőltfelirat(w1, 16, "w1", 10, -10, Color.Silver) eredménykereszt(z1) ; eredménykereszt(z2) ; eredménykereszt(z3) ; eredménykereszt(z4) kitakarás(rajz.backcolor,komplex(-500.0,-500.0), Komplex(500.0,-460.0)) félkövérfelirat(komplex(-250.0,-450.0), 20, "Két egyenest érintő, r sugarú kör szerkesztése", 5, 0, Color.DarkCyan) let körszerkesztéskétérintőköréssugár(sug: double) = // 4 U <- Komplex(-200.0, -100.0); W <- Komplex(240.0, 200.0) r <- sug; ru <- 200.0 ;rw <- 250.0 let (Z1, Z2) = KörMetszés U (ru + r) W (rw + r) U1 <- (Z1 + Z2).Scal(FÉL) félkövérfelirat(komplex(-300.0,-500.0), 20, "Két kört érintő, r sugarú kör szerkesztése", 5, 0, Color.DarkCyan) feketekereszt U; feketekereszt W félkövérdőltfelirat(u, 16, "u", -25, 0, Color.Black) félkövérdőltfelirat(w, 16, "w", 10, -10, Color.Black) vonal(1,color.silver,u,w) vonal(1,color.silver,z1,z2) vonal(1,color.silver,u,z1) vonal(1,color.silver,w,z1) feketekereszt U1 félkövérdőltfelirat(u1, 16, "u1", 5, -20, Color.Silver) vonal(1,color.black,u,u1) félkövérdőltfelirat((u + U1).Scal(FÉL), 16, "q", -15, 0, Color.Silver) vonal(1,color.black,u1,z1) félkövérdőltfelirat((u1 + Z1).Scal(FÉL), 16, "s", -20, -10, Color.Silver) feketekör(u, ru); feketekör(w, rw) szerkesztőkör(u,ru + r); szerkesztőkör(w,rw + r) eredménykereszt Z1; eredménykereszt Z2 félkövérdőltfelirat(z1, 16, "z1", 10, -10, Color.Magenta) félkövérdőltfelirat(z2, 16, "z2", 10, -5, Color.Magenta) 29

eredménykör(z1, r); eredménykör(z2, r) félkövérdőltfelirat((u + Z1).Scal(FÉL), 16, "ru + r", -55, -25, Color.Silver) félkövérdőltfelirat((w + Z1).Scal(FÉL), 16, "rw + r", 0, -25, Color.Silver) let körszerkesztésegyenespontéssugár(sug : double) = // 5 U <- Komplex(-350.0, 300.0) ; V <- Komplex(-50.0,-250.0); W <- Komplex(350.0, 200.0) r <- sug let (s0, q0) = heron U V W h <- KETTŐ * q0 / (W - U).Abs p <- Math.Sqrt(r * r - (r - h) * (r - h)) E <- (W - U).Unit F <- E * Ima Z1 <- V + F.Scal(r - h) + E.Scal(p) Z2 <- V + F.Scal(r - h) - E.Scal(p) félkövérfelirat(komplex(-430.0,-450.0), 20, "Egy egyenest érintő, adott ponton átmenő, r sugarú kör szerkesztése", 5, 0, Color.DarkCyan) félkövérdőltfelirat(u, 16, "u", -25, 0, Color.Black) félkövérdőltfelirat(v, 16, "v", -10, -30, Color.Black) félkövérdőltfelirat(w, 16, "w", 0, 10, Color.Black) feketekereszt V; feketekereszt U; feketekereszt W vonal(1,color.black,u + (U - W).Scal(FÉL),W + (W - U).Scal(FÉL)) vonal(1,color.silver,z1,z2) vonal(1,color.silver,(z1 + Z2).Scal(FÉL),V) vonal(1,color.silver,z1,v) vonal(1,color.silver,z2,v) Z0 <- Z1 - F.Scal(r) vonal(1,color.silver,z1,z0) félkövérdőltfelirat((z0 + Z1).Scal(FÉL), 16, "r", -20, -15, Color.Silver) félkövérdőltfelirat((z1 + V).Scal(FÉL), 16, "r", -10, 5, Color.Silver) Z0 <- Z2 - F.Scal(r) vonal(1,color.silver,z2,z0) 30