26.1.. Prikaz sinusoidalne promjene. Napisati program koji prikazuje promjenu naizmjeničnog napona u funkciji vremena (prikazati i y osu).

Opis rješenja: Poslije deklarisanja varijable u matrici se postavljaju vrijednosti koordinatnog sitema (REM koordinatni sistem). Zatima se izračunavaju vrijednosti tri sinusoide i smješta u matricu sin1 (REM koordinate sinusoida ...). Prikaz izračunatih vrijednosti sinusuoida tj. vrijednosti iz matrice se izvodio na kraju (REM ipis na ekran iz matrice). Ispis matrice po x-osi je ograničen sa varijablom t. Ovim se postiže dinamika tj. kako nastaje sinusoida.

Listing programa:

REM 26011330     Nastajanje sinusoide

DIM sin1(25, 36) AS STRING
DIM bod AS STRING
GOSUB 900: REM inicijalizacija
GOSUB 100: REM nove vrijednosti
FOR t = 0 TO 360 STEP 15: REM prikaz po 15 stepeni
    CLS
    GOSUB 100: REM nove vrijednosti
    GOSUB 300: REM prikaz na ekranu
    GOSUB 400: REM kasni
NEXT t
GOTO 990: REM idi na kraj

100 REM koordiantne sinusoide oznaka je x
FOR i = 0 TO t STEP 15: REM nastajanje sinusoide po 15 stepeni
    x = INT(i / 15)
    REM na pozitivne vrijednosti se prvo primjenjuje int pa oduzimanje, dok na negativne se promjeni predznak prije funkcije INT
    IF SIN(i * 4 * ATN(1) / 180) > 0 THEN
        y = max - INT(max * SIN(i * 4 * ATN(1) / 180)): REM koordinate bez pomaka
    ELSE
        y = max + INT(max * (-SIN(i * 4 * ATN(1) / 180))): REM koordinate bez pomaka
    END IF
    sin1(y, x) = "x"
NEXT i
RETURN

300 REM ispis na ekran iz matrice
PRINT "NASTAJANJE SINUSOIDE U FUNKCIJI VREMENA"
PRINT "x osa: ! na 90, 180, 270 i 360 stepeni",
PRINT "y osa: - na -1, -0.5, 0, 0.5, 1"
REM PRINT
FOR i = 0 TO 20
    FOR j = 0 TO 28: REM nacrtaj izracunate vrijednosti
        PRINT sin1(i, j);
    NEXT j
    PRINT
NEXT i
RETURN

400 REM kasnjenje
FOR kas = 1 TO 20000
    FOR kas2 = 1 TO 2000
        tt = tt + 1
    NEXT kas2
NEXT kas
RETURN

900 REM inicijalizacija
REM koordinatni sistem podesavanje memorije za ispis
max = 10
FOR i = 0 TO 20
    FOR j = 0 TO 36
        IF i <> 10 THEN
            sin1(i, j) = " ": REM prazno
        ELSE
            IF j MOD 6 = 0 THEN
                sin1(i, j) = "!": REM 90 stepeni
            ELSE
                sin1(i, j) = "-": REM x osa
            END IF
        END IF
    NEXT j
NEXT i
REM nacrtaj y osu
j = 0
FOR i = 0 TO 20
    IF i MOD 5 = 0 THEN
        sin1(i, j) = "-": REM - na -1, -0.5, 0, 0.5, 1
    ELSE
        sin1(i, j) = "!": REM 90 stepeni
    END IF
NEXT i
RETURN

990 END

Ispis na ekranu:

Index