Programski kod za 6.1.6 - Kosi hitac |
10 CLS ' Brisanje ekrana 11 CLEAR ' Brisanje sadrzaja svih varijabli 12 DEFINT I-K, P 13 DEFLNG L 15 DEFSNG Q-Z 17 CONST CPI = 3.145933 18 CONST CGr = 9.806645 20 REM Od ovog broja nadalje pocinje programski kod 25 SCREEN 0 30 INPUT "Unesi pocetna brzinu tijela:" v IF v = 0 OR v > 1500 THEN PRINT "Pocetna brzina nije u zadanim granicama" PRINT "Unesite vrijednost unutar zadanih!" SLEEP 5 CLS : GOTO 30 END IF 40 INPUT "Unesi vrijednost kuta pod kojim je tijelo izbaceno:" q IF q <= 0 OR q >= 90 THEN CLS PRINT "Kutevi manji od 0 i veci od 90 nemaju smisla." PRINT "Unesite vrijednost unutar zadanih!" SLEEP 5 GOTO 40 ELSE CLS PRINT "Pocetna brzina izbacaja iznosi: " v, "m/s" PRINT "Vrijednost kuta izbacaja tijela iznosi: " q, "stupnjeva" Z = (q * CPI) / 180 Tm = (Z * v * SIN(Z)) / CGr MaxY = (v ^ 2 * (SIN(Z)) ^ 2) / (2 * CGr) MaxX = (v ^ 2 * (SIN(2 * Z))) / CGr PRINT PRINT "Maksimalna visina tijela je: " MaxY; "m" PRINT "Domet kosog hica iznosi: " MaxX; "m" PRINT "Vrijem leta tijela iznosi: " Tm; "sek" PRINT PRINT "Slijedi crtanje krivulje leta" SLEEP 5 END IF 800 GOSUB 1100 900 SLEEP 999 END ' Zavrsetak osnovnog programskog koda 1000 REM Od ovog broja nadalje pocinju pod-programi 1100 SCREEN 0 1150 CLS 1200 t = 0 1250 koef = 5500 ' normalizacija prema velicinu ekrana za najveci x i y 1300 REM Povratak na crtanje x = v * t * COS(Z) y = v * t * SIN(Z) - (CGr * t ^ 2) / 2 px = x / koef py = y / koef IF py >= 23 OR py < 0 OR px < 0 OR px >= 79 THEN GOTO 2000 ELSE LOCATE (24 - py), (2 + px), 0: PRINT "*" END IF t = t + 1: GOTO 1300 2000 RETURN |
U ovom primjeru koristi se programska struktura za nadzor prilikom dodijele vrijednosti varijablama. Nedostaje još dio koji bi nadzirao da li je pritisnuto slovo umjesto znamenke. To se može riješiti uporabom INKEY$ i nadzorom tipki s ucrtanim znamenkama. Naravno da se programski još proširuje ali je stabilniji i robusniji. Dakle za naprednije korištenje uvijek konsultirati RTFM.
Matematika izračunavanja kosog hica nije neki napor ali je veliku problem u ovom jezičkom procesoru priječi iz prikaza s karakterima u grafički prikaz (SCREEN MOD), osobiti na novijim platformama. Zbog toga je za prikaz krivulje iskorišten karakter-mod , te su se rezultati morali obraditi na način da se mogu prikazati u polju od 24×80 karaktera sa zvjezdicama. Čemu služi normalizacija rezultata?
U ovom primjeru u pojedinim naredbenim linijama koriste se i logički operatori. No treba imati na umu da je logička konstrukcija tipa py >= 23 OR py <0 ispravna, a 23 <= py <0 nije.
Citiranje ove stranice: Radić, Drago. " Informatička abeceda " Split-Hrvatska. {Datum pristupa}; https://informatika.buzdo.com/datoteka. Copyright © by Drago Radić. Sva prava pridržana. | Odgovornost |