
Mavo
Członkowie-
Postów
12 -
Dołączył
-
Ostatnio
Nigdy
Typ zawartości
Profile
Fora
Kalendarz
Articles
Pliki
Wszystko napisane przez Mavo
-
Za trzecim warunkiem masz niepotrzebny ; i powinno być else if
-
Wcześniej wspomniałem o użyciu zapisu tablicowego w kontekście wskażników, najlepiej pokaże na przykładzie: double wyznacznik(double** tab, int i, int j) { return tab[i][j] = 1000; } Tak jest czytelniej niż tak: double wyznacznik(double** tab, int i, int j) { return *(*(tab+i)+j)=1000; } Można też pozbyć się całkowicie wskaźników i pracować na samych tablicach. Aby przekazać taka tablicę do funkcji musisz określić wcześniej jej wielkość, przykład: double usatwTab(double tab[10][10], int i, int j) { return tab[i][j] = 2.5; }
-
Odwołanie które chcesz zrobić będzie wyglądało tak: *(*(tab+i)+j) = 1000; Ale polecam nauczyć się zapisu tablicowego (jest czytelniejsz): tab[i][j] = 1000;
-
A, że temat mnie zainteresował, to dla ciekawych wrzucam jeszcze to. Kod nie jest doskonały i proszę się nie czepiać :) pisany był w pośpiechu i nie było czasu na zmiany. import java.util.*; import java.util.Map.Entry; /** * @author Grzegorz */ public class RozkladWykladniczy { private Random t; public HashMap<String, Integer> map; public RozkladWykladniczy() { this.t = new Random(); this.map = new HashMap<>(); } public double generuj(double lambda) { return -(1/lambda)*Math.log(1 - t.nextDouble()); } public void setHistogram(){ /* * tworzony jest obiekt DecimalFormat, * aby łatwo można było formatować generowane wartości * i przy tym obserwować zmiany na histogramie - szoda, * że nie graficznym :) */ java.text.DecimalFormat df = new java.text.DecimalFormat(); df.setMaximumFractionDigits(2);// największa ilość miejsc po przecinku df.setMinimumFractionDigits(2);// najmniejsza ilość miejsc po przecinku String tmp; int value; for(int i=0; i<200; i++) { tmp = df.format(generuj(2)); if(!map.containsKey(tmp)) { map.put(tmp, 1); } else { value = map.get(tmp); map.replace(tmp, value, ++value); } } } public void showHistogram() { if(map.isEmpty()) { System.out.println("Wartość: 0, Wystąpienia : 0"); } else { for (Entry<String, Integer> entry : map.entrySet()) { System.out.println("Wartość : " + entry.getKey() + " Wystąpienia : "+ entry.getValue()); } } } /* * Metodę dodałem, aby łatwiej przeanalizować wyniki */ public void sortujPoWystapieniach() { List list = new LinkedList(map.entrySet()); Collections.sort(list, new Comparator() { public int compare(Object o1, Object o2) { return ((Comparable) ((Map.Entry) (o2)).getValue()) .compareTo(((Map.Entry) (o1)).getValue()); } }); HashMap sortedHashMap = new LinkedHashMap(); for (Iterator it = list.iterator(); it.hasNext();) { Map.Entry entry = (Map.Entry) it.next(); sortedHashMap.put(entry.getKey(), entry.getValue()); } map = sortedHashMap; } public static void main(String[] args) { RozkladWykladniczy test = new RozkladWykladniczy(); test.setHistogram(); test.sortujPoWystapieniach(); test.showHistogram(); } }
-
Najlepiej przygotować metodę, która zwróci wartość, a później wywołać ją w pętli np: public class RozkladWykladniczy { Random t = new Random(); public double generuj(double lambda) { double losowa = t.nextDouble(); return -(1/lambda)*Math.log(1-losowa); } public static void main(String[] args) { RozkladWykladniczy test = new RozkladWykladniczy(); for(int i=0; i<100; i++) { System.out.println(test.generuj(2)); } } }
-
Jest kilka sposobów na odczytanie Twojej liczby. Wszystko zależy od tego jak zapiszesz dane do pliku. Najprostrzy sposób, to zapisać godzin odjazdów autobusów w liniach przyporządkowanych do godzin, tak aby linia 1 to piersza w nocy , 2 linia = 2 godzina i tak dalej. Dane z pliku odczytujesz w pętli, do tego wstawiasz licznik, który będzie odliczał linie. I na kniec if -a, w którym będziesz porównywał godzinę podaną przez użytkownika z linią w pliku. Jeśli to ma być 10 godzina, to odczytasz linię 10 z pliku, w której zapiszesz wszystkie godziny odjazdów autobusów od 10 do 11. Oczywiście są jeszcze inne sposoby odczytania szukanej przez Ciebie liczby, ale na początek ten jest dobry.
-
Komunikacja na pewno przez sockety i trzeba dołączyć obsługę wątków. Aby każdy klient był obsługiwany przez osobny wątek. http://www.oracle.com/technetwork/java/socket-140484.html Jeżeli ma być opcja "voice chat" lepiej wybrać protokół UDP.
- 4 odpowiedzi
-
- java
- klient-server
-
(1 więcej)
Tagi:
-
Fajnie, że masz już swój kod teraz można go stopniowo poprawiać. Przede wszystkim trzeba pozbyć się tego długiego warunku w if, a najlepiej całego if - a. Miałeś dobry pomysł, aby przyjrzeć się funkcji isspace. Zwraca ona wartość różną od zera gdy argument, który został przekazany do funkcji jest "białym znakiem". W praktyce będzie to wyglądało tak: while(!isspace(tab_tekstow[i-1][0]) && tab_tekstow[i-1][0] != NULL); Warunek składa się z dwóch części, gdyż dodatkowo trzeba zadbać o przycisk enter
-
Pytanie błache, ale problem już nie :) Przykładowo, jeżeli masz ciąg znaków w stumieniu, to musisz je sprawdzać znak po znaku (!) i jeżeli trafisz na "biały znak" to przerywasz sprawdzanie. Albo zapisujesz cały strumień w zmiennej i już na niej dokonujesz sprawdzenie. Proponuję zapoznać się z cin.get(), cin.getline(). A! znaki może rzutować na int-y, wtedy łatwo się je sprawdza np. spacja to 32.
-
... hm dziwne zadanie, jak na początek nauki. Ten kod kompiluje się bez błędów może Ci pomoże public class Akwarium { private static class CzyDoplynie { public static boolean rybka1( boolean[][] tablica ) { // todo return false; } } public static void main(String[] args) { // próba wywołania CzyDoplynie.rybka1(new boolean[1][1]); } }
-
Część warunkowa w Twoim wyrażeniu jest poprawna, czyli koniunkcja jest dobrze napisana. Błąd jest w składni wyrażenia, gdyż brakuje elementu, który będzie wykonany jeśli warunek nie będzie spełniony. Poprawna forma wygląda następujoco: warunek ? wyrażenie1 : wyrażenie2 Jak widzisz u Ciebie brakuje ostatniej części, jak ją dopiszesz to nie będziesz miał błędu.
-
public class Prostopadloscian { private int bokA; private int bokB; private int bokC; public Prostopadloscian(int bokA, int bokB, int bokC) { this.bokA = bokA; this.bokB = bokB; this.bokC = bokC; } public void pole() { int s = 2 * ((bokA * bokB) + (bokB *bokC) + (bokA * bokC)); System.out.println("Pole powierzchni = " + s); } public void objetosc() { int v = bokA * bokB * bokC; System.out.println("Objetosc = " + v); } public static void main(String[] args) { Prostopadloscian figura = new Prostopadloscian(3,3,3); figura.pole(); figura.objetosc(); } }