Advertisement
Guest User

Untitled

a guest
Jun 13th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Erlang 3.42 KB | None | 0 0
  1. -module(kolo).
  2. -export([silniaI/1, silniaR/1, parzysta/1, fibo/1, nalezy/2, polacz/2, zmniejsz/2,maxI/1, pozycja_w/2, suma/2, onp/1, onpMn/2, zlicz/2,zo/2,iloczyn/2,ujR/1,ujI/1,domkniecie/1,onpa/1,onpb/1]).
  3.  
  4. silniaI(N) ->
  5.     silniaI(N,1).
  6.    
  7. silniaI(0,R) ->
  8.     R;
  9.  
  10. silniaI(N,R) when N>0 ->
  11.     Rn = R*N,
  12.     silniaI(N-1,Rn).
  13.  
  14. silniaR(0) ->
  15.     1;
  16.  
  17. silniaR(N) when N>0 ->
  18.     N*silniaR(N-1).
  19.  
  20.  
  21.  
  22. parzysta(N) when N>1 ->
  23.     parzysta(N-2);
  24.    
  25. parzysta(1) ->
  26.     false;
  27.    
  28. parzysta(0) ->
  29.     true.
  30.  
  31.  
  32.  
  33. fibo(N) when ((N==0) or (N==1)) ->
  34.     1;
  35.  
  36. fibo(N) when N>1 ->
  37.     fibo(N-2)+fibo(N-1).
  38.  
  39.  
  40.  
  41. nalezy(N,[N|Lt]) ->
  42.     true;
  43.  
  44. nalezy(N,[Lh|Lt]) ->
  45.     nalezy(N,Lt);
  46.  
  47. nalezy(N,[]) ->
  48.     false.
  49.    
  50.  
  51.  
  52. polacz(A,B) ->
  53.     A ++ B.
  54.  
  55.  
  56.  
  57. zmniejsz(L,N) ->
  58.     zmniejsz(L,N,[]).
  59.    
  60. zmniejsz([Lh|Lt],N,O) ->
  61.     OI = O ++ [(Lh - N)],
  62.     zmniejsz(Lt,N,OI);
  63.  
  64. zmniejsz([],_,R) ->
  65.     R.
  66.    
  67.  
  68.  
  69. maxI(L) ->
  70.     maxI(L,L).
  71.  
  72. maxI(L,[Lh|_]) ->
  73.     maxI(L,Lh);
  74.  
  75. maxI([Lh|Lt],R) when Lh>R ->
  76.     Ri = Lh,
  77.     maxI(Lt,Ri);
  78.  
  79. maxI([Lh|Lt],R) when Lh=<R ->
  80.     maxI(Lt,R);
  81.    
  82. maxI([],R) ->
  83.     R.
  84.  
  85.  
  86.  
  87. pozycja_w(E,L) ->
  88.     pozycja_w(1,E,L).
  89.    
  90. pozycja_w(N,E,[Lh|_]) when Lh>E ->
  91.     N;
  92.  
  93. pozycja_w(N,E,[Lh|Lt]) when Lh=<E ->
  94.     pozycja_w(N+1,E,Lt);
  95.  
  96. pozycja_w(_,_,[]) ->
  97.     0.
  98.    
  99.  
  100.  
  101. suma(L1,L2) ->
  102.     suma(L1, L2, L1).
  103.  
  104. suma(L1, [L2h|L2t], R) ->
  105.     Ex = lists:member(L2h, L1),
  106.     if Ex ->
  107.         suma(L1,L2t,R);
  108.     true ->
  109.         suma(L1,L2t,R++[L2h])
  110.     end;
  111.    
  112. suma(_,[],R) ->
  113.     R.
  114.    
  115.    
  116.    
  117. onpMn(L) ->
  118.     onpMn(L,1).
  119.  
  120. onpMn([Lh|Lt],R) ->
  121.     Ri = R*Lh,
  122.     onpMn(Lt,Ri);
  123.  
  124. onpMn([],R) ->
  125.     R.
  126.  
  127. onp(N) ->
  128.     onp(N,[]).
  129.  
  130. onp([Nh|Nt],S) when ((Nh =/= 'p') and (Nh =/= 'r')) ->
  131.     Si = S++[Nh],
  132.     onp(Nt,Si);
  133.  
  134. onp([Nh|Nt],S) when (Nh == 'p') ->
  135.     Si = lists:sum(S),
  136.     onp(Nt,[Si]);
  137.  
  138. onp([Nh|Nt],S) when (Nh == 'r') ->
  139.     Si = onpMn(S),
  140.     onp(Nt,[Si]);
  141.  
  142. onp([],[S]) ->
  143.     S.
  144.  
  145.  
  146.  
  147. zlicz(N,L) ->
  148.     zlicz(N,L,0).
  149.  
  150. zlicz(N,[Lh|Lt],R) when Lh<N ->
  151.     zlicz(N,Lt,R+1);
  152.  
  153. zlicz(N,[Lh|Lt],R) when Lh>=N ->
  154.     zlicz(N,Lt,R);
  155.  
  156. zlicz(_,[],R) ->
  157.     R.
  158.    
  159.    
  160.  
  161. zo(N, []) -> [];
  162. zo(N, [L]) -> [N];
  163. zo(N, [L|T]) -> [L|zo(N,T)].
  164.  
  165.  
  166.  
  167. iloczyn(L1,L2) ->
  168.     iloczyn(L1,L2,[]).
  169.  
  170. iloczyn(L1,[],R) ->
  171.     R;
  172.    
  173. iloczyn(L1, [L2h|L2t], R) ->
  174.     Ex = (lists:member(L2h,L1) and (not(lists:member(L2h,R)))),
  175.     if Ex ->
  176.         iloczyn(L1,L2t,R++[L2h]);
  177.     true ->
  178.         iloczyn(L1,L2t,R)
  179.     end.
  180.  
  181.  
  182.  
  183. ujI(L) ->
  184.     ujI(L,1).
  185.  
  186. ujI([],_) -> 0;
  187.  
  188. ujI([Lh|Lt],P) when Lh<0 -> P;
  189.  
  190. ujI([Lh|Lt],P) when Lh>=0 ->
  191.     ujI(Lt,P+1).
  192.    
  193.  
  194.  
  195. ujR([]) -> 0;
  196.  
  197. ujR([H|T]) when H<0 -> 1;
  198.  
  199. ujR([H|T]) when H>0 ->
  200.     1+ujR(T).
  201.    
  202.    
  203.  
  204. domkniecie(L) ->
  205.     domkniecie(L,[0,1,2,3,4,5,6,7,8,9]).
  206.  
  207. domkniecie([],N) -> N;
  208.  
  209. domkniecie([Lh|Lt],N) ->
  210.     Ex = lists:member(Lh,N),
  211.     if Ex ->
  212.         domkniecie(Lt,N--[Lh]);
  213.     true ->
  214.         domkniecie(Lt,N)
  215.     end.
  216.    
  217.  
  218.  
  219. onpa([L]) -> L;
  220.  
  221. onpa([La,Lb,'p'|Lt]) ->
  222.     Li = La + Lb,
  223.     onpa([Li]++Lt);
  224.  
  225. onpa([La,Lb,'r'|Lt]) ->
  226.     Li = La * Lb,
  227.     onpa([Li]++Lt).
  228.    
  229.  
  230.  
  231. onpb(L) ->
  232.     onpb(L,[]).
  233.    
  234. onpb([],[S]) -> S;
  235.  
  236. onpb([Lh|Lt],[Sa,Sb]) when Lh == 'p' ->
  237.     Si = Sa + Sb,
  238.     onpb(Lt,[Si]);
  239.    
  240. onpb([Lh|Lt],[Sa,Sb]) when Lh == 'r' ->
  241.     Si = Sa * Sb,
  242.     onpb(Lt,[Si]);
  243.  
  244. onpb([Lh|Lt],S) ->
  245.     onpb(Lt, S ++ [Lh]).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement