// Seznámení s programováním ve Scilabu
// -------------------------------------
clc,clear,close,mode(0)
// - generování celých čísel
x=fix(20*rand(1,100,'u'));
// - součet
s=0;
for i=1:length(x)
  s=s+x(i);
end
disp 'Součet všech je'
s
// - součet sudých
s=0; y=[];
for i=1:length(x)
  if (fix(x(i)/2))==x(i)/2
    s=s+x(i);
    y=[y x(i)];
  end
end
disp 'Sudá jsou'
y
disp 'a jejich součet je'
s
// - součet větších než 12
k=find(x>12);
z=x(k);
s=sum(z);
disp 'Součet větších než 12'
s
// - kolik dělitelných sedmi do sta
n=0; x=[];
for i=1:100
  if fix(i/7)==i/7
    n=n+1;
    x=[x i];
  end
end
disp 'Dělitelná 7: počet a jsou to'
n,x
// - odmocniny z 5
n=0; x=5;
for i=1:1000
  x=sqrt(x);
  if abs(x-1)>.001
    n=n+1;
  else 
    break
  end
end
disp 'Počet odmocnin je'
n
// - kvadratická rovnice
disp 'Kvadratická rovnice'
a=1; b=2; c=1;
d=b**2-4*a*c
if d>0
  x1=(-b+sqrt(d))/(2*a)
  x2=(-b-sqrt(d))/(2*a)
elseif abs(d)<1e-8
  x12=-b/(2*a)
else
  re=-b/(2*a);
  im=sqrt(-d)/(2*a);
  x1=string(re)+' + '+string(im)
  x2=string(re)+' - '+string(im)
end
// - volba typu signálu
typ=4
select typ
  case 1, x=rand(1,100,'n');
  case 2, x=rand(1,100,'u');
  case 3, x=sin(4*%pi*sin((0:99)/100));
  case 4, x=sign(1e8*sin(4*%pi*sin((0:99)/100)));
end
plot(x,'.:')
// - obrázky (mocniny x)
clear x
close(winsid());
tx=['odnocnina';'první m.';'druhá m.';'třetí m.'];
s=0:.1:3;
x(1,:)=s^(.5);
x(2,:)=s;
x(3,:)=s^2;
x(4,:)=s^3;
set(scf(),'position',[700 100 600 500]);
for i=1:4
  subplot(2,2,i)
  plot(s,x(i,:))
  title('Obr. '+string(i)+'  '+tx(i));
//  set(gca(),'data_bounds',[1 3 0 30])
  xlabel 'osa x';
  ylabel 'osa y';
end


