Obliczanie średniej długości wejściowych ciągów znaków – pomoc z rozwiązaniem zadania

0

Hej, jestem całkowicie załamana. Mam zrobionych 5 programów na 6 w Javie i tego całkowicie nie rozumiem :( Znalazłby się tu jakiś biały rycerz, który poświęciłby chwilę i pomógł mi to zrobic? Błagam :( Wklejam treść zadania :(

  1. Napisać funkcję, która przez pierwszy parametr otrzymuje dwuwymiarową tablicę łańcuchów, a
    przez drugi parametr liczbę całkowitą. Funkcja powinna zwrócić średnią długość łańcuchów
    znajdujących się w tabeli. Natomiast dodatkowo, w funkcji powinien zostać wyświetlony łańcuch
    stworzony z konkatenacji trzech pierwszych* znaków łańcuchów leżących w kolumnach o indeksach
    podzielnych przez 5 i niepodzielnych przez liczbę przekazaną przez parametr funkcji.
  • Jeśli łańcuch jest krótszy od 3 znaków, to należy zastosować wszystkie jego znaki.>
0

Pokaż wstępną wersję kodu – zakładam, że nie prosisz o gotowa, prawda?

0
furious programming napisał(a):

Pokaż wstępną wersję kodu – zakładam, że nie prosisz o gotowa, prawda?

Szczerze mówiąć w tym zadaniu mam problem ogólnie z rozpoczęciem kodu i jestem załamana całkowicie bo siedze nad tym już dwa dni i nie mogę nic wymyśleć. Przepraszam Was :(

0

To zadanie składa się z dwóch niemal niezależnych części:
a) Napisać funkcję, która przez pierwszy parametr otrzymuje dwuwymiarową tablicę łańcuchów, a
przez drugi parametr liczbę całkowitą. Funkcja powinna zwrócić średnią długość łańcuchów
znajdujących się w tabelli.

oraz
b) W funkcji powinien zostać wyświetlony łańcuch
stworzony z konkatenacji trzech pierwszych* znaków łańcuchów leżących w kolumnach o indeksach
podzielnych przez 5 i niepodzielnych przez liczbę przekazaną przez parametr funkcji.
Jeśli łańcuch jest krótszy od 3 znaków, to należy zastosować wszystkie jego znaki.

Wklej kod który będzie realizować pierwszy podpunkt.

1

Zadanie jest dość proste:

  • pierwsza funkcja (metoda) łączy wszystkie wejściowe ciągi w jeden,
  • druga pobiera w parametrze połączony ciąg znaków i ich liczbę oraz oblicza średnią długość,
  • trzecia robi to co zrobiła pierwsza, tyle że nie ze wszystkimi ciągami.

Przy okazji – nie w tabeli, a w tablicy, bo tabele są w bazach danych.

3

Dam ci wskazówki, bez sensu jest podawanie tak prostego zadania na tacy.

Od początku parametry funkcji to tablica łańcuchów czyli tablica Stringów. Poszukaj w internecie co to jest tablica i jak się ją tworzy w javie oraz co to jest klasa String.

Funkcja powinna zwrócić średnią długość łańcuchów - domyślam się, że chodzi o średnią arytmetyczną. Musisz więc użyć funkcji czegoś, co 'przeleci' ci poklei przez każdy element tablicy w celu pobrania długości tego Stringa(łańcucha znaków). Do tego zadania idealnie nada się pętla. Tworzysz zmienną typu int, która będzie licznikiem całkowitej ilości znaków w tablicy(suma długości każdego wyrazu) następnie tą sumę należy podzielić przez ilość elementów w tablicy. Tylko pamiętaj, że dzieląc liczbę całkowitą przez całkowitą w javie otrzymasz wynik również całkowity - część ułamkowa zostanie odrzucona bez zaokrąglania. Jeżeli zależy ci na zachowaniu części ułamkowej musisz użyć liczby zmiennoprzecinkowej typu float lub double np poprzez rzutowanie.

To jest jedna część zdania, druga część to operacja na tych łańcuchach. Iterujesz każdy element w pętli no i po prostu sprawdzasz warunki - elementy podzielne przez 5 i niepodzielne przez liczbę, która jest drugim argumentem. Mamy więc tutaj do czynienia z operacją logiczną AND, do sprawdzenia podzielności możemy wykorzystać operator modulo i przyrównać wynik operacji modulo do zera. Poszukaj czym jest operacja modulo i jak sprawdza się podzielność liczby przez daną liczbę. Do tego musisz pamiętać o drugim warunku, czyli sprawdzeniu długości znaku.
Musisz też dowiedzieć się czym jest konkatenacja czyli sumowanie ciągów znaków w javie. Mała podpowiedź - jest za to odpowiedzialny operator '+' ale jest to temat o tyle istotny, że warto przeczytać całość na temat konkatenacji, kiedy warto jej używać, a kiedy warto użyć np klasy StringBuilder.

Na początek polecam ci właśnie od podzielenia tego zadania na mniejsze. Najpierw zrób program do sprawdzania czy jedna liczba jest podzielna przez drugą liczbę. Potem zrób funkcję, która będzie sprawdzać długość wyrazu. Potem połącz te 2 funkcję w jedną. Tak możesz zrobić całe zadanie - buduj funkcję cegiełka po cegiełce. Rozbij programy na mniejsze, porób kilka funkcji a potem staraj się to połączyć w całość. Na początku ci nie wyjdzie, ale za 10 czy 15 razem dasz radę.

0

Dziękuje bardzo za wskazowki postaram sie jeszcze dzis to zrobic :*

1

Może inaczej, bo zadanie wymaga stworzenia jednej funkcji, która robi wszystko na kupę – co za głupota… :/

Najpierw zadeklaruj zmienną liczbową do przechowania sumy długości ciągów i ją wyzeruj. Następnie w pętli dodaj długość bieżącego ciągu do tej zmiennej. Po pętli podziel wartość tej zmiennej przez liczbę ciągów znaków. W ten sposób uzyska się średnią długość ciągów. To jak pobrać długość ciągu znaków znajdziesz w sieci.

Niżej tego wszystkiego zadeklaruj zmienną łańcuchową i zapisz drugą pętlę, w której znów przeiteruj po ciągach wejściowych. Tym razem sprawdź we wstępnym warunku, czy indeks dzieli się przez 5 i jednocześnie nie dzieli się przez liczbę z drugiego parametru. Jeśli warunek jest spełniony, to do zmiennej dopisz podciąg pozyskany z bieżącego ciągu. To jak pozyskać podciąg również znajdziesz w sieci. Na koniec wyświetl w konsoli zawartość zmiennej.

0

Dziekuje chlopaki za wskazowki. Nie dalam sobie rady, oddam we wtorek projekt bez tego zadania, moze ja sie do tego nie nadaje po prostu :(
W każdym razie bardzo Wam dziekuje za poswiecony czas. :( Dziekuje ;*

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