Forum dotyczące ogólnie pojętego programowania - algorytmów, struktur danych, narzędzi programistycznych, itp - głównie w kontekście komputerów PC.
-
grysek67
- Użytkownik
- Posty: 315
- Rejestracja: 27 cze 2007, 6:34
- Lokalizacja: Limanowa
-
Kontakt:
Post
autor: grysek67 » 23 maja 2008, 16:01
Witam
Jak zanegować bity danego bajtu w Qbasic, jest tam operator "NOT" lecz on nie działa i Qbasic wyrzuca błąd "end-of-statement" inne operatory działają poprawnie... Niewiem może mam za starą wersje tego programu??

Prosze o pomoc
-
ZbeeGin
Post
autor: ZbeeGin » 23 maja 2008, 17:55
Wystarczy skorzystać z operacji XOR z bajtem w którym są same jedynki.
-
grysek67
- Użytkownik
- Posty: 315
- Rejestracja: 27 cze 2007, 6:34
- Lokalizacja: Limanowa
-
Kontakt:
Post
autor: grysek67 » 23 maja 2008, 19:03
Dzieki

to po co w takim razie jest operator NOT skoro nie działa, aha i czy można w Qbasicu wpisać postać cyfry za pomocą kodu binarnego np. &B11111111??
-
ZbeeGin
Post
autor: ZbeeGin » 23 maja 2008, 19:33
NOT to negacja ale nie bitów w bajcie tylko wartości logicznych w warunkach.
Niestety wartości binarnych QBasic nie przyjmujue. Można użyć notacji hex: &HFF& lub ósemkowej: &o377.
Ostatnio zmieniony 23 maja 2008, 19:53 przez ZbeeGin, łącznie zmieniany 1 raz.
-
grysek67
- Użytkownik
- Posty: 315
- Rejestracja: 27 cze 2007, 6:34
- Lokalizacja: Limanowa
-
Kontakt:
Post
autor: grysek67 » 23 maja 2008, 19:52
Dzięki serdeczne

mam jescze jedno pytanie odnośnie Qbasica a mianowicie czy jak napisze
to przy procesorze 250Mhz czas oczekiwania będzie wynosił 1 sekundę??
-
ZbeeGin
Post
autor: ZbeeGin » 23 maja 2008, 19:53
Nie. Ale możesz skorzystać z polecenia WAIT.
-
grysek67
- Użytkownik
- Posty: 315
- Rejestracja: 27 cze 2007, 6:34
- Lokalizacja: Limanowa
-
Kontakt:
Post
autor: grysek67 » 23 maja 2008, 19:57
Czy jak wykorzystam to polecenie to będzie to dokładna sekunda??
Dzięki i pozdrawiam

-
ZbeeGin
Post
autor: ZbeeGin » 24 maja 2008, 6:50
NIe będzie to ze 100% dokładnością jedna sekunda. Licznik w komputerze też ma jakąś skończoną rozdzielczość.
-
grysek67
- Użytkownik
- Posty: 315
- Rejestracja: 27 cze 2007, 6:34
- Lokalizacja: Limanowa
-
Kontakt:
Post
autor: grysek67 » 24 maja 2008, 8:30
To w takim razie jak napisać program aby odmierzał równą sekundę?? A co do polecenia WAIT to Helpie od qbasica pisze że trzeba podać adres portu bo to chyba jest opóżnienie dla portu a nie wykonywanych operacji

-
ZbeeGin
Post
autor: ZbeeGin » 24 maja 2008, 11:53
To w takim razie jak napisać program aby odmierzał równą sekundę??
Pewnych rzeczy się nie da przeskoczyć. Sekunda w wykonaniu QBasic-a nie jest idealna, ale znośna.
grysek67 pisze:A co do polecenia WAIT to Helpie od qbasica pisze że trzeba podać adres portu bo to chyba jest opóżnienie dla portu a nie wykonywanych operacji
Być może. Spróbuj zatem polecenia
SLEEP {ile sekund}. Przy czym to polecenie się przerwie jak naciśniesz jakiś klawisz.
-
grysek67
- Użytkownik
- Posty: 315
- Rejestracja: 27 cze 2007, 6:34
- Lokalizacja: Limanowa
-
Kontakt:
Post
autor: grysek67 » 24 maja 2008, 19:11
ZbeeGin pisze: Sekunda w wykonaniu QBasic-a nie jest idealna, ale znośna
Ale gdyby tak odczytać sekundę z zegara systemowego, wystarczyłoby znać adres tego urządzenia

Tylko jakiego polecenia użyć aby odczytać z tego urządzenia?? bo po uzyciu polecenia
INP wyskakują same dziwne rzeczy nie mające niczego wspólnego z odmierzaniem czasu

-
ZbeeGin
Post
autor: ZbeeGin » 24 maja 2008, 19:22
-
joon
- Użytkownik
- Posty: 2076
- Rejestracja: 30 cze 2007, 22:56
- Lokalizacja: Kraków, Przemyśl, Warszawa
-
Kontakt:
Post
autor: joon » 24 maja 2008, 19:57
Przerwanie zegarowe w PCetach pojawia się 18.2 razy na sekundę, ciężko to wykorzystać we własnym programie. Kiedyś w Pascalu próbowałem ale za bardzo nie wyszło :/. Istnieje jeszcze inna metoda ale wymaga asemblera, na jakimś forum znalazłem metodę ze zliczeniem cykli zegarowych ale brakowało komentarzy a asembler do czarna magia dla mnie.
-
grysek67
- Użytkownik
- Posty: 315
- Rejestracja: 27 cze 2007, 6:34
- Lokalizacja: Limanowa
-
Kontakt:
Post
autor: grysek67 » 25 maja 2008, 7:43
Aha już wszystko jest już w miare jasne

tylko znowu nie wiem jednej rzeczy a mianowicie jak w basicu przekonwertować BCD na DEC? bo w helpie nie mogłem się doszukać a i w necie nie mogłem nic o tym znaleźć

-
ZbeeGin
Post
autor: ZbeeGin » 25 maja 2008, 7:50
A sam nie potrafisz wymyśleć? Czym jest BCD? Jak weźmiesz starszą połówkę bajtu i pomnożysz przez 10 i dodasz młodszą to co otrzymasz?