Skocz do zawartości

Seraphim

Członkowie
  • Postów

    4
  • Dołączył

  • Ostatnio

    Nigdy

Posty napisane przez Seraphim

  1. 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 :)

  2. Można zrobić jakąś globalną zmienną, która trzyma informacje o tym, czy pierwszy przycisk był wciśnięty czy nie, a po wciśnięciu drugiego przycisku jest sprawdzana ta wartość i ewentualnie wykonuje się wtedy jakaś funkcja. Wyglądałoby to mniej więcej w ten sposób

    var FirstPressed = false;
    function First_OnClick() {
        FirstPressed = true;
        // Wykonanie akcji pierwszego przycisku //
    }
    function Second_OnClick() {
        // Wykonanie akcji drugiego przycisku //
        if (FirstPressed == true) {
            Thirdfunction();
        }
    }

    Można do tego jeszcze dodać możliwość anulowania sekwencji jeśli między pierwszym, a drugim przyciskiem zostanie naciśnięty jakiś inny. W takim przypadku w obsłudze innych przycisków wystarczy dodać:

    FirstPressed = false;
  3. Ja C++ poznałem już po tym jak pisałem programy w C# także kolejność nauki myślę, że nie ma takiego wielkiego znaczenia. Ale skoro podstawy już znasz z C++ to będzie Ci tylko łatwiej, a do nauki bez wahania mogę polecieć książkę "C#3.0 dla .NET 3.5 - Księga Experta". Może ma już kilka lat i nie dotyczy ostatniej wersji C# ani platformy .NET, ale większość elementów się nie zmieniła, a nowości nie ma, aż tak wiele, aby nazywać tą książkę "przestarzałą". Jak dla mnie była ona źródłem wielu cennych informacji i jeśli miałbym ponownie uczyć się C# to zacząłbym od tej książki raz jeszcze.

×
×
  • Utwórz nowe...