asolntsev

Untitled

Apr 5th, 2011
3,319
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * Обработчик печати.
  3.  * ... тут куча описания ...
  4.  */
  5. interface PrintListener {
  6.     /**
  7.      * Печать объекта последовательности.
  8.      * @param num номер объекта в последовательности.
  9.      * @return true, если объект не последний, false - в обратном случае.
  10.      */
  11.      boolean print( int num );
  12. }
  13.  
  14. /**
  15.  * Реализация печати последовательности объектов.
  16.  */
  17. class Printer {
  18.     private PrintListener printListener;   
  19.     public Printer( PrintListener printListener ) {
  20.         this.printListener = printListener;
  21.     }  
  22.     public void print() {
  23.         int num = 1;
  24.         while ( printListener.print( num++ ) );
  25.     }
  26. }
  27.  
  28. public class Gavnokod4 {
  29.     final static int N = 6;
  30.     public static void main( String[] args ) {
  31.         // запускаем печаталку строк
  32.         new Printer( new PrintListener() {
  33.             @Override
  34.             public boolean print( final int row )
  35.             {
  36.                 // запускаем печаталку столбцов в каждой строке
  37.                 new Printer( new PrintListener() {
  38.                     @Override
  39.                     public boolean print( final int col )
  40.                     {
  41.                         System.out.print( row%2==1 ? col : row-col+1 );
  42.                         System.out.print( col < row ? "-" : "\n" );
  43.                         // печатаем пока столбцов меньше строк
  44.                         // (у нас же половинка матрицы)
  45.                         return col<row;
  46.                     }
  47.                 }).print();
  48.                 // печатаем пока не напечатано нужное кол-во строк
  49.                 return row<N;
  50.             }
  51.         }).print();
  52.     }
  53. }
RAW Paste Data