Temat: zerowanie zmiennej w BASIC'u
Witam!
W jaki sposób wyzerować wartość zmiennej tekstowej w basicu?
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
BigPEmu 1.12 Richard Whitehouse wydał BigPEmu 1.12
FujiNET firmware v1.3.0 Nowa wersja oprogramowania do interfejsu sieciowego FujiNET. Tym razem z obsługą TCP!
hatari 2.5.0 Od dwóch dni dostępna jest najnowsza (2.5.0) wersja Hatari.
Grawitacja 2024 Czas na kolejną edycję 8 bitowego GameJamu.
Tenebra na Atari ST/STE Wersja gry na duże atari.
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Witam!
W jaki sposób wyzerować wartość zmiennej tekstowej w basicu?
A$=""
Albo tak (zależy co kto rozumie pod pojęciem zerowanie)
A$(1)="0": A$(A)="0"":A$(2)=A$
I w zmiennej A$ masz same zera
A jak za zero podstawisz inny znak to cała A$ zawiera te znaki
A - to zmienna okreslająca wielkość (długość) ciągu A$
Ostatnio edytowany przez Zenon/Dial (2006-03-14 22:42:33)
dzieki, wlawsnie tego szukalem:)
jeśli to ataribasic - to polecam z samego początku przesiadke na turbobasic XL.
konkretnie chodziło mi o wyzerowanie zmiennej wprowadzonej przez uzytkownika, aby mozna było na jej zmiennej podstawic inną.
tez slyszalem, ze TB jest lepszy od standardoego, alke - niestety nie posiadam zadnych publikaji na jego temat- wiec z koniecznosci ucze sie z tego, co mam :(
No to nie musisz zerowć. Po INPUT A$, wprowadzać tekst, odczytujesz a po ponownym INPUT A$, poprzednie "dane" znikają z A$ a w ich miejsce wprowadzone zostaja nowe znaki
no to tutaj u mnie jes kiszka, i pojawia sie w takiej sytuacji blad nr 9. Co jest dosc dziwne, bo o ile wiem, mowi on o braku deklaracji.
Bo aby używać zmiennych tekstowych nalezy przed ich użyciem zadeklarować chęć ich uzywania np. tak:
DIM A$(100) i teraz INPUT A$. Zadeklarowana zmienna A$ pomieści 100 znaków
ok, to co tutaj jest źle:
0?CHR$(125)
5 DIM C$(1)
10 INPUT C
15 IF C$="X" THEN END:IF C$="Y" THEN GO TO 0
bo w przypadku X program konczy pracę, ale gdy wcisniemy Y, otrzymujemy blad 9 w linii 5
Tak to jest źle bo w linii 15 następuje skok do linii 5 i ponowne zadeklarowanie zmiennej C$ a ono jest juz zadeklarowana stąd błąd. Ale w linii 10 powinny być INPUT C$ a nie samo C, bo C to zmienna numeryczna a nie tekstowa. Zatem powinno być ...THEN GO TO 10. A poza tym masz źle połączone w jednej linii rozgałęzienie typu IF...
ok, to co tutaj jest źle:
5 DIM C$(1)
15 IF C$="X" THEN END:IF C$="Y" THEN GO TO 0
5 CLR:DIM C$(1)
15 rozbij lepiej na 2 ify jak już ci to napisali, choc cos nasciemniales,
byc moze w innej wersji ci wychodzil blad 9 bo w tej nie ma szans.
Jak wpiszesz "y" to program pojdzie dalej do linii 16+ goto 0 sie nie wykona, bo
jest po warunku ="x" i ="y", a nie po samym ="y".
To samo z INPUT C :P jakbys tam wpisal Y to bys dostal blad, ale
calkiem inny :) bo C to nie jest C$. Zawsze lepiej jednak wklejac
kod a nie przepisywac i zmyłki robić :).
a może zamiast GO TO 0 napisać po prostu RUN ?
Ja bym opuścił "GO TO" i zostawił sam nr linii. Jak wiadomo "goto" świadczy o złym stylu. ;)
Każda metoda jest dobra, niech jest podręcznikowe GO TO bo w maszynówce jest niestylowe JMP :) a wlodo jest na etapie ... ja też chcę to umieć....
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
[ Wygenerowano w 0.073 sekund, wykonano 10 zapytań ]