Programski kod prema 6.1.6 - kosi hitac

 Natrag  Programiranje  Dalje


10 CLS                 ' Naredba za brisanje ekrana
11 CLEAR               ' Naredba za 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.

 Natrag
 Tražila
 Dalje

 Početak
 KAZALO  Informatička abeceda
 
Citiranje ove stranice:
Radić, Drago. " Informatička abeceda " Split-Hrvatska.
{Datum pristupa}. <http://www.informatika.buzdo.com/>.
Copyright © by Drago Radić. Sva prava pridržana. | Odgovornost