Hodnocení | 5 bodů |
Termín odevzdání | 8. - 12. 3. 2004 |
ab ac bcpřípustný je i následující výpis
ab ac ba bc ca cb
Poznámka: pořadí jednotlivých kombinací není podstatné.
Hodnocení | 6 bodů |
Termín odevzdání | 22. - 26. 3. 2004 |
0 - 3 ... číslo čidla 4 - 4 ... znaménko teploty 5 - 15 ... teplota (v desetinách °C) 16 - 32 ... počet sekund po půlnoci 33 - 38 ... nepoužito 39 - 39 ... paritní bit
public abstract class Measurement { /** * Returns logical sensor identifier. The identifier ranges from * 0 to 15. * * @return the identifier. */ public abstract int getSensor(); /** * Returns taken temperature. The temperature ragnes from -204.7 °C * to +204.7 °C. * * @return the temperature. */ public abstract float getTemperature(); /** * Returns time of measurement as a number of seconds after midnight. * The number ranges from 0 to 86399. * * @return the time. */ public abstract int getTime(); /** * Returns hour of measurement. The hour ranges from 0 to 23. * * @return the hour. */ public abstract int getHours(); /** * Returns minute of measurement. The minute ranges from 0 to 59. * * @return the minute. */ public abstract int getMinutes(); /** * Returns second of measurement. The second ranges from 0 to 59. * * @return the second. */ public abstract int getSeconds(); }
Poznámka: modifikace třídy Measurement je nepřípustná.
Hodnocení | 6 bodů |
Termín odevzdání | 5. - 9. 4. 2004 |
public interface DialPad { public void pressed(int keyNumber); public void timeout(); public String getMessage(); }
Implementace rozhraní DialPad se bude chovat, tak jako
klávesnice běžných mobilních telefonů, to znamená, že výpisu některých
písmen je dosaženo několikanásobným stiskem téhož tlačítka.
Chování tlačítek je cyklické, to znamená, že
DialPad x = new ... x.pressed(5); x.pressed(2); x.pressed(8); x.pressed(8); x.pressed(8); x.pressed(2); x.pressed(2); x.pressed(2); x.pressed(2);
Metoda timeout() indikuje, že uživatel po určitou dobu nezmáčknul žádné tlačítko klávesnice. Tato metoda je nezbytná pro napsání několika po sobě následujících písmen reprezentovaných tímž tlačítkem. Například,
DialPad x = new ... x.pressed(3); x.timeout(); x.pressed(3); x.pressed(3); x.timeout(); x.pressed(3); x.pressed(3); x.pressed(3); x.pressed(4); x.pressed(4); x.pressed(4); x.pressed(6); x.pressed(6); x.pressed(3); x.pressed(3);vede k zadání zprávy "define".
Pro jednoduchost nerozlišujte zadávání velkých a malých písmen, a nezabývejte se ani zadáváním číslic.
Napište krátký program, který chování Vaší implementace demonstruje.
Hodnocení | 7 bodů |
Termín odevzdání | 19. - 23. 4. 2004 |
Hodnocení | 8 bodů |
Termín odevzdání | 3. - 7. 5. 2004 |
java Grep [-i][-w] string filekde
string
je hledaný podřetězec a
file
soubor obsahující vstupní data.
Parametr -i
způsobí, že hledání bude probíhat
bez ohledu na velká a malá písmena (case insensitive).
Parametr -w
zajistí vyhledávání celých slov (words).
Slovo je řetězec tvořený pouze písmeny a číslicemi, kterému předchází buď
začátek řádku nebo znak, který není ani písmenem ani číslicí, a za kterým
následuje buď konec řádku nebo znak, který není ani písmenem ani číslicí.
Hodnocení | 8 bodů |
Termín odevzdání | 17. - 21. 5. 2004 |
Poznámka: kolekcí se rozumí jakýkoliv objekt implementující rozhraní Collection.
Třída DeepIterator musí implementovat rozhraní java.util.Iterator, přičemž implementace metody remove() není vyžadována.
Například výsledkem následující kódu
public class Room { private String name; public Room(String name) { this.name = name; } public String toString() { return name; } } public class Main { public static void main(String[] arguments) { Collection floor0 = new ArrayList(); floor0.add(new Room("gym")); floor0.add(new Room("sauna")); Collection flat11 = new ArrayList(); flat11.add(new Room("hall")); flat11.add(new Room("kitchen")); flat11.add(new Room("living-room")); flat11.add(new Room("bathroom")); flat11.add(new Room("bedroom")); flat11.add(new Room("nursery")); Collection flat12 = new HashSet(); flat12.add(new Room("dormitory")); flat12.add(new Room("bathroom")); // Create the first floor. Collection floor1 = new ArrayList(); floor1.add(flat11); floor1.add(flat12); Collection flat21 = new LinkedHashSet(); flat21.add(new Room("hall")); flat21.add(new Room("kitchen")); flat21.add(new Room("living-room-1")); flat21.add(new Room("living-room-2")); flat21.add(new Room("bedroom")); flat21.add(new Room("bathroom")); Collection flat22 = new LinkedList(); flat22.add(new Room("hall")); flat22.add(new Room("kitchen")); flat22.add(new Room("dormitory")); flat22.add(new Room("bathroom")); Collection flat23 = new ArrayList(); flat23.add(new Room("hall")); flat23.add(new Room("kitchen")); flat23.add(new Room("living-room")); flat23.add(new Room("bedroom")); flat23.add(new Room("bathroom")); // Create the second floor. Collection floor2 = new ArrayList(); floor2.add(flat21); floor2.add(flat22); floor2.add(flat23); // Create a building. Collection building = new ArrayList(); building.add(floor0); building.add(floor1); building.add(floor2); // List rooms. Iterator iterator = new DeepIterator(building); while(true) { Room room = (Room)iterator.next(); System.out.print(room); if (!iterator.hasNext()) break; System.out.print(", "); } } }je sekvence
gym, sauna, hall, kitchen, living-room, bathroom, bedroom, nursery, dormitory, bathroom, hall, kitchen, living-room-1, living-room-2, bedroom, bathroom, hall, kitchen, dormitory, bathroom, hall, kitchen, living-room, bedroom, bathroom
Poznámka: pořadí jednotlivých položek není podstatné.
Hodnocení | |
Termín odevzdání |
Poznámka: nezabývejte se grafickým zobrazováním jednotlivých objektů pomocí GUI.