Ćwiczenie

ZADANIE 1.

Rozważmy następującą klasę

//Mój pierwszy program

class hello{

 

     public void wypisz(String s)

     {

         System.out.println(s);

     }

 

   public static void main(String[] args){

         wypisz("Dzien dobry");

   }

}

 

1.      Wprowadź powyższą klasę do pliku hello.java (za pomocą dowolnego edytora tekstów) a następnie kompiluj i uruchom go. Co jest wynikiem tego programu? Czy ten plik może nazywać się inaczej niż hello.java? dlaczego?

2.      Do klasy hello dopisz funkcję public void rysuj_gwiazdy(int n) rysującą n znaków '*', gdzie n jest parametrem funkcji. Spróbuj użyć tej funkcji dla różnych parametrów.

3.      Napisz funkcję rysującą prostokąt o zadanych wymiarach, który składa się z samych gwiazdek. Np. po wywołaniu tej funkcji z parametrami 8 i 3 powinniśmy dostać:

********

********

********

4.      Napisz funkcję rysującą trójkąt równoramienny (o zadanej wysokości) składający się z samych gwiazdek. Np. po wywołaniu tej funkcji z parametrami 4 powinniśmy dostać:

   *

  ***

 *****

*******

5.      Narysuj choinkę z ozdobami. Np.

     *

    ***

   ***@*

  *******

   *****

  *****@*

 ***@*****

***********

     *

     * 

ZADANIE 2: (triki z instrukcją switch)

Napisz funkcję public void data(int n), która podaje na ekranie dzien i miesiac n-tego dnia roku oraz funkcję public int ktorydzien(int dd, int mm, int rr), która dla danej daty dd.mm.rr zwraca liczbę dni do końca danego roku (rr). Uwaga: spróbuj napisać najkrócej jak się da.

Rozwiązanie

Zadanie 1

/**
 * Title:        rozwiazanie cw. 3
 * Description:
 * Copyright:    Copyright (c) 2001
 * Company:      Uniwersytet Warszawski
 * @author Nguyen Hung Son
 * @version 1.0
 */
 
public class cw3 {
 
  public cw3() {
  }
 
  public void  wypisz(String s)
  {
      System.out.print(s);
  }
 
  public void rysuj(int n, char c)
  {
    for(int i=0;i<n;i++)
    {
      System.out.print(c);
    }
  }
 
  public void gwiazdy(int n)
  {
    rysuj(n,'*');
  }
 
  public void prostokat(int k, int w)
  {
    for (int i = 0;i<w;i++)
    {
      gwiazdy(k);
      wypisz("\n");
    }
  }
 
  public void trojkat(int h)
  {
    for(int i=0;i<h;i++)
    {
      rysuj(h-i-1,' ');
      rysuj(2*i+1,'*');
      wypisz("\n");
    }
  }
 
  public void trapez(int h, int a, int os)
  {
    for(int i=0;i<h;i++)
    {
      int l_gwiazdek = a+2*i;
      int l_spacji = os - (l_gwiazdek + 1)/2;
      rysuj(l_spacji,' ');
      rysuj(l_gwiazdek,'*');
      wypisz("\n");
    }
  }
 
  public void trapez2(int h, int a, int b, int os)
  {
    for(int i=0;i<h;i++)
    {
      int l_gwiazdek;
      if (h==1) l_gwiazdek = a;
      else l_gwiazdek = a+2*(i*(b-a)/(2*(h-1)));
      int l_spacji = os - (l_gwiazdek + 1)/2;
      rysuj(l_spacji,' ');
      rysuj(l_gwiazdek,'*');
      wypisz("\n");
    }
  }
 
  public void choinka()
  {
    trapez2(4,1,9,40);
    trapez2(4,5,19,40);
    trapez2(5,9,31,40);
    trapez2(2,1,1,40);
    trapez2(1,3,3,40);
  }
 
  public static void main(String[] args)
  {
    //System.out.println("Dzien dobry");
    cw3 proba = new cw3();
    proba.wypisz("dzien dobry");
    proba.wypisz("\n");
    proba.gwiazdy(8);
    proba.wypisz("\n");
    proba.prostokat(8,3);
    proba.wypisz("\n");
    proba.trojkat(8);
    proba.wypisz("\n");
    proba.choinka();
  }
}