Advertisement
Guest User

Untitled

a guest
Oct 25th, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.39 KB | None | 0 0
  1. *zadanie 4.1;
  2.  
  3. data ankieta;
  4. array pyt(10) $;
  5. format pyt1-pyt10 $3.;
  6. do i=1 to 10;
  7. do j=1 to 10;
  8. x=3*ranuni(0);
  9. pyt(j)=byte(65+floor(x));
  10. end;
  11. output;
  12. end;
  13. drop i j x;
  14. run;
  15.  
  16. data zad1a;
  17. A=0;
  18. B=0;
  19. C=0;
  20. set ankieta;
  21. array pyt(*) _character_;
  22. do i=1 to dim(pyt);
  23. if pyt(i)='A' then A+1;
  24. if pyt(i)='B' then B+1;
  25. if pyt(i)='C' then C+1;
  26. end;
  27. keep A B C;
  28. run;
  29.  
  30. data zad1b;
  31. set ankieta end=k;
  32. array pyt(*) _character_;
  33. do i=1 to dim(pyt);
  34. if pyt(i)='A' then A+1;
  35. if pyt(i)='B' then B+1;
  36. if pyt(i)='C' then C+1;
  37. end;
  38. if k then output;
  39. keep A B C;
  40. run;
  41.  
  42. data zad1c;
  43. set ankieta end=k;
  44. array p1(*) _character_;
  45. array p2(10,10) $ _temporary_ ;
  46. do i=1 to 10;
  47. p2(_N_,i)=p1(i);
  48. end;
  49. if k then do;
  50. do j=1 to 10;
  51. do l=1 to 10;
  52. select;
  53. when (p2(l,j)='A') A+1;
  54. when (p2(l,j)='B') B+1;
  55. otherwise C+1;
  56. end;
  57. end;
  58. output;
  59. A=0;
  60. B=0;
  61. C=0;
  62. end;
  63. end;
  64. keep A B C;
  65. run;
  66.  
  67. *zadanie 4.2;
  68. *ze zwracaniem;
  69. data lab04.zad2a;
  70. set lab04.a;
  71. array tab(*) x1-x10;
  72. array y(10);
  73. format y1-y10 3.;
  74. do i=1 to l;
  75. y(i)=tab(floor(ranuni(0)*10+1));
  76. end;
  77. drop x1-x10 i;
  78. run;
  79.  
  80. *bez zwracania;
  81. data lab04.zad2b;
  82. set lab04.a;
  83. array tab(*) x1-x10;
  84. array y(10);
  85. format y1-y10 3.;
  86. array czy(100,10) _temporary_;
  87. do i=1 to l;
  88. do until (czy(_n_,j)=.);
  89. j=floor(ranuni(0)*10+1);
  90. end;
  91. czy(_n_,j)=1;
  92. y(i)=tab(j);
  93. end;
  94. drop x1-x10 i;
  95. run;
  96.  
  97. *zadanie 4.3;
  98.  
  99. data lab04.trojkat_Pascala;
  100. array t(20,20)_temporary_;
  101. array p(20);
  102. do i=2 to dim(p);
  103. p(1)=1;
  104. t(i,1)=1;
  105. do j=2 to dim(p);
  106. p(j)=sum(t(i-1,j),t(i-1,j-1));
  107. t(i,j)=p(j);
  108. end;
  109. output;
  110. end;
  111. drop i j;
  112. run;
  113. *drugi sposob dla n=10;
  114. data lab04.trojkat_Pascala2;
  115. array t(10,19)_temporary_;
  116. array p(19);
  117. format p1-p19 3.;
  118. do i=1 to 10;
  119. if i=1 then do;
  120. p(ceil(dim(p)/2))=1;
  121. t(1,ceil(dim(p)/2))=1;
  122. end;
  123. else do;
  124. do j=2 to 18;
  125. p(j)=sum(t(i-1,j+1),t(i-1,j-1));
  126. t(i,j)=p(j);
  127. end;
  128. end;
  129. if i=10 then do;
  130. p(1)=1;
  131. p(19)=1;
  132. end;
  133. output;
  134. end;
  135. drop i j;
  136. run;
  137.  
  138.  
  139. *zadanie 4.4;
  140.  
  141. data lab04.z;
  142. array z(100);
  143. format z1-z100;
  144. do i=1 to 100;
  145. z(i)=2*ranuni(0)-1;
  146. end;
  147. drop i;
  148. run;
  149.  
  150. data lab04.pz;
  151. set lab04.z;
  152. array z(*) z1-z100;
  153. array pz(10);
  154. do j=1 to 10;
  155. do i=1 to 10;
  156. pz(i)=z((i-1)*10+j);
  157. end;
  158. output;
  159. end;
  160. keep pz1-pz10;
  161. run;
  162.  
  163. data lab04.braki;
  164. set lab04.pz;
  165. array pz(*) pz:;
  166. array czy(10,10) _temporary_;
  167. if _n_=1 then do;
  168. do i=1 to 25;*wybor miejsc na ktorych bede braki danych w pierwszym obrocie petli glownej;
  169. do until (czy(k,l)=.);
  170. k=floor(ranuni(0)*10)+1;
  171. l=floor(ranuni(0)*10)+1;
  172. end;
  173. czy(k,l)=1; *element na miejscu (k,l) zostal wylosowany;
  174. end;
  175. end;
  176. do j=1 to 10;
  177. if czy(_n_,j)=1 then pz(j)=.;
  178. end;
  179. run;
  180.  
  181. *zadanie 4.5;
  182. data lab04.zad5;
  183. set lab04.a;
  184. array xx(*) _all_ _temporary_;
  185. array y(10) ;
  186. do j=1 to 10;
  187. xmax=xx(1);
  188. id_xmax=1;
  189. do i=1 to 10;
  190. if xmax<xx(i) then do;
  191. xmax=xx(i);
  192. id_xmax=i;
  193. end;
  194. end;
  195. y(11-j)=xmax;
  196. xx(id_xmax)=.;
  197. end;
  198. output;
  199. keep y1-y10;
  200. format y1-y10 3. ;
  201. run;
  202.  
  203. *zadanie 4.6;
  204.  
  205. data lab04.zad6;
  206. set lab04.konwersja;
  207. f=scan(liczba,1,'c');
  208.  
  209. run;
  210.  
  211. *zadanie 4.7;
  212. data lab04.sys2;
  213. array b(9) b1-b9;
  214. format b1-b9 1.;
  215. do i=1 to 10;
  216. k=floor(ranuni(0)*9+1);
  217. do j=1 to k;
  218. b(j)=floor(ranuni(0)+0.5);
  219. end;
  220. output;
  221. end;
  222. drop i j k;
  223. run;
  224.  
  225.  
  226.  
  227. data lab04.zad7;
  228. set lab04.Sysdwa ;
  229. array b(*) _all_;
  230. format _numeric_ 1.;
  231. x=0;
  232. l=0;
  233. do i=1 to 9;
  234. if b(i)=. then leave;
  235. l+1;
  236. end;
  237. do i=1 to l;
  238. if b(i)=. then leave;
  239. x+b(i)*(2**(l-i));
  240. end;
  241. run;
  242.  
  243. data lab04.zad7b;
  244. set lab04.sysdwa ;
  245. array b(*) b1-b9;
  246. format _numeric_ 1.;
  247. x=0;
  248. do i=1 to 9;
  249. if b(i)=. then leave;
  250. x=2*(x+b(i));
  251. end;
  252. x=x/2;;
  253. run;
  254.  
  255. *zadanie 4.9;
  256.  
  257. data lab04.zad9;
  258. set lab04.a;
  259. array xx(*) _all_ _temporary_;
  260. array m(3);
  261. do i=1 to 3;
  262. xmax=xx(1);
  263. index_x=1;
  264. do j=1 to dim(xx);
  265. if xx(j)>xmax then do;
  266. xmax=xx(j);
  267. index_x=j;
  268. end;
  269. end;
  270. m(i)=xmax;
  271. xx(index_x)=.;
  272. end;
  273. avg=(m(1)+m(2)+m(3))/3;
  274. keep m1-m3 avg;
  275. run;
  276.  
  277. *zadanie 10;
  278.  
  279.  
  280. data lab04.zad10;
  281. set lab04.a1;
  282. array r(*) _all_ _temporary_ ;
  283. do i=1 to dim(r);
  284. if r(i)=. then do;
  285. brak=catt(brak,"w",_n_,"k",i);
  286. end;
  287. end;
  288. format brak $ 10.;
  289. keep brak;
  290. run;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement