import java.applet.*; import java.awt.*; public class Paskal extends Applet { Button btn1,btn2; TextField tf,tf1,tf2; PaskalTr pas_tr=null; int[]aiTW=new int[253]; int iTextHeight,iTextWidth,foo,foo1; int result; boolean bB1=false,bB2=false; // какая из кнопок была нажата. public String getAppletInfo() { return "Name: PaskalTr\r\n" + "Author: Alex\r\n" + "Created for get credit"; } ///////////////////////////////////////////////// public boolean action(Event evt,Object obj) { if(evt.target instanceof Button) { if(evt.target.equals(btn1)) { foo= new Integer(tf.getText()).intValue(); if(foo<2 || foo>20) foo=2; pas_tr=new PaskalTr(foo); repaint(); bB1=true; bB2=false; return true; } if(evt.target.equals(btn2)) { result=PaskalTr.getCNK(new Integer(tf1.getText()).intValue(), new Integer(tf2.getText()).intValue()); bB2=true; bB1=false; repaint(); return true; } } return false; } public void init() { btn1=new Button("Построить"); btn2=new Button("Cочетания"); tf=new TextField(2); tf1=new TextField(2); tf2=new TextField(2); add(btn1); add(tf); add(btn2); add(tf1); add(tf2); Graphics g=getGraphics(); FontMetrics fm=g.getFontMetrics(); iTextHeight=fm.getHeight(); aiTW=fm.getWidths(); iTextWidth=(aiTW[193]+aiTW[197]+aiTW[196]+aiTW[195])/4; } //----------------------------------------------------------- public void paint(Graphics g) { if(bB1) pas_tr.show(g,iTextHeight,iTextWidth); else if(bB2) g.drawString(Integer.toString(result),10,40); } } ///////////////////////////////////////////////////// class PaskalTr { int t_pask[][],iTrRow; public void show(Graphics g,int iTextHeight,int iTextWidth) { int i,j=0; Rectangle rect; rect=g.getClipRect(); g.clearRect(10,40,rect.width-10,rect.height-40); g.drawString("Треугольник Паскаля",10, 40); for ( i=0;i99) continue; g.drawString(Integer.toString(t_pask[i][j]),10+((iTextWidth+3)*2*j), 40+(iTextHeight)*(i+1)); } } } static public int getCNK(int n,int k) { PaskalTr pt=new PaskalTr(n); return pt.t_pask[n][k]; } public PaskalTr(int b) { int i,j; iTrRow=b+1; t_pask=new int[iTrRow][]; t_pask[0]=new int[1]; t_pask[1]=new int[2]; t_pask[0][0]=1; t_pask[1][0]=1; t_pask[1][1]=1; for (i=2;i