Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *zadanie 4.1;
- data ankieta;
- array pyt(10) $;
- format pyt1-pyt10 $3.;
- do i=1 to 10;
- do j=1 to 10;
- x=3*ranuni(0);
- pyt(j)=byte(65+floor(x));
- end;
- output;
- end;
- drop i j x;
- run;
- data zad1a;
- A=0;
- B=0;
- C=0;
- set ankieta;
- array pyt(*) _character_;
- do i=1 to dim(pyt);
- if pyt(i)='A' then A+1;
- if pyt(i)='B' then B+1;
- if pyt(i)='C' then C+1;
- end;
- keep A B C;
- run;
- data zad1b;
- set ankieta end=k;
- array pyt(*) _character_;
- do i=1 to dim(pyt);
- if pyt(i)='A' then A+1;
- if pyt(i)='B' then B+1;
- if pyt(i)='C' then C+1;
- end;
- if k then output;
- keep A B C;
- run;
- data zad1c;
- set ankieta end=k;
- array p1(*) _character_;
- array p2(10,10) $ _temporary_ ;
- do i=1 to 10;
- p2(_N_,i)=p1(i);
- end;
- if k then do;
- do j=1 to 10;
- do l=1 to 10;
- select;
- when (p2(l,j)='A') A+1;
- when (p2(l,j)='B') B+1;
- otherwise C+1;
- end;
- end;
- output;
- A=0;
- B=0;
- C=0;
- end;
- end;
- keep A B C;
- run;
- *zadanie 4.2;
- *ze zwracaniem;
- data lab04.zad2a;
- set lab04.a;
- array tab(*) x1-x10;
- array y(10);
- format y1-y10 3.;
- do i=1 to l;
- y(i)=tab(floor(ranuni(0)*10+1));
- end;
- drop x1-x10 i;
- run;
- *bez zwracania;
- data lab04.zad2b;
- set lab04.a;
- array tab(*) x1-x10;
- array y(10);
- format y1-y10 3.;
- array czy(100,10) _temporary_;
- do i=1 to l;
- do until (czy(_n_,j)=.);
- j=floor(ranuni(0)*10+1);
- end;
- czy(_n_,j)=1;
- y(i)=tab(j);
- end;
- drop x1-x10 i;
- run;
- *zadanie 4.3;
- data lab04.trojkat_Pascala;
- array t(20,20)_temporary_;
- array p(20);
- do i=2 to dim(p);
- p(1)=1;
- t(i,1)=1;
- do j=2 to dim(p);
- p(j)=sum(t(i-1,j),t(i-1,j-1));
- t(i,j)=p(j);
- end;
- output;
- end;
- drop i j;
- run;
- *drugi sposob dla n=10;
- data lab04.trojkat_Pascala2;
- array t(10,19)_temporary_;
- array p(19);
- format p1-p19 3.;
- do i=1 to 10;
- if i=1 then do;
- p(ceil(dim(p)/2))=1;
- t(1,ceil(dim(p)/2))=1;
- end;
- else do;
- do j=2 to 18;
- p(j)=sum(t(i-1,j+1),t(i-1,j-1));
- t(i,j)=p(j);
- end;
- end;
- if i=10 then do;
- p(1)=1;
- p(19)=1;
- end;
- output;
- end;
- drop i j;
- run;
- *zadanie 4.4;
- data lab04.z;
- array z(100);
- format z1-z100;
- do i=1 to 100;
- z(i)=2*ranuni(0)-1;
- end;
- drop i;
- run;
- data lab04.pz;
- set lab04.z;
- array z(*) z1-z100;
- array pz(10);
- do j=1 to 10;
- do i=1 to 10;
- pz(i)=z((i-1)*10+j);
- end;
- output;
- end;
- keep pz1-pz10;
- run;
- data lab04.braki;
- set lab04.pz;
- array pz(*) pz:;
- array czy(10,10) _temporary_;
- if _n_=1 then do;
- do i=1 to 25;*wybor miejsc na ktorych bede braki danych w pierwszym obrocie petli glownej;
- do until (czy(k,l)=.);
- k=floor(ranuni(0)*10)+1;
- l=floor(ranuni(0)*10)+1;
- end;
- czy(k,l)=1; *element na miejscu (k,l) zostal wylosowany;
- end;
- end;
- do j=1 to 10;
- if czy(_n_,j)=1 then pz(j)=.;
- end;
- run;
- *zadanie 4.5;
- data lab04.zad5;
- set lab04.a;
- array xx(*) _all_ _temporary_;
- array y(10) ;
- do j=1 to 10;
- xmax=xx(1);
- id_xmax=1;
- do i=1 to 10;
- if xmax<xx(i) then do;
- xmax=xx(i);
- id_xmax=i;
- end;
- end;
- y(11-j)=xmax;
- xx(id_xmax)=.;
- end;
- output;
- keep y1-y10;
- format y1-y10 3. ;
- run;
- *zadanie 4.6;
- data lab04.zad6;
- set lab04.konwersja;
- f=scan(liczba,1,'c');
- run;
- *zadanie 4.7;
- data lab04.sys2;
- array b(9) b1-b9;
- format b1-b9 1.;
- do i=1 to 10;
- k=floor(ranuni(0)*9+1);
- do j=1 to k;
- b(j)=floor(ranuni(0)+0.5);
- end;
- output;
- end;
- drop i j k;
- run;
- data lab04.zad7;
- set lab04.Sysdwa ;
- array b(*) _all_;
- format _numeric_ 1.;
- x=0;
- l=0;
- do i=1 to 9;
- if b(i)=. then leave;
- l+1;
- end;
- do i=1 to l;
- if b(i)=. then leave;
- x+b(i)*(2**(l-i));
- end;
- run;
- data lab04.zad7b;
- set lab04.sysdwa ;
- array b(*) b1-b9;
- format _numeric_ 1.;
- x=0;
- do i=1 to 9;
- if b(i)=. then leave;
- x=2*(x+b(i));
- end;
- x=x/2;;
- run;
- *zadanie 4.9;
- data lab04.zad9;
- set lab04.a;
- array xx(*) _all_ _temporary_;
- array m(3);
- do i=1 to 3;
- xmax=xx(1);
- index_x=1;
- do j=1 to dim(xx);
- if xx(j)>xmax then do;
- xmax=xx(j);
- index_x=j;
- end;
- end;
- m(i)=xmax;
- xx(index_x)=.;
- end;
- avg=(m(1)+m(2)+m(3))/3;
- keep m1-m3 avg;
- run;
- *zadanie 10;
- data lab04.zad10;
- set lab04.a1;
- array r(*) _all_ _temporary_ ;
- do i=1 to dim(r);
- if r(i)=. then do;
- brak=catt(brak,"w",_n_,"k",i);
- end;
- end;
- format brak $ 10.;
- keep brak;
- run;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement