Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Sparse array(řídké pole) + výjimky

Aktivity
Avatar
Veganekk
Člen
Avatar
Veganekk:15.6.2014 2:02

Zdravím mám problém s úkolem.¨

Tento úkol je dělaný na výjimky u nás a dostal jsme se do problému s řídkým polem a výjimkami.viz zadání(Nechápu jak to mám udělat setkávám se pojem řídké pole poprvé)

1.
Vytvořte třídu pro reprezentaci řídkého jednorozměrného pole celých kladných čísel (sparse array). Takové pole má velký počet prázdných prvků (pro reprezentaci pole můžete jako vlastnost použít pole celých čísel, do konstruktoru bude vstupovat velikost pole, prázdné prvky pole nastavte např. na -1). Pro třídu napište metodu get, do které bude vstupovat index prvku a metoda bude vracet hodnotu prvku pod tímto indexem. V případě, že bude prvek pole pod tímto indexem prázdný, vyvolejte vlastní výjimku.

Zde nevím jak postupovat díky tomuto řídkému poli.

2.
Vytvořte pole pro 100 celých čísel. Čísla do pole náhodně vygenerujte v
rozsahu od -50 do 50. Celé pole vypište na obrazovku pomocí nekonečného cyklu, výpis pole ukončete pomocí výjimky ArrayIndexOutOf­BoundsExcepti­on.
(Nevím jak s tou generací zkusil jsem toto ale nevím zda je to dobře. Asi to je blbost...)

                int[] Pole = new int[100];
for (int i = 0; i < Pole.length; i++) {
                                        Pole[i] = rnd.nextInt() % 50;
                                        System.out.println(Pole[i]);
}

Dík všem za rady a pomoc.

Editováno 15.6.2014 2:05
Odpovědět
15.6.2014 2:02
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
tomisoka
Tvůrce
Avatar
tomisoka:15.6.2014 8:55
  1. Co je na tom nejasného?
Takové pole má velký počet prázdných prvků (... prázdné prvky pole nastavte např. na -1).

2)

rnd.nextInt(10);

Snad tě napadne jak z toho udělat čísla mezi -50 a 50.

 
Nahoru Odpovědět
15.6.2014 8:55
Avatar
Veganekk
Člen
Avatar
Veganekk:15.6.2014 19:40

Nechapu to sparse array mohl by něko vice specifikvoat? Mam trochu bordel vetsi v tom :/

Nahoru Odpovědět
15.6.2014 19:40
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Veganekk
Jan Vargovský:15.6.2014 20:05
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sparsearray;

import java.util.Random;

/**
 *
 * @author Jan
 */
public class SparseArray {

    private int[] array;

    public SparseArray(int count) {
        array = new int[count];
        for (int i = 0; i < array.length; i++) {
            array[i] = -1;
        }
    }

    public int getValue(int index) throws Exception
    {
        if(index >= array.length)
            throw new IndexOutOfBoundsException("Out of range");

        if(array[index] == -1)
            throw new Exception("Empty value");

        return array[index];
    }

    public void setValue(int position, int value)
    {
        array[position] = value;
    }

    public static void main(String[] args) throws Exception {
        int length = 100;
        SparseArray sparseArray = new SparseArray(length);
        Random rnd = new Random();

        for (int i = 0; i < length; i++) {
            sparseArray.setValue(i, rnd.nextInt(100) - 49);
            System.out.println(sparseArray.getValue(i));
        }



    }
}

Už zas nechci javu na pár týdnů vidět, takže si to pouprav aby to vyhovovalo zadání.

Btw, ty ses u toho tvého kódu odklonil od zadání hned u druhého slova.

 
Nahoru Odpovědět
15.6.2014 20:05
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.