Forum » Programiranje » Naloga (Java)
Naloga (Java)
Ciklamen ::
Pozdravčič.
Imam eno question, in sicer kako bi:
S pomocjo “risanja” v dvodimenzionalno tabelo narišite stolpicni diagram, ki predstavlja vsebino
tabele PODATKI (tipa int[]).
Malo samo oporne točke bi rabil, kaj uporabit, kako itd. :)
Hvala že v naprej!
Imam eno question, in sicer kako bi:
S pomocjo “risanja” v dvodimenzionalno tabelo narišite stolpicni diagram, ki predstavlja vsebino
tabele PODATKI (tipa int[]).
Malo samo oporne točke bi rabil, kaj uporabit, kako itd. :)
Hvala že v naprej!
- End of the Post ->
sandmat ::
narediš 2d tabelo, ki ima 2. dimenzijo velikosti max(podatki), notri po vrsti filaš kvadratke(ascii: B2) toliko(od 0-n), kjer je n i-ti podatek v podatkih. vsak int v 2d tabeli izpišeš kot char in boš dobil lep histogram
Ciklamen ::
Aja naj še povem, da vsak stolpec histograma vsebuje 3 znake (+++ ali --- ali ***), ter da je največji podatek v PODATKI enak višini histograma, ter razmak med vsakim stolpcem 2 mesti.
- End of the Post ->
sandmat ::
no, pol pa B2 zamenjaj z +++ in še enkrat gor preberi kar sm ti napisal. tisto o višini histograma sm ti tud napisal, kako dobiš.
Ciklamen ::
nightrage, to imamo za seminarsko na faksu, kaj druga, kot spisat kodo ne pride v poštev :)
- End of the Post ->
sandmat ::
uh, ja štekam, kaj naj bi stvar delala. Jst sm ti pejstal neki mal drugačnega na ZS. :) no, upam, da si opravil zagovor, če si ga imel :)
technolog ::
Tole je moja koda, samo ne je prekopirat, ker te bo Fuerst "zašil".
public class Diagram { private static final int[] PODATKI = {15, 21, 7, 12, 18}; private static final int MAX_VISINA = 10; private static final int SIRINA_STOLPCA = 3; private static final int RAZMAK_MED_STOLPCI = 2; private static final char[] POLNILO = {'+', '-', '*', 'o', 'x'}; public static void main(String[] args) { int najvec=Integer.MIN_VALUE; for (int i=0; i<PODATKI.length; ++i) najvec=Math.max(najvec, PODATKI[i]); for (int i=0; i<MAX_VISINA; ++i) { for (int j=0; j<PODATKI.length; ++j) { if ((int)Math.round(1.0*PODATKI[j]/najvec*MAX_VISINA) >= MAX_VISINA-i) { for (int k=0; k<SIRINA_STOLPCA; ++k) System.out.print(POLNILO[j]); for (int k=0; k<RAZMAK_MED_STOLPCI; ++k) System.out.print(" "); } else { for (int k=0; k<RAZMAK_MED_STOLPCI+SIRINA_STOLPCA; ++k) System.out.print(" "); } } System.out.println(); } } }
Zgodovina sprememb…
- spremenil: technolog ()
Ice-Heki ::
No, jest sm naredu sicer z več metodami (razbil technologov main na več delov) zaradi možnih nadgradenj (pa da sam argumente menjam). Vprašanje je, kaj bomo dobili jutri zjutraj ...
Ciklamen ::
public class Naloga2 { private static final int[] Podatki = {15,21,7,12,18}; private static final int Visina = 10; private static final int Sirina = 3; private static final int Razmak = 2; private static final char[] Polnilo = {'+', '-', '*', '|', 'x'}; public static void main(String[] args) { izrisiTabelo(); int MaxSirinaTabele = 5*3+4*2; int skSirStolpca = Sirina + Razmak; } private static char[][] izpisTabele() { char[][] izpisTabela = new char[Visina][(Sirina+Razmak)*Polnilo.length]; //poišče indeks največjega člena v tabeli. int pravaVisina = Visina - 1; int indeksNajvecjega = 0; indeksNajvecjega = indeksNajvecji(); for(int i = 0; i < Polnilo.length; i++) { // Izpisujemo vrstico int vrstica = (Podatki[i]/2); if(i == indeksNajvecjega) { vrstica = pravaVisina; // Izpisujemo Polnilo (od začetnega polnila proti zadnjemu) } for(int j = 0; j < vrstica; j ++) { izpisTabela[j][i] = Polnilo[i]; } } return izpisTabela; } //Preverja, ali je število največje in ga poišče v podatkih ter določi kot največjo vrednost za diagram private static int indeksNajvecji() { int idNaj = 0; for (int d = 0; d < Podatki.length; d++) { if (Podatki[d] > idNaj) { idNaj = d; //Vračamo indeks in ne vrednost podatka } } return idNaj; } private static void izrisiTabelo() { char[][] izpisTabela = izpisTabele(); //Izpisujemo višino stolpcev, da ne gredo prek določene vrednosti int pravaVisina = Visina - 1; for (int i = pravaVisina; i > 0; i--) { for(int j = 0; j < Podatki.length; j++) { //Trikrat se ponovi izpis Polnilo, da dobimo 3 stolpce z polnilom for(int l = 0; l < Sirina; l++) { System.out.print(izpisTabela[i][j]); } //Izpišemo Razmak med stolpci, kot od nas zahteva naloga (ter tudi zaradi lepše preglednosti) for(int stolpec = 0; Razmak > stolpec; stolpec++) { System.out.print(" "); } } System.out.println(); } } }
Ekola, to je moja verzija, ena izmed mnogih rešitev :)
- End of the Post ->
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Java zvezdiceOddelek: Programiranje | 1295 (1099) | mihor |
» | [android] vstavljanje slikeOddelek: Programiranje | 1234 (1131) | messi |
» | [android] crashOddelek: Programiranje | 1332 (1141) | messi |
» | [JAVA]Kako dostopati do privaten konstante podrazreda iz nadrazredaOddelek: Programiranje | 1239 (1167) | alexa-lol |
» | [C++] for {}Oddelek: Programiranje | 1706 (1400) | Gundolf |