Firkant som forandrer seg etter input

Firkant som forandrer seg etter input

Innleggav plsteen » tor 12.02.2015 2:28

Hei, har en skoleoppgave hvor vi skal lage en firkant som forandrer seg etter hva slags tall brukeren angir i java.

Eksempel på hva programmet skal skrive ut:

Kode: Merk alt
3  3  3     4  4  4  4
3     3     4        4
3  3  3     4        4
            4  4  4  4


Vi får greit til linjene i topp, bunn og venstresiden, men ikke høyresiden. Tenkte at det gikk an å skrive dette for midtlinjen: midt += "\n" + siffer + " "*siffer + siffer;
Men den løsningen er ikke lov i java.

Noen som har noen tips eller forslag til hva som må skrives for å få tall på høyresiden?


Slik ser java koden ut:
Kode: Merk alt
/*  Oppgave 3.
 *  Lager en firkantet sifferfigur
 *  med innleste tall.
 */

import static java.lang.System.*;
import static java.lang.Integer.*;
import static javax.swing.JOptionPane.*;
import static java.lang.Math.*;
 
public class PS_Program {
 
  public static void main(String[] args) {
   
    // Innlesing av heltal
    String tallTekst = showInputDialog("Skriv inn et tall mellom 2 og 9");
    int siffer = parseInt(tallTekst);
    String utTekst = "";

    // Sjekker om sifferet er lovlig
    if ( 2<= siffer && siffer <=9 ) {

    // Horisontal og vertikal linje
    String bunn = " ";
    String topp = "";
    String midt = "" + siffer;
    for (int a=1; a<=siffer-1; a++) {
       bunn += siffer + " ";
       topp += siffer + " ";
        midt += "\n" + siffer;
 
   }
       


    // Utskrift til dialogvinduet
    utTekst = "Firkantet figur med sifferet " + siffer + ":" + "\n"
          + topp + midt + bunn;// + vlinjehøyre;
   }
   else
      utTekst = "Ulovlig verdi! Siffer 2-9";
    showMessageDialog(null, utTekst);
  }
 
}

Brukerens avatar
medlem i 61 måneder
 

Re: Firkant som forandrer seg etter input

Innleggav plsteen » fre 13.02.2015 19:53

Oppdatering:

Jeg fikk det til ved å legge inn noen flere for og if setninger.

Ble seende slik ut:

Kode: Merk alt
import static java.lang.System.*;
import static java.lang.Integer.*;
import static javax.swing.JOptionPane.*;
import static java.lang.Math.*;
 
public class PS_ProgramV2 {
 
  public static void main(String[] args) {

    // Innlesing av heltal
    String tallTekst = showInputDialog("Skriv inn et tall mellom 2 og 9");
    int tall = parseInt(tallTekst);

    // Sjekker om innlest siffer er lovlig
    if ( 2<= tall && tall <=9 ) {

      // Fyller horisontal og vertikal linje med tall
      String topp = "";
      String midt = "";
      for (int i=1; i<=tall; i++)
        topp += tall + " ";
      for (int i=1; i<=tall-2; i++) {
        for (int a=1; a<=tall; a++) {
          if (a == 1  ||  a == tall)
            midt += tall + " ";
          else midt += "  ";
        }

        // Linjeskift for vertikale linjene
        midt += "\n";

      }

      // Bunnlinjen
      String bunn = "";
      for (int i=1; i<=tall; i++)
        bunn += tall + " ";

      // Utskrift til konsoll
      out.print(topp + "\n" + midt + bunn);
    }

    else
      out.print("Ulovlig verdi! (2-9)");

  }
 
}

Brukerens avatar
medlem i 61 måneder
 


Returner til Java



Hvem er i Forumene

Registrerte brukere: ACM, Exabot [Bot], Google [Bot]