Riešenia (skupina A, 4. týždeň)

Praktické cvičenie

import sk.upjs.jpaz2.Turtle;

public class Znakarka extends Turtle {

        public int pocetVyskytov(String s, char znak) {

                int pocet = 0;
                for (int i = 0; i < s.length(); i++) {
                        if (s.charAt(i) == znak) {
                                pocet++;
                        }
                }

                return pocet;
        }

        public boolean jePalindrom(String s) {

                for (int i = 0; i < s.length() / 2; i++) {
                        char znak1 = s.charAt(i);
                        char znak2 = s.charAt(s.length() - i);

                        if (znak1 != znak2) {
                                return false;
                        }
                }

                return true;
        }
}
import java.awt.Color;
import java.awt.event.MouseEvent;

import sk.upjs.jpaz2.Turtle;
import sk.upjs.jpaz2.WinPane;


public class MriezkovaPlocha extends WinPane {

        private Turtle kreslic = new Turtle();
        private int pocetBodiek = 0;
        private static final int ROZMER_STVORCEKA = 50;
        private static final double POLOMER_BODKY = 20;

        public void mriezka() {
                int pocetVRiadku = this.getWidth() / ROZMER_STVORCEKA;
                int pocetVStlpci = this.getHeight() / ROZMER_STVORCEKA;

                for (int y = 0; y < pocetVStlpci; y++) {
                        for (int x = 0; x < pocetVRiadku; x++) {
                                stvorcek(x * ROZMER_STVORCEKA, y * ROZMER_STVORCEKA, ROZMER_STVORCEKA);
                        }
                }
        }

        public void stvorcek(double x, double y, double strana) {
                this.add(kreslic);
                kreslic.setDirection(180);
                kreslic.setPosition(x, y);

                for (int i = 0; i < 4; i++) {
                        kreslic.step(strana);
                        kreslic.turn(-90);
                }

                this.remove(kreslic);
        }

        public void bodkaDoPolicka(int stlpec, int riadok, Color farba) {
                this.add(kreslic);

                // stred stvorceka, kde ideme kreslit bodku
                double suradnicaX = stlpec * ROZMER_STVORCEKA + ROZMER_STVORCEKA / 2;
                double suradnicaY = riadok * ROZMER_STVORCEKA + ROZMER_STVORCEKA / 2;

                kreslic.setPosition(suradnicaX, suradnicaY);
                kreslic.setFillColor(farba);
                kreslic.dot(POLOMER_BODKY);

                this.remove(kreslic);
        }

        @Override
        protected void onMouseClicked(int x, int y, MouseEvent detail) {
                super.onMouseClicked(x, y, detail);

                // nas kod na kreslenie bodky do policka
                int riadok = y / ROZMER_STVORCEKA;
                int stlpec = x / ROZMER_STVORCEKA;

                // vyberieme si farbu a kreslime bodku
                if (pocetBodiek % 2 == 0) {
                        bodkaDoPolicka(stlpec, riadok, Color.red);
                } else {
                        bodkaDoPolicka(stlpec, riadok, Color.blue);
                }
                pocetBodiek++;
        }
}

Teoretické cvičenie

import sk.upjs.jpaz2.Turtle;

public class Znakarka extends Turtle {

        public String sameZnaky(char znak, int dlzka) {
                StringBuilder sb = new StringBuilder(dlzka);

                for (int i = 0; i < dlzka; i++) {
                        sb.append(znak);
                }

                return sb.toString();
        }

        public String generujHeslo(int dlzka, String s1, String s2) {
                StringBuilder vysledok = new StringBuilder();

                for (int i = 0; i < dlzka; i++) {
                        char znak;

                        if (i % 2 == 0) {
                                znak = (s2.charAt((int) (Math.random() * s2.length())));
                        } else {
                                znak = (s1.charAt((int) (Math.random() * s1.length())));
                        }

                        vysledok.append(znak);
                }

                return vysledok.toString();
        }

        public int pocetSlov(String s) {
                int pocetSlov = 0;
                s=s+" ";

                for (int i = 0; i < s.length() - 1; i++) {
                        if (!Character.isWhitespace(s.charAt(i)) && Character.isWhitespace(s.charAt(i + 1))) {
                                pocetSlov++;
                        }
                }

                return pocetSlov;
        }

        public boolean suSameZnaky(String s) {
                if (s.length() == 0) {
                        return true;
                }

                char znak = s.charAt(0);
                for (int i = 1; i < s.length(); i++) {
                        if (s.charAt(i) != znak) {
                                return false;
                        }
                }

                return true;
        }
}