Wątek przeniesiony 2015-01-14 07:09 z Java przez bogdans.

Porównywanie liczb i wyświetlanie ich bez powtórzeń

0

nie mam pojecia jak zabrac sie do punktu 2. z tak napisanym kodem.

1.Wykonaj program, który porównuje trzy liczby ze sobą i wyświetla je w kolejności od najmniejszej do największej.
2.Zmodyfikuj program w punkcie pierwszym tak, by liczby powtórzone wyświetlał tylko raz.

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Czesc2;

/**
 *
 * @author Z710
 */
public class ćwiczeniazifelseiporownywaniem2 {
    public static void main(String[] args){
        int a,b,c;
        a = 1;
        b = 15;
        c = -23;
        if(a<b && b<c)
            System.out.println(a +"\n" + b +"\n" + c);

        else if(a>b && b>c)
            System.out.println(c +"\n" + b +"\n" + a);

        if(a<c && b>c)
            System.out.println(a +"\n" + c +"\n" + b);

        else if(a<c && b>c)
            System.out.println(b +"\n" + c +"\n" + a);

        if(a<c && a>b)
            System.out.println(b +"\n" + a +"\n" + c);

        else if(a>c && a<b)
            System.out.println(c +"\n" + a +"\n" + b);

    }

}
0

Nie jestem pewny czy o to ci chodzi, ale sprawdź

Nieważne, ze względu na późną godzinę nie jestem w stanie myśleć logicznie, a miałem nadzieję że tak nie jest. Jutro pomyśle

1

poczytaj sobie na wikipedii o metodach sorotwania...

1

Wydaje mi się, że na tym polega to zadanie by nie używać sortowania, a używać instrukcji warunkowych if else, bo w tym przypadku trzeba trochu pomyśleć. Przy metodach sortowania niekoniecznie . Zresztą dobra praktyka IF dla początkujących

trzymaj wersję "trudniej a prościej"

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package porliczby;

/**
 *
 * @author jarek
 */
public class PorLiczby {

    public static void main(String[] args) {
        int a,b,c;
        a = 2;
        b = 2;
        c = 3;

        if(a<b && b<c)
        {
            System.out.println(a +"\n" + b +"\n" + c);
        }
        else if(a>b && b>c)
        {
            System.out.println(c +"\n" + b +"\n" + a);
        }
        else if(a<c && b>c)
        {
            System.out.println(a +"\n" + c +"\n" + b);
        }
        else if(a<c && b>c)
        {
            System.out.println(b +"\n" + c +"\n" + a);
        }
        else if(a<c && a>b)
        {
            System.out.println(b +"\n" + a +"\n" + c);
        }
        else if(a>c && a<b)
        {
            System.out.println(c +"\n" + a +"\n" + b);
        }
//    Teraz gdy są podwójne liczby
        if (a==b && b<c)
        {
        System.out.println( a + " a i b mają tę samą wartość \n" + c);
        }
        else if (a==c && c<b)
        {
            System.out.println(  a + " a i c mają tę samą wartość \n" + b);
        }
        else if (b==c && c<a)
        {
            System.out.println( + b + " b i c mają tę samą wartość \n" + a);
        }
        else if (a==b && b>c)
        {
            System.out.println(c +"\n" + a + " a i b mają tę samą wartość");
        }
        else if (b==c && a<b)
        {
               System.out.println(a +"\n" +  b + " b i c mają tę samą wartość");     
        }
        else if (a==c && b<a)
        {
            System.out.println(b +"\n"  + a + " a i c  mają tę samą wartość");
        }
//        Dla liczby która wystepuje 3 razy
        else if (a==b && b==c)
        {
            System.out.println(" a, b i c Są Takie Same \n Ich wartość to: " + a);
        }

    }    
}
0

Jak zobaczyłem, jak to rozwiązałeś to mnie to trochę przeraziło. Tak:

  1. Stwórz metodę, która będzie sortować liczby i sprawdzać czy liczba już istnieje w tablicy -> możesz zwracać tablice, która będzie już posortowana i będzie miała usunięte powtórzenia.
  2. Zamiast trzech zmiennych użyj tablicy
0

jest wlasnie tak jak mowi Narudura. jestem poczatkujacym i nie doszedlem jeszcze do metod sortowania, a to zadanie jest wlasnie przy if, else i porownywaniu liczb i teoretycznie powinno dac sie je zrobic na takim poziomie. wielkie dzieki. czemu to wersja "trudniej a prosciej" ? :) moze chodzi Ci po prostu o "dluzej"?

1

Porównanie trzech liczb to maksymalnie trzy porównania. Twój program zawsze robi co najmniej sześć.

1

On do tego jeszcze dojdzie. Wiem że programik wygląda absurdalnie, ale w ten sam sposób uczono nas w technikum. Moim zdaniem całkowicie zły tok nauczania, ale nie ja tym kierowałem, więc robiłem co mi kazali .

czemu to wersja "trudniej a prosciej" ? :) moze chodzi Ci po prostu o "dluzej"?

Ta wersja programu jest całkowicie nie praktyczna i niepotrzebnie obciążająca .. Jeśli jesteś samoukiem to powiem ci szczerze zmień sposób uczenia się, jeśli natomiast takie zadania robisz w szkole to rób tak jak chcą , ale jeśli nie chcesz po 4 latach technikum wiedzieć tylko jak napisać konsolowy program rozwiązujący podstawowe równanie kwadratowe, to daj znać. Polecę ci jakieś kursy czy też dobrą lekturę.

Pozdrawiam

3

@Narudura, porównaj to ze swoim kodem:

public class ThreeNumbers
  {
   public static void main(String[] args)
     {
      int a=1,b=15,c=-23;
      if(a<b) { int t=a; a=b; b=t; }
      if(a<c) { int t=a; a=c; c=t; }
      if(b<c) { int t=b; b=c; c=t; }
      System.out.println(a);
      if(a!=b) System.out.println(b);
      if(b!=c) System.out.println(c);
     }
  }
0

@Narudura poprosze o cos do nauki javy. cos dla kogos kompletnie zielonego

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0