Quiet[Remove["Global`*"]];

(*jak se podivat na vnitrni reprezentacvi vyrazu*)
vyr1=a==(b^2)+4;
FullForm[vyr1];
TreeForm[vyr1];
TraditionalForm[vyr1]

(*ukazka kdy to pomuze*)
a*b=5

a*b//TreeForm

(*vnitrni funkce maji tzv. Attributes*)
Attributes[Times]

(*neco o List -ech*)
(*pouziti jako vektor*)
listik1={1,2,3};
listik2={a,b,c};
(* hvezdicka nasoli po prvcich*)
listik1*listik2
(*tecka dela skalarni soucin*)
listik1.listik2

listik1//TreeForm;
listik1//FullForm

(*list jako matice*)
(*Ctrl + , da novy sloupec*)
(*Ctrl + Enter da novy radek*)
matice=(({{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}))

matice//TreeForm;
(*pro matice mame spoustu funkci*)
Det[matice];
(*maticove nasobeni je opet tecka*)
matice.listik1

(*vyber prvku z listu*)
listik3={1,{ja,ty},{{alfa,romeo}}};
Part[listik3,2];
listik3[[2]];
(*chci romeo*)
listik3[[3,1,2]];
(*od konce zaporna cisla*)
listik3[[-1,-1,-1]];
(*prvni aposledni funkce First a Last*)
First[listik3];
Last[listik3]

listik4={1,{ja,ty},{alfa,romeo}};
listik4[[3,2]];

(*mame-li nejake pravidlo, muzeme pouzit pro zadani Listu prikaz Table*)
Table[opice,{12}];
(*kdyz je druhy parametr {iterator, horniMez} tak iterator zacne cislem 1, krok je 1 a neprekroci horniMez*)
Table[(x^i),{i,4.5}];
(*nejobecnejsi syntaxe {iterator,dolniMez,horniMez,krok}*)
Table[(x^i),{i,0,3.0,.32}];
(*vice iteratoru da matici, kubickou matici atd.*)
Table[Prime[i+j-1],{i,5},{j,5}];
(*druhy parametr ve tvaru {iterator,{i1,i2,i3...}} vrati..*)
hodnotyIteratoru={1,8,r,5};
Table[(x^i),{i,hodnotyIteratoru}];

(*neco o patternech*)
(*?___*)(*nejobecnejsi pattren*)
(*cislo 1 zcela konkretni pattern*)
(*ale pred patterny jeste Set a SetDelayed*)
(*Set piseme jako "="*)
Set[a,2];
a=2;

ClearAll[a];
SeedRandom[1];
a=Random[];
?a

?:=

ClearAll[a];
SeedRandom[1];
a:=Random[]
?a

ClearAll[a];
SeedRandom[1];
a:=Random[];
Table[a,{5}]

ClearAll[a];
SeedRandom[1];
a=Random[];
Table[a,{5}]

(*a ted uz ty funkce*)
ClearAll[f];
f[x_]:=Integrate[(x^17)Sin[x],x];
f[1.3];
?f

ClearAll[f];
f[x_]=Integrate[(x^17)Sin[x],x]
f[1.3]
?f

ClearAll[f];
f[a_]:=FindRoot[Cos[x]==a*x,{x,0}]
f[0.1]

ClearAll[f,a];
f[a_]=FindRoot[Cos[x]==a*x,{x,0}]

ClearAll[f];
(*x vlevo i vpravo ma stejnou vyblitou barvu*)
x=5;
f[x_]:=(x^2);
f[3];
?f

ClearAll[f];
(*x vlevo i vpravo nema stejnou vyblitou barvu*)
x=5;
f[x_]=(x^2);
f[3];
?f

ClearAll[f,x];
(*x vlevo i vpravo nema stejnou vyblitou barvu*)
f[x_]=(x^2);
f[3]

(*pretezovano fci*)