Harkkatyön tekeminen tyssäsi heti alkuunsa, kun taulukon täyttämisessä tuli pienoinen ongelma..
----------------------------------
Siis tällaista pitäisi saada näytölle:
Tämä on yksinkertainen muistipeli.
Anna rivien lkm:
3
Anna sarakkeiden lkm:
2
Anna rivi 1:
ab
Anna rivi 2:
ca
Anna rivi 3:
bc
-----------------------
Kyhäilemäni metodin runko on tässä, mutta miten arvon lukeminen pitäisi tehdä, kun syötteet annetaan näin riveittäin (yllä)?!
public static void taytaKentta(char[][] t, int m, int n) {
// Silmukoinnissa tarvittavat muuttujat.
int rivi, sarake;
// Tehdään jotain vain jos taulukolle on varattu muistia.
if (t != null) {
for (rivi = 0; rivi < m; rivi )
for (sarake = 0; sarake < n; sarake ) {
// Luetaan arvo.
System.out.print("Anna rivi " rivi ": ");
t[rivi][sarake] = In.readChar();
Auttaisiko joku osaava ihminen minua korjaamaan tämän koodin, olisin erittäin kiitollinen!!:o)
----------------------------------
Siis tällaista pitäisi saada näytölle:
Tämä on yksinkertainen muistipeli.
Anna rivien lkm:
3
Anna sarakkeiden lkm:
2
Anna rivi 1:
ab
Anna rivi 2:
ca
Anna rivi 3:
bc
-----------------------
Kyhäilemäni metodin runko on tässä, mutta miten arvon lukeminen pitäisi tehdä, kun syötteet annetaan näin riveittäin (yllä)?!
public static void taytaKentta(char[][] t, int m, int n) {
// Silmukoinnissa tarvittavat muuttujat.
int rivi, sarake;
// Tehdään jotain vain jos taulukolle on varattu muistia.
if (t != null) {
for (rivi = 0; rivi < m; rivi )
for (sarake = 0; sarake < n; sarake ) {
// Luetaan arvo.
System.out.print("Anna rivi " rivi ": ");
t[rivi][sarake] = In.readChar();
Auttaisiko joku osaava ihminen minua korjaamaan tämän koodin, olisin erittäin kiitollinen!!:o)
Vastaukset 5
Vanhimmat
tuossa print on väärässä paikassa
for (rivi = 0; rivi < m; rivi )
{
System.out.println("Anna rivi " rivi ": ");
for (sarake = 0; sarake < n; sarake ) {
// Luetaan arvo.
t[rivi][sarake] = In.readChar();
}
}
nyt en pysty testaamaan
..auttoi jo huomattavasti, kiitos! Nyt merkit saa luettua riveittäin, mutta vielä ongelmana se, että merkin jälkeen joutuu aina painamaan enteriä, jolloin rivi vaihtuu ja näytölle tulostuu näin:
Anna rivien lkm:
2
Anna sarakkeiden lkm:
2
Anna rivi 0:
a
b
Anna rivi 1:
b
a
Paina Enter, kun haluat jatkaa.
----------------
Kun pitäisi saada näin:
Anna rivien lkm:
2
Anna sarakkeiden lkm:
2
Anna rivi 0:
ab
Anna rivi 1:
ba
Paina Enter, kun haluat jatkaa.
Osaisko joku vielä tähän antaa vinkkiä?!:)
lue vaikka String ja kopsaa sitten t:hen.
Lue.java tiedostossa on tuo Lue.rivi()
joka lukee rivin.
String tmp="";
for (rivi = 0; rivi < m; rivi )
{
System.out.println("Anna rivi " rivi ": ");
tmp=Lue.rivi();
// pistä merkit taulukkoon
for(int q=0;q
aijai, jos jorma l. näkisi tämän... ei varmaan plagioida webistä niitä harkkatöitä! t: tietojenkäpistelijä
Hähä. Näyttää kovasti eräältäkin Tampereen yliopiston tietojenkäsittelytieteen laitoksen ohjelmointikurssin harjoitustyöltä, tämä.
Kannattaa käyttää sen In-luokan readString()-metodia, joka lukee merkkijonon yksittäisen merkin sijasta. :)
Tämän jälkeen, jos tykkäät, voit readStringin palauttamasta String-oliosta nyhjäistä toCharArray()-metodilla yhtä riviä vastaavan char-taulukon. Vaikkapa siten että:
mur = In.readString();
t[rivi] = blargh.toCharArray();
Kannattaa kuitenkin tuossa välissä testata että sieltä on luettu sellainen oikeanmallinen rivi. Muuten tulee ongelmia.