zoukankan      html  css  js  c++  java
  • Algs4-1.2.10编写一个类VisualCounter

    1.2.10编写一个类VisualCounter,支持加一和减一操作。它的构造函数接受两个参数N和max,其中N指定了操作的最大次数,max指定了计数器的最大绝对值。作为副作用,用图像显示每次计器变化后的值。
    答:Draw Point时操作次数作为X坐标,计数器值作为Y坐标。
    图片
    图片

    public class VisualCounter
    {
        private int maxOperationTimes;
        private int maxCountAbs;
        private int operationTimes;
        private int count;
       
        public VisualCounter(int N,int max)
        {
            maxOperationTimes=N;
            maxCountAbs=max;
            operationTimes=0;
            count=0;
        }  
       
        public void increment()
        {
           if (operationTimes<maxOperationTimes && Math.abs(count)<maxCountAbs)
           {
              operationTimes++;
               count++;
            }
        }
       
        public void decrease()
        {
           if (operationTimes<maxOperationTimes && Math.abs(count)<maxCountAbs)
           {
              operationTimes++;
               count--;
            }
        }
       
        public int tally()
        {
            return count;
        }
       
        public int operationTimes()
        {
            return operationTimes;
        }
       
        public boolean isEnd()
        {
          return  operationTimes>=maxOperationTimes || Math.abs(count)>=maxCountAbs ;
        }

        public void draw()
        {
            StdDraw.point(operationTimes,count);
        }


       
        public static void main(String[] args)
        {
            int N=Integer.parseInt(args[0]);
            int max=Integer.parseInt(args[1]);
            VisualCounter vC=new VisualCounter(N,max);
            int num;
            StdDraw.setXscale(0,N);
            StdDraw.setYscale(-1.0*max,max);
            while (true)
            {
                num=StdRandom.uniform(max/17);
                for(int j=0;j<num;j++)
                {
                     if (num%2==0)
                         vC.increment();
                     else
                         vC.decrease();  
                     vC.draw();
                     if(vC.isEnd()) return;
                }
           }
        }
    }

  • 相关阅读:
    ndt histogram_direction
    rplidar & hector slam without odometry
    点云的基本几何计算
    rplidar测试
    使用ZXing.Net生成与识别二维码(QR Code)
    C# 中使用 ThoughtWorks.QRCode.dll 生成指定尺寸和边框宽度的二维码
    .NET 二维码生成(ThoughtWorks.QRCode)
    zxing二维码的生成与解码(C#)
    netsh interface portproxy的一个简单例子
    Redis 客户端连接
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9848859.html
Copyright © 2011-2022 走看看