# Kezdo parancsok minden script elejen

# Workspace kiuritese, valtozok torlese
clear

# Megnyitott abrak becsukasa
close all

# Megjegyzeseket a # jellel kezdunk, ezt nem veszi figyelembe az Octave

# display("szoveg")
# Kiirja az idezojelek kozotti szoveget a kepernyore
# \n a szovegben uj sort jelent
display("A parancssorba is irhatunk mindent sorrol sorra mint ide. Igy viszont konnyebb visszamenni es valtoztatni.")

# egyszeru muveletek
display("1 + 1")
1 + 1

display("Angol nyelven dolgozunk! Nincs tizedesvesszo, csak tizedespont!!")
display("2,3")
2,3
display("2.3")
2.3

display("\nexp(2)")
exp(2)

display("\nsin(1)")
sin(1)

display("\nln(pi)")
log(pi)

display("\nAz Octave is tulajdonkeppen egy programozasi nyelv. A programozas egyik alapja a valtozok rendszere")
display("A valtozo nem mas mint egy nev es egy hozza parositott ertek")
x = 2
display("\nMost letrehoztunk egy \"x\" nevu valtozot, melynek erteke 2")
x

display("\nEzzel lehet is szamolni: x^2")
x^2
display("x + 3")
x + 3

display("\nVan egy alapvaltozo ami minden muvelet utan uj erteket kap ez az \"ans\" ami az answer roviditese azaz az adott muvelet eredmenye, a valasz")
display("\nEzzel is tudunk szamolni")
display("ans")
ans
display("ans + 2")
ans + 2
display("ans + 2")
ans + 2

display("\nEgy alapveto adatszerkezet amit hasznalnunk kell az a vektor-matrix paros. (Az Octave fizetos mintapeldaja a MATLAB is arrol lett hires, hogy milyen hatekonyan tudja ezeket kezelni)")
display("Alapveto eszkozok vektorok definialasara:")

display("\na:b = a-tol b-ig egyesevel")
display("1 : 10")
1 : 10
display("1 : 9.5")
1 : 9.5

display("\nOszlopvektor transzponalassal:")
x = 1 : 10
display("x'")
x'
display("transpose(x))")
transpose(x)

display("\na:c:b = a-tol b-ig c-vel lepkedve")
display("1:0.5:3")
1 : 0.5 : 3
display("1:0.5:2.9")
1 : 0.5 : 2.9

display("\nlinspace(a, b, n) = a kezdopont b vegpont es koztes pontok, osszesen n db")
display("linspace(1,5,5)")
linspace(1, 5, 5)
display("linspace(1,5,2)")
linspace(1, 5, 2)
display("linspace(1,5,3)")
linspace(1, 5, 3)

display("Matrix definialasa: A = [a b c; d e f]")
display("Szogletes zarojelek jelzik a hatarokat, a ; a matrix ujabb soranak kezdetet jelzi")
display("A = [1 2 3; 4 5 6; 7 8 9]")
A = [1 2 3; 4 5 6; 7 8 9]
display("A = [1 2 3; 4 5 6]")
A = [1 2 3; 4 5 6]

display("\nMatrix k-ik oszlopa, sora:")
display("A(:,1) - 1. oszlop")
A(:, 1)
display("A(1,:) - 1. sor")
A(1, :)

display("\nMatrix (vagy vektor) minden elemere ugyanannak a muveletnek az elvegzesenel figyelni kell, hogy pl a matrix szorzas helyett elemenkenti szorzast kerjunk")
display("Ennek a jele a \".\"")
display("A^2 = A*A, de A.^2 = olyan matrix ahol minden elem a negyzetere lett emelve")

display("B = [1 2 3; 4 5 6; 7 8 9]")
B = [1 2 3; 4 5 6; 7 8 9]
display("B^2")
B^2
display("B*B")
B * B
display("B.^2")
B.^2
display("B .* B")
B .* B

display("\nKoztes muveleteket felesleges kiirni, ; a parancs vegen nem jeleniti meg a kimenetet")
display("1+1")
1 + 1
display("1+1;")
1 + 1;
display("(semmi se jelent meg, ez mar uj sor")

display("\nFuggvenyek definialasa:")
display("fuggvenynev = @(valtozo1, valtozo2, ...) keplet")
f = @(x) x + 1
display("f(1)")
f(1)

g = @(x) x.^2
display("g(B)")
g(B)

display("Feltetelezzuk most, hogy x egy 3 elemu vektor, legyen h(x) olyan oszlopvektor ahol elemenkent hozzaadjuk az indexet")
h = @(x) [x(1) + 1; x(2) + 2; x(3) + 3]
display("h([0 0 0])")
h([0 0 0])

f = @(y, t) y + t.^2
display("f(1, 2)")
f(1, 2)
display("f(1, 3)")
f(1, 3)

display("Feltetelezzuk most, hogy x egy 3 elemu vektor, legyen h(x) olyan sorvektor ahol elemenkent hozzaadjuk az indexet")
h = @(x) [x(1) + 1, x(2) + 2, x(3) + 3]
display("h([0 0 0])")
h([0 0 0])

display("\nFuggveny abrazolasa: tulajdonkeppen kell ket azonos hosszusagu vektor, egy a vizszintes, egy a fuggoleges tengelyre. Az ezek altal meghatarozott pontokat egyenes vonanal osszekoti az Octave")
display("x = linspace(0, 3, 5)")
x = linspace(0, 3, 5)
display("plot(x,g(x))")
figure; # uj kepet csinal
plot(x, g(x))

display("x = linspace(0, 3, 100); <- ott a ;, nem akarunk ennyi pontot kiiratni")
x = linspace(0, 3, 100);
display("plot(x,g(x))")
figure; # uj kepet csinal
plot(x, g(x))