Avatar billede dade Nybegynder
28. februar 2003 - 16:33 Der er 23 kommentarer og
1 løsning

java programering stars

er der pnogen der kender svart på en opgave der hedder stars der udskriver
    *
  ***
  *****
*******
*********
*********
*******
  *****
  ***
    *
det er på begynder stadiet som datamatiker

Det jeg leder efter er liningen på svaret ?
Svar hurtigts mulig !
Avatar billede arne_v Ekspert
28. februar 2003 - 16:38 #1
Skal du bare have et progra, som udskriver de linier ??
Avatar billede arne_v Ekspert
28. februar 2003 - 16:39 #2
public class Stars {
  public static void main(String[] args) {
      System.out.println("  *");
      System.out.println(" ***");
      // sæt selv resten af linierne ind her
  }
}
Avatar billede arne_v Ekspert
28. februar 2003 - 16:40 #3
Svar (selv jeg synes point er vildt overdrevet).
Avatar billede simonvalter Praktikant
28. februar 2003 - 16:40 #4
heh det skal vist lave med en lykke ;)

har selv lavet det i skolen.
Avatar billede simonvalter Praktikant
28. februar 2003 - 16:41 #5
det andet er snyd ;)
Avatar billede simonvalter Praktikant
28. februar 2003 - 16:41 #6
løkke*
Avatar billede dade Nybegynder
28. februar 2003 - 16:41 #7
sorry arne_v jeg glemte at sige at det skal være i en rutine !
Avatar billede arne_v Ekspert
28. februar 2003 - 16:45 #8
Mener du en metode ?

Det er stadigvæk pærenemt !

public class Stars {
  public static void main(String[] args) {
      printstars();
  }
  private static void printstars() {
      System.out.println("  *");
      System.out.println(" ***");
      // sæt selv resten af linierne ind her
  }
}
Avatar billede arne_v Ekspert
28. februar 2003 - 16:47 #9
En løkke ?

Det kan også gøres !

public class Stars {
  private String[] stars = { "  *", " ***" /* sæt selv ind her */ };
  public static void main(String[] args) {
      printstars();
  }
  private static void printstars() {
      for(int i = 0; i < stars.length; i++) {
          System.out.println(stars[i]);
      }
  }
}
Avatar billede arne_v Ekspert
28. februar 2003 - 16:47 #10
Ellers så mu forklare præcist hvad kravet er.
Avatar billede dade Nybegynder
28. februar 2003 - 16:48 #11
Ikke helt... det er jo for let det hele skal laves i en if, while, do while eller lignende... :)
Avatar billede arne_v Ekspert
28. februar 2003 - 16:53 #12
Er kravet kun at det skal være i en while løkke ?  Eller er der andre
krav ?
Avatar billede arne_v Ekspert
28. februar 2003 - 16:54 #13
public class Stars {
  private String[] stars = { "  *", " ***" /* sæt selv ind her */ };
  public static void main(String[] args) {
      printstars();
  }
  private static void printstars() {
      int i = 0;
      while(i < stars.length) {
          System.out.println(stars[i]);
          i++;
      }
  }
}
Avatar billede dade Nybegynder
28. februar 2003 - 17:00 #14
ja okay det var nu ikke lige helt det jeg ledte efter men du skal da ha tak for dine svar
Avatar billede arne_v Ekspert
28. februar 2003 - 17:01 #15
Vi kan sandsyneligvis godt lave det du spørger efter.

Men så skal vi vide præcis hvad kravene er.
Avatar billede arne_v Ekspert
28. februar 2003 - 17:03 #16
Skal figuren generes udfra nogle beregninger eller ?
Avatar billede dade Nybegynder
28. februar 2003 - 17:08 #17
den skal se sådan ud...
    *
  ***
  *****
*******
*********
*********
*******
  *****
  ***
    *

som en ruder es f.eks
og den skal genereres ud fra beregninger...
lavet med løkker der kun skriver én stjerne eller ét space ud ad gangen

Alt i alt så besværligt som muligt. LOL

Mange tak for al hjælpen :)
Avatar billede miknil Nybegynder
28. februar 2003 - 17:09 #18
noget i denne her stil

Du kan så selv skrue på størrelsen ved at ændre på size


public class StarGen {
   
  public static void main(String[] args)
    {
      int size=6;
       
        for(int i=0;i<size*2;i++)
        {         
            // spaces til den første *
            int spaceCount=Math.abs(size-i);
           
            for(int x=0;x<spaceCount;x++)
                System.out.print(" ");
           
            int starCount = (size-spaceCount)*2-1;
            for(int x=0;x<starCount;x++)
                System.out.print("*");
           
            System.out.println();
        }   
    }
   
}
miknil
Avatar billede dade Nybegynder
28. februar 2003 - 17:10 #19
forum'et fjerner desværre nogle stjerner når jeg forsøger at skrive den :)
Avatar billede miknil Nybegynder
28. februar 2003 - 17:12 #20
Hvis det absolut skal være med while løkker indblandet kan du jo ændre den første x for løkke  til:

  int z=0;
  while( z++ < spaceCount)
        System.out.print(" ");
Avatar billede dade Nybegynder
28. februar 2003 - 17:15 #21
Nej det er helt fint det svar :)
Mange tak for hjælpen :)
Avatar billede arne_v Ekspert
28. februar 2003 - 17:17 #22
Måske:

public class Stars {
    public static void main(String[] args) {
        for(int i = 0; i < 11; i++) {
            int stars = 2 * (5 - Math.abs(5 - i)) + 1;
            int spaces = (9 - stars) / 2 + 1;
            for(int j = 0; j < spaces; j++) System.out.print(" ");
            for(int j = 0; j < stars; j++) System.out.print("*");
            System.out.println();
        }
    }
}
Avatar billede miknil Nybegynder
28. februar 2003 - 17:18 #23
:-)>

Tag og spar lidt på dine points, 200 er lige rigeligt nok for et spørgsmål af
den slags...

miknil
Avatar billede Slettet bruger
28. februar 2003 - 18:19 #24
Her er en rekursiv løsning:

public class Stars {

    private static void printStars(int width) {
    String spaces="";
    for (int i=0; i < width/2; i++) spaces+=" ";
    printRecursively(width/2, "*", spaces);
    }

    private static void printRecursively(int width, String stars, String spaces) {   
    System.out.println(spaces+stars);
    if (width>0) printRecursively(--width, stars + "**", spaces.substring(0,spaces.length()-1));
    System.out.println(spaces+stars);
    }
   
    public static void main(String[] args) {
    printStars(Integer.parseInt(args[0]));
    }   
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester