=========================================================================== Date: Thu, 21 Jun 2007 14:07:33 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie kiedy bedzie mozna uzyskac wpisy z wykladu od dr. inż Janusza Jakubiaka ? -------------------------------------------------- Date: Thu, 21 Jun 2007 21:51:19 +0200 (CEST) From: Janusz Jakubiak Subject: odpowiedź na pytanie Wpisy z wykładu można otrzymać piątek 22.06 godz. 9-11 poniedziałek 25.06 godz. 9-11 czwartek 28.06 godz. 9-10 =========================================================================== =========================================================================== Date: Tue, 19 Jun 2007 19:44:33 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie W jakich goszinach i gdzie dr Paluszyński bedzie dawał wpisy z informatyki w czasie sesji?? -------------------------------------------------- Date: Wed, 20 Jun 2007 10:10:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie W poniedziałki i czwartki w godz.13-15. =========================================================================== =========================================================================== Date: Sun, 17 Jun 2007 21:16:00 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czemu funkcja "strcmp" nie działa jak należy. mi dla wartości równych pokazuje liczby mniejsze niż -65 dla równych od -1 do -65 a gdy są pokolei to dodatnie. to jeden problem a drugi to taki ze funkcja przy wprowadzeniu do niej wyrazów "aa" i "a" pokazuje że są one sobie równe ? -------------------------------------------------- Date: Wed, 20 Jun 2007 10:10:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie całkiem rozumiem to pytanie (wydaje mi się, że jest sprzeczne samo w sobie), ale ogólnie błędne wartości zwracane przez funkcję strcmp muszą być skutkiem reprezentacji stringów niezgodnej z konwencją języka C. String dla funkcji strcmp (i całej rodziny funkcji str*) kończy się znakiem NUL (chr(0)) i wszystko aż do tego znaku jest uwzględniane w porównaniu. Nawet jeśli nie ma w ogóle tego znaku w tablicy np. 80-znakowej, to funkcja strcmp leci dalej i dopiero gdy znajduje znak NUL gdzieś w pamięci (np. 600 bajtów dalej), to bierze string 600-bajtowy. Wstawienie znaku chr(0) do stringa rozwiąże problem. =========================================================================== =========================================================================== Date: Sat, 16 Jun 2007 13:18:53 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie W jakich goszinach i gdzie dr Paluszyński bedzie dawał wpisy z informatyki w poniedziałek? -------------------------------------------------- Date: Sun, 17 Jun 2007 15:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie W goszinach konsultacji 13:15-15:00 w swoim pokoju 307/C3. =========================================================================== =========================================================================== Date: Sat, 16 Jun 2007 13:01:28 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie 6 czerwca odpisal Pan komus ze przy takim bledzie nalezy dodac paramter "-R" podczas kompilacji ale mimo to mi dalej ten blad wyskakuje: [******@diablo AVL]$ pc -LR -L/usr/local/air/sunpc/lib -o przyklad_avl przyklad_avl.p -ldrzewa [******@diablo AVL]$ ./przyklad_avl ld.so.1: przyklad_avl: fatal: libdrzewa.so: open failed: No such file or directory Killed [******@diablo AVL]$ pc -L -L/usr/local/air/sunpc/lib -o przyklad_avl przyklad_avl.p -ldrzewa [******@diablo AVL]$ ./przyklad_avl ld.so.1: przyklad_avl: fatal: libdrzewa.so: open failed: No such file or directory Killed -------------------------------------------------- Date: Sun, 17 Jun 2007 15:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Opcję -R trzeba podać, ale poprawnie. Ona ma argument podający ścieżkę do biblioteki dynamicznej, która to ścieżka będzie wpisana do programu binarnego. W tym przypadku trzeba ją podać tak samo jak opcję -L (tę z argumentem). Jeszcze raz: opcja -L z argumentem podaje ścieżkę do biblioteki na czas kompilacji, a opcja -R podaje ścieżkę do biblioteki na czas wywołania. Na przykład, takie wywołanie kompilacji powinno zadziałać każdemu na diablo, i o ile program wynikowy będzie wywołany na diablo, to uruchomi sie poprawnie: pc -L -L/usr/local/air/sunpc/lib -o przyklad_avl \ /usr/local/air/sunpc/examples/drzewa/przyklad_avl.p \ -ldrzewa -R/usr/local/air/sunpc/lib Dodatkowa informacja dla chcących wiedzieć więcej. Można nie podawać w czasie kompilacji ścieżki do biblioteki na czas wywołania (czyli pominąć opcję -R) i w czasie wywołania ustawić sobie tę ścieżkę w zmiennej LD_LIBRARY_PATH. Można też wywołać kompilację ze statycznym linkowaniem biblioteki (-B static), wtedy opcja -R jest niepotrzebna, nie ma poszukiwania biblioteki w czasie wywołania programu, wszystko jest wpisane w plik programu binarnego, który tym samym będzie większy (nie ma to większego znaczenia w przypadku biblioteki drzew, ale ma duże znaczenie np. w przypadku bibliotek graficznych typu X Window). Mając plik binarnego programu można sprawdzić programem ldd jakich bibliotek dynamicznych on wymaga, i gdzie system je znajdzie przy aktualnych ustawieniach ściezki poszukiwań bibliotek binarnych (czyli łącznie: domyślnej ścieżki linkera dynamicznego, opcji -R użytej w czasie kompilacji i aktualnej wartości zmiennej LD_LIBRARY_PATH). Poprawny jest następujący sposób postępowania. Jeśli chcemy użyć biblioteki, która nie jest standardową biblioteką, i nie możemy się spodziewać, że linker znajdzie ją w systemie gdzie program będzie uruchamiany, to należy ustawić opcję -R podając ścieżkę, gdzie spodziewamy się, że ta biblioteka będzie instalowana. Jeśli jest kilka alternatywnych miejsc, to ścieżka powinna je wszystkie wskazywać. W ten sposób użytkownik uruchamiający program w systemie docelowym może w ogóle nie wiedzieć jaka biblioteka jest potrzebna, i skąd się ją bierze. Dopiero gdy użytkownik programu nie może go uruchomić na systemie, gdzie biblioteka znajduje się w jakimś nieprzewidzianym miejscu, może ją zlokalizować, a następnie wskazać linkerowi ustawiając zmienną LD_LIBRARY_PATH. =========================================================================== =========================================================================== Date: Fri, 15 Jun 2007 19:40:15 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Mam problem z programem. Chodzi o putty&xserwer konfigurację. Mam tak jak na wykładzie ale niestety serwer nie działa. Wyskakuje błąd już ktoś o tym pisał ale nie otrzymał odpowiedzi jak go usunąć. Chodzi o błąd: X connection to localhost:24.0 broken (explicit kill or server shutdown). pozdrowienia -------------------------------------------------- Date: Sun, 17 Jun 2007 15:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie No jest problem z serwerem. Wygląda jakby putty poprawnie ustawił tunel do serwera X, ale serwer nie odpowiedział. Może nie odpalony? =========================================================================== =========================================================================== Date: Tue, 12 Jun 2007 15:20:45 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie dzien dobry; mam takie pytanie: czy oceny z ekranowek beda jakos zaokraglane czyli przykladowo jesli mialem 79.76 czyli braklo mi 0,24 do oceny 4+ to czy zostanie to zaokraglone do 80% i mam szanse na 4+ ??? -------------------------------------------------- Date: Sun, 17 Jun 2007 15:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Oceny są zaokrąglane do 0.01 tak jak widać w wynikach on-line, a następnie są brane w przedziałach określonych w tabelce. Czyli niestety 79.76 to jest 4.0. Zawsze ktoś musi być pechowcem. =========================================================================== =========================================================================== Date: Tue, 12 Jun 2007 14:35:52 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie A jakie sa progi ocen z wykladu? -------------------------------------------------- Date: Sun, 17 Jun 2007 15:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Wszystko jest już na stronie kursu. =========================================================================== =========================================================================== Date: Mon, 11 Jun 2007 08:09:41 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Kiedy będzie można uzyskać wpis od dr Paluszyńskiego ? -------------------------------------------------- Date: Tue, 12 Jun 2007 13:50:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Normalnie w godzinach konsultacji, również w czasie sesji. Proszę sprawdzić moje godziny konsultacji na mojej stronie WWW lub na drzwiach mojego pokoju, bo te godziny w czasie sesji będą się zmieniać. Jutro (13 czerwca) wpisy zaliczeń w trybie specjalnym, w godzinach 11:15-13:00 będzie można oddać mi indeks, i odebrać go o godzinie 15:00. =========================================================================== =========================================================================== Date: Thu, 07 Jun 2007 13:17:34 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Jak właściwie ma wyglądać przeglądanie drzewa trie ? W porządku preorder funkcja ma odwiedzić najpierw korzeń, a potem po kolei całą listę potomków, a w postorder odwrotnie ? A co z inorder ? -------------------------------------------------- Date: Sun, 10 Jun 2007 08:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Już odpowiadałem na to pytanie. Proszę zajrzeć niżej na pytanie z 30 maja. =========================================================================== =========================================================================== Date: Wed, 06 Jun 2007 22:54:57 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Mam pytanie odnośnie deklaracji funkcji wyszukujących w drzewach. Powszechną praktyką jest przekazywanie drzew, tablic i innych "dużych" struktur przez VAR, aby oszczędzić na pamięci, jednak niedawno dowiedziałem się, że w funkcjach wyszukujących jest to błąd i nie powinno się tego sposobu używać, aby funkcja nie mogła przypadkiem zrobić coś złego z naszą strukturą. Jest jakieś oficjalne stanowisko w tej sprawie? -------------------------------------------------- Date: Wed, 06 Jun 2007 23:55:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie brzmi to przekonywująco. Nie ufamy funkcji bibliotecznej, z której korzystamy, więc przesyłamy jej kopię tablicy, żeby nam jej nie popsuła? A mamy zaufanie, że obliczy to co trzeba? A zresztą, taka "ochrona" tablic jest dostępna w Pascalu, który nie jest językiem implementacji prawdziwych systemów. Język C jest, ale w nim nie ma mechanizmu przekazywania kopii tablic. Podobnie w C++ i Javie, tablice przekazuje się przez referencje. W sumie, ta technika nie zapewnia pisania bezpiecznych programów. A ponieważ nie przenosi się na inne języki i style programowania, więc nie jest godna polecenia. =========================================================================== =========================================================================== Date: Wed, 06 Jun 2007 12:50:48 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Nie jest dla mnie do końca jasne wykorzystanie parametru "niszcz" w funkcji usun_string_trie. W jaki sposób program powinien z niego korzystać? -------------------------------------------------- Date: Wed, 06 Jun 2007 23:25:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie To jest typowa opcja jaką można spotkać w procedurach usuwania. Gdy wywołujemy usuwanie, żeby usunąć element ze struktury danych, to możemy tylko usunąć element ze struktury, albo usunąć element wraz z odzyskaniem pamięci. Nie dla wszystkich struktur ma to sens (dla drzew binarnych np. nie ma), ale dla drzew trie ma. Gdy nieszcz=F wtedy należy usunąć tylko słowo ze struktury, i w tym celu wystarczy ustawić flagę słowa na F. Gdy niszcz=T wtedy należy usunąć węzeł z drzewa, o ile jest liściem (bo w przeciwnym przypadku i tak nie możemy go usunąć, bo chociaż nie reprezentuje słowa, potrzebny jest innym słowom. =========================================================================== =========================================================================== Date: Tue, 05 Jun 2007 17:50:55 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Będzie możliwość obniżenia progów na oceny z ekranówek o powiedzmy 1%?? ;-) -------------------------------------------------- Date: Wed, 06 Jun 2007 06:50:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Teoretycznie taka możliwość istnieje. Czy tak będzie, okaże się w przyszłym tygodniu. =========================================================================== =========================================================================== Date: Tue, 05 Jun 2007 02:23:25 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Przy probie uruchomienia programu korzystajacego z drzew avl otrzymuje nastepujacy komunikat: ld.so.1: lastlog: fatal: libdrzewa.so: open failed: No such file or directory Killed Program ma problem z okresleniem scieżki do biblioteki dynamicznej "drzewa". Kiedy wszystko bedzie prawidłowo działać albo co moge robic źle? -------------------------------------------------- Date: Wed, 06 Jun 2007 06:50:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Wszystko będzie dobrze jeśli poda Pani opcję -R przy kompilacji programu. Powoduje ona wpisanie do pliku programu ścieżki do pliku biblioteki dynamicznej. Alternatywnie można ustawić zmienną środowiskową LD_LIBRARY_PATH na katalog, gdzie znajduje się plik biblioteki dynamicznej libdrzewa.so jednak to jest rozwiązanie zastępcze, ponieważ gdyby wszystkie programy były tak kompilowane, to każdemu trzebaby inaczej ustawiać tę zmienną. Prawidłowe rozwiązanie jest przez opcję -R. =========================================================================== =========================================================================== Date: Mon, 04 Jun 2007 00:06:39 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Mam pytanie do dr Jakubiaka. Czy na ćwiczeniach z inf2 na mechanicznym programy Slownik-Trie jest obowiązkowy? -------------------------------------------------- Date: Tue, 5 Jun 2007 15:01:58 +0200 (CEST) From: Janusz Jakubiak Subject: Re: komunikat z WWW - Info-2/pytanie Program z drzewami trie nie będzie (niestety) programem obowiązkowym. =========================================================================== =========================================================================== Date: Fri, 01 Jun 2007 21:03:02 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie licencja sie skonczyla;/ -------------------------------------------------- Date: Mon, 04 Jun 2007 06:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Chyba już jest. =========================================================================== =========================================================================== Date: Wed, 30 May 2007 23:03:39 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witem! Mam pytanie odnośnie pre definiowanych funkcji w ostatnim zadaniu (slownik trie). Jaka informacje niesie z sobą zmienna info przekazywana w parametrze funkcji dodaj_string_trie. Czy jest to licznik znaku w przekazywanym stringu? -------------------------------------------------- Date: Mon, 04 Jun 2007 06:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Jeśli pisany przez Państwa moduł ma być uniwersalny, czyli nadawać się do linkowania z dowolnym programem spełniającym specyfikację (a nie tylko jednym konkretnym programem, który macie Państwo podany), to powinien być tak napisany, aby działał niezależnie od tego co to jest za zmienna, do czego służy, itp. Dlatego zmienna została zadeklarowana jako wskaźnik, aby uniezależnić się od typu przekazywanych danych. (Co prawda Pascal tego nie przewiduje, i wymaga aby również typy wskaźnikowe zgadzały się w programach, ale oszukujemy tu trochę wykorzystując fakt, że kompilator kompiluje program i moduł niezależnie od siebie i nie jest w stanie przyłapać nas na oszustwie. Zobaczymy, że np. w języku C przekazywanie różnych typów danych przez wskaźniki jest techniką legalną i zresztą jedną z głównych technik programowania.) Czyli musimy zadbać tylko o to, żeby tworząc drzewo wpisać wartość parametru info w odpowiednie pole węzła drzewa, a wyszukując węzła w drzewie zwracać wskaźnik info w parametrze VAR. A co program tam trzyma i co ma zamiar z tym robić to już naprawdę nie nasza sprawa. =========================================================================== =========================================================================== Date: Wed, 30 May 2007 00:47:11 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Pytanie odnośnie poprawionej specyfikacji zadania 8: Jak można drzewo trie przeglądać w porządku inorder?! -------------------------------------------------- Date: Mon, 04 Jun 2007 06:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Można to zrobić podobnie jak "zwykłe" drzewa wielokierunkowe (np. B-drzewa), czyli wielokrotnie przechodząc przez dany węzeł za każdym razem go odwiedzać. Faktem jest, że prawidłowe podejście w tym przypadku polegałoby na tym, żeby funkcja odwiedzająca (parametr funkcyjny PRZEGLAD) miała dodatkowy parametr wskazujący KTÓRE to są odwiedziny, ponieważ ona nie jest w stanie stwierdzić czy dany węzeł odwiedzamy tylko raz, czy któryś kolejny raz. To jest przeoczenie w sformułowaniu tego zadania, ale jest za późno aby to uzupełnić. Albo można pominąć przeglądanie w porządku inorder wychodząc z założenia (cokolwiek słusznego), że ma to mniejszy sens niż inne porządki przeglądania. =========================================================================== =========================================================================== Date: Tue, 29 May 2007 18:32:35 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy z kazdej z 4 ekranowek branych pod uwage przy wyliczaniu oceny koncowej trzeba zdobyc ponad 50%, czy liczy sie np. wynik: 6/29 11/20 13/20 15/20 czyli 45/89 > 0,5 i piątą ekranowke mozna napisac na 0 pkt a i tak ma sie zaliczenie? -------------------------------------------------- Date: Mon, 04 Jun 2007 06:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Tak, można napisać na 0 pkt. =========================================================================== =========================================================================== Date: Mon, 28 May 2007 20:21:32 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Jak sprawdzić w Pascalu czy plik istnieje? -------------------------------------------------- Date: Mon, 04 Jun 2007 06:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie W Pascalu jako takim nie ma takiej funkcji, natomiast mogą jej dostarczać konkretne kompilatory Pascala, ponieważ to musiałaby być funkcja związana z systemem operacyjnym. Kompilator na diablo chyba również nie ma takiej funkcji (przynajmniej nie znalazłem), ale istnieje w bibliotece kompilatora C, i dość łatwo byłoby ją wywołać w Pascalu. Wystarczy zadeklarować funkcję access (man -s 2 access). Np. tak: FUNCTION ACCESS(NAME : String; MODE: INTEGER) : INTEGER; EXTERNAL C; (do sprawdzania istnienia pliku parametr MODE trzeba podać jako 0). =========================================================================== =========================================================================== Date: Sun, 27 May 2007 22:35:06 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Jeżeli chcę przekazać dane ze standardowego wyjścia do pliku to pisze REWRITE(OUTPUT, nazwa); Co powinienem zrobić, jeśli chcę później wrócić do normalnego wyświetlania a nie przekazywania do pliku. Jeśli piszę CLOSE(OUTPUT), to później dostaję komunikat o odniesieniu do nieaktywnego pliku. -------------------------------------------------- Date: Mon, 28 May 2007 07:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie wiem. Tak naprawdę to trzebaby poszukać w dokumentacji kompilatora, czy taka operacja jest możliwa. Bez szukania (albo gdy oficjalnie nie jest to możliwe), to tak na szybko, można próbować otworzyć plik /dev/tty do zapisu: REWRITE(OUTPUT,'/dev/tty'); i efekt powinien być podobny do tego, jakbyśmy mieli standardowe wyjście na terminal. Ale może to się zachowywać trochę inaczej niż terminal normalnie otwarty w czasie uruchamiania programu. Trzeba wypróbować. =========================================================================== =========================================================================== Date: Sun, 27 May 2007 17:27:02 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Mam pytanie czysto formalne. Dr Muszyński wyjechał na kilkanaście dni w sprawach służbowych. A więc czy grupy mające z nim zajęcia będą miały jakieś zastępstwa ? Dziękuje za odpowiedź. -------------------------------------------------- Date: Mon, 28 May 2007 07:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Jeśli dr Muszyński niczego nie zarządził, to zapewne będzie zastępstwo. =========================================================================== =========================================================================== Date: Sun, 27 May 2007 01:44:15 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie mam pewien problem...utworzyłem liste ktorej elementem jest m.in pole rekordowe. Jak z drzewa posiadającego wskaznik do tego pola odwołać sie do niego? T_DANE = ^T_POLA; T_POLA = RECORD login : STRING; host : STRING; ilosc : INTEGER END; T_DRZEWO = ^T_LISC; T_LISC = RECORD dane : T_DANE; prawy,lewy : T_DRZEWO END; T_LISTA = ^T_RECORD; T_RECORD = RECORD dane : T_POLE; wsk_lisc : T_DRZEWO; index : INTEGER; nastepny : T_LISTA END; Chodzi o drzewo^.dane:=lista^.dane -------------------------------------------------- Date: Mon, 28 May 2007 07:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Jeśli mamy już rekord danych utworzony jako rekord (czyli statycznie) i to on jest na liście, to nie ma sposobu w Pascalu, żeby stworzyć do niego wskaźnik i wpisać na drzewo. Aby to było możliwe trzeba mieć najpierw wskaźnik do rekordu, i utworzyć rekord dynamicznie, a wtedy wskaźnik możemy dowolnie kopiować. To przy założeniu, że T_POLA to jest to samo co T_POLE. =========================================================================== =========================================================================== Date: Sat, 26 May 2007 20:51:38 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Przy probie uruchomienia programu korzystajacego z drzew avl otrzymuje nastepujacy komunikat: ld.so.1: lastlog: fatal: libdrzewa.so: open failed: No such file or directory Killed Zupelnie nie mam pojecia z czego ten blad wynika. Jak go usunac ? Caly program moze Pan znalezc tu: /home/ljuszkie/lastlog_avl -------------------------------------------------- Date: Mon, 28 May 2007 07:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Zajrzałem i wygląda na to, że program już działa. Były jakieś problemy z określeniem ścieżki do biblioteki dynamicznej "drzewa", ale już jest ok. =========================================================================== =========================================================================== Date: Sat, 26 May 2007 12:32:01 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam, mam problem z logowaniem na diablo... kiedy probuje odpalic to wypisuje tylko kiedy ostatnio sie logowalem oraz adres z jakiego sie logowalem , po czym w kolejnej lini pisze: -bash: fork: Resource temporary unaviable -bash-3.00$ Loguje sie przez putty. Wczesniej to dzialalo ale program sie wieszal... -------------------------------------------------- Date: Mon, 28 May 2007 07:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Proszę zgłosić się do techników w sali 07/C3. Godziny pracy wiszą w gablocie przed salą (i w sekcji Aktualności na stronie WWW na diablo). =========================================================================== =========================================================================== Date: Sat, 26 May 2007 09:40:33 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam! mam pytanie jak należy odpalać plik przyklad_avl.p :) tzn. skopiowałem podaną biblioteke ( /usr/local/air/sunpc/lib/libdrzewa.a ) do folderu gdzie znajduje się plik przyklad_avl.p i kompiluje podaną w przykładzie komendą: pc -L -L/usr/local/air/sunpc/lib -o przyklad_avl przyklad_avl.p -ldrzewa i ładnie się kompiluje tylko teraz jak odpalić ten przyklad_avl.p ?? bo komendą "./a.out" nie działa :/ Prosze o pomoc ;] Chciałem jeszcze zapytać dlaczego kompiluje się ten plik komendą: pc -L -L/usr/local/air/sunpc/lib -o przyklad_avl przyklad_avl.p -ldrzewa dlaczego jest "pc -L -L/..." tzn dlaczego "-L" pojawiło się 2a razy oraz co znaczą poszczególne części np:"-ldrzewa" -------------------------------------------------- Date: Mon, 28 May 2007 07:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Opcja -o przyklad_avl mówi, że program wynikowy należy zapisać na pliku przyklad_avl, więc wywołanie będzie: ./przyklad_avl Opcja -L pojedyncza ma związek z dużymi i małymi literami w programie, natomiast opcja -L/usr/local/air/sunpc/lib mówi, żeby bibliotek szukać w podanym katalogu, dzięki czemu pliku libdrzewa.a nie trzeba kopiować sobie do własnego katalogu! No i -ldrzewa mówi, że potrzebna jest biblioteka o nazwie "drzewa", a linker już sam wie, że biblioteka o takiej nazwie znajduje się w pliku libdrzewa.a lub libdrzewa.so Trochę to zawiłe, ale unixowe kompilatory tak mają i warto krok po kroku sobie to porządkować, bo będzie się to przydawać w przyszłości. =========================================================================== =========================================================================== Date: Wed, 23 May 2007 22:00:04 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie W jaki sposób można przechwycić to co program tekstowy daje na wyjściu aby interfejs graficzy w tcl/tk mogł to odczytać i dalej przetwarzać?? -------------------------------------------------- Date: Thu, 24 May 2007 12:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Mówiłem o tym na wykładzie. Przykład uruchomienia programu w skrypcie Tcl i odczytywania tego co on wyświetla na wyjściu jest w moim PDF-ie do wykładu z Tcl/Tk na stronie 13. =========================================================================== =========================================================================== Date: Mon, 21 May 2007 14:03:47 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Dzień dobry. Pytanie do dr Jakubiaka. Czy w środę 23 maja pana grupa laboratoryjna ma ekranówkę z drzew AVL. Bardzo ważne. -------------------------------------------------- Date: Mon, 21 May 2007 15:15:10 +0200 (CEST) From: Janusz Jakubiak Subject: Re: komunikat z WWW - Info-2/pytanie Tak, ekranówka z drzew AVL i B-drzew (E) będzie 23 maja, a z X Window (A) - 30 maja próbna i 13 czerwca właściwa. =========================================================================== =========================================================================== Date: Sat, 19 May 2007 18:34:34 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Tak wyglada deklaracja wczytywanych parametrow: argv(i,arg_wyw); if (arg_wyw[1]='-') then if (arg_wyw[2]='d') then argv(3,nazwapliku); a tak wyglada blad (podawany przy uruchomieniu): Argument to argv of 3 is out of range O co chodzi ? O zbyt duza ilosc argumentow ? O jaki zasieg mu chodzi? Pozdrawiam -------------------------------------------------- Date: Tue, 22 May 2007 07:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Dostęp do argumentów wywołania programu jest taki, że funkcja bezargumentowa argc zwraca liczbę argumentów wywołania (licząc nazwę programu jako jeden argument, czyli argc() da zawsze wartość >= 1). Kolejne argumenty, numerowane od 0 do (argc()-1), uzyskujemy funkcją argv. Jeśli ta funkcja mówi, że argument 3 jest poza zakresem, to znaczy, że nie ma argumentu numer 3 (czyli faktycznie w wywołaniu było mniej niż 4 argumenty, czyli mniej niż 3 rzeczywiste argumenty, nie licząc nazwy programu). No jakoś trzeba się z tym sposobem liczenia i podawania argumentów pogodzić, bo taki system obowiązuje w systemie Unix. Przykład programu z odczytywaniem argumentów wywołania w dokumentacji kompilatora na diablo: http://diablo.ict.pwr.wroc.pl/pascal/pascal/lang_ref/ref_builtin.doc.html#4539 =========================================================================== =========================================================================== Date: Thu, 17 May 2007 16:48:46 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Wiem ze aby dobrze i bezproblemow porownac dwa stringi mozna uzyc komendy stricmp tyle ze ona nie jest typowa komenta c a borlanda wiec by uzyc ja w pascalu musze zalaczyc chyba jakas biblioteke kolega mi nawet podeslal biblioteke string.h ale nie mphe ja zalczyc poleceniem include. co mam zrobic by ta funkcja dzialala mi w pascalu?? -------------------------------------------------- Date: Tue, 22 May 2007 07:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Rzeczywiście, aby użyć procedury lub funkcji, musi ona być w jakiejś bibliotece, i kompilator musi ją tam znaleźć w czasie linkowania programu. Pliki *.h nie są bibliotekami, tylko tekstowymi plikami zawierającymi różne dodatkowe deklaracje, często funkcji bibliotecznych. Kompilator Pascala ma swoje biblioteki, ale kompilator na diablo nie ma w nich żadnej funkcji porównującej stringi. Aby użyć funkcji z dodatkowej biblioteki potrzebne są dwie rzeczy: deklaracja tych funkcji (do tego służy plik tekstowy string.h, i można sobie wczytać deklaracje funkcji pascalowych z dowolnego systemu), oraz sama biblioteka binarna. Jednak biblioteka Borlanda z całą pewnością nie da się użyć na diablo. Na systemach uniksowych istnieje biblioteka funkcji na stringach kompilatora C, i w programach pascalowych można używać funkcji z tej bilioteki, tylko trzeba napisać sobie samemu deklaracje tych funkcji. Proszę przeczytać sobie opis tej biblioteki (man string), a przykłady jak deklarować funkcje z biblioteki kompilatora C można znaleźć w następujących programach przykładowych na diablo: /usr/local/air/info2/zagadnienia/argumenty/sun-przyklad2.p /usr/local/air/info2/zagadnienia/argumenty/sun-przyklad4.p Funkcja porównywania alfabetycznego stringów nazywa się strcmp. Po zadeklarowaniu tych funkcji można ich już używać, ponieważ z tego co pamiętam kompilator Pascala na diablo sam przeszukuje biblioteki kompilatora C. Gdyby jednak tak nie było, i linker krzyczał, że nie może znaleźć tych dodatkowych funkcji, to trzeba dodać opcję kompilacji '-lc'. =========================================================================== =========================================================================== Date: Wed, 16 May 2007 23:05:32 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Na studinfo w programie "słownik na liście" jest podpunkt "pełnoekranowy interfejs użytkownika" skąd można dowiedzieć sie jak obsłużyć aby program uruchamiał sie na pełnym ekranie? -------------------------------------------------- Date: Tue, 22 May 2007 07:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Opis zadania w systemie studinfo jest ustalany przez prowadzącego grupę laboratoryjną i jego proszę o to pytać. =========================================================================== =========================================================================== Date: Tue, 15 May 2007 21:55:12 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie witam, pytanie z innej beczki, czy dr Paluszyński mogłby zamieścic progi dla ocen z wykladu Informatyka II (czyli z ekranowek);] -------------------------------------------------- Date: Wed, 16 May 2007 08:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Progi dla Wydziału Elektroniki: 50-60-70-80-90 dla ocen 3-3.5-4-4.5-5. W wynikach on-line te progi są uwzględnione i wyświetla się oczekiwana ocena. Proszę pamiętać, że ocena z wykładu będzie średnią z ekranówek i laboratorum z wagami 0.4 (ekranówki) i 0.6 (laboratorium) zaokrąglona do najbliższej. Progi dla Wydziału Mechanicznego ustala wykładowca dr Jakubiak. =========================================================================== =========================================================================== Date: Mon, 14 May 2007 11:44:56 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Pytanie dotyczy Free Pascal Compiler. Plik costam.p wyglada tak: program abc(input,output); begin writeln('aaa'); end. Kompiluję fpc costam.p i dostaję costam.o Co dalej z tym zrobić? -------------------------------------------------- Date: Mon, 14 May 2007 11:47:56 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie (Poprzednie pytanie o FPC) Jesli to pomoze, komunikaty przy kompilacji: Free Pascal Compiler version 2.0.4 [2007/02/02] for x86_64 Copyright (c) 1993-2006 by Florian Klaempfl Target OS: Linux for x86-64 Compiling costam.p Assembling abc Linking costam 3 Lines compiled, 0.1 sec -------------------------------------------------- Date: Mon, 14 May 2007 21:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie znam kompilatora fpc. Utworzenie pliku costam.o jest poprawnym wynikiem pierwszej fazy kompilacji. Normalnie kompilator wywołuje następnie linker, który tworzy kompletny binarny program w pliku o domyślnej nazwie a.out. Jeśli fpc tego nie zrobił, i nie wypisał przy okazji komunikatów o błędach, to nie rozumiem. Linker można wywołać samemu, typu: ld costam.o lecz może on wymagać podania jakichś argumentów lub opcji specyficznych dla tego kompilatora, więc jeśli takie wywołanie linkera się nie uda, to nie będzie to wina linkera, tylko rozwiązania trzeba poszukiwać w prawidłowym wywołaniu kompilatora fpc. -------------------------------------------------- Date: Wed, 16 May 2007 08:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie (uzupełnienie) Aha, zapomniałem dodać, że w powyższym wyniku kompilacji jest napisane, że linker linkował program, więc może on powstał, tylko go Pan/i nie zauważył/a. =========================================================================== =========================================================================== Date: Mon, 14 May 2007 00:14:59 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Probuje uzyc funkcji system do wywolania polecenia w systemie. Przy kompilacji jednak kompilator stwierdza, ze taka procedura jest niezdefiniowana. Jak korzysta sie z tej funkcji? -------------------------------------------------- Date: Mon, 14 May 2007 05:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie No tak, nie ma takiej procedury ani w standardzie Pascala, ani żaden z naszych kompilatorów nie ma jej w swoich rozszerzeniach. Procedura jest w bibliotekach Unixa i aby jej użyć trzeba posłużyć interfejsem napisanym w naszym laboratorium. Proszę przyjrzeć się przykładowi w pliku na diablo: /usr/local/air/sunpc/examples/pproc/system.p Na panamincie powinny być analogiczne przykłady dla kompilatora gpc, ale z tego co widzę, coś jest z nimi nie w porządku. Za parę dni będzie to uporządkowane. =========================================================================== =========================================================================== Date: Sat, 12 May 2007 22:53:13 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Kazałem programowi zapisać pewien string, który w moim przekonaniu składa sie z wyrazu "cztery" i pustych miejsc uzupełniających do 80. jednak kiedy kazałem zapisać mu ten strin do pliku to napisał: cztery^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@\ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ Co oznaczają te ^@ ?? Dodam że próbowałem zapisać inne stringi o takiej samej wartości ^@ nie było ! -------------------------------------------------- Date: Sun, 13 May 2007 11:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Pytanie jest z serii takich jakie najbardziej lubię, czyli nie zawiera pytania (zatem mogę w odpowiedzi pisać co mi się podoba). ^@ to może być zapis znaku NUL, czyli to co w Pascalu otrzymamy jako CHR(0). Zupełnie dobry znak na inicjalizację wartości zmiennych, więc jeśli nic nie zapisał Pan na tych pozycjach, to śmiało mogły być tam NUL-e. Domyślam się, że Pan oczekiwał spacji (CHR(32)), ale kompilator o tym nie wiedział, ponieważ tablice znakowe mogą być równie dobrze używane w programie do przechowywania ciągów znaków binarnych, jak zwykłych czytelnych tekstów. To jest wyjaśnienie sytuacji, ale pytanie, które należy tu sobie zadać to jest: o co tu chodzi, i jaki wniosek powinienem z tego wyciągnąć. Chodzi o to, że Pascal nie określa, że zmienne (w tym tablice tekstowe) mają być automatycznie inicjalizowane. Czyli, że jeśli program sam im nie wpisze wartości to mają wartość nieokreśloną. Zatem program, jeśli chce wyświetlać sensowne napisy znakowe, to powinien je w całości podstawić, bądź wyświetlać tylko taką część napisu, jaką wcześniej podstawił. Taka obserwacja na marginesie jest taka, że ten konkretny kompilator zainicjował tablicę znakową NUL-ami. Nie można jednak liczyć na to, że zawsze będzie tak robił, oraz że inne kompilatory zachowują się podobnie. Wręcz przeciwnie, nie zachowują się, i poprawne podejście jest dokładnie takie jak wyżej. To wszystko powinno być i było w pierwszym semestrze, ale oczywiście nigdy nie jest za późno na naukę. =========================================================================== =========================================================================== Date: Sat, 05 May 2007 18:00:19 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Pracuje na Diablo i mam proste pytanie dlaczego dla SunPascala READ i READLN to jest to samo ?? Oto przykład napisałem program: program isalphatest(input,output); var s1 : string; plik : text; begin reset(plik,'k2.t'); read(plik,s1); write(s1); end. Plik k2.t miał treść Ola ma kota. Przy uruchomieniu programu wyleciał błąd że nadczytałem plik. A powinno zwrócić Ola Zmieniłem konstrukcje pliku k2.t na Ola ma kota. A kot ma Ole. A ten głupi program zwrócił mi "Ola ma kota". Czyli przypisał stringowi cała wartość wiersza !! Wiec proszę mi powiedzieć czy to ja jestem upośledzony czy SunPascal ?? -------------------------------------------------- Date: Thu, 10 May 2007 20:15:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie W pierwszym przypadku błąd wynikał zapewne z faktu, że wiersz w pliku nie był zakończony znakiem nowego wiersza, i program rzeczywiście próbował wczytać cały wiersz i padł (przynajmniej mi się tak stało jak to spróbowałem). Gdy wpisałem do pliku "Ola ma kota." ze znakiem nowego wiersza, to błędu nie było. A dlaczego próbował wczytać cały wiersz? Skoro typ String w Sun Pascalu jest równoważny 80-znakowej tablicy, to wydaje się to logiczne. Gdy z kolei wpisałem do pliku bardzo długi wiersz (> 80 znaków) to nawet w braku znaku nowego wiersza na końcu program wyświetlił pierwsze 80 znaków i błędu nie było. Więc READ <> READLN tylko gdy próbujemy wczytać dłuższy napis niż jest w pliku znaków to tak się wydaje. =========================================================================== =========================================================================== Date: Sat, 05 May 2007 13:41:32 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Mam takie pytanie, dotyczące materiałów do wykładów. W temacie Drzewa binarne na stronie 8 jest procedura przegladajaca drzewo, ktora korzysta z innej procedury Op. Czego dotyczy da procedura? (Op) Jak mozna ja zrealizowac? -------------------------------------------------- Date: Tue, 08 May 2007 19:46:44 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam, na 8-mej stronie slajdu z drzew binarnych jest procedura o nagłówku: PROCEDURE Przegladaj(Drzewo: T_Drzewo; PROCEDURE Op(e:T_Element)); Czy nagłówek jest poprawny? Argumentem procedury jest inna procedura... -------------------------------------------------- Date: Thu, 10 May 2007 15:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Hmmm, czyżby na Informatyce 1 nie było parametrów funkcyjnych i proceduralnych? To jest ważny i potrzebny mechanizm dostępny w większości języków programowania dzięki któremu możemy napisać funkcję, która wykonuję pewne operacje ogólne (przykładem jest właśnie przegląd drzewa, czyli przejście po wszystkich węzłach i wykonanie w każdym z nich jakiejś czynności), i odwołuje się w tym celu do innej funkcji, która wykonuje jakieś konkretne operacje, specyficzne dla danego zagadnienia i danych. Krótko mówiąc, te przykłady są poprawne i ważne, i kto tego nie zna i nie rozumie, to musi się nauczyć, i powinno to być w pierwszym semestrze informatyki. Na niektórych ekranówkach są pytania, w których to występuje, więc warto by było to uzupełnić. =========================================================================== =========================================================================== Date: Wed, 02 May 2007 15:17:12 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie To mam jeszcze jedno pytanie czy ten słownik musi być tip-top ? Tzn. patrząc na teksty występuje wiele wyjątków, które byśmy musieli wziąć pod uwagę. Mowie tu o wyrazach kończących zdania, skrótach, wstawionych średnikach i myślnikach...a to przecież "wierzchołek". Uwzględnienie tego wymagało by mnóstwo if :D i jakiegoś łatwego i szybkiego narzędzia do przycinania stringów np. "czynników:" (przerobić na) "czynników" (bo to jest prawidłowy wyraz). A o ile ja wiem to w Pascalu go nie ! Czy mamy pójść na łatwiznę i założyć że nie spotkamy takich "nieciekawych elementów" i zrobić same rozpoznawanie liter i liczb ? -------------------------------------------------- Date: Thu, 03 May 2007 22:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie wiem o którą wersję zadania ze słownikiem chodzi. Ale w żadnym nie powinno być problemów typu czynników:/czynników ponieważ słownik ma zawsze tylko sprawdzać czy kolejne napotkane słowa wystąpiły we wcześniejszych tekstach, a nie czy są poprawnymi słowami w języku polskim. =========================================================================== =========================================================================== Date: Tue, 01 May 2007 17:49:27 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Jak zmusić length to pokazywania prawidłowej wielkości ?? Tzn. jak daje writeln(length('kicha')); Zwraca prawidłową wartość 5 ! Ale jak daje wyraz1:string; wyraz1:='kicha'; writeln(length(wyraz1)); To niezależnie jaką dam wartość wyrazowi1 to zawsze mi zwraca 80. -------------------------------------------------- Date: Thu, 03 May 2007 22:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Bo kompilator Pascala na diablo tak właśnie interpretuje typ string, czyli jako 80-elementową tablicę znaków. Stała 'kicha' jest 5-elementową tablicą znakową, więc długość wychodzi dobra. Length pokazuje zawsze tylko długość tablicy, a nigdy tego co wewnątrz tablicy. Nie da się ukryć, standardowy Pascal nie ma dobrych mechanizmów obsługi stringów, i kompilator na diablo ich również nie dodaje. =========================================================================== =========================================================================== Date: Tue, 01 May 2007 17:06:25 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy istnieje w sunPascalu polecenie zwracające inne znaków ma dany wyraz (string)? -------------------------------------------------- Date: Thu, 03 May 2007 22:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Ile znaków ma dany wyraz to chyba nie, a string to chyba tak, proszę sprawdzić dokumentację funkcji length i zawarte tam przykłady: http://diablo.ict.pwr.wroc.pl/pascal/pascal/lang_ref/ref_builtin.doc.html#2630 =========================================================================== =========================================================================== Date: Mon, 30 Apr 2007 14:10:06 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Chcę uruchomić wisha na swoim komputerze, ale pisze mi że zmienna display nie jest ustawiona, skąd mam wiedzieć jaki mam afres własnego serwera ? Jak by wyglądała cała komenda żebym mógł uruchamiać pliki *.tk tak aby były potem wyświetlane na trybie graficznym po naciśnięciu ctrl+alt+F7 ? Polecenie setenv nie działa // (mam ubuntu). -------------------------------------------------- Date: Tue, 01 May 2007 06:50:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Spróbujmy po kolei: 1. Jeśli jestem na komputerze, na którym jest uruchomiony serwer X Window, do którego mam dostęp, to ustawienie zmiennej DISPLAY może być :0 (czyli adres lokalnego komputera jest domyślny). Jeśli to nie działa to znaczy, że nie mam dostępu do serwera X Window (albo go w ogóle nie ma). 2. setenv to jest polecenie wbudowane C-shella, którego używają niektórzy użytkownicy (ale kiedyś ustawialiśmy go wszystkim studentom, stąd to może zostało w ćwiczeniach lub niektórych materiałach). W interpreterach rodziny /bin/sh zamiast setenv używa sie zwykłego podstawienia: DISPLAY=":0" export DISPLAY 3. Jak ma wyglądać komenda uruchamiania skryptów graficznych *.tk ? Na przykład tak: wish jedenplik.tk wish drugiplik.tk itd. Tylko uwaga: aby to zadziałało poprawnie nie musimy PATRZEĆ na okno serwera X Window (czyli nie trzeba ctrl+alt+F7). Możemy być włączeni do terminala tekstowego (ctrl+alt+F1), albo może to być wywołane automatycznie, np. z crona, itp. Potrzebne jest natomiast by był URUCHOMIONY serwer X Window, i byśmy MIELI DO NIEGO DOSTĘP, a więc albo by nie wymagał on autoryzacji (xhost -), albo byśmy posiadali kod autoryzacji w pliku wskazywanym przez $XAUTHORITY (To wszystko było na ćwiczeniu z X Window, prawda?) 4. Ja też mam ubuntu. =========================================================================== =========================================================================== Date: Thu, 26 Apr 2007 19:57:31 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Mam problem przy wywoływaniu programu ./splot -i.... przez exec wyświetla mi sie taki komunikat(sam program w tk mi sie otwiera ale kiedy uruchamiam przyciskiem procedure w ktorej jest zagniezdzony exec wyswietla mi sie wlanie ten komunikat): "Błąd: couldn't execute "./splot -i kubus.pgm -o aaa.pgm -n": no such file or directory" plik splot istnieje i ma prawa do wykonywania. w skrypcie ten fragment wyglada tak: set komenda "./splot -i $plik_we -o $plik_wy -n" puts stdout [exec $komenda] Dziekuje z gory za odpowiedz. -------------------------------------------------- Date: Thu, 26 Apr 2007 22:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie exec ./splot -i $plik_we -o $plik_wy -n -------------------------------------------------- Date: Tue, 01 May 2007 06:50:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: uzupełnienie odpowiedzi na pytanie Faktem jest, że powyższa odpowiedź niewiele pomaga, gdy chcemy wygodnie zbudować polecenie do wykonania w Tcl, a potem je wykonać. Wtedy zamiast exec przydaje się eval, które właśnie zamiast wywoływać program z argumentami, oblicza dowolne wyrażenie, a więc na przykład wywołanie programu zewnętrznego: set komenda "./splot -i $plik_we -o $plik_wy -n" puts stdout [eval $komenda] =========================================================================== =========================================================================== Date: Tue, 24 Apr 2007 21:34:32 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Zakladajac sytuacje folderu z duza iloscia archiwow .tar.gz ktorych nazwy nie sa w zaden sposob regularne, czy jest mozliwe rozpakowanie tych wszystkich archiwow przy pomocy jednego polecenia/wzglednie paru:)/? Zastosowanie samej gwiazdki zamiast nazwy pliku do rozpakowania w poleceniu niestety nie skutkuje. -------------------------------------------------- Date: Thu, 26 Apr 2007 22:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Trzeba puścić pętlę, to chyba ćwiczyliśmy przy Bourne shellu: for x in *.tar.gz do gunzip -c $x | tar xf - echo Plik $x rozpakowany, pracujemy dalej ... done =========================================================================== =========================================================================== Date: Mon, 23 Apr 2007 21:50:03 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam, czy w tym semestrze również ocena z wykładu jest liczona po odrzuceniu najgorszej ekranówki? -------------------------------------------------- Date: Thu, 26 Apr 2007 22:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Tak. =========================================================================== =========================================================================== Date: Mon, 23 Apr 2007 15:22:04 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy jest możliwość aby na tej stronie znalazły się ekranówki tak jak to było w zeszłym semestrze na informatyce I ?? -------------------------------------------------- Date: Thu, 26 Apr 2007 22:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Chodzi o pytania do ekranówek? Jeśli tak to nie. =========================================================================== =========================================================================== Date: Sun, 22 Apr 2007 18:29:50 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie czy istenieje jakiś sposób aby usunąć plik który został wcześniej utworzony poleceniem rewrite?? -------------------------------------------------- Date: Thu, 26 Apr 2007 22:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Tak, ale nie ma takiej procedury w Pascalu. Trzeba odwołać się do systemu operacyjnego w stylu: system('rm nazwa_pliku'); Funkcję system trzeba w tym przypadku zadeklarować w sposób zależny od kompilatora. =========================================================================== =========================================================================== Date: Sun, 22 Apr 2007 17:12:39 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie mam problem. program czyta ładnie i zapisuje wyrazy do zmiennych dynamicznych lecz tylko wyrazy z pierwszej linii po czym pojawia się błąd:program terminated due to segmentation violation; nie bardzo wiem gdzie szukac błędu. procedura odczytująca wyrazy działa poprawnie - sprawdziłem ją w oddzielnym programie i wypisuje wszystkie wyrazy z całego textu. Prosze o pomoc. Dziękuje. -------------------------------------------------- Date: Thu, 26 Apr 2007 22:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Niestety, "segmentation violation" to jest błąd adresowania, który typowo może być wynikiem błędnego odwołania do zmiennej dynamicznej, np. odwołanie się do niezainicjowanego wskaźnika. Szukanie takich błędów nie jest proste w Pascalu, trzeba prześledzić wszystkie operacje na zmiennych dynamicznych, sprawdzając czy są poprawnie utworzone. =========================================================================== =========================================================================== Date: Sat, 21 Apr 2007 00:49:33 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie czy można czy można do zmienej typu string wpisać dane poprzez dodanie do siebie zmiennych typu char??np wyraz:string; a,b,c,d:char; wyraz:=a+b+c+d; ??? -------------------------------------------------- Date: Sun, 22 Apr 2007 11:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Rozszerzone wersje Pascala obsługują konkatenację (sklejanie) stringów, ale dla różnych typów stringów może ona różnie działać. =========================================================================== =========================================================================== Date: Fri, 20 Apr 2007 23:42:50 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie czy istnieje jakaś f-cja czy procedura która zwraca wartość jako liczbe znaków którą zawiera zmienna typu string?? -------------------------------------------------- Date: Sun, 22 Apr 2007 11:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Zarówno Sun Pascal na diablo jak i GPC Pascal na panamincie mają funkcję o nazwie length która oblicza długość stringa. Nie jestem pewien jak one działają zwłaszcza dla różnych typów stringów. Dokumentacja mówi, że wersja GPC jest zgodna ze standardem Pascala (rozszerzonym), natomiast dokumentacja sunowska mówi, że jest to funkcja niestandardowa. =========================================================================== =========================================================================== Date: Thu, 19 Apr 2007 19:20:06 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy ktoś wie jak założyć stronę internetową na diablo?? -------------------------------------------------- Date: Sun, 22 Apr 2007 11:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Ja wiem. Należy utworzyć sobie podkatalog o nazwie public_html w katalogu domowym i prawie do odczytu i przeszukiwania dla wszystkich. I to już będzie strona internetowa, tylko bez treści a jedynie udostępniająca w Internecie pliki zawarte w tym katalogu. Jeśli się w tym katalogu umieści plik o nazwie index.html zawierający dokument w formacie HTML, albo plik o nazwie index.php generujący taki dokument, to będzie ta strona dostępna w Internecie pod nazwą: http://diablo.ict.pwr.wroc.pl/~inazwisk/ albo http://diablo.ict.pwr.wroc.pl/~inazwisk/index.html No i jeśli w tym katalogu potworzymy sobie inne dokumenty, podkatalogi itp., to będą one dostepne pod swoimi nazwami. =========================================================================== =========================================================================== Date: Thu, 19 Apr 2007 01:40:34 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Czy widget scale obsluguje tylko liczby calkowite? Czy moze jest jakis sposob zeby suwak zmienial wartosci co 0.1 lub jeszcze jakies inne zadane przeze mnie? -------------------------------------------------- Date: Thu, 19 Apr 2007 01:48:03 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Przepraszam doslownie przed chila znalazlem rozwiazanie mojego wczesniej zadanego pytania o liczby rzeczywiste w widged-cie scale ( -resolution). Ale moze innym sie przyda. pozdrawiam -------------------------------------------------- Date: Sun, 22 Apr 2007 11:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie No własnie, wystarczy przeczytać dokumentację: man scale. Na przykład: scale .s -from 0.0 -to 1.0 -resolution 0.1 =========================================================================== =========================================================================== Date: Wed, 18 Apr 2007 22:19:10 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie witam: skonstruowalem taką procedure: end; { dodaj_element } procedure wczytaj_dane(pom); var linia : string; n : integer; wyraz : string; begin read(plik,linia); wyraz:=''; n:=1; while ord(linia[n])<>0 then begin wyraz:=wyraz+linia[n]; n:=n+1; end; czy takia konstrukcja jest poprawna?? tzn, czy można w taki sposób konstruować wyraz? -------------------------------------------------- Date: Wed, 18 Apr 2007 22:32:10 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Jak odczytywać z pliku wyrazy??? wiem, ze należy użyc funkcji z języka c, ale chodzi mi bardziej o odczytywanie linii za pomocą :read; przecież za pomoca tej komendy można odczytać (chyba) najwyżej kilkadziesiąt znaków np jako string. ale to powoduje trudnosci z poruszaniem się w wyszukiwaniu wyrazów. jak sobie z tym poradzić.?? -------------------------------------------------- Date: Sun, 22 Apr 2007 10:50:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Niestety, w standardowym Pascalu nie ma dobrych funkcji wspomagających rozbijanie wiersza na wyrazy, ani w ogóle przetwarzających stringi. (W nowszych standardach kilka takich funkcji się pojawiło, ale nie są one uniwersalnie obsługiwane przez kompilatory Pascala.) W sumie jedyne dobre (choć uciążliwe) wyjście to jest pisanie takich procedur jak powyżej, przy czym "ord(linia[n])<>0" nie bardzo ma sens, raczej należy użyć czegoś w rodzaju: "linia[n]<>' ' =========================================================================== =========================================================================== Date: Wed, 18 Apr 2007 18:45:13 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie witam. mam pytanie. zainstalowałem linuxa, oraz pakiety: gpc oraz pakiety kompilatora języka c; przy próbie kompilowania programów z wykorzystaniem f-cji języka c zadeklarowanych w ten sposób: unction isalpha(znak : integer):integer; external c; function strcmp(s1,s2 : string):integer; external c; wyskakuje mi komunikat: sytnax error before c; Czy mógłby mi pan pomóc??? -------------------------------------------------- Date: Wed, 18 Apr 2007 19:21:11 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie i jeszcze jeden problem. czy stało się coś może z kompilatorem pascala?? gdyż funkcje Argv i Argc już nie są interpretowane przez kompilator tzn: Undefined procedure. ?? -------------------------------------------------- Date: Sun, 22 Apr 2007 10:50:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie W kompilatorze gpc dostęp do zewnętrznych procedur i argumentów wywołania jest inny niż w kompilatorze sunowskim na diablo. Ogólnie należy przeczytać instrukcję tego języka, ponieważ zmienia się on dość szybko, i elementy niestandardowe co roku pisze się w nim inaczej. Np. proszę puscić sobie następujący program: PROGRAM gpcargs(OUTPUT); {$X+} VAR x: INTEGER; a: CString; FUNCTION isalpha(znak : INTEGER) : INTEGER; EXTERNAL NAME 'isalpha'; FUNCTION strcmp(s1,s2 : String): INTEGER; EXTERNAL NAME 'strcmp'; BEGIN WRITELN(paramcount:1, ' argumentow wywolania (paramcount):'); FOR x := 0 TO paramcount DO BEGIN a := paramstr(x); WRITELN(' paramstr(',x:1,') = "', a ,'"'); END; END. =========================================================================== =========================================================================== Date: Tue, 17 Apr 2007 21:54:02 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. W sali 103 i 104 jest zainstalowany Kubuntu (wersja Linuxa Ubuntu z KDE), a pobrać można go np. z: www.kubuntu.org lub lichota.net/~krzysiek/projects/kubuntu-pl/ -------------------------------------------------- Date: Tue, 17 Apr 2007 23:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Hmmm, tu nie ma pytania, to mogę tylko przyjąć do wiadomości. =========================================================================== =========================================================================== Date: Mon, 16 Apr 2007 21:32:19 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam Mam pytanie: Jak w Tcl/Tk sprawdzic kod wyjscia ostatniego procesu ktory zostal wykonany, chodzi o taką sytuacje gdy obrazek z displaya zostanie zamkniety nie poprzez okno w tiklu, a poprostu zwyczajnie w prawym gornym rogu okienka, wtedy ten proces znika, i proba zamkniecia go poprzez ponowne nacisniecie tego samego przycisku sppowoduje blad, dlatego tzreba sprawdzac pid, ja robie to tak... ale na pewno jest zle :) exec ps -p "$pid_displaya" # i tu jest blad bo po prostu wyswietla $?----------\/ set czy_display_aktywny [exec "echo \$?"] if {$czy_display_aktywny==0} { exec kill -9 $pid_dis_zro } PS: Okazuje sie ze pid mozna bardzo latwo otrzymac, gdyz wlasnie polecenie: exec zwraca pid procesu -------------------------------------------------- Date: Tue, 17 Apr 2007 23:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie exec zwraca pid procesu uruchomionego w tle przez "&" ale jeśli proces nie został uruchomiony w tle, to powinno zwrócić jakąś informację o błędzie. Nie jestem pewien jak to wygląda, proszę sprawdzić. Jednak jeśli proces został uruchomiony przez "&" to obawiam się, że nie ma polecenia Tcl, które odnajduje jego status. W Unixie do tego służą funkcje z serii wait, i polecenie wait. Ale nie wiem jak to zrobić z Tcl/Tk, proszę poeksperymentować. =========================================================================== =========================================================================== Date: Sun, 15 Apr 2007 17:27:27 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. W Panskim skrypcie "text.tk" sa ustawione suwaczki scroll ktore dzialaja tak jak nalezy. Natomiast ja musze je wstawic do pola "label" bo text nie wyswietla obrazkow. Wg manuali Tk, label moze miec opcje "-xscrollcommand" ale przy probie uruchomienia wychodzi blad: "Error in startup script: unknown option "-xscrollcommand" while executing" Dlaczego tak jest? Jak mozna inaczej zrobic wyswietlanie obrazkow z suwaczkami? -------------------------------------------------- Date: Tue, 17 Apr 2007 23:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie mogę doszukać się opcji "-xscrollcommand" w dokumentacji widżetu label. Wydaje się to logiczne - label to jest eytkietka czegoś, nieprzystosowana do przechowywania długich zawijających się tekstów. Do tego właśnie służy text. Nie jestem pewien czy w Tk można w prosty sposób wyświetlić obraz rastrowy w okienku ze scrollowaniem. =========================================================================== =========================================================================== Date: Sun, 15 Apr 2007 13:19:05 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam, pytanie mam może niezbyt skomlpikowane, tymniemniej stanowi ono dla mnie kłopot. Zainstalowałem Linuksa ( a konkretnie Ubuntu 6.10 )aby móc bez problemów pisać interfejs graficzny w Tcl/Tk. Występuje jednak pewien problem, ponieważ kiedy w terminal wpisuje polecenie ssh diablo.ict.pwr.wroc.pl to łączy sie pomyślnie z serwerem diablo, żąda nazwy użytkownika a potem hasła i w tu jest pies pogrzebany, ponieważ nawet gdy hasło jest poprawnie wpisywane to go nie przyjmuje i wyswietla komunikat acess denied (publickey, keyboard-interactive). Problem nie wynika z tego ze hasło jest źle wpisywane i konto mogło być czasowo zablokowane, ponieważ z poziomu Puttyego loguje sie normalnie. -------------------------------------------------- Date: Tue, 17 Apr 2007 23:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie wiem. Jeśli to rzeczywiście tak wygląda, że z tego komputera połączenie putty idzie, a zaraz potem ssh z Linuksa nie idzie, to jest to zagadka. Proszę puścić "ssh -v -v -v diablo.ict.pwr.wroc.pl" i zarejestrowac otrzymane komunikaty, a następnie zrobić to samo do panaminta, i przysłać mi na maila otrzymane wyniki, to się zastanowię. =========================================================================== =========================================================================== Date: Sun, 15 Apr 2007 13:08:31 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam Nie rozumiem punktu 5 z zadania Tcl i Tk. Czy moge prosic o podanie jakiegos przykladu polecenia systemu operacyjnego, ktore moze zostac podane zamiast nazwy pliku. -------------------------------------------------- Date: Tue, 17 Apr 2007 23:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Gdybyśmy mieli obrazek np. w formacie JPEG, a program oczekuje na standardowym wejściu obrazka w formacie PGM(ASCII), to moglibyśmy przetworzyć go "w locie" do właściwego formatu, bez tworzenia dodatkowych plików, takim poleceniem: convert obrazek.jpeg -compress none pgm:- | splot -i - ... =========================================================================== =========================================================================== Date: Sat, 14 Apr 2007 20:56:37 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Gdzie można nabyć takiego linuksa i w takiej formie jaki jest w pracowniach komputerowych PWR? -------------------------------------------------- Date: Sun, 15 Apr 2007 11:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie jestem pewien jaka instalacja Linuksa jest w laboratoriach 103/104/127. Serwer linuksowy panamint, na którym macie Państwo konta to jest Debian, i całą instalację można ściągnąć z Internetu (tak to zostało zrobione u nas). Jeśli natomiast chodzi o serwer diablo to nie jest to w ogóle Linux, tylko Solaris, i ten system my też sciągneliśmy z Internetu, z tym że to jest wersja Solarisa na komputery typu SPARC, jako że diablo nie jest PC-tem. =========================================================================== =========================================================================== Date: Sat, 14 Apr 2007 19:52:25 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Dziekuje za szybką odpowiedz na poprzednie pytanie :), ale napotkalem kolejna trudnosc, a mianowicie, jak odczytac PID aktualnie wywolywanego procesu display? -------------------------------------------------- Date: Sun, 15 Apr 2007 11:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie To chyba właśnie nie jest takie proste. Nie to, żeby było trudne, ale nie ma prostej konstrukcji Tcl, która by to wprost dawała, przynajmniej nie znalazłem. Najprościej jak mi się udało to zrobić, to znaleźć poleceniami unixowymi (ps i awk) proces display na liście podprocesów naszego procesu, i odczytać jego pid: set disp {$NF=="display"{print $1}} set pid [exec ps | awk $disp] Z tym będą problemy jeśli uruchomimy więcej niż jeden proces display. Wtedy uzyskamy dwa numery pid (w dwóch wierszach). Pierwszy pid można odczytać zaraz po uruchomieniu pierwszego procesu display, ale jeśli drugi też musimy odczytać to trzebaby to jakoś zeskanować z tego stringa (patrz np. polecenie Tcl'a scan). =========================================================================== =========================================================================== Date: Sat, 14 Apr 2007 18:55:53 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam Mam pytanie odnosnie Tcl Czy mozna w jakis sposob za pomoc konstrukcji IF sprawdzic czy plik o danej nazwie istnieje juz na dysku w biezacym katalogu? -------------------------------------------------- Date: Sat, 14 Apr 2007 19:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie file exists dana-nazwa =========================================================================== =========================================================================== Date: Sat, 14 Apr 2007 11:44:05 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy mógłby Pan zaproponoać jakieś źródło interpretera tk dla Windows... wiem, że mozna samemu znaleźć w wyszukiwarce, ale znalezione rzeczy to bardzo różne programy... obawiam się o róznice w języku pisania kodów do tk. Myślę, że jeśli Pan zna jakieś źródło jakiegoś programu-interpretera to bedzie to na pewno dobry program:) dziekuje za pomoc! -------------------------------------------------- Date: Sat, 14 Apr 2007 13:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Niestety, nie mogę bo nie znam żadnego i nie używałem. Gdybym miał sam sobie ściągnąć i odpalić to spróbowałbym ze strony pakietu Tcl/Tk: http://www.tcl.tk/ =========================================================================== =========================================================================== Date: Sat, 14 Apr 2007 10:29:37 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie witam. czy jest jakis wariant polecenia rm ktory usuwa podany przez uzytkownika plik w katalogu aktualnym i wszystkich jego podkatalogach? -------------------------------------------------- Date: Sat, 14 Apr 2007 13:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie rm -r =========================================================================== =========================================================================== Date: Fri, 13 Apr 2007 20:31:49 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam, W specyfikacji programu "Interfejs w Tcl/Tk..." dla mechanicznego jest polecenie by obrazy (wejsciowy i wynikowy) wyswietlac przez polecenie display, natomiast ja chcialem by obrazy byly wyswietlane w okienku wish'a. Aby bylo to mozliwe skorzystalem z takiej konstrukcji: "image create photo -file obraz.PGM" Problem w tym ze wyskakuje mi komunikat iz interpreter nie mogl zrozumiec zawartosci pliku PGM. Natomiast jesli dam "obraz.GIF" to wszystko jest ok i ladnie pojawia sie obrazek GIF w okienku wish'a. Z tego co wiem to TK powinien bez problemu obslugiwac PPM,PGM i GIF. W czym moze byc problem i czy mozna inaczej to zrobic? -------------------------------------------------- Date: Sat, 14 Apr 2007 09:14:19 +0200 (CEST) From: Janusz Jakubiak Subject: Re: komunikat z WWW - Info-2/pytanie Problem polega na tym, że co prawda standardowo "image" obsługuje obrazki PGM, ale tylko w kodowaniu binarnym (czyli "P5" a nie "P2"). Zatem trzeba bądź użyć programu "convert" do przekształcenia na GIF lub PGM/binary (jest to rozwiązanie prostsze), badź zmodyfikować moduł tak, by czytał i zapisywał zarówno obrazki ASCII jak i binarne (bardziej skomplikowane). Jeśli wybierze się pierwsze rozwiązanie, to by nie tworzyć niepotrzebnie pliku tymczasowego, można zażyczyć sobie, by "convert" wysyłał obrazek na standardowe wyjście poprzez polecenie: convert tst.pgm pgm:- wczytać dane ze strumienia (por. procedura naekran, wykład s.13) i utworzyć obrazek "w locie" przez opcję "-data" dla "image". Oczywiście rozwiązanie z tworzonym plikiem tymczasowym też jest poprawne. =========================================================================== =========================================================================== Date: Sun, 08 Apr 2007 22:26:39 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czemu czasem na diablo nie można skompilować pliku ?? Myślałem, że to jakaś kolejka jak siedzi dużo ludzi, ale teraz (8.04.2007r 22: 25) zalogowane są 4 osoby... -------------------------------------------------- Date: Mon, 09 Apr 2007 12:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Niestety, chyba skończyła się licencja na kompilator Pascala. Jeśli tak, to problem będzie skorygowany najwcześniej we wtorek rano. =========================================================================== =========================================================================== Date: Sun, 08 Apr 2007 19:27:16 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie czy można w pole entry wpisać odgórnie jakiś tekst?? tzn tzn, zrobić tak, aby w momencie umieśzczenia tego pola w oknie była w nim jakaś wartość np. 0.?? -------------------------------------------------- Date: Sun, 08 Apr 2007 19:50:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie entry .e .e insert 1 "to jest text poczatkowy widzetu entry ..." =========================================================================== =========================================================================== Date: Sun, 08 Apr 2007 16:08:35 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy przez windowsa za pomoca programów putty albo coś w tym stylu mam możliwość napsiani atego programu w Tcl/Tk chodzi mi oto żebym mógł obejrzeć wyniki swojej pracy w postaci wytświetlonego okienka. Czy konieczny jest Linux do tego ? -------------------------------------------------- Date: Sun, 08 Apr 2007 16:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Linux nie jest konieczny (ani zresztą putty ani serwer X), wystarczy interpreter Tk na dowolnym systemie. Jednak system typu Windows tak bardzo różni się od Unixów, że program Tk napisany i uruchomiony pod Windows trzeba potem dokładnie sprawdzić na Unixach. Chodzi tu głównie o uruchamianie i kasowanie dodatkowych programów typu display. I wtedy może się przydać Linux, albo putty + serwer X na Windowsie, ponieważ za ich pomocą można uruchomić skrypt Tk pod interpreterem Tk na diablo lub panamincie w celu ich ostatecznego przetestowania, bez przychodzenia na PWr. No i trzeba mieć jeszcze w miarę szybkie łącze internetowe, albo przy Neostradzie 128 dużo wolnego czasu i cierpliwości. =========================================================================== =========================================================================== Date: Fri, 06 Apr 2007 17:11:51 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam Czy jest mozliwe utworzeniu w Tcl/Tk pola typu CheckBox ?? -------------------------------------------------- Date: Sun, 08 Apr 2007 01:10:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie No chyba tak, za pomocą widżetu button. Proszę puścić sobie taki program demonstracyjny Tk o nazwie widget, on się instaluje w podkatalogu bibliotek, na diablo jest to: /opt/csw/lib/tk8.4/demos/widget a na panamincie: /usr/lib/tk8.4/demos/widget Ten program pokazuje możliwości różnych widżetów, i można też podpatrzyć sobie jak są one napisane. =========================================================================== =========================================================================== Date: Thu, 05 Apr 2007 14:42:01 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy jest jakieś przeciwieństwo do działania f-cji pack ?? chodzi o usówanie elementu z okna podczas działania skryptu. -------------------------------------------------- Date: Sun, 08 Apr 2007 01:10:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Hmmm, być może nie ma, a jeśli jest to nie mogę sobie przypomnieć jak. =========================================================================== =========================================================================== Date: Thu, 05 Apr 2007 14:33:54 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie witam. nie do końca rozumiem czwarty punkt: # przyciski do wywoływania programu display na obrazie źródłowym i (oddzielnie) wynikowym, tymi samymi przyciskami można będzie również kasować wywołany program (napisany skrypt nie będzie korzystał z opcji -d programu). Miałem zamiar użyć dodatkowego radiobuttonu do wyświetlania obrazu wejściowego i wynikowego, ale to chyba by nie było to. Czy mógłby Pan opisać to bardziej szczegółowo ??? -------------------------------------------------- Date: Sun, 08 Apr 2007 01:10:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Chodzi o opcję wyświetlania obrazków źródłowego i wynikowego. Należy utworzyć przyciski do włączenia ich wyświetlania w zewnętrznym okienku programem display (albo widżetem image w oknie Tk jeśli ktoś woli). Mógłby do tego być użyty radiobutton, tylko jaki sens miałoby przełączanie jego przycisków? To co było napisane w zadaniu, to że wyświetlanie obrazów warto by było zarówno włączać jak i wyłączać, przy czym aby przyciskiem Tk "wyłączyć" program zewnętrzny to należałoby przy jego tworzeniu zapamiętać identyfikator procesu pid, aby potem skasować proces poleceniem kill. =========================================================================== =========================================================================== Date: Wed, 04 Apr 2007 21:37:31 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam, Na domowym linuxie by wejsc na diablo wpisuje: ssh login@diablo.ict.pwr.wroc.pl Natomiast gdy odpale skrypt: echo `ssh login@diablo.ict.pwr.wroc.pl` to terminal zawiesza sie po wpisaniu hasla. Dlaczego tak sie dzieje? Czy trzeba tu jakiegos public-key? -------------------------------------------------- Date: Sat, 07 Apr 2007 13:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Zapewne program ssh usiłuje zapytać o hasło na terminalu, i interpreter poleceń zatrzymuje skrypt w tym momencie. Można wpisać klucz autoryzacji do pliku authorized_keys na zdalnym komputerze, co spowoduje wejście na zdalny system bez hasła, ale chyba nie o to tu chodzi. Po co w ogóle ma być ten skrypt? Jeśli po to, by wchodzić na diablo krótkim poleceniem, zamiast pisać długiego, to zastosowanie w tym celu skryptu nie jest właściwym rozwiązaniem. Właśnie dlatego że skrypt wykonywany jest w oddzielnym interpreterze poleceń, którego środowisko jest oddzielne, i pewne operacje na terminalu wyglądają inaczej. Lepiej zdefiniować alias, który nie wymaga tworzenia pliku, ani nie tworzy nowego interpretera w chwili uruchamiania, więc startuje szybciej. Po prostu, alias jest skrótem polecenia. W bashu aliasy definiuje się chyba jakoś tak: alias diabel="ssh mojlogin@diablo.ict.pwr.wroc.pl" Tę definicję trzeba wpisać do pliku .bashrc w katalogu domowym. =========================================================================== =========================================================================== Date: Wed, 04 Apr 2007 17:14:33 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy istnieje widget umozliwiajacy wywolanie okienka z komunikatem o bledzie i przyciskiem OK, po ktorego kliknieciu okienko by sie zamykalo ? -------------------------------------------------- Date: Sat, 07 Apr 2007 13:20:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Widżety Tk normalnie tworzone są wewnątrz okienka Tk. Nie kojarzę, aby któryś umożliwiał utworzenie oddzielnego okienka. Natomiast można wyświetlić komunikat w widżecie button, który da sie zgasić po kliknieciu na niego. Przykład pokazywałem na wykładzie i jest w PDF'ie. =========================================================================== =========================================================================== Date: Tue, 03 Apr 2007 11:46:57 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam Mam pytanie odnośnie ekranówek. Czy jest taka możliwość żeby wprowadzić dla nich taka promocje jaką mamy na haszówkach? :) Pozdrawiam -------------------------------------------------- Date: Tue, 03 Apr 2007 11:50:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie ma. Promocja na logice bierze się z braku ćwiczeń. Ponieważ studenci muszą się uczyć sami, bez możliwości rozwiązywania zadań, próbowania, zadawania pytań, to haszówki nie są traktowane jako rzeczywisty sprawdzian opanowania materiału, tylko jako "zachęta" to uczęszczania na wykład. Na informatyce jest dużo ćwiczeń (które są z punktu widzenia Politechniki bardzo kosztowną formą zajęć) i to jest po to, aby ten materiał rzeczywiście porządnie opanować. Nie ma obowiązkowej obecności na wykładzie, ale trzeba się wykazać naprawdę solidną wiedzą. Coś za coś. =========================================================================== =========================================================================== Date: Mon, 02 Apr 2007 11:43:34 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Jeszcze jedno pytanie dotyczące tcl/tk. czy mozna skonstruowac instrukcję warunkową np: jeżeli kliknie się na przycisk to wykona się jedna instrukcja a jesli nie to wykona się inna. -------------------------------------------------- Date: Tue, 03 Apr 2007 11:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Specyfikacji "jak kliknie się na przycisk to wykona się jedna instrukcja" nie można traktować jako INSTRUKCJI WARUNKOWEJ, ponieważ programy okienkowe zwykle nie maja konstrukcji programu sekwencyjnego, tylko tzw. pętli zdarzeniowej. Czyli oczekują na jakieś zdarzenie z systemu okienkowego, i gdy ono się zdarzy to wtedy wykonują pewną operację. Taki element zdarzeniowy można zaprogramować za pomocą widżetu button. Pokazywałem taki przykład na wykładzie i jest w materiałach do wykładu. Natomiast "jeśli się nie kliknie na przycisk" to nie jest zdarzenie, i czegoś takiego nie bardzo można zaprogramować w programie w Tk. Być może któreś z widżetów mają parametr typu "timeout" i oczekują na zdarzenie przez jakiś czas, a potem wykonują inną alternatywną operację. Ale to musiałoby być wbudowane w widżet, i nie kojarzę sobie takiego widżetu. =========================================================================== =========================================================================== Date: Mon, 02 Apr 2007 11:36:36 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie witam . mam pytanie dotyczące tcl/tk. jak wykonać radiobutton, który po ponownym kliknięciu na niego się odznacza?? -------------------------------------------------- Date: Tue, 03 Apr 2007 11:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie wiem czy jest taka możliwość. Należałoby przeczytać dokładnie opis widżetu (man radiobutton), a jeśli stamtąd nie da się jednoznacznie wywnioskować czy to jest możliwe i jak to się robi, to eksperymentować. =========================================================================== =========================================================================== Date: Sun, 01 Apr 2007 22:43:45 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam Mam maly problem ze skryptami - dlaczego przy wyrazeniu : who ; grep $(who am i) && polecenie wywala mi blad przy nawiasach? Pozdrawiam -------------------------------------------------- Date: Tue, 03 Apr 2007 11:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Dlatego że takiej konstrukcji w Bourne shellu nie ma. Znak dolara pozwala na obliczanie wartości zmiennych, plus pewne operacje na tej wartości. Ale takie wyrażenie w nawiasach jest niedopuszczalne. Jest ono natomiast poprawne w bashu, który jest jednym z interpreterów poleceń dostępnym jako wolne oprogramowanie i popularnym w środowiskach "linuxowych". My również instalujemy studentom basha jako domyślny interpreter poleceń, a więc jak ktoś takie wyrażenie napisze "z palca" to mu zadziała. Jednak zalecamy pisanie skryptów zgodnie z Bourne shellem. =========================================================================== =========================================================================== Date: Sat, 31 Mar 2007 17:32:02 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie mam pliki: modul.p, modul.h i driver.p jak je ze soba poprawnie skompilować ?? -------------------------------------------------- Date: Sun, 01 Apr 2007 13:30:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Jeśli są poprawnie napisane, czyli plik modul.h jest wczytywany deklaracjami #include, to: pc -L -o prog modul.p driver.p lub pc -L -c modul.p pc -L -c driver.p pc -o prog modul.o driver.o =========================================================================== =========================================================================== Date: Wed, 28 Mar 2007 21:13:49 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie skasowałem extern (chociaż potrzebuje go by ta procedura była używana w drajwerze do tego modułu) a teraz kompilator czepia się bagina w następnej funkcji ... czemu ?? oto wyskakujące błędy po skasowaniu extern : 38 begin e 18460-------^--- Replaced keyword begin with a keyword define E 14280 line 36 - Cannot DEFINE zapis, variable was not previously declared as EXTERN 40 if not eof(uchwyt) then {wczytanie pierwszej lini pliku} E 14300----------^--- Expected keyword begin after declarations, before statements E 18640----------^--- Unrecoverable syntax error - QUIT -------------------------------------------------- Date: Thu, 29 Mar 2007 07:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Niestety, nie da się debugować programu do którego widzę tylko komunikaty kompilatora. Również nie ma sensu przysyłać tu całych programów, bo poza autorem programu nikomu nie przyda się czytanie takiej wymiany maili. Zapraszam na konsultacje. Albo proszę mi przysłać cały program e-mailem, ale imiennie, to odpowiem Panu indywidualnie. =========================================================================== =========================================================================== Date: Wed, 28 Mar 2007 13:50:32 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Mam pytanie dotyczace Tcl/Tk. Jak skonstruowac instrukcje warunkowa, ktora wykona sie, jesli wartosc zmiennej x jest wieksza od 0 i mniejsza od 100. Innymi slowy ma to byc odpowiednik pascalowej instrukcji: if (x >= 0) and (x<=100) then instrukcja1 else instrukcja2; -------------------------------------------------- Date: Thu, 29 Mar 2007 07:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie if {($x > 50) && ($x < 100)} {puts "jest"} {puts "nie jest"} =========================================================================== =========================================================================== Date: Mon, 26 Mar 2007 18:45:44 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy istnieje możliwość jakiś konsultacji przy stanowisku komputerowym ? Bo jednak spotkanie raz w tygodniu nie rozwiązuje wszystkich problemów a tzw. "Pytania do prowadzącego" sprawdzają się tylko w przypadku konkretnych odpowiedzi a nie w rozwiązywaniu rozległych problemów. Jeżeli ktoś sie poczuł urażony tym wywodem to z góry przepraszam. -------------------------------------------------- Date: Tue, 27 Mar 2007 21:00:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Jak najbardziej, ja cały czas odsyłam od tych pytań do prawdziwych konsultacji, bo tutaj dużo pisaniny, a nie wszystko da się wyjaśnić. Więc "ktoś" się bynajmniej nie czuje urażony i zapraszam na konsultacje do każdego z wykładowców (dr Jakubiaka i do mnie, moje godziny konsultacji na mojej stronie WWW, środa godz.11-13). Konsultacje mają również prowadzący grupy laboratoryjne i też warto korzystać. UWAGA: Instytut I6 podaje godziny konsultacji pracowników (www.ict.pwr.wroc.pl) jednak są to nieaktualne godziny z zeszłego semestru. =========================================================================== =========================================================================== Date: Sun, 25 Mar 2007 17:42:30 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Dzień dobry.Mam problem z kompilacją programu trzeciego dla wydziału mechanicznego a mianowicie gdy kompiluje go pc -L nazwa to wyskakuje mi komunikat: Undefined first referenced symbol in file negatyw opcje_pgm.o rozmywanie opcje_pgm.o korekcja opcje_pgm.o czytaj opcje_pgm.o zapisz opcje_pgm.o ld: fatal: Symbol referencing errors. No output written to a.out Ale gdy komiluje go pleceniem pc -L -c nazwa to program sie komiluje z tym tylko że przy uruchamianiu go z odpowiednimi parametrami wywołania wyskakuje komunikat:-bash: ./a.out: No such file or directory Czym jest to spowodowane?Z góry dziękuje za odpowiedz. -------------------------------------------------- Date: Sun, 25 Mar 2007 22:23:40 +0200 (CEST) From: Janusz Jakubiak Subject: odpowiedź na pytanie Linker stwierdził, że kompilowany program życzy sobie korzystać z funkcji, które w aktualnie dołączanych modułach nie są dostępne (nie istnieją). A swoją drogą, fragment "No output written to a.out" oznacza, że plik wyjściowy nie został utworzony. Proszę sprawdzić raz jeszcze jak kompiluje się program złożony z modułów. =========================================================================== =========================================================================== Date: Sun, 25 Mar 2007 13:55:13 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie oto początek mojego programu nr2 "moduł obrazów" i pierwsza nie potrzebna procedura: module modul_obslugi_obrazow; #include CONST MAXX = 1000; {maksymalna szerokosc obrazu} MAXY = 1000; {maksymalna wysokosc obrazu} TYPE Tobraz = record wymX,wymY : INTEGER; {wymiary x i y} max_szarosc : INTEGER; {max odcieniw szarosci} piksele : ARRAY [1..MAXX,1..MAXY] of INTEGER;{rozmiarobrazu} end; {----------------------------------------------------------------------------} PROCEDURE clrscr; extern; {CZYSZCZENIE EKRANU - taki bajer :)} var i : integer; begin {#### W tym miejscu są błedy ###} for i := 1 to 60 do writeln(' '); end; gdy kompiluje cały program błędy sa tylko w jednym miejscu... a gdy skasuje tą procedurę pojawia się całkiem sporo innych błędów w innych częściach programu... 17 begin E 26020-------^--- Malformed declaration E 18640-------^--- Unrecoverable syntax error - QUIT to są te błędy w procedurze "clrscr" i nie bardzo wiem jak je usunąć :/ proszę o jakąś podpowiedz :) -------------------------------------------------- Date: Sun, 25 Mar 2007 21:10:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Deklaracja `extern' oznacza, że taka procedura istnieje, ale jej kod jest gdzie indziej, i będzie dołączony dopiero przy linkowaniu programu. W takiej sytuacji nie mógłby wystąpić blok i `begin' jest błędem. Tak jak to jest napisane, to trzeba usunąć deklarację `extern'. =========================================================================== =========================================================================== Date: Sun, 25 Mar 2007 12:42:03 +0200 (CEST) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Przy próbie uruchomienia serwera X-Window jest wyświetlany następujący komunikat: /dev/fb: No such file or directory /dev/fb: No such file or directory Graphics Adapter device /dev/fb is of unknown type Fatal server error: InitOutput: Error loading module for /dev/fb giving up. xinit: Network is unreachable (errno 128): unable to connect to X server xinit: No such process (errno 3): Server error. Co to znaczy? -------------------------------------------------- Date: Sun, 25 Mar 2007 21:10:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie jestem pewien. Jeśli to Linux, to czy serwer przypadkiem nie był już automatycznie uruchomiony (tak się normalnie instaluje Linux)? Jeśli był, to drugi serwer trzeba uruchamiać jako drugi -- proszę sprawdzić w instrukcji. Jeśli nie był to nie wiem, trzeba to pokazać komuś kto się zna na Linuxach -- na przykład chłopaki w pracowni 07/C3. =========================================================================== =========================================================================== Date: Sun, 25 Mar 2007 01:25:04 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie W jaki sposób za pomocą programu putyy postawic serwer Xwindow na diablo? -------------------------------------------------- Date: Sun, 25 Mar 2007 10:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Serwer X Window i program putty to dwa oddzielne niezależne programy i każdy trzeba oddzielnie uruchomić. Prosty darmowy serwer X Window można ściągnąć z diablo: http://diablo.ict.pwr.wroc.pl/downloads/xdemo32_old.zip Trzeba go rozpakować, zainstalować w systemie i odpalić. Do tego aby on pracował i przyjmował połączenia nie jest potrzebny putty. Ale putty przydaje się do dwóch rzeczy: po pierwsze do odpalania klientów ze zdalnych systemów, i po drugie do tunelowania połączeń do naszego serwera, gdy nasz komputer nie ma normalnego połączenia internetowego, tylko np. adres w sieci osiedlowej. To tunelowanie działa w ten sposób, że po połączeniu się ze zdalnym Unixem instaluje na nim wirtualny serwer X Windows (w rzeczywistości tylko port sieciowy przyjmujący połączenia do naszego lokalnego systemu), i ustawia do niego adres w zmiennej środowiskowej DISPLAY. Włączamy tunelowanie X Window klikając takie pole w jednej z zakładek konfiguracyjnych putty (przed nawiązaniem połączenia), i wtedy wygląda jakbyśmy "postawili serwer X Window". Ale jest to tylko serwer wirtualny, czyli połączenie do właściwego serwera, i ten serwer trzeba na lokalnym komputerze uruchomić. Wszystko to było na wykładzie o X Window. =========================================================================== =========================================================================== Date: Sat, 24 Mar 2007 19:10:37 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Mam pytanie odnośnie Tcl'a i dodatku Tk. Otóż chodzi mi o możliwość pracy w domu - czy istnieje sposób na pisanie skryptów i tworzenie interfejsów graficznych przez putty?? Czytałem, że język Tcl i Tk jest taki sam na wszystkich platformach, więc czy istnieje możliwość zainstalowania jakiegoś programu na Windows'ie i pracy na nim, aby później można było skopiować plik(i) z kodem źródłowy na konto na diablo?? - jeżeli tak to jaki(e) program(y) poleciłby Pan ? Z góry dziękuję za odpowiedź. -------------------------------------------------- Date: Sun, 25 Mar 2007 10:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Tak, trzeba zainstalować sobie interpreter Tk (który nazywa się wish), i on będzie wykonywał skrypty na lokalnym systemie. Nigdy go nie próbowałem na Windowsie, więc nie potrafię dać żadnych dodatkowych wskazówek, ale podejrzewam, że to jest proste, bo pakiet Tcl/Tk jest bardzo popularny, i są skrypty wieloplatformowe. Jednak, proszę zachować ostrożność przy przenoszeniu gotowych skryptów na systemy unixowe. Systemy Windows i Unix różnią się trochę(!!), i niektóre konstrukcje mogą działać inaczej. Dlatego przy przenoszeniu nawet takich "przenośnych" rzeczy trzeba przeniesiony skrypt dokładnie sprawdzić, czy wszystko działa dokładnie jak trzeba. =========================================================================== =========================================================================== Date: Sat, 24 Mar 2007 18:21:07 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Mam pytanko.Jak działa procedura system i jakiego typu muszą być jej argumenty? -------------------------------------------------- Date: Sun, 25 Mar 2007 10:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Jak dokładnie działa procedura system to nie będę tu opisywał, bo to wymagałoby długiego wstępu. Takie krótkie wprowadzenie można znaleźć w pierwszym PDF-ie w tabelce materiałów do wykładów (PDF do wykładu "Procesy ..." którego faktycznie nie było, i zresztą w ogóle nie będzie). Trochę więcej w moim skrypcie. To wszystko dotyczy pascalowego interfejsu do właściwej unixowej funkcji system. Natomiast jak działa ta funkcja można przeczytać pisząc man system. =========================================================================== =========================================================================== Date: Sat, 24 Mar 2007 17:16:38 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Jak działają funkcje argv i argc?Z góry dziękuje z odpowiedz. -------------------------------------------------- Date: Sun, 25 Mar 2007 10:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie argc daje wartość, która jest liczbą elementów wektora argumentów wywołania programu, przy czym ten wektor to jest całe polecenie, a więc jego pierwszym elementem jest nazwa (lub ścieżka katalogów) programu. Oznacza to, że wartość argc będzie zawsze co najmniej 1, i jeśli jest 1 to znaczy, że w wierszu polecenia nie było żadnych argumentów, tylko sama nazwa programu. argv daje nam dostęp do tych argumentów, podstawiając i-ty kolejny argument pod podaną zmienną. Numeracja argumentów wywołania zaczyna się od 0, a więc jako zerowy argument otrzymamy nazwę programu, jako pierwszy argument otrzymamy pierwszy właściwy argument, a ostatni argument ma numer (argc-1). =========================================================================== =========================================================================== Date: Sat, 24 Mar 2007 15:22:56 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie mam drobne pytanie jak czytac za pomoca read by moc później czytac zmienna za pomoca $1 $2 itd oraz shift (potrzebne jest mi to do skryptu 9) -------------------------------------------------- Date: Sun, 25 Mar 2007 10:40:00 +0200 (CEST) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Polecenie wbudowane read czyta stringi z wejścia i podstawia je pod zmienne interpretera poleceń. A więc możemy sobie wczytać dane w ten sposób, że są dostępne jako wartości np. $x $y $z ... Następnie jest polecenie wbudowane set, które może (między innymi) ustawić wartości wektora argumentów wywołania, dostępne później jako $1 $2 $3 ... Czyli: set $x $y $z ... =========================================================================== =========================================================================== Date: Fri, 23 Mar 2007 17:02:08 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Loguje sie na Diablo poprzez Putty z opcją Tunnels--> Enable X11 forwarding (żeby display uruchomić). Wszystko ładnie, pięknie...mogę kompilować itd. ale nie mogę otworzyć emacs-em programu !!! Oto komunikat ! [pkaczor@diablo ~]$ emacs splot.p Connection lost to X server `localhost:20.0' Jakich magicznych zaklęć użyć ? -------------------------------------------------- Date: Sat, 24 Mar 2007 12:50:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Otrzymany komunikat sugeruje, że klient nie może się połączyć z serwerem X Window. Albo serwer nie został prawidłowo uruchomiony, albo coś blokuje komunikację. Jednocześnie widać, że putty utworzył tunel dla serwera (sugeruje to odwołanie do serwera `localhost:20.0'), zatem możliwości blokowania komunikacji redukują się prawie do zera. Więc ... może zapomniała Pani odpalić serwer??? =========================================================================== =========================================================================== Date: Fri, 23 Mar 2007 15:38:09 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie w jaki sposób uruchomić w laboratoryjnym kompilatorze bibliotekę crt? chodzi mi o użycie w programie funkcji ReadKey. jeśli się nie da tego zrobić, to czym ją zastąpić? z góry dziękuję za odpowiedź. -------------------------------------------------- Date: Sat, 24 Mar 2007 12:50:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Ja o bibliotece crt słyszałem tylko w kontekście Turbo Pascala, który jest kompilatorem ściśle PC-towym, a więc poszukiwanie i domaganie się jego w innych systemach jest ogólnie pomyłką. To co można i należy zrobić to jest szukać podobnych funkcji w bibliotekach istniejących na innych systemach, lub dostarczonych przez używane kompilatory. Tak wygląda przenoszenie na inne systemy programów napisanych w sposób nieprzenośny (albo próba używania specyficznych funkcji jakiegoś innego systemu lub kompilatora). Jeśli przyjdzie Pan(i) do mnie na konsultacje, i opowie mi dokładnie jak działa funkcja ReadKey, to ja powiem jak można ją zaimplementować na Unixie. Poza tym, wydaje mi się, że kompilatory typu Gnu Pascal (gpc) i Free Pascal posiadają swoje wersje biblioteki crt. Jednak proszę pamiętać, że te biblioteki mogą nie zapewniać 100% funkcjonalności biblioteki crt Turbo Pascala, gdy program kompilowany jest na platformie nie-PC-towej, takiej jak SPARC (czyli diablo). =========================================================================== =========================================================================== Date: Tue, 20 Mar 2007 14:08:12 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Mam pewien problem związany z niemożnością skojarzenia przez kompilator zmiennych typu TEXT i STRING. Przykład: argv(2, nazwa_pliku); uchwyt:=nazwa_pliku; czytaj(uchwyt, obraz); -> funkcja wbudowana w moduł do programu obsługi obrazów FUNCTION czytaj(VAR uchwyt:TEXT;VAR obraz:Tobraz):BOOLEAN;EXTERN; {funkcja wczytuje obraz z pliku PGM skojarzonego z uchwytem "uchwyt" do rekordu "obraz". PRE: plik skojarzony z "uchwyt" jest otworzony do czytania POST: TRUE gdy odczyt jest poprawny, FALSE gdy nastapil blad} I pytanie. Jak można sprawić, aby zmiennej uchwyt, typu text można było wpisać wartość (:=) string, np. 'Claudia.pgm' ;) -------------------------------------------------- Date: Thu, 22 Mar 2007 00:10:32 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie Na to pytanie krótka odpowiedź brzmi: "Nie da się!!!" Zmienna "uchwyt" jest typu "TEXT", czyli oznacza plik tekstowy, a zmienna "nazwa_pliku" typu "STRING", czyli napisowego i zmiennych tych nie można sobie przypisać. Zgodnie z warunkiem PRE, plik skojarzony ze zmienną "uchwyt" powinien być otworzony do czytania z odpowiednią nazwą - po informacje należy zajrzeć do wykładu 4 z poprzedniego semestru. =========================================================================== =========================================================================== Date: Sat, 17 Mar 2007 20:52:52 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie mam pytanie odnośnie funkcji: argc czy argv które są w przykładowym pliku splot_args_mech.p - czy to są wbudowane funkcje pascala (chyba nie...) - co one oznaczają, gdyż nie wiem, jak z nich skorzystać, a chciałbym w innym miejscu programu! dziękuję! -------------------------------------------------- Date: Mon, 19 Mar 2007 11:10:34 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie Argc i argv są wbudowanymi funkcjami (a właściwie funkcją i procedurą) SUN Pascala (ale nie należą do standardu języka). Służą do obsługi parametrów wywołania, argc zwraca liczbę parametrów, argv zapisuje do zmiennej napisowej parametr z zadanej pozycji (czyli o podanym numerze). Dokumentacja znajduje się tu: http://diablo/pascal/pascal/lang_ref/ref_builtin.doc.html#4298 Dalsze przykłady można znaleźć na diablo w katalogu /usr/local/air/info2/zagadnienia/argumenty/ =========================================================================== =========================================================================== Date: Sun, 18 Mar 2007 00:17:06 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam, moje pytanie dotyczy jeszcze drugiego programu przetwarzającego obrazy. Wszystko działa fajnie, tylko nie wiem czemu w pierwszej linii zapisanego pliku dopisuje mi nazwę pliku z którego czytałem ( jedyne miejsce gdzie ta nazwa występuj w konsoli to po -i) w ostatniej linii natomiast dopisuje nazwę pliku do którego zapisuję (także w konsoli widoczne tylko po parametrze -o). Nie mam pojęcia dlaczego tak mi się dzieje. Wykorzystałem do swojego programu procedury Parse_args z tej strony, oraz mojego modułu, który z dostarczonym wcześniej driverem działa świetnie. Może jakieś pomysły co jest źle? Z góry dziękuję za odpowiedź. Pozdrawiam. -------------------------------------------------- Date: Sun, 18 Mar 2007 23:50:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Niestety, nie mam pomysłu. Jeśli nazwy plików pojawiają się w pliku wynikowym, to jedynym powodem może być, że program je tam wpisuje, i trzeba znaleźć gdzie. =========================================================================== =========================================================================== Date: Fri, 16 Mar 2007 16:04:54 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie napisałem skrypt który wg mnie powinien działać a jednak tego nie robi zgłasz błąd gdy dochodzi do konstrukcji else ote skrypt: #!/bin/sh go=`date "+%H%M"` dz=`date "+%a"` if test $go -ge 1115 && test $dz=pon && test $go -le 1300 then ech witaj na zajeciach else echo witaj w czasie wolnym fi dodam że wszelkie modyfikacje jak np dodanie exit przed else lub umieszczenie wartości wypisywanych w "" nic nie zmienia dlaczego?? -------------------------------------------------- Date: Sat, 17 Mar 2007 06:50:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Słowo "then" musi być jakoś oddzielone od poleceń wykonywanych jako warunki: albo w nowym wierszu albo trzeba dać średnik: ";then" Wtedy jeszcze zamienić ech na echo i będzie śmigać. =========================================================================== =========================================================================== Date: Tue, 13 Mar 2007 23:00:23 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Mam problem: Chciałem użyć funkcji 'pom' w module przetwarzania obrazów w nastepujaczy sposob: pom[x,y]:=pow(pom[x,y],gamma); wczesniaj zadeklarowalem: #include "math.p.h" ale przy kompilacji wyskakuje mi blad line 137: Can't find include file math.p.h Co mam zrobic aby uzyc tej funkcji? -------------------------------------------------- Date: Wed, 14 Mar 2007 10:24:18 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie Powinno być #include =========================================================================== =========================================================================== Date: Tue, 13 Mar 2007 18:07:59 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie próbuję skompilować driver z modułem poprzez: pc -lc splot.o funkcje_pgm2.o, jednak kompilowanie nie powodzi się -> nadal pojawia się komunikat w dwóch kolumnach: Undefinied first referenced symbol in file argv splot.o ld: fatal :symbol referencing errors. No output written to a.out choć w pliku źródłowym zadeklarowałem: PROCEDURE ARGV(i:integer; s:string); EXTERNAL C; MOJE PYTANIE: co kompilator próbuje mi powiedzieć?? -------------------------------------------------- Date: Wed, 14 Mar 2007 13:00:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Że linker nie znalazł procedury argv przy próbie wygenerowania ostatecznego programu binarnego. W tym wypadku opcja -lc jest niepotrzebna, ponieważ takiej procedury nie ma w bibliotece kompilatora C - jest to specyficzna procedura kompilatora Pascala. Jednak taki błąd nie powinien wystąpić i proszę przyjść i pokazać mi sytuację kiedy to się zdarza. =========================================================================== =========================================================================== Date: Tue, 13 Mar 2007 17:52:52 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy tak jak na stronie informatyki 1 beda dostepne ekranowki? Pierwsza ekranowka dla wydzialu mechanicznego jest z list, czyli bedzie to 5 ekranowka z 1 semestru?? -------------------------------------------------- Date: Wed, 14 Mar 2007 11:03:35 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie Nie jest planowane umieszczenie ekranówek na stronie kursu. Ekranówka z list nie jest tożsama z ekranówką 5 pierwszego semestru. choć pewna część pytań może się powtarzać. =========================================================================== =========================================================================== Date: Tue, 13 Mar 2007 13:36:41 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Gdzie mozna sie dowiedziec czegos o procedurze(?) PCEXIT()? Co oznaczaja te liczby wywolywane przez nia? -------------------------------------------------- Date: Tue, 13 Mar 2007 15:15:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie W dokumentacji kompilatora Pascala na diablo, która w tej chwili wydaje sie być niedostępna (właśnie szukałem i nie ma), ale normalnie powinno sie dać ją znaleźć z mojej strony kursu (w sekcji Literatura podstawowa), oraz ze strony WWW na diablo. Funkcja powoduje natychmiastowe zakończenie pracy programu i powrót do systemu z podaną wartością statusu (czyli kodu zakończenia programu, o którym opowiadałem na wykładzie z Bourne shella). Konwencja jest taka, że wartość 0 statusu oznacza normalne i poprawne zakończenie programu, a każda inna -- zakończenie niepoprawne. To jest tylko konwencja, ale dość konsekwentnie przestrzegana w Unixie, i jeśli program byłby np. wywołany ze skryptu, i zakończył się z wartością niepoprawną, to skrypt mógłby się wywalić, zależnie od ustawienia set -e. A konkretne zwracane wartości (niezerowe) są już specyficzne dla danego programu. Można po nich poznać np. jaki błąd wystąpił. Programy systemowe używają ujednoliconych kodów błędów (patrz plik /usr/include/sys/errno.h). =========================================================================== =========================================================================== Date: Tue, 13 Mar 2007 03:54:31 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czytalem wczesniejsze posty i nadal nie moge sobie poradzic z komunikatem podobnym do wczesniej napisanego. Nawet jesli kompiluje z opcja -lc to efekt jest taki sam. Undefinied first referenced symbol in file Atoi splot.o -------------------------------------------------- Date: Tue, 13 Mar 2007 15:15:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie potrafię zduplikować tego błędu. Kompiluję na diablo przykładowy program: pc -L splot_args.p i kompilacja kończy się poprawnie nawet bez -lc (ale z -lc też jest dobrze). I program działa jak należy - sprawdza i wymusza syntaktyczną poprawność listy argumentów, z użyciem funkcji atoi. Proszę przyjść i pokazać mi w jakich okolicznościach występuje ten błąd. =========================================================================== =========================================================================== Date: Mon, 12 Mar 2007 08:15:05 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie WItam. Czy program splot (moze lub ma) wykonywac opcje -n -r i -g jednoczesnie, czy wywolanie wiecej niz jednego z tych argumentu ma wywolac blad? Dziekuje za odpowiedz. -------------------------------------------------- Date: Mon, 12 Mar 2007 08:55:36 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie W tym przypadku decyzja jest pozostawiona autorowi (proszę tylko zwrócić uwagę, że kolejność wykonywania operacji ma zanaczenie) =========================================================================== =========================================================================== Date: Sun, 11 Mar 2007 14:59:55 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Uzywam Puttiego i lacze sie poprzez neostrade. Mam problem z poleceniem 'display'. Gdy probuje je uruchomic to wyskakuje mi komunikat "display: Unable to connect to X server ().". Program musze oddac w poniedzialek rano a wyklad jest ok 15. -------------------------------------------------- Date: Mon, 12 Mar 2007 09:25:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Żeby działało wyświetlanie w systemie X Window to musi być uruchomiony serwer X Window, mieć odpowiednią autoryzację, i muszą być ustawione zezwolenia na połączenia sieciowe we wszystkich miejscach (komputer zdalny, lokalny, i dostarczyciel Internetu). O tym będzie na wykładzie. Ja mogę pokazać jak to działa, wyjaśnić ogólne zasady, ale potem każdy musi sam sobie radzić. Te pytania i odpowiedzi mają małą przepustowość i nie każdy problem da się w ten sposób rozwiązać. Zapraszam do techników w 07/C3, którzy wiedzą jakie typowe problemy się dzieją i powinni być w stanie znaleźć rozwiązanie. Ale też nie są jasnowidzami,i nie każdego problemu przyczynę potrafią wyczytać z oczu. =========================================================================== =========================================================================== Date: Sun, 11 Mar 2007 14:40:15 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie próbuję skompilować driver z modułem poprzez: pc splot.o funkcje_pgm2.o, jednak kompilowanie nie powodzi się -> pojawia się komunikat w dwóch kolumnach: Undefinied first referenced symbol in file argv splot.o choć w pliku źródłowym zadeklarowałem: PROCEDURE ARGV(i:integer; s:string); EXTERNAL C; MOJE PYTANIE: O CO CHODZI??? -------------------------------------------------- Date: Mon, 12 Mar 2007 09:25:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Linker nie znalazł funkcji argv bo on nie szuka automatycznie w bibliotece kompilatora C - trzeba dodać opcję -lc przy kompilacji. =========================================================================== =========================================================================== Date: Sun, 11 Mar 2007 13:39:58 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Mam jeszcze jedno pytanie. Skąd mozna pobrac jakies przykladowe pliki *.pgm do testowania programu? -------------------------------------------------- Date: Mon, 12 Mar 2007 09:25:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Hmmm, jest wiele miejsc. Można poszukać na diablo u innych użytkowników (przydaje się polecenie find, np. find /home* -name '*.pgm'), albo w Internecie (np. http://images.google.pl/). Obraz można przekształcić z dowolnego (prawie) formatu rastrowego na format .pgm poleceniem: convert obraz.xxx obraz.pgm Gdyby convert utworzył przypadkiem obraz w formacie binarnym PGM (czyli P5) jak to kiedyś miał we zwyczaju, to można wymusić format tekstowy PGM (czyli P2) wywołaniem: convert obraz.xxx -compress none obraz.pgm (moja obecna wersja converta, czyli 6.2.9, tworzy już domyślnie format tekstowy). =========================================================================== =========================================================================== Date: Sun, 11 Mar 2007 12:46:32 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam, mam pewien problem. Nie wiem czemu, ale nie moge sie laczyc bezposrednio na diablo, wiec robie to poprzez juhasa. Problem w tym, ze dzisiaj juhas dziala tak powoli, ze az ciezko sie na niego polaczyc, a co dopiero pisac program poprzez niego na diablo. Nie wiem za bardzo co zrobic... Pozdrawiam -------------------------------------------------- Date: Mon, 12 Mar 2007 09:25:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Ja też nie wiem. Proszę o kontakt z pracownikami technicznymi w laboratorium 07/C3 gdzie pomogą Pani znaleźć i zwalczyć problemy z połączeniem. Godziny pracy wiszą w gablocie przed drzwiami, jak również na WWW na diablo. =========================================================================== =========================================================================== Date: Sun, 11 Mar 2007 12:10:11 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Mam pytanie co do odwoływania sie do konkretnych znaków w tablicy ASCII. W turbo pascalu mozna bylo napisac WRITELN(#78) co na wyjsciu wypisywalo znak z tablicy ASCII o numerze 78 (-->chyba litera 'N'). Jak odwolywac sie do konkretnych znakow w pascalu na diablo? -------------------------------------------------- Date: Sun, 11 Mar 2007 12:55:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Ogólnie nie da się korzystać w całkowicie przenośny sposób z kodu ASCII. Jednak można korzystać za pomocą funkcji CHR z zestawu znaków właściwego dla danego systemu operacyjnego. Większość najpopularniejszych systemów komputerowych w dzisiejszych czasach korzysta z kodu ASCII, i CHR(78) to rzeczywiście wychodzi 'N'. Ale nie ma gwarancji, że zawsze tak będzie. =========================================================================== =========================================================================== Date: Sat, 10 Mar 2007 21:55:02 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Funkcja czytaj ma zwracac wartosc FALSE gdy liczba "pikseli" w pliku bedzie rozna(mniejsza lub wieksza) od wczesniej zadeklarowanej wartosci wymX*wymY? -------------------------------------------------- Date: Sun, 11 Mar 2007 10:10:18 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie Byłoby to bardzo dobre rozwiązanie. Jednak ze względu na to, że wymaga ono znacznego rozbudowania funkcji czytającej, w wersji podstawowej nie jest to wymagane i będzie traktowane jako rozszerzenie względem obowiązkowego zakresu zadania. =========================================================================== =========================================================================== Date: Sat, 10 Mar 2007 17:24:26 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie napisałem tak jak w przykładzie: i := 1; (* zaczynamy od arg nr 1 *) WHILE i < Argc DO BEGIN Argv(i,arg_str); IF arg_str[1] <> '-' THEN BEGIN WRITELN(errout,'Blad wywolania - niedozwolony parametr: ',arg_str); PCEXIT(1); i wyskakuje mi błąd: arg_str is used but never set .. co może byt tego przyczyną i jak się tego pozbyć ?? -------------------------------------------------- Date: Sun, 11 Mar 2007 11:10:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Jeśli kompilator pisze, że zmienna jest użyta (tzn. jej wartość), zanim jakaś wartość została jej przypisana, to może to być najwyżej ostrzeżenie kompilatora, a nie błąd, bo tak wolno programy pisać, tylko rzadko kiedy jest to sensowne. Kompilatory dają takie ostrzeżenia aby zwrócić uwagę programisty na fragment programu, który MOŻE być błędny, i programista może takie ostrzeżenia zignorować jeśli wie, że program jest taki jak ma być, czyli poprawny. W takim przypadku programista może zmienić coś w programie, aby "uciszyć" kompilator, i zachować swoją konstrukcję. Tylko że to jest taka ogólna zasada, ale nie wiem jak to się ma do powyższego fragmentu programu, bo kompilator pc na diablo powinien rozumieć, że wywołanie: Argv(i,arg_str); ustawia wartość zmiennej arg_str i nie może być mowy o sytuacji, że wartość zmiennej jest użyta zanim została ustawiona. Więc albo ostrzeżenie dotyczy jakiegoś wcześniejszego fragmentu kodu, który tu nie został pokazany, albo jest jakaś inna okoliczność, której nie znam. A na diablo to się działo? Bo ja sobie puściłem na próbę taki przykład na diablo, i nawet z opcją -non_init=yes (która jest zresztą domyślna) i nic. Moze na Windowsie jakimś to było? :-( =========================================================================== =========================================================================== Date: Sat, 10 Mar 2007 16:39:28 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie brak argumentu -i w wywołaniu programu jest uznawany jako błąd. czy można uznać że powinien znajdować się on jako pierwszy, przed innymi argumentami??? bo użycie tego argumentu po innych wydaje się bezsensowne... -------------------------------------------------- Date: Sun, 11 Mar 2007 11:10:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Jeśli uznamy, że argument -i musi być pierwszy na liście, to program będzie minimalnie mniej elastyczny i tolerancyjny dla użytkownika, ale byłoby to dopuszczalne, gdyby inaczej się nie dało. Problem w tym, że się da, i istnieje prosty schemat opracowania listy argumentów, pozwalający je podawać w dowolnej kolejności, i nie powodujący żadnych nadmiernych komplikacji w programie. Ten schemat został przedstawiony w przykładowym programie splot_args.p i warto z tego skorzystać bo tak sie to po prostu robi. Tę pętlę WHILE przekopiować żywcem (albo lechem, jak ktoś woli :-) do swojego programu, i odpowiednio zmieniać jeśli potrzebne byłyby inne argumenty. =========================================================================== =========================================================================== Date: Sat, 10 Mar 2007 16:23:35 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie mam problemik, bo może nie rozumiem zadania; w treści jest podane,że: jeśli nazwa pliku będzie podana jako: "-" to program powinien czytać obraz ze standardowego wejścia. czyli mniej więcej coś takiego powinienem napisać??? : IF Obraz_we_nazwa[1]='-' THEN (*obr.wej.zamiast z INPUT*) RESET(INPUT, Obraz_we_nazwa); nie jestem pewien gdyż w przykładzie dla wyd. elektronicznego jest znak <> zamiast =. -------------------------------------------------- Date: Sun, 11 Mar 2007 11:10:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Mniej więcej coś takiego, ale różnica między znakiem <> a = jest istotna. Dlaczego? Bo mamy sprawdzić, czy nazwa pliku została podana jako '-' (ale cała), i jeśli pierwszy znak jest <> '-' to wiemy, że nie, ale jeśli pierwszy znak = '-' to jeszcze nie całkiem wiemy, że tak, prawda? A to dlatego, że ktoś mógł podać nazwę pliku np. jako '-plikobrazu.pgm' co byłoby dziwne, ale możliwe. =========================================================================== =========================================================================== Date: Fri, 09 Mar 2007 20:53:15 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Mam pytanie co do funkcji "Atoi". W swoim programie uzywam tej funkcji. Jednak podczas kompilacji pokazuje sie komunikat "Undefined function". Jak nalezy ją zadeklarować, czy trzebe dodac jakąś bibliotekę? -------------------------------------------------- Date: Sat, 10 Mar 2007 16:10:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Ta funkcja istnieje w bibliotece kompilatora C i wszystkie kompilatory, które mają kompatybilny sposób wywoływania funkcji i kompatybilne typy danych mogą jej użyć, pod warunkiem, że: 1. Kompilator otrzyma deklarację funkcji zgodnie z wymaganiami danego języka. W przypadku kompilatora pc na diablo: FUNCTION Atoi(napis : String):INTEGER; EXTERNAL C; W przypadku kompilatora gpc na Linuxie będzie to dość podobne (przy czym typ napisowy byłby chyba CString). 2. Kompilator zostanie poinstruowany gdzie ma szukać kodu binarnego tej funkcji na etapie linkowania, czyli, że ma przeszukać bibliotekę kompilatora C. Dla prawie każdego kompilatora unixowego robi się to opcją -lc gdzie -l poleca przeszukać bibliotekę a c jest jej nazwą. =========================================================================== =========================================================================== Date: Fri, 09 Mar 2007 20:20:20 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam, chodzi mi o wywolywanie programu w programie. Wiem ze wykonuje sie to przez procedure system, np: SYSTEM('display obraz.pgm') Ale jak zadac wywolanie programu display dla pliku, ktorego nazwe rzechowuje zmienna? Nazwa pliku ktory chce otworzyc to zmienna ParametryObrazka.NazwaWyj, jak go wyswietlic przez procedure system? -------------------------------------------------- Date: Sat, 10 Mar 2007 16:10:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie SYSTEM(polecenie) gdzie polecenie jest zmienną napisową o wartości: 'display nazwapliku'. Typem zmiennej polecenie powinien być typ String w przypadku kompilatora pc na diablo, a dla gpc na Linuksie typ CString. Jak wpisać taką wartość do tej zmiennej to proszę sobie rozpracować, można choćby znak po znaku. =========================================================================== =========================================================================== Date: Thu, 08 Mar 2007 22:37:59 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy zostana na stronie umieszczone informacje nt. zakresu ekranowek , tak jak to bylo w 1 sem. ? -------------------------------------------------- Date: Sat, 10 Mar 2007 14:10:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Tak, jest już kompletny plan ekranówek na ten semestr. Zakres jest określony przez zakres wykładu i treści ćwiczeń z tego wykładu. =========================================================================== =========================================================================== Date: Thu, 08 Mar 2007 22:33:01 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Zaryzykuję! Mam pytanie następującej treści: --> czy możliwe jest, że driver ma bug'a i nie przekazuje prawidłowo rekordu do procedury zapisz (wymiary zczytane i wypisane są równy 0, tak samo maksymalna szarość). Może ja mam coś źle.. Jakieś sugestie? -------------------------------------------------- Date: Fri, 9 Mar 2007 20:34:32 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie Opcja zapisu w driverze zapisuje obraz po przetworzeniu, czyli jeśli po odczycie nie była wykonana żadna operacja na obrazie, to nic nie zostanie zapisane. Natomiast jeśli któraś z operacji przetwarzania obrazu była wykonana, a obraz ma zerowe wymiary, to znaczy najprawdopodobniej, że funkcja przetwarzania obrazu nie zwróciła poprawnego obrazu. Proszę sprawdzić, jakie wymiary ma obraz wyjściowy przy opuszczaniu każdej z funkcji przetwarzania obrazu. =========================================================================== =========================================================================== Date: Thu, 08 Mar 2007 22:05:19 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie mam jeszcze pytanie odnośnie procedury KOREKCJA. szczerze nie rozumiem co to ma robić co to ta gamma ? jakoś dokładniej to sprecyzować jak mozna. z góry dziękuje -------------------------------------------------- Date: Fri, 9 Mar 2007 20:46:26 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie Odpowiedź można znaleźć w jednym z poprzednich pytań, dla obrazów w odcieniach szarości w skrócie można powiedzieć, że gamma>1 zmiejsza kontrast ciemnych partii obrazu a zwiększa jasnych, a gamma<1 na odwrót. =========================================================================== =========================================================================== Date: Thu, 08 Mar 2007 21:40:13 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie wcześniej było pytanie o to kiedy funkcja zapisz będzie miała wartość true lub folse. pytam sie czy moja obcja jest poprawn - mianowicie : Funkcja przyjmie wartośc TRUE wtedy gdy wymX, wymY, max_szarosc, piksele[i,j] będą większe bądź równe zero a Folse przeciwnie wydaje mi sie że dobrze bo te wartości nie mogą być ujemne czy dobrze myśle ?? z góry dziękuje ]:-> -------------------------------------------------- Date: Fri, 9 Mar 2007 20:41:15 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie Rzeczywiście można tak przyjąć (nawet ostrą nierówność, gdyż trudno mówić o istnieniu obrazka o wymiarach 0x0 pikseli). =========================================================================== =========================================================================== Date: Thu, 08 Mar 2007 20:07:07 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam, mam problem z poleceniem 'display'. Gdy probuje je uruchomic to wyskakuje mi komunikat "display: Unable to connect to X server ().". Jest to utrudnieniem, gdyz nie moge sprawdzic poprawnosci dzialania programu:(. Dodam, ze uzywam programu Putty w akademiku. -------------------------------------------------- Date: Fri, 09 Mar 2007 13:20:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Program display nie mógł sie połączyć z serwerem X Window na lokalnym komputerze. Żeby mógł się połączyć to powinien na tym lokalnym komputerze być odpalony serwer. Będzie o tym na najbliższym wykładzie, i będzie pokaz jak to się robi. =========================================================================== =========================================================================== Date: Thu, 08 Mar 2007 18:00:44 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie "bądź na standardowym wyjściu (pliku OUTPUT) jeśli nazwa pliku będzie podana jako "-" " Co to dokładniej znaczy? Czyli zapisac plik na OUTPUT... -------------------------------------------------- Date: Fri, 09 Mar 2007 13:20:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Wywołanie: splot -i - oznacza, że dane obrazu wejściowego należy czytać z wejścia standardowego INPUT, a nie z pliku dyskowego. Podobnie, wywołanie: splot -o - oznacza, że obraz wyjściowy należy wysłać na wyjście standardowe OUTPUT zamiast zapisywać na pliku dyskowym. =========================================================================== =========================================================================== Date: Thu, 08 Mar 2007 17:20:23 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam Chailem zapytac czy plik z fragmentem programu splot_args.p (w kolumne "zrodla") jest podany zebysmy mieli mniej pisania i mozna go skopiowac, czy ma to byc tylko pomoc przy pisaniu wlasnego programu. -------------------------------------------------- Date: Fri, 09 Mar 2007 13:20:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Tak i tak. Można go traktować jako pomoc, i można skopiować i wykorzystać procedury dosłownie. =========================================================================== =========================================================================== Date: Wed, 07 Mar 2007 20:55:38 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam. Napisałem już program ale nie mogę obejrzeć efektów jego pracy, gdyż putty ma problemy z obsługą Xów. W ssh tuneling opcja enable X11 jest aktywna, mimo to przy próbie uruchomienia obrazka pojawia sie następujący komunikat: [probowalem na rożnych localhostach] X connection to localhost:24.0 broken (explicit kill or server shutdown). Czy da sie rozwiązać ten problem i skonfigurować putty tak by wyświetlało obrazy? Czy należy raczej szukac innego programu? Z gory dziękuję za informację. -------------------------------------------------- Date: Fri, 09 Mar 2007 13:20:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Putty samo w sobie nie wyświetla obrazów. Nowsze wersje putty zapewniają tunelowanie połączeń, i można przekazywać przez połączenie putty połączenia klientów systemu X window do serwera. Ale na lokalnym komputerze trzeba odpalić serwer X Window. O tym będzie na najbliższym wykładzie, i będzie pokaz jak to się robi pod *indows. =========================================================================== =========================================================================== Date: Wed, 07 Mar 2007 13:54:25 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Zastosowałem się do Pana odpowiedzi, a przynajmniej tak mi się wydaje, lecz nadal nie rozumiem: przecież proces przeskalowywania powoduje, albo też może powodować powstawanie liczb zmienno przecinkowych, i tu właśnie wyskakuje mi błąd niezgodności typów... jak sobie z tym poradzić??? czy należy zaokrąglać liczby?? -------------------------------------------------- Date: Wed, 7 Mar 2007 14:59:41 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie Oczywiście po przeskalowaniu należy zapewnić właściwy typ liczby wynikowej, przez zastosowanie odpowiedniej funkcji zaokrąglającej liczbę rzeczywistą do całkowitej. =========================================================================== =========================================================================== Date: Tue, 06 Mar 2007 15:47:01 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Witam, Moze glupie pytanie ale nie do konca rozumiem :) Jaki jest warunek poprawnosci Funkcji Zapisz? ( w programie z obrazami ) Rozumujac logicznie to poprawnie odczytany plik i pozniej przetworzony zawsze zapisze sie poprawnie... Jesli poprzednia Funkcja Czytaj zwroci FALSE to nie bedzie mozna przystapic do Funkcji Zapisz. -------------------------------------------------- Date: Tue, 06 Mar 2007 20:50:26 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie Rzeczywiście w wersji przedstawionej w zadaniu funkcja "zapisz" powinna zawsze działać poprawnie, czyli zwracać wartość TRUE. =========================================================================== =========================================================================== Date: Mon, 05 Mar 2007 20:42:54 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie witam. mam pytanie. o co dokładnie chodzi z korekcją gamma??? czy obraz wyjściowy bedzie miał taką samą skalę szarości jak wyjścjowy??? i o co chodzi znormowaniem??? jak znormalizować dane??? -------------------------------------------------- Date: Tue, 06 Mar 2007 10:15:00 +0100 (CET) From: Janusz Jakubiak Subject: odpowiedź na pytanie Korekcja gammy jest operacją punktowego przetwarzania obrazu, która ma na celu nieliniową modyfikację kontrastu obrazu. O jednym z zastosowań korekcji gammy można przeczytać między innymi tu: http://www.fotoporadnik.pl/korekcja-gamma.html Zgodnie z treścią zadania korekcję gamma można wyliczyć ze wzoru: G(x,y) = L(x,y)^gamma, gdzie L(x,y) jest unormowaną jasnością oryginału w punkcie (x,y), a G(x,y) - jasnością obrazu wynikowego. Unormowaną, to znaczy taką, że wartość jasności mieści się (jest przeskalowana) w przedziale [0,1], gdzie 0 odpowiada najmniejszej jasności (kolor czarny), a 1 - największej (kolor biały). Proces wyliczania skorygowanego obrazu wymaga zatem następujących kroków: 1) przeskalowanie jasności z przedziału [0,max_szarosc] do [0,1] 2) wylicznie korekcji gammy 3) przeskalowanie wyniku z przedziału [0,1] na pełną rozpiętość skali szarości [0,max_szarosc] Z powyższego wynika też, że obraz wynikowy będzie miał taką samą rozpiętość jak obraz oryginalny. =========================================================================== =========================================================================== Date: Mon, 05 Mar 2007 20:32:47 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Czy na stronie kursu pojawią się materiały prezentowane na wykładzie tak jak to miało miejsce na Informatyce 1 ? -------------------------------------------------- Date: Tue, 06 Mar 2007 09:30:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Tak, już. =========================================================================== =========================================================================== Date: Sat, 03 Mar 2007 13:32:20 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Lacząc sie z diablo z domu (przez ssh) dostaje komunikat ssh_exchange_identification: Connection closed by remote host a bardziej szczegółowo OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Connecting to diablo.ict.pwr.wroc.pl [156.17.9.14] port 22. debug1: Connection established. debug1: identity file /home/karol/.ssh/identity type -1 debug1: identity file /home/karol/.ssh/id_rsa type -1 debug1: identity file /home/karol/.ssh/id_dsa type -1 debug1: ssh_exchange_identification: You must have proper DNS entry Czym to moze byc spowodowane i jak da sie to ominac zeby polaczyc sie z diablo? -------------------------------------------------- Date: Sat, 03 Mar 2007 14:15:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie To jest dość typowe zjawisko i wielu studentów odbija się od tego problemu. Kluczowy jest komunikat: > You must have proper DNS entry Nasze komputery mają takie zabezpieczenie, że odrzucają połączenia z adresów IP, które nie są poprawnie zarejestrowane w DNS, czyli w systemie rejestracji adresów symbolicznych (domenowych). Ponieważ dostarczyciele usług internetowych mogą bez trudu zarejestrować swoje serwery w systemie DNS, więc zwykle wystarczy się do nich zwrócić z prośbą o to, i połączenia pójdą. =========================================================================== =========================================================================== Date: Thu, 01 Mar 2007 15:44:18 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie Dlaczego nie mogę zapisywać plików tekstowych??? gdy wciskam: Ctrl-x+Ctrl-s wyskakuje komunikat:IO error writing/home/jhladysz/bazawnioski.txt: Disc quota exceeded??? -------------------------------------------------- Date: Sat, 03 Mar 2007 09:00:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Komunikat pochodzi z systemu quota, który nadzoruje ilość miejsca na dysku zajmowanego przez każdego użytkownika. Zdaje się, że jest ustawiony na 50MB. Gdy zajmie Pan tyle miejsca na dysku, to system nie pozwoli już nic więcej zapisać, nawet jeśli jest Pan w połowie edycji ważnego pliku. Wydaje mi się, że popełnił Pan jakiś błąd, tworząc bardzo głęboką rekurencyjnie strukturę katalogów (katalog kursy w katalogu kursy), i w ten sposób zajął tyle miejsca. Jeśli nie poradzi Pan sobie z uporządkowaniem tego to proszę się zgłosić do sali 07/C3 i któryś z techników Panu pomoże. =========================================================================== =========================================================================== Date: Wed, 28 Feb 2007 21:04:57 +0100 (CET) From: WebServer Account Subject: komunikat z WWW - Info-2/pytanie witam. mam pewien problem ze skryptem. moj plik tekstowy wyglada tak: #!/bin/bash echo `ssh -l login diablo.ict.pwr.wroc.pl` w miejscu login oczywiscie nazwe swojego konta. Gdy uruchamiam skrypt wszystko jest ok pojawia sie pytanie o haslo. Gdy wpisze haslo niepoprawnie ponawia zapytanie, ale gdy wpisze poprawnie przywiesza sie... czym to jest spowodowane? -------------------------------------------------- Date: Sat, 03 Mar 2007 09:00:00 +0100 (CET) From: witoldp@pwr.wroc.pl (Witold Paluszynski) Subject: odpowiedź na pytanie Nie całkiem rozumiem co chciał(a) Pan(i) osiągnąć tym skryptem, ale jest to chyba błąd. Zupełnie poprawny byłby następujący skrypt, powodujący łączenie się z diablo przez ssh: #!/bin/bash ssh -l login diablo.ict.pwr.wroc.pl Zagłębienie polecenia ssh w "echo `ssh ...` " powoduje najpierw wywołanie ssh w wewnętrznym interpreterze poleceń, jednak bez pełnej komunikacji z terminalem, ponieważ całe wyjście (OUTPUT) jest przechwytywane dla polecenia echo, które zostałoby wykonane później. Gdyby po wywołaniu tego skryptu napisał(a) Pan(i) jedną komendę "exit" (ale w ciemno, nic nie widząc), to zdalna sesja na diablo zakończyłaby się natychmiast, i wtedy polecenie echo pokazałoby jej wynik. Ale chyba nie o to chodziło. ===========================================================================