Primele lecții QBasic

5. Lucrul cu un monitor în modul text

monitor de calculator moderne poate funcționa în două moduri: text și grafică. Quick Basic limbaj de programare, metode pentru afișarea informațiilor pe ecran în ambele moduri.

Luați în considerare ceea ce și modul în care puteți afișa în modul text.

5.1. Gestionarea culorilor în modul text

Operator COLOR tsvet_simvola, tsvet_fona setează culoarea caracterelor afișate și culoarea de fundal sub simbolul.

Culoarea simbolului - este un număr de la 0 la 15, și anume, Simbolul poate fi afișat pe ecran cu una din cele 16 culori.

Culoare de fundal - este un număr de la 0 la 7.

În cazul în care declarația COLOR în program nu este deloc, Quick Basic setează culoarea implicită 7 (alb) pentru simbolul și culoarea 0 (negru) pentru fundal.

Fiecare culoare - este o combinație a celor trei culori primare - roșu, verde și albastru. Fiecare culoare poate fi afișat cu o intensitate redusă sau ridicată (luminozitate).

Am înființat un tabel de culori. Prezența culorii într-o componentă de culoare va celebra unitatea, iar absența acestuia - zero.

În cazul în care o culoare specificată în tabel, se adaugă 16, atunci caracterele vor fi afișate în aceeași culoare, dar, în plus va începe să lumineze intermitent. Astfel, în cazul în care culoarea simbolului este specificat cu o valoare de cod 16-31, vom obține culoarea intermitentă corespunzătoare.

Exemplu: roșu obișnuit - 4; Intermitent - 20.

Sarcină. Descarcă programul PRG.BAS și de a face dungi de diferite culori.

Unele caractere nu sunt atât de ușor de afișare, pur și simplu, deoarece acestea nu sunt pe tastatură. Acest lucru este valabil în special pentru caracterele de desen.

grafica de caractere - sunt caractere pe care le puteți utiliza pentru a desena linii, cutii, și alte elemente grafice în modul text. pseudo-simboluri diferite de personaje obișnuite, care ocupă întreaga lățime (înălțime) de spațiu caracter dat pe ecran. Deci, ei, fiind așezate una lângă alta, îmbinare și formează o linie continuă.

Pentru a afișa un caracter care nu este pe tastatură. trebuie să apăsați tasta Alt și țineți-l cu de altă parte, pentru a introduce codul de caractere (un număr între 0 și 255). (Unele drivere de tastatură au modul de apelare psevdosimvolov.)

Iată câteva coduri de caractere.

Sarcină. Afișează tabelul de simboluri.

Decizie. Prin utilizarea CHR $ obține un caracter specific:

și se deduce imediat declarația de ecran de imprimare. Pentru a se potrivi toate caracterele de pe ecran, aranjați-le într-un tabel 16x16. Noi numerotați rânduri și coloane ale numerelor de masă de la 0 la 15. Apoi, codul de caractere, situându-se la intersecția rândului i-lea și coloana j-a. este egal cu valoarea 16 * i + j. Vom organiza o concluzie de-a lungul liniilor din tabel:

Să ne scrie un program sub numele de TABL.BAS și executați-l. Ecranul va afișa un tabel, dar unele locuri va fi gol - nici o reprezentare grafică pentru aceste coduri. Dar aceasta nu înseamnă că ele nu pot fi utilizate în program! De exemplu, atunci când semnalul sonor, PRINT CHR $ (12) $ (7) din CHR operatorului PRINT distribuit șterge ecranul, PRINT CHR $ (13) se mută cursorul la o nouă linie, etc.

Desigur, cel mai adesea, aceeași procedură se poate face operatori „standard“: BIP - bip, CLS - ecran clar, o pauză de linie se face automat după afișarea (dacă numai la finalul declarației de imprimare nu este un punct și virgulă pentru a suprima newline! ). Uneori, o cunoaștere a codului caracterului este necesar. Este imposibil, de exemplu, pentru a aduce textul PRINT operatorul care conține ghilimele, ca acestea din urmă sunt considerate ca fiind restricții. Pentru a afișa fraza, „Vizionați filme în cinema“ Space ar trebui să scrie un „!“

PRINT „Vizionați filme în cinema“; CHR $ (34); "Space"; CHR $ (34); "!"

PRINT "Vizionați filme în cinema" + CHR $ (34) + "Space" + CHR $ (34) + "!"

Să ne întoarcem la programul TABL.BAS. Deoarece caracterele sunt echivalente cu operatorul cu codul 12 CLS. este șters din imaginea ecranului de caracterul anterior, iar noi nu le-am văzut (cu excepția cazului în modul în care fulgera ceva pe ecran). Inserare, deci verificați condițiile: codul de caractere nu este egal cu 12 (deoarece semnul „nu este egal cu“ nu pe tastatură, atunci este reprezentată de două personaje: <> sau><).

Alocări. Folosind simbolurile pseudo „trage“ de pe rama ecranului, scara, pavilion, gard, etc.

6. Lucrul cu un monitor în modul grafic

În modul grafic elementele minime care pot fi afișate nu este un simbol, și pixel. Un pixel (afișare punct) reprezintă un dreptunghi mic a cărui dimensiuni depind de modul de grafică instalată. Punctul din stânga sus are o coordonată a ecranului (0,0), axa OX este dreapta axei Y O - în jos, adică punctul inferior de pe ecran este, cu atât mai mult coordonata pe axa OY ..

ECRAN operatorul numărului de mod transformă modul de ecran din textul într-un grafic cu numărul specificat. ECRAN În cazul în care operatorul nu este specificat, în modul text. Modul text este numărul 0, deci, dacă doriți să mergeți la modul grafic în text, utilizați ecranul 0. Uneori, atunci când se întorc de la un mod grafic (de exemplu, ecran 7) caractere de text sunt largi. le-a reveni la dimensiunea normală, puteți doar operatorul LATIME 80. Modurile grafice diferă în rezoluția (numărul de „puncte“) a ecranului și numărul de culori posibile.

De exemplu, ECRAN 7 setează rezoluția ecranului de 320 pixeli pe orizontală și 200 de pixeli pe verticală. Poziția unui punct arbitrar de pe ecran este definit prin două numere (x, y) în ecranul sistemului de coordonate. Din coordonatele carteziene, acest sistem este caracterizat prin aceea că axa Oy este îndreptată în jos, nu în sus.

În modul de grafică, adăugarea poate afișa caractere și forme geometrice: puncte, linii, dreptunghiuri, cercuri, etc. forme închise poate fi vopsit.

6.1. Desen puncte și linii

Operatorul PSET (x, y) [, Color] vopsele specifica punctul de culoare al ecranului.

Operatorul LINE (x1, y1) - (x2, y2) [, Color] atrage un segment de linie de puncte de conectare pe ecran cu coordonatele (x1, y1) și (x2, y2)

Operatorul LINE - (x2, y2) [, culoare] trage o linie care leagă ultimul punct al pe ecran cu punctul (x2, y2).

Culoarea în aceste situații este dat un număr de la 0 la 15. În cazul în care culoarea operatorul grafic nu este specificat, toate liniile sunt trase în alb. (Pe ce pot fi colorate în diferite moduri grafice, vor fi discutate mai târziu.)

Exemplu. Pentru a conecta punctele (20, 45) și (38, 144).

Sarcină. Construirea unui ecran de triunghi, dreptunghi, pentagon; desena o casă. Înregistrați programul „Casa“ în fișierul HOUSE.BAS.

6.2. Dreptunghiuri și pătrate

Desenați o casă linii separate - nu e modul cel mai rațional. Este ușor de văzut că casa este un dreptunghi cu acoperișul din cele două segmente. (Deci, trage o casă aproape totul, cu excepția vizionari geniu și artiști profesioniști.) Și poate desena un dreptunghi de un operator de

LINE (x1, y1) - (x2, y2), [Color], B

Această declarație atrage o cutie, un dreptunghi cu laturile paralele cu marginea ecranului. Punctul (x1, y1) și (x2, y2) sunt cele două vârfuri ale dreptunghiului situat pe una dintre diagonalele sale. În cazul în care culoarea lipsește, acesta va fi vopsit cadru alb. (Dar „suplimentar“ virgulă trebuie să rămână!)

Deoarece punctul de ecran sunt dreptunghiuri mici, încercarea de a trage un operator pătrat

LINE (20, 20) - (120, 120). B

nu reușesc. Înălțimea „pătrat“ va fi mai mare decât lățimea, deși ambele părți au același număr de pixeli. Reduceți numărul de pixeli în înălțimea unui „pătrat“ de la 1,2 ori mai mare (pentru 1 SCREEN!) Sau de câte ori crește lățimea de „pătrat“ - numai atunci vom obține un adevărat pătrat. Factorul de corecție se numește „raport de alungire“ pixel.

Operatorul LINE (x1, y1) - (x2, y2), [Color], BF atrage la fel, dar un dreptunghi umplut.

Sarcină. Pentru a desena pe ecran o piramidă de 10 pași-dreptunghiuri.

Decizie. Noi folosim faptul că piramida are simetrie de rotație. Aranjați axa piramidei în mijlocul ecranului. Enumerați dreptunghiuri de sus în jos numerele de la 1 la 10. Este evident că valorile x1, y1, x2, y2 depind de numărul dreptunghiului. Din cauza simetriei, pentru a obține x1, aveți nevoie pentru a scădea de la 160 ceva, și pentru a obține x2 - adaugă aceeași cantitate.

Formează placa auxiliară.

Declarație COLOR în acest mod are propria sintaxă specială:

COLOR tsvet_fona, nomer_palitry

Selectarea culorii de fundal este mult mai bogată - poate fi oricare dintre cele 16 culori majore (0 la 15).

Implicit ECRANUL 1 stabilește prima paletă.

ECRAN 2 specifică rezoluția de 640 pixeli pe orizontală cu 200 de pixeli pe verticală. Acest mod grafic, numai două culori - negru și alb, setați „o dată pentru totdeauna.“ Folosind declarația COLOR în acest mod este incorectă și va determina mesajul de eroare „apelul funcției ilegale“ ( „apel de funcție nevalid“).

înălțime de pixeli în acest mod este mai mare decât de 2,4 ori lățimea acesteia.

ECRAN 7 precizează o rezoluție de 320 pixeli pe orizontală cu 200 pixeli vertical, de aici „raport de alungire“ pixel. ca în ECRANUL 1 este egal cu 1,2 ..

In aceasta si in următoarele moduri de culoare operatorul controlează culoarea liniilor, culoarea și culoarea de fundal a textului ecran caractere. Puteți specifica culoarea de vopsea în fiecare imagine a operatorului (în cazul în care culoarea este omis, atunci linia trasată cu culoarea specificată de declarația COLOR, iar în cazul în care nu există nici un operator de -. Culoarea albă strălucitoare). Declarație de culoare este după cum urmează:

COLOR tsvet_linii, tsvet_fona

Color Line - un număr de 0-15, culoarea de fundal - un număr de la 0 la 7. parametrii setați se aplică la ieșirea de text, dar spre deosebire de modul de text nu poate fi afișat intermitent. În plus, schimbarea culorii de fundal, și acționează asupra textului deja dedus!

ECRAN 8 seturi de 640 pixeli pe orizontală cu 200 de pixeli pe verticală ( „raport de alungire“ = 2,4) și ECRAN 9 - 640 pixeli orizontal cu 350 de pixeli pe verticală. Valoarea curentă „raportul alungire“ în ecranul 9 este egal cu 48/35. care este, practic, egal cu 1,37.

Pentru monitoare, cum ar fi VGA și SVGA sunt alte moduri grafice posibile. Cel mai frecvent utilizat modul ecran 12 cu o rezoluție de 640 pixeli pe orizontală cu 480 de pixeli pe verticală, în care „raportul de alungire“ este exact egală cu 1. Cu toate acestea, în această declarație COLOR stare specifică doar un singur parametru - culoarea liniei (simbol). Culoarea de fond a operatorului nu este dat!

Sarcină. PIRAMIDA.BAS Descărcați programul și a vedea rezultatul luate în considerare în modurile grafice. Faceti o piramida pas de culori diferite. Semnați desen (folosind instrucțiunea COLOR pentru a seta culoarea de fundal și caractere de text).

6.5. Umbrirea regiune arbitrară

În cazul în care ecranul este tras curba închisă, zona poate fi umplut în interiorul acestuia. De asemenea, este posibil să se picteze și regiunea rămasă în afara curbei. În acest scop, operatorul

VOPSEA (x, y), tsvet_zakraski, tsvet_granitsy

Un punct (x, y) trebuie să ajungă în interiorul zonei care urmează să fie de umplere.

În cazul în care limita de „permeabil“, vopseaua se va turna din regiune, chiar dacă gaura este doar un pixel. Același lucru se va întâmpla în cazul în care zona de frontieră conține neatenție bucată de o culoare diferită - vopseaua operatorului este ca o gaură.

Exemplu. Desenați steagul Japoniei - un cerc roșu pe fond alb.