Skocz do zawartości

Recommended Posts

Napisano

Witam, wlasnie rozpoczelam w nowym semestrze swoja przygode z java :) na pierwszych zajeciach dostalam do zrobienia takie o to zadania, szczerze kompletnie nie wiem jak sie zabrac do niego zeby bylo dobrze zrobione:

  1. Do kazdego z ponizszych punktów napisac odpowiedni program. W kazdym z tych programów wczytac liczbe naturalna n, a nastepnie wczytujac kolejno n liczb rzeczywistych obliczyc wartosc odpowiednich wyrazen: (a) a1 + a2 + ....+ an (b) a1 * a2 *... * an (c) |ja1| + |a2|+ : : : + |an|
  2. Wczytac liczbe naturalna n, a nastepnie wczytujac kolejno ciag n liczb rzeczywistych a1, a2,...., an wypisac ciag a2, a3,...,an,a1.

// licze na pomoc lub jakies podpowiedzi jak sie do tego zabrac

Napisano

Hej, Co prawda "Javowcem" nie jestem, ale coś tam się ze studiów jeszcze pamięta i postaram się nakierować Cię na właściwy trop. Zaczynamy:

Pierwszym krokiem w każdym z tych zadań jest wczytanie danych, zapewne z konsoli, więc może Ci się przydać metoda ReadLine. Jeśli ją użyjesz to wczytywany jest ciąg znaków aż do wciśnięcia ENTER, które później będziesz musiała sparsować do inta - tu z pomocą przyjdzie ParseInt. Zatem wczytujesz string z konsoli, parsujesz na int i masz w ten sposób wczytaną liczbę.

W tym miejscu warto też sprawdzić czy podany ciąg znaków można sparsować na int. Domyślnie z tego co wiem, parsowanie do inta wyrzuca wyjątek jeśli operacja zakończy się niepowodzeniem, ale można zrobić taką metodę jak tutaj: TryParse i masz pewność, że parsowanie przebiegnie poprawnie - jedyny minus tej metody to dwukrotne parsowanie stringa do inta.

Jak już wiesz jak wczytywać liczby to dalej jest już łatwo:

  1. Wczytujesz liczbę n.
  2. Tworzysz listę na której będziesz przechowywać liczby:

    List<Integer> numbers = new ArrayList<Integer>();
  3. Tworzysz pętlę:

    for (int i = 0; i < n: i++)

    i w jej ciele ponownie wczytujesz liczby z konsoli i zapisujesz na listę:

    numbers.Add(liczba);
  4. Jak już masz wczytane wszystkie liczby, robisz kolejną pętlę po wszystkich elementach listy i sumujesz je, mnożysz, czy co tam potrzebujesz:

    int sum = 0;
    for (int j = 0; j < numbers.size(): j++) {
        sum += numbers.get(j);
    }
  5. Do obliczenia wartości absolutnej można użyć:

    Math.abs(liczba);
  6. Ostatni krok to wyświetlenie wyniku:

    System.out.println("Result : " + sum);

To oczywiście tak w skrócie co do zrobienia. Można też to ulepszyć - zamiast wczytywać dane na listę, to po wczytaniu napisu z konsoli i sparsowaniu go do inta, od razu można wykonać na nim operacje (suma, mnożenie czy co trzeba) i wtedy pozbędziesz się nadmiarowej listy i nadmiarowej iteracji po niej.

Była też chyba jakaś metoda, którą można od razu z konsoli wczytywać liczby bez konieczności parsowania, ale teraz nie pamiętam jej.

Co do zadania 2 - tutaj możesz wczytać do jakiejś zmiennej pierwszą liczbę jaka będzie wczytana, kolejne od razu wyświetlać na konsolę, a na końcu wyświetlić tą zapamiętaną zmienną. Wtedy dostaniesz docelowy wynik (a2, a3, a4, ... , an, a1)

Mam nadzieję, że napisałem w miarę zrozumiale i podołasz zadaniu :) W razie potrzeby pisz :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...