Wróć   polish:Elite:board > hard- i software > programowanie


programowanie języki, projekty, pomoc, oprócz html, php, js

Odpowiedz
 
LinkBack Narzędzia wątku Przeszukaj ten temat Wygląd

  #1 (permalink)  
Stare 22.08.2008, 13:11
Senior Member
 
Zarejestrowany: Mar 2008
Skąd: Krzyżanowice
Postów: 349
Postów w giełdzie: 263
Wyślij wiadomośc poprzez ICQ do fuckinmusic Wyślij wiadomośc poprzez AIM do fuckinmusic Wyślij wiadomość poprzez Skype™ do fuckinmusic
Domyślnie Thinking in Java 3

Witam.
Ściągnąłem sobie książkę Thinking in Java Edycja Polska z tego forum.I mam problem i doszedłem do strony 104 gdzie jest przykład użycia operatorów matematycznych który zamieszczę poniżej.
Kod:
//: c03:MathOps.java
// Demonstracja operatorów matematycznych.
// Z książki 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. Patrz uwagi w pliku CopyRight.txt.
import com.bruceeckel.simpletest.*;
import java.util.*;

public class MathOps {
  static Test monitor = new Test();
  // skrót wypisujący łańcuch i liczbę całkowitą:
  static void printInt(String s, int i) {
    System.out.println(s + " = " + i);
  }
  // skrót wypisujący łańcuch i liczbę rzeczywistą:
  static void printFloat(String s, float f) {
    System.out.println(s + " = " + f);
  }
  public static void main(String[] args) {
    // Stwórz generator liczb losowych,
    // domyślnie inicjowany przez aktualny czas:
    Random rand = new Random();
    int i, j, k;
    // Wybierz wartość do 1 do 100:
    j = rand.nextInt(100) + 1;
    k = rand.nextInt(100) + 1;
    printInt("j", j);  printInt("k", k);
    i = j + k; printInt("j + k", i);
    i = j - k; printInt("j - k", i);
    i = k / j; printInt("k / j", i);
    i = k * j; printInt("k * j", i);
    i = k % j; printInt("k % j", i);
    j %= k; printInt("j %= k", j);
    // Testy na liczbach zmiennoprzecinkowych:
    float u,v,w;  // stosuje się również do typu double
    v = rand.nextFloat();
    w = rand.nextFloat();
    printFloat("v", v); printFloat("w", w);
    u = v + w; printFloat("v + w", u);
    u = v - w; printFloat("v - w", u);
    u = v * w; printFloat("v * w", u);
    u = v / w; printFloat("v / w", u);
    // poniższy kod działa również dla typów
    // char, byte, short, int, long,
    // oraz double:
    u += v; printFloat("u += v", u);
    u -= v; printFloat("u -= v", u);
    u *= v; printFloat("u *= v", u);
    u /= v; printFloat("u /= v", u);
    monitor.expect(new String[] {
      "%% j = -?\\d+",
      "%% k = -?\\d+",
      "%% j \\+ k = -?\\d+",
      "%% j - k = -?\\d+",
      "%% k / j = -?\\d+",
      "%% k \\* j = -?\\d+",
      "%% k % j = -?\\d+",
      "%% j %= k = -?\\d+",
      "%% v = -?\\d+\\.\\d+(E-?\\d)?",
      "%% w = -?\\d+\\.\\d+(E-?\\d)?",
      "%% v \\+ w = -?\\d+\\.\\d+(E-?\\d)??",
      "%% v - w = -?\\d+\\.\\d+(E-?\\d)??",
      "%% v \\* w = -?\\d+\\.\\d+(E-?\\d)??",
      "%% v / w = -?\\d+\\.\\d+(E-?\\d)??",
      "%% u \\+= v = -?\\d+\\.\\d+(E-?\\d)??",
      "%% u -= v = -?\\d+\\.\\d+(E-?\\d)??",
      "%% u \\*= v = -?\\d+\\.\\d+(E-?\\d)??",
      "%% u /= v = -?\\d+\\.\\d+(E-?\\d)??"
    });
  }
} ///:~
Problem mój polega na tym że po kompilacji niby wszystko pięknie i ładnie utworzył się plik Class.Ale próbując go uruchomić mam taki o to wynik :
http://www.fotosik.pl/pokaz_obrazek/...272b1f660.html
więc problem chyba lezy w import com.bruceeckel.simpletest.*; ??
Jak myślicie o co tu chodzi?
W netbeansie przykładowy program przepisany z tej książki również nie działa:
http://www.fotosik.pl/pokaz_obrazek/...a7db4b724.html
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Odpowiedź z cytatem Szybka odpowiedź do tej wiadomości

  #2 (permalink)  
Stare 22.08.2008, 17:28
Senior Member
 
Zarejestrowany: Mar 2008
Skąd: Krzyżanowice
Postów: 349
Postów w giełdzie: 263
Wyślij wiadomośc poprzez ICQ do fuckinmusic Wyślij wiadomośc poprzez AIM do fuckinmusic Wyślij wiadomość poprzez Skype™ do fuckinmusic
Domyślnie Odp: Thinking in Java 3

Widzę że nawet najstarsi górale nie wiedzą o co chodzi
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Odpowiedź z cytatem Szybka odpowiedź do tej wiadomości

  #3 (permalink)  
Stare 22.08.2008, 17:32
Junior Member
 
Zarejestrowany: May 2008
Postów: 341
Postów w giełdzie: 0
Domyślnie Odp: Thinking in Java 3

O to chodzi:

Kod:
import com.bruceeckel.simpletest.*;
Dołącz jar lub ścieżkę, w której zawiera się pakiet com.bruceeckel.simpletest do classpath przy uruchamianiu ( i kompilacji też ).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Odpowiedź z cytatem Szybka odpowiedź do tej wiadomości

  #4 (permalink)  
Stare 22.08.2008, 19:13
Senior Member
 
Zarejestrowany: Mar 2008
Skąd: Krzyżanowice
Postów: 349
Postów w giełdzie: 263
Wyślij wiadomośc poprzez ICQ do fuckinmusic Wyślij wiadomośc poprzez AIM do fuckinmusic Wyślij wiadomość poprzez Skype™ do fuckinmusic
Domyślnie Odp: Thinking in Java 3

Mógłbyś krok po kroku bo googlowałem trochę w poszukiwaniu jak ustawić ten classpath czyli że trzeba mniej więcej to jakos tak uruchamiać
java -classpath D:\myprogram org.mypackage.HelloWorld
Jednak nie wiem jak to przekombinować w moim przypadku jeżeli ten pakiet u mnie jest w katalogu
C:\Documents and Settings\Dj Danto\Pulpit\thija3\com\bruceeckel\simpletest
a plik Assignment.class który chcę uruchomić ma ścieżkę
C:\Documents and Settings\Dj Danto\Pulpit\thija3\c03\Assignment.class
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Odpowiedź z cytatem Szybka odpowiedź do tej wiadomości

  #5 (permalink)  
Stare 22.08.2008, 19:29
Junior Member
 
Zarejestrowany: May 2008
Postów: 341
Postów w giełdzie: 0
Domyślnie Odp: Thinking in Java 3

Classpath'y możesz łączyć. W Windows średnik, w systemach unixowych dwukropek. Wystrzegaj się*w ścieżkach spacji, bo to ci tylko utrudni zbudowanie ścieżki. To powinno pomóc.

Kod:
java -cp "C:\Documents and Settings\Dj Danto\Pulpit\thija3;C:\Documents and Settings\Dj Danto\Pulpit\thija3\c03" Assigment
Możesz też zrobić sobie skrypt uruchamiający z użyciem Ant, wtedy nie musisz się martwić, czy używać "\" czy "/" w ścieżkach, bo w Ant wystarczy użyć*"/". Jedyne co, to musisz sobie classpath separator systemowy dorzucić jeśli tworzysz classpath "ręcznie" lub zdać się na Anta i użyć <classpath>, np tak:

Kod:
<project name="" default="run" basedir=".">                                                                                                                                                               
    <target name="run">                                                                                                                                                                                   
        <java fork="true" classname="Assignment">                                                                                                                                                         
            <classpath>                                                                                                                                                                                   
                <pathelement location="C:/Documents and Settings/Dj Danto/Pulpit/thija3/c03"/>                                                                                                            
                <pathelement location="C:/Documents and Settings/Dj Danto/Pulpit/thija3"/>                                                                                                                
            </classpath>                                                                                                                                                                                  
        </java>                                                                                                                                                                                           
    </target>                                                                                                                                                                                             
</project>
Później aplikację odpalasz przez odpalenie Anta ( dla skryptu nazwanego run.xml ):

Kod:
ant -f run.xml
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Odpowiedź z cytatem Szybka odpowiedź do tej wiadomości

  #6 (permalink)  
Stare 22.08.2008, 20:08
Senior Member
 
Zarejestrowany: Mar 2008
Skąd: Krzyżanowice
Postów: 349
Postów w giełdzie: 263
Wyślij wiadomośc poprzez ICQ do fuckinmusic Wyślij wiadomośc poprzez AIM do fuckinmusic Wyślij wiadomość poprzez Skype™ do fuckinmusic
Domyślnie Odp: Thinking in Java 3

Zrobiłem tak jak napisałeś tylko przeniosłem wszystko do c:\thija3 żeby było mniej pisania.Jednak dalej mam coś takiego :

Więc dalej coś robię źle.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Odpowiedź z cytatem Szybka odpowiedź do tej wiadomości

  #7 (permalink)  
Stare 22.08.2008, 20:13
Junior Member
 
Zarejestrowany: May 2008
Postów: 341
Postów w giełdzie: 0
Domyślnie Odp: Thinking in Java 3

Nie masz klasy OutputVerifier, sprawdź gdzie ona jest, bo klasa Test jej używa i dodaj do classpath.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Odpowiedź z cytatem Szybka odpowiedź do tej wiadomości

  #8 (permalink)  
Stare 22.08.2008, 20:30
Senior Member
 
Zarejestrowany: Mar 2008
Skąd: Krzyżanowice
Postów: 349
Postów w giełdzie: 263
Wyślij wiadomośc poprzez ICQ do fuckinmusic Wyślij wiadomośc poprzez AIM do fuckinmusic Wyślij wiadomość poprzez Skype™ do fuckinmusic
Domyślnie Odp: Thinking in Java 3

Wytłumaczcie mi to krok po kroku
Oto cały folder.
Kod:
http://www6.zippyshare.com/v/86471938/file.html
Jak kompilować i co jak robić żeby działało.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Odpowiedź z cytatem Szybka odpowiedź do tej wiadomości

  #9 (permalink)  
Stare 22.08.2008, 21:09
Junior Member
 
Zarejestrowany: May 2008
Postów: 341
Postów w giełdzie: 0
Domyślnie Odp: Thinking in Java 3

Problem jest w tym, że jest błąd w pliku OutputVerifier.java:

jest:
Kod:
        ((String) out[i]).compareTo(expected[i]) < 0
a powinno być:
Kod:
        ((String) out[i]).compareTo((String)expected[i]) < 0
Dlatego nie może znaleźć ci tej klasy, bo się po prostu nie skompilowała. Jak poprawisz to przekompiluj wszystko jeszcze raz i powinno działać. Swoją drogą nie wiem czy to polski wydawca tak zrobił, ale te przykłady są tragiczne, sformatowane tragicznie, nieczytelne.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Odpowiedź z cytatem Szybka odpowiedź do tej wiadomości

  #10 (permalink)  
Stare 23.08.2008, 11:57
Pokemonster
Guest
 
Postów: n/a
Postów w giełdzie: 0
Domyślnie Odp: Thinking in Java 3

Wg mnie wystarczy usunąć z podanego przez ciebie listningu
linie:
Kod:
 import com.bruceeckel.simpletest.*;
oraz
Kod:
     monitor.expect(new String[] {
      "%% j = -?\\d+",
      "%% k = -?\\d+",
      "%% j \\+ k = -?\\d+",
      "%% j - k = -?\\d+",
      "%% k / j = -?\\d+",
      "%% k \\* j = -?\\d+",
      "%% k % j = -?\\d+",
      "%% j %= k = -?\\d+",
      "%% v = -?\\d+\\.\\d+(E-?\\d)?",
      "%% w = -?\\d+\\.\\d+(E-?\\d)?",
      "%% v \\+ w = -?\\d+\\.\\d+(E-?\\d)??",
      "%% v - w = -?\\d+\\.\\d+(E-?\\d)??",
      "%% v \\* w = -?\\d+\\.\\d+(E-?\\d)??",
      "%% v / w = -?\\d+\\.\\d+(E-?\\d)??",
      "%% u \\+= v = -?\\d+\\.\\d+(E-?\\d)??",
      "%% u -= v = -?\\d+\\.\\d+(E-?\\d)??",
      "%% u \\*= v = -?\\d+\\.\\d+(E-?\\d)??",
      "%% u /= v = -?\\d+\\.\\d+(E-?\\d)??"
    });
Nie zmieni się przez to wynik programu, a dodane są ponieważ Pan Eckel 'oddaje cześć' programowaniu extremalnemu. Tzn. do każdego kodu dodaje się kod, który sprawdza czy wynik programu jest taki jakiego się spodziewamy, dzięki czemu szybko znajdujemy błędy w kodzie itp.
Z każdego listningu z tej książki można to usunąć i nic złego to nie zrobi. A jeśli kod przepisujesz z książki to tylko zyskasz na czasie nie bawiąc się tym 'monitor.expect()'.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Odpowiedź z cytatem Szybka odpowiedź do tej wiadomości
Odpowiedz

Tagi
problem z przykladami

Szybka odpowiedź
Wiadomość:
Opcje

Narzędzia wątku Przeszukaj ten temat
Przeszukaj ten temat:

Zaawansowane wyszukiwanie
Wygląd

Zasady postowania
Nie możesz zakładać nowych tematów
Nie możesz pisać wiadomości
Nie możesz dodawać załączników
Nie możesz edytować swoich postów

BBCode jest Włączony
EmotikonyWłączony
[IMG] kod jest Włączony
HTML kod jest Wyłączony
Trackbacks are Wyłączony
Pingbacks are Wyłączony
Refbacks are Wyłączony


Podobne wątki
Temat Autor wątku Forum Odpowiedzi Ostatni post/autor
Thinking in Java - wydanie 3 doomboy informatyka 8 03.03.2011 23:59
[RS] Thinking In JAVA rudy211 informatyka 0 03.12.2007 19:06
[RS] Thinking in Java - Fourth Edition Venom23 informatyka 0 31.07.2007 18:33
[RS] Thinking in C++ kwashop informatyka 0 10.06.2007 09:19
[Java] Wybór książki (Thinking in Java 3 i 4) cloudmaster programowanie 4 20.03.2007 11:14


Wszystkie czasy w strefie GMT +2. Teraz jest 22:27.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.5.2
Tłumaczenie: vBHELP.pl - Polskie wsparcie vBulletin
1328905654

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333