Moduļa 1.5. vingrinājumi

exercise13: Pirmskaitļu meklēšana

public class Primes {
    public static void main(String[] args) {
        int nFrom = Integer.parseInt(args[0]);
                int nTo = Integer.parseInt(args[1]); 
        boolean isPrime = true;
        for (int i = nFrom; i <= nTo; i++) {
            isPrime = true;
            for (int j = 2; j < i; j++) {
                if (i % j == 0) {
                    isPrime = false;
                    break;
                }
            }
            if (isPrime) {
                System.out.println(i);
            }
        }
    }
}

Izveidot jaunu programmu ar sekojošām īpašībām:

  • Izmantot komandu continue ar iezīmi, nevis break
  • Neizmanto mainīgo isPrime, t.i. pirmskaitļa drukāšanu veikt atbilstošā programmas zarā (teiksim, aiz continue)
  • Lai noskaidrotu, vai skaitlis ir pirmskaitlis, pietiek pārbaudīt, vai tas dalās ar veseliem skaitļiem līdz kvadrātsaknei no pārbaudāmā skaitļa. Izmantojiet šo īpašību, lai padarītu Jūsu kodu ātrāku. (Sk. metodi java.lang.Math.sqrt()
  • Drukājiet skaitļus t.s. inženierpierakstā (peldošā punkts, kur daļskaitlim pirms komata ir 1-3 zīmīgie cipari, bet eksponente dalās ar 3). Pārformatēšanai var lietot klasi java.text.DecimalFormat. Minimāls programmas piemērs, kurš lieto šo formatēšanas klasi dots zemāk:
    import java.text.*;
    
    public class TestFormat {
        public static void main(String[] args) {
            DecimalFormat df = new DecimalFormat("##0.#####E0"); 
            System.out.println(df.format(2002)); 
        }
    }
    

exercise14: Masīvu lietošana "Content Management" sistēmā

Mērķis

Izveidot strādājošu implementāciju klašu diagrammai, kura redzama attēlā un notestēt to (ar starpdruku metodi un JUnit)

Objektu diagramma

Darbības:

  • Iekopēt failus savā "exercise14" direktorijā * Izveidot funkcionalitāti saskaņā ar iepriekšējā nodarbībā definēto * Pievienot sekojošu jaunu funkcionalitāti:
  • Ja direktorijā ievietoto failu skaits pārsniedz masīva "files" izmērus, tad rezervēt privātajam mainīgajam "files" par FILES_LENGTH_INCREMENT vienībām un iekopēt tur vecā masīva saturu. Masīva "files" sākotnējais izmērs ir FILES_LENGTH_INITIAL. Deklarēt šos atribūtus kā "private final static int" un definēt tos vienādus ar 0.
  • Pievienot klasei "Directory" jaunu metodi getFilesBufferSize, kura atgriež masīva izmēru.
  • Notestēt savu implementāciju ar "main" metodi klasē "TestCMS" (t.i. ar starpdrukām)
  • Izveidot apakšdirektoriju exercise14/junit un atarhivēt tajā "junit.zip" arhīvu (to var dabūt te: http://www.junit.org/index.htm.
  • Pārliecināties, ka direktorijā "exercise14/junit" ir fails "junit.jar". Palaist "build.bat" un "run.bat". Vajadzētu atvērties JUnit testēšanas logam, kurš rāda Jūsu programmas atbilstību testiem, kuri aprakstīti JUnit karkasā (framework) - sk. klases "CMSUnitTest" izejas kodu. Sīkāk par JUnit lietošanu sk. dokumentācijā exercise14/junit/doc.