# 11. osztály

/*
Itt vannak a jelek, amiket tudsz másolni, ha nem találod a gépeden, hogy hol lehet beírni:
Műveleti jelek: 
Összeadás: +
Kivonás: - 
Szorzás: *
Osztás: /
Hatványozás: ^
Relációjelek: < >
Zárójel: ()
Vessző: ,
Pont: .
Pontos vessző: ; 
Kettőspont: :
Dollárjel: $
Szürke betűszínnel szerepelnek a megjegyzések, csak azt kell kitölteni, ahova oda van írva, több sorhoz nem kell hozzányúlni
Ha beírtad 3-féleképpen tudod futtatni:
1) felül vannak zöld nyilak, a jobbra mutató nyílra kattints rá, és lefuttatja, fontos, hogy bele legyél kattintva a tömbbe
2) Shift+Enter-rel is le tudod futtatni, itt is fontos, hogy bele legyél kattintva a tömbbe
3) Ha van a billentyűzeteted jobb szélén enter, akkor annak a megnyomásával is tudod futtatni, 
itt is bele kell, hogy legyél kattintva a tömbbe
Sorok végén vagy pontosvessző vagy dollárjel van, pontosvesszőnél kiírja annak a sornak az eredményét, dollárjelnél elrejti
Állandók beírása (pi): 
pi: %pi
*/

# Kifejezés kiszámítása (Számológép)

kill(all)$
ratprint: false$
fpprintprec: 5$
x:1/2+5*4-3^2+(1/2)^8$ /*Ide írd be a kifejezést*/
float(x);

# Trigonometria fok (Számológép)

/*
Ha megvan adva a szög, kiszámolja a sin, cos, tg, ctg értékeket
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
α:60$ /*Ide írd be a szög értékét fokban*/
sin:float(sin(α*%pi/180));
cos:float(cos(α*%pi/180));
tg:float(tan(α*%pi/180));
ctg:float(cot(α*%pi/180));

# Trigonometria radián (Számológép)

/*
Ha megvan adva a szög, kiszámolja a sin, cos, tg, ctg értékeket
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
α:%pi/3$ /*Ide írd be a szög értékét radiánban (pi-t %pi ként tudod beírni) */
sin:float(sin(α));
cos:float(cos(α));
tg:float(tan(α));
ctg:float(cot(α));

# Trigonometria szög visszakeresés fok (Számológép)

/*
Ha megvan adva a szögfüggvényen belüli kifejezés visszakeresi a szög értékét fokban
Pl.: sinα=0.5->visszakeresi α értékét
megj: 
ha sinα-t akarod visszakeresni cos tg ctg sorok végére rakj dollár ($) jelet
ha cosα-t akarod visszakeresni sin tg ctg sorok végére rakj dollár ($) jelet
ha tgα-t akarod visszakeresni sin cos ctg sorok végére rakj dollár ($) jelet
ha ctgα-t akarod visszakeresni sin cos tg sorok végére rakj dollár ($) jelet
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
szám:0.5$ /*Ide írd be a szögfüggvényen belüli kifejezést*/
sin:float(asin(szám)*180/%pi);
cos:float(acos(szám)*180/%pi)$
tg:float(atan(szám)*180/%pi)$
ctg:float(acot(szám)*180/%pi)$

# Trigonometria szög visszakeresés radián (Számológép)

/*
Ha megvan adva a szögfüggvényen belüli kifejezés visszakeresi a szög értékét radiánban
Pl.: sinα=0.5->visszakeresi α értékét
megj: 
ha sinα-t akarod visszakeresni cos tg ctg sorok végére rakj dollár ($) jelet
ha cosα-t akarod visszakeresni sin tg ctg sorok végére rakj dollár ($) jelet
ha tgα-t akarod visszakeresni sin cos ctg sorok végére rakj dollár ($) jelet
ha ctgα-t akarod visszakeresni sin cos tg sorok végére rakj dollár ($) jelet
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
szám:0.5$ /*Ide írd be a szögfüggvényen belüli kifejezést*/
sin:float(asin(szám));
cos:float(acos(szám))$
tg:float(atan(szám))$
ctg:float(acot(szám))$

# Átváltás radiánból fokba

/*
Szög átváltása radiánból fokba
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
αrad:%pi/3$ /*Ide írd be a szög értékét radiánban*/
αfok:float(αrad*180/%pi);

# Átváltás fokból radiánba

/*
Szög átváltása radiánból fokba
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
αfok:60$ /*Ide írd be a szög értékét fokban*/
αrad:(αfok*%pi/180);
αradérték:float(αrad);

# Hatvány azonosságok

/*
Hatvány azonosságos feladatokhoz
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
x:factor(2^3*2^5/2^2*5^6/(5^2*5)); /*Ezt töltsd ki*/

# Exponenciális egyenletek

/*
Exponenciális egyenletek megoldása
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
e:2^(x+1)=8*2^5; /*Ezt töltsd ki*/
megoldás:float(solve(e,x));

# Vektorok összeadása síkban

/*
Két vektor összeadása síkban (ezt használjuk)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
ax:5$ /*Ezt töltsd ki*/
ay:7$ /*Ezt töltsd ki*/
bx:1$ /*Ezt töltsd ki*/
by:4$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay]);
"b vektor:";
bvektor:matrix([bx],[by]);
"Összeg:";
összeg:matrix([ax+bx],[ay+by]);

# Vektorok összeadása térben

/*
Két vektor összeadása síkban (emelt szint)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
ax:5$ /*Ezt töltsd ki*/
ay:7$ /*Ezt töltsd ki*/
az:4$ /*Ezt töltsd ki*/
bx:1$ /*Ezt töltsd ki*/
by:4$ /*Ezt töltsd ki*/
bz:3$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay],[az]);
"b vektor:";
bvektor:matrix([bx],[by],[bz]);
"Összeg:";
összeg:matrix([ax+bx],[ay+by],[az+bz]);

# Vektorok kivonása síkban

/*
Két vektor kivonása síkban (ezt használjuk)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
ax:5$ /*Ezt töltsd ki*/
ay:7$ /*Ezt töltsd ki*/
bx:1$ /*Ezt töltsd ki*/
by:4$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay]);
"b vektor:";
bvektor:matrix([bx],[by]);
"a-b:";
különbség1:matrix([ax-bx],[ay-by]);
"b-a:";
különbség2:matrix([bx-ax],[by-ay]);

# Vektor kivonása térben

/*
Két vektor kivonása síkban (emelt szint)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
ax:5$ /*Ezt töltsd ki*/
ay:7$ /*Ezt töltsd ki*/
az:4$ /*Ezt töltsd ki*/
bx:1$ /*Ezt töltsd ki*/
by:4$ /*Ezt töltsd ki*/
bz:3$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay],[az]);
"b vektor:";
bvektor:matrix([bx],[by],[bz]);
"a-b:";
különbség1:matrix([ax-bx],[ay-by],[az-bz]);
"b-a:";
különbség2:matrix([bx-ax],[by-ay],[bz-az]);

# Két pont távolsága síkban

/*
Két pont távolsága síkban (ezt használjuk)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
Ax:5$ /*Ezt töltsd ki*/
Ay:7$ /*Ezt töltsd ki*/
Bx:1$ /*Ezt töltsd ki*/
By:4$ /*Ezt töltsd ki*/
"A pont koordinátái:";
A:matrix([Ax],[Ay]);
"B pont koordinátái:";
B:matrix([Bx],[By]);
"AB és BA vektorok:";
AB:matrix([Bx-Ax],[By-Ay]);
BA:matrix([Ax-Bx],[Ay-By]);
"Két pont távolsága:";
távolság:float(sqrt((Bx-Ax)^2+(By-Ay)^2));

# Két pont távolsága térben

/*
Két pont távolsága térben (emelt szint)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
Ax:5$ /*Ezt töltsd ki*/
Ay:7$ /*Ezt töltsd ki*/
Az:4$ /*Ezt töltsd ki*/
Bx:1$ /*Ezt töltsd ki*/
By:4$ /*Ezt töltsd ki*/
Bz:3$ /*Ezt töltsd ki*/
"A pont koordinátái:";
A:matrix([Ax],[Ay],[Az]);
"B pont koordinátái:";
B:matrix([Bx],[By],[Bz]);
"AB és BA vektorok:";
AB:matrix([Bx-Ax],[By-Ay],[Bz-Az]);
BA:matrix([Ax-Bx],[Ay-By],[Bz-Az]);
"Két pont távolsága:";
távolság:float(sqrt((Bx-Ax)^2+(By-Ay)^2+(Bz-Az)^2));

# Vektor hossza (nagysága) síkban

/*
Vektor hossza síkban (ezt használjuk)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
ax:5$ /*Ezt töltsd ki*/
ay:7$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay]);
"Vektor hossza (nagysága):";
hossz:float(sqrt(ax^2+ay^2));

# Vektor hossza (nagysága) térben

/*
Vektor hossza síkban (emelt szint)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
ax:5$ /*Ezt töltsd ki*/
ay:7$ /*Ezt töltsd ki*/
az:8$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay],[az]);
"Vektor hossza (nagysága):";
hossz:float(sqrt(ax^2+ay^2+az^2));

# Skaláris szorzat síkban

/*
Két vektor skaláris szorzatát adja meg síkban (ez használjuk)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
ax:5$ /*Ezt töltsd ki*/
ay:7$ /*Ezt töltsd ki*/
bx:4$ /*Ezt töltsd ki*/
by:2$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay]);
"b vektor:";
bvektor:matrix([bx],[by]);
"Két vektor skaláris szorzata:";
skalárisszorzat:float(ax*bx+ay*by);

# Skaláris szorzat térben

/*
Két vektor skaláris szorzatát adja meg térben (emelt szint)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
ax:5$ /*Ezt töltsd ki*/
ay:7$ /*Ezt töltsd ki*/
az:7$ /*Ezt töltsd ki*/
bx:4$ /*Ezt töltsd ki*/
by:2$ /*Ezt töltsd ki*/
bz:7$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay],[az]);
"b vektor:";
bvektor:matrix([bx],[by],[bz]);
"Két vektor skaláris szorzata:";
skalárisszorzat:float(ax*bx+ay*by+az*bz);

# Két vektor által bezárt szög síkban

/*
Két vektor által bezárt szöget adja meg síkban (ezt használjuk)
*/
kill(all)$
ratprint: false$
fpprintprec: 6$
ax:1$ /*Ezt töltsd ki*/
ay:4$ /*Ezt töltsd ki*/
bx:6$ /*Ezt töltsd ki*/
by:-4$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay]);
"b vektor:";
bvektor:matrix([bx],[by]);
"a vektor nagysága:";
anagyság:sqrt(ax^2+ay^2);
"b vektor nagysága:";
bnagyság:sqrt(bx^2+by^2);
"Két vektor skaláris szorzata:";
skalárisszorzat:ax*bx+ay*by;
Képlet:"a*b"="|a|*|b|*cosα"; /* a*b a skaláris szorzat */
egyenlet:skalárisszorzat=anagyság*bnagyság*cos(α);
megoldás:acos(skalárisszorzat/(anagyság*bnagyság))$
"Radiánban:";
Radiánban:float(megoldás);
"Fokban:";
Fokban:float(Radiánban*(180/%pi));

# Két vektor által bezárt szög térben

/*
Két vektor által bezárt szöget adja meg térben (emelt szint)
*/
kill(all)$
ratprint: false$
fpprintprec: 6$
ax:1$ /*Ezt töltsd ki*/
ay:4$ /*Ezt töltsd ki*/
az:-3$ /*Ezt töltsd ki*/
bx:6$ /*Ezt töltsd ki*/
by:-4$ /*Ezt töltsd ki*/
bz:1$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay],[az]);
"b vektor:";
bvektor:matrix([bx],[by],[bz]);
"a vektor nagysága:";
anagyság:sqrt(ax^2+ay^2+az^2);
"b vektor nagysága:";
bnagyság:sqrt(bx^2+by^2+bz^2);
"Két vektor skaláris szorzata:";
skalárisszorzat:ax*bx+ay*by+az*bz;
Képlet:"a*b"="|a|*|b|*cosα"; /* a*b a skaláris szorzat */
egyenlet:skalárisszorzat=anagyság*bnagyság*cos(α);
megoldás:acos(skalárisszorzat/(anagyság*bnagyság))$
"Radiánban:";
Radiánban:float(megoldás);
"Fokban:";
Fokban:float(Radiánban*(180/%pi));

# Felezőpont síkban

/*
Két pont által összekötött szakasz felezőpontjának koordinátáit adja meg síkban (ezt használjuk)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
Ax:5$ /*Ezt töltsd ki*/
Ay:7$ /*Ezt töltsd ki*/
Bx:4$ /*Ezt töltsd ki*/
By:2$ /*Ezt töltsd ki*/
"A pont koordinátái:";
A:matrix([Ax],[Ay]);
"B pont koordinátái:";
B:matrix([Bx],[By]);
Fx:(Ax+Bx)/2;
Fy:(Ay+By)/2;
"Felezőpont koordinátái vektor alakban:";
felezőpont:matrix([Fx],[Fy]);

# Felezőpont térben

/*
Két pont által összekötött szakasz felezőpontjának koordinátáit adja meg térben (emelt szint)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
Ax:5$ /*Ezt töltsd ki*/
Ay:7$ /*Ezt töltsd ki*/
Az:2$ /*Ezt töltsd ki*/
Bx:4$ /*Ezt töltsd ki*/
By:2$ /*Ezt töltsd ki*/
Bz:1$ /*Ezt töltsd ki*/
"A pont koordinátái:";
A:matrix([Ax],[Ay],[Az]);
"B pont koordinátái:";
B:matrix([Bx],[By],[Bz]);
Fx:(Ax+Bx)/2;
Fy:(Ay+By)/2;
Fz:(Az+Bz)/2;
"Felezőpont koordinátái vektor alakban:";
felezőpont:matrix([Fx],[Fy],[Fz]);

# Harmadolópont síkban

/*
Két pont által összekötött szakasz harmadolópontjának koordinátáit adja meg síkban (ezt használjuk)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
Ax:5$ /*Ezt töltsd ki*/
Ay:7$ /*Ezt töltsd ki*/
Bx:4$ /*Ezt töltsd ki*/
By:2$ /*Ezt töltsd ki*/
"A pont koordinátái:";
A:matrix([Ax],[Ay]);
"B pont koordinátái:";
B:matrix([Bx],[By]);
"A-hoz közelebbi:";
H1x:(2*Ax+Bx)/3;
H1y:(2*Ay+By)/3;
"Harmadolópont koordinátái vektor alakban:";
H1:matrix([H1x],[H1y]);
"B-hez közelebbi:";
H2x:(Ax+2*Bx)/3;
H2y:(Ay+2*By)/3;
"Harmadolópont koordinátái vektor alakban:";
H2:matrix([H2x],[H2y]);

# Harmadolópont térben

/*
Két pont által összekötött szakasz harmadolópontjának koordinátáit adja meg térben (emelt szint)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
Ax:5$ /*Ezt töltsd ki*/
Ay:7$ /*Ezt töltsd ki*/
Az:2$ /*Ezt töltsd ki*/
Bx:4$ /*Ezt töltsd ki*/
By:2$ /*Ezt töltsd ki*/
Bz:6$ /*Ezt töltsd ki*/
"A pont koordinátái:";
A:matrix([Ax],[Ay],[Az]);
"B pont koordinátái:";
B:matrix([Bx],[By],[Bz]);
"A-hoz közelebbi:";
H1x:(2*Ax+Bx)/3;
H1y:(2*Ay+By)/3;
H1z:(2*Az+Bz)/3;
"Harmadolópont koordinátái vektor alakban:";
H1:matrix([H1x],[H1y],[H1z]);
"B-hez közelebbi:";
H2x:(Ax+2*Bx)/3;
H2y:(Ay+2*By)/3;
H2z:(Az+2*Bz)/3;
"Harmadolópont koordinátái vektor alakban:";
H2:matrix([H2x],[H2y],[H2z]);

# Tetszőleges osztópont síkban

/*
Két pont által összekötött szakasz tetszőleges osztópontjának koordinátáit adja meg síkban (ezt használjuk)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
Ax:5$ /*Ezt töltsd ki*/
Ay:7$ /*Ezt töltsd ki*/
Bx:4$ /*Ezt töltsd ki*/
By:2$ /*Ezt töltsd ki*/
n:6$ /*Ezt töltsd ki ha 6, akkor 6-odoló pont, ha 10, akkor 10-edelő pont*/
"A pont koordinátái:";
A:matrix([Ax],[Ay]);
"B pont koordinátái:";
B:matrix([Bx],[By]);
"A-hoz közelebbi:";
O1x:((n-1)*Ax+Bx)/n;
O1y:((n-1)*Ay+By)/n;
"Osztópont koordinátái vektor alakban:";
O1:matrix([O1x],[O1y]);
"B-hez közelebbi:";
O2x:(Ax+(n-1)*Bx)/n;
O2y:(Ay+(n-1)*By)/n;
"Osztópont koordinátái vektor alakban:";
O2:matrix([O2x],[O2y]);

# Tetszőleges osztópont térben

/*
Két pont által összekötött szakasz tetszőleges osztópontjának koordinátáit adja meg térben (emelt szint)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
Ax:5$ /*Ezt töltsd ki*/
Ay:7$ /*Ezt töltsd ki*/
Az:2$ /*Ezt töltsd ki*/
Bx:4$ /*Ezt töltsd ki*/
By:2$ /*Ezt töltsd ki*/
Bz:6$ /*Ezt töltsd ki*/
n:6$ /*Ezt töltsd ki ha 6, akkor 6-odoló pont, ha 10, akkor 10-edelő pont*/
"A pont koordinátái:";
A:matrix([Ax],[Ay],[Az]);
"B pont koordinátái:";
B:matrix([Bx],[By],[Bz]);
"A-hoz közelebbi:";
O1x:((n-1)*Ax+Bx)/n;
O1y:((n-1)*Ay+By)/n;
O1z:((n-1)*Az+Bz)/n;
"Osztópont koordinátái vektor alakban:";
O1:matrix([O1x],[O1y],[O1z]);
"B-hez közelebbi:";
O2x:(Ax+(n-1)*Bx)/n;
O2y:(Ay+(n-1)*By)/n;
O2z:(Az+(n-1)*Bz)/n;
"Osztópont koordinátái vektor alakban:";
O2:matrix([O2x],[O2y],[O2z]);

# Súlypont síkban

/*
Három pont által meghatározott háromszög súlypontjának koordinátáit adja meg síkban (ezt használjuk)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
Ax:5$ /*Ezt töltsd ki*/
Ay:7$ /*Ezt töltsd ki*/
Bx:4$ /*Ezt töltsd ki*/
By:2$ /*Ezt töltsd ki*/
Cx:1$ /*Ezt töltsd ki*/
Cy:3$ /*Ezt töltsd ki*/
"A pont koordinátái:";
A:matrix([Ax],[Ay]);
"B pont koordinátái:";
B:matrix([Bx],[By]);
"C pont koordinátái:";
C:matrix([Cx],[Cy]);
Sx:(Ax+Bx+Cx)/3;
Sy:(Ay+By+Cy)/3;
"Súlypont koordinátái vektor alakban:";
S:matrix([Sx],[Sy]);

# Súlypont térben

/*
Három pont által meghatározott háromszög súlypontjának koordinátáit adja meg térben (emelt szint)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
Ax:5$ /*Ezt töltsd ki*/
Ay:7$ /*Ezt töltsd ki*/
Az:2$ /*Ezt töltsd ki*/
Bx:4$ /*Ezt töltsd ki*/
By:2$ /*Ezt töltsd ki*/
Bz:3$ /*Ezt töltsd ki*/
Cx:1$ /*Ezt töltsd ki*/
Cy:3$ /*Ezt töltsd ki*/
Cz:1$ /*Ezt töltsd ki*/
"A pont koordinátái:";
A:matrix([Ax],[Ay],[Az]);
"B pont koordinátái:";
B:matrix([Bx],[By],[Bz]);
"C pont koordinátái:";
C:matrix([Cx],[Cy],[Cz]);
Sx:(Ax+Bx+Cx)/3;
Sy:(Ay+By+Cy)/3;
Sz:(Az+Bz+Cz)/3;
"Súlypont koordinátái vektor alakban:";
S:matrix([Sx],[Sy],[Sz]);

# Irányvektor

/*
Megadja egy vektor két irányvektorát
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
ax:5$ /*Ezt töltsd ki*/
ay:7$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay]);
"Irányvekorok:";
v1:matrix([ax],[ay]);
v2:matrix([-ax],[-ay]);

# Normálvektor

/*
Megadja egy vektor két normálvektorát
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
ax:5$ /*Ezt töltsd ki*/
ay:7$ /*Ezt töltsd ki*/
"a vektor:";
avektor:matrix([ax],[ay]);
"Normálvekorok:";
n1:matrix([ay],[-ax]);
n2:matrix([-ay],[ax]);

# Egyenes egyenlete egy pont és normálvektor segítségével

/*
Adott az egyenes normálvektora (nx,ny), és egy pont, amin átmegy az egyenes (P(x0,y0))
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
nx:5$ /*Ezt töltsd ki*/
ny:7$ /*Ezt töltsd ki*/
x0:5$ /*Ezt töltsd ki*/
y0:7$ /*Ezt töltsd ki*/
"Normálvektor:";
n:matrix([nx],[ny]);
"P pont:";
P:matrix([x0],[y0]);
"Egyenes egyenlete:";
egyenlet:nx*x+ny*y=nx*x0+ny*y0;

# Adott egyenes és rá merőleges egyenes egyenlete, ami átmegy egy ponton

/*
Adott az egyenes egyenlete (e), szeretnénk felírni annak az egyenesnek az egyenletét(f), ami merőleges rá és átmegy a megadott P ponton
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
e_egyenes:2*x+3*y=5$ /*Ezt töltsd ki*/
x0:5$ /*Ezt töltsd ki*/
y0:7$ /*Ezt töltsd ki*/
"P pont:";
P:matrix([x0],[y0]);
"e egyenes normálvektora:";
nx_e:coeff(lhs(e_egyenes),x);
ny_e:coeff(lhs(e_egyenes),y);
n_e:matrix([nx_e],[ny_e]);
"f egyenes normálvektora:";
nx_f:-ny_e;
ny_f:nx_e;
n_f:matrix([nx_f],[ny_f]);
"f egyenes egyenlete:";
egyenlet:nx_f*x+ny_f*y=nx_f*x0+ny_f*y0;

# Adott egyenes és vele párhuzamos egyenes egyenlete, ami átmegy egy ponton

/*
Adott az egyenes egyenlete (e), szeretnénk felírni annak az egyenesnek az egyenletét(f), ami pármuzamos vele és átmegy a megadott P ponton
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
e_egyenes:2*x+3*y=5; /*Ezt töltsd ki*/
x0:5$ /*Ezt töltsd ki*/
y0:7$ /*Ezt töltsd ki*/
"P pont:";
P:matrix([x0],[y0]);
"e egyenes normálvektora:";
nx_e:coeff(lhs(e_egyenes),x);
ny_e:coeff(lhs(e_egyenes),y);
n_e:matrix([nx_e],[ny_e]);
"f egyenes normálvektora:";
nx_f:nx_e;
ny_f:ny_e;
n_f:matrix([nx_f],[ny_f]);
"f egyenes egyenlete:";
egyenlet:nx_f*x+ny_f*y=nx_f*x0+ny_f*y0;

# Egyenesek metszéspontja

/*
Adott az egyenes egyenlete (e), szeretnénk felírni annak az egyenesnek az egyenletét(f), ami pármuzamos vele és átmegy a megadott P ponton
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
e_egyenes:2*x+3*y=5$ /*Ezt töltsd ki*/
f_egyenes:3*x+4*y=10$ /*Ezt töltsd ki*/
megoldás:float(linsolve([e_egyenes,f_egyenes],[x,y]));
x:rhs(megoldás[1]);
y:rhs(megoldás[2]);

# Két egyenes távolsága

/*
Adott két egyenes egyenelete (e és f), szeretnénk meghatározni a két egyenes távolságát
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
e_egyenes:2*x+4*y=5$ /*Ezt töltsd ki*/
f_egyenes:2*x+3*y=10$ /*Ezt töltsd ki*/
"Párhuzamosak-e?";
if coeff(lhs(e_egyenes),x)/coeff(lhs(f_egyenes),x)=coeff(lhs(e_egyenes),y)/coeff(lhs(f_egyenes),y) then "Párhuzamosak" else "Nem párhuzamosak";
"Ha az jön ki, hogy párhuzamosak, akkor nézzük tovább a feladatot, ha nem párhuzamosak, akkor nem vizsgáljuk a távolságot";
segéd:solve(subst(x=0,e_egyenes),y);
"P pont koordinátái:";
Px:0;
Py:rhs(segéd[1]);
P:matrix([Px],[Py]);
"e egyenes normálvektora:";
nx_e:coeff(lhs(e_egyenes),x);
ny_e:coeff(lhs(e_egyenes),y);
n_e:matrix([nx_e],[ny_e]);
"g egyenes normálvektora:";
nx_g:-ny_e;
ny_g:nx_e;
n_g:matrix([nx_g],[ny_g]);
"g egyenes egyenlete:";
g_egyenes:nx_g*x+ny_g*y=nx_g*Px+ny_g*Py;
metszéspont_fg:float(linsolve([f_egyenes,g_egyenes],[x,y]))$
"H pont koordinátái:";
Hx:rhs(metszéspont_fg[1]);
Hy:rhs(metszéspont_fg[2]);
H:matrix([Hx],[Hy]);
"HP vektor:";
HP:matrix([Px-Hx],[Py-Hy]);
"Két egyenes távolsága:";
távolság:float(sqrt((Px-Hx)^2+(Py-Hy)^2));

# Pont és egyenes távolsága

/*
Adott egy egyenes egyenelete (e) és egy pont (P), szeretnénk meghatározni az egyenes és pont távolságát
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
e_egyenes:2*x+3*y=5$ /*Ezt töltsd ki*/
Px:5$ /*Ezt töltsd ki*/
Py:4$ /*Ezt töltsd ki*/
"e egyenes normálvektora:";
nx_e:coeff(lhs(e_egyenes),x);
ny_e:coeff(lhs(e_egyenes),y);
n_e:matrix([nx_e],[ny_e]);
"g egyenes normálvektora:";
nx_g:-ny_e;
ny_g:nx_e;
n_g:matrix([nx_g],[ny_g]);
"g egyenes egyenlete:";
g_egyenes:nx_g*x+ny_g*y=nx_g*Px+ny_g*Py;
metszéspont_eg:float(linsolve([e_egyenes,g_egyenes],[x,y]))$
"H pont koordinátái:";
Hx:rhs(metszéspont_eg[1]);
Hy:rhs(metszéspont_eg[2]);
H:matrix([Hx],[Hy]);
"HP vektor:";
HP:matrix([Px-Hx],[Py-Hy]);
"Pont és egyenes távolsága:";
távolság:float(sqrt((Px-Hx)^2+(Py-Hy)^2));

# Két egyenes által bezárt szög

/*
Adott két egyenes egyenelete (e és f), szeretnénk meghatározni a két egyenes által bezárt szöget (hajlásszög)
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
e_egyenes:2*x+4*y=5$ /*Ezt töltsd ki*/
f_egyenes:4*x+5*y=10$ /*Ezt töltsd ki*/
"e egyenes normálvektora:";
nx_e:coeff(lhs(e_egyenes),x);
ny_e:coeff(lhs(e_egyenes),y);
"f egyenes normálvektora:";
nx_f:coeff(lhs(f_egyenes),x);
ny_f:coeff(lhs(f_egyenes),y);
"e egyenes irányvektora:";
vx_e:ny_e;
vy_e:-nx_e;
"f egyenes irányvektora:";
vx_f:ny_f;
vy_f:-nx_f;
venagyság:sqrt(vx_e^2+vy_e^2);
vfnagyság:sqrt(vx_f^2+vy_f^2);
skalárisszorzat:vx_e*vx_f+vy_e*vy_f;
Képlet:"v_e*v_f"="|v_e|*|v_f|*cosα"; /* v_e*v_f a skaláris szorzat */
egyenlet:skalárisszorzat=venagyság*vfnagyság*cos(α);
megoldás:acos(skalárisszorzat/(venagyság*vfnagyság))$
"Radiánban:";
Radiánban:float(megoldás);
"Fokban:";
Fokban:float(Radiánban*(180/%pi));

# Háromszög adatai síkban

kill(all)$
ratprint: false$
fpprintprec: 8$
Ax:1$ /*Ezt töltsd ki*/
Ay:-2$ /*Ezt töltsd ki*/
Bx:-1$ /*Ezt töltsd ki*/
By:2$ /*Ezt töltsd ki*/
Cx:0$ /*Ezt töltsd ki*/
Cy:-1$ /*Ezt töltsd ki*/
"Csúcspontok:";
A:matrix([Ax],[Ay]);
B:matrix([Bx],[By]);
C:matrix([Cx],[Cy]);
"Vektorok:";
ABvektor:matrix([Bx-Ax],[By-Ay]);
ACvektor:matrix([Cx-Ax],[Cy-Ay]);
BCvektor:matrix([Cx-Bx],[Cy-By]);
"Nagyságok:";
ABnagyság:sqrt((Bx-Ax)^2+(By-Ay)^2);
ACnagyság:sqrt((Cx-Ax)^2+(Cy-Ay)^2);
BCnagyság:sqrt((Cx-Bx)^2+(Cy-By)^2);
"Szögek:"; /* α az A csúcsnál lévő szög, β a B csúcsnál lévő szög, γ a C csúcsnál lévő szög*/
"Radiánban:";
αradián:float(acos((BCnagyság^2-ABnagyság^2-ACnagyság^2)/(-2*ABnagyság*ACnagyság)));
βradián:float(acos((ACnagyság^2-ABnagyság^2-BCnagyság^2)/(-2*ABnagyság*BCnagyság)));
γradián:float(acos((ABnagyság^2-ACnagyság^2-BCnagyság^2)/(-2*ACnagyság*BCnagyság)));
"Fokban:";
αfok:float(αradián*(180/%pi));
βfok:float(βradián*(180/%pi));
γfok:float(γradián*(180/%pi));
"Ellenőrzés:";
αfok+βfok+γfok;
if (αfok+βfok+γfok<180.00000001) and (αfok+βfok+γfok>179.99999999) then "Jó az eredmény" else "Rossz az eredmény";
"Kerület:";
Kerület:float(ABnagyság+ACnagyság+BCnagyság);
"Terület:";
Terület:float((ABnagyság*ACnagyság*sin(αradián))/2);
"Súlypont:";
Súlypont:matrix([(Ax+Bx+Cx)/3],[(Ay+By+Cy)/3]);

# Háromszög adatai térben

kill(all)$
ratprint: false$
fpprintprec: 8$
Ax:1$ /*Ezt töltsd ki*/
Ay:-2$ /*Ezt töltsd ki*/
Az:-6$ /*Ezt töltsd ki*/
Bx:-1$ /*Ezt töltsd ki*/
By:2$ /*Ezt töltsd ki*/
Bz:3$ /*Ezt töltsd ki*/
Cx:0$ /*Ezt töltsd ki*/
Cy:-1$ /*Ezt töltsd ki*/
Cz:2$ /*Ezt töltsd ki*/
"Csúcspontok:";
A:matrix([Ax],[Ay],[Az]);
B:matrix([Bx],[By],[Bz]);
C:matrix([Cx],[Cy],[Cz]);
"Vektorok:";
ABvektor:matrix([Bx-Ax],[By-Ay],[Bz-Az]);
ACvektor:matrix([Cx-Ax],[Cy-Ay],[Cz-Az]);
BCvektor:matrix([Cx-Bx],[Cy-By],[Cz-Bz]);
"Nagyságok:";
ABnagyság:sqrt((Bx-Ax)^2+(By-Ay)^2+(Bz-Az)^2);
ACnagyság:sqrt((Cx-Ax)^2+(Cy-Ay)^2+(Cz-Az)^2);
BCnagyság:sqrt((Cx-Bx)^2+(Cy-By)^2+(Cz-Bz)^2);
"Szögek:"; /* α az A csúcsnál lévő szög, β a B csúcsnál lévő szög, γ a C csúcsnál lévő szög*/
"Radiánban:";
αradián:float(acos((BCnagyság^2-ABnagyság^2-ACnagyság^2)/(-2*ABnagyság*ACnagyság)));
βradián:float(acos((ACnagyság^2-ABnagyság^2-BCnagyság^2)/(-2*ABnagyság*BCnagyság)));
γradián:float(acos((ABnagyság^2-ACnagyság^2-BCnagyság^2)/(-2*ACnagyság*BCnagyság)));
"Fokban:";
αfok:float(αradián*(180/%pi));
βfok:float(βradián*(180/%pi));
γfok:float(γradián*(180/%pi));
"Ellenőrzés:";
αfok+βfok+γfok;
if (αfok+βfok+γfok<180.00000001) and (αfok+βfok+γfok>179.99999999) then "Jó az eredmény" else "Rossz az eredmény";
"Kerület:";
Kerület:float(ABnagyság+ACnagyság+BCnagyság);
"Terület:";
Terület:float((ABnagyság*ACnagyság*sin(αradián))/2);
"Súlypont:";
Súlypont:matrix([(Ax+Bx+Cx)/3],[(Ay+By+Cy)/3],[(Az+Bz+Cz)/3]);

# Kör egyenlete középpont és sugár segítségével

/*
Adott a kör középpontja és sugara, írjuk fel a kör egyenletét
Kx=u
Ky=v
r= kör surgara
*/
kill(all)$
ratprint: false$
fpprintprec: 5$
u:5$ /*Ezt töltsd ki*/
v:4$ /*Ezt töltsd ki*/
r:7$ /*Ezt töltsd ki*/
köregyenlet:(x-u)^2+(y-v)^2=r^2;