Modulis Crt Spalvos ir jų keitimo procedūros • Free Paskalyje tekstiniame režime, kuriuo iki šiolei naudojomės, spalvos yra numeruojamos skaičiais nuo 0 iki 15 arba naudojamos konstantos. Programose, nusakant spalvą, galima naudotis kaip skaičiais taip ir konstantomis. Tamsios spalvos • Spalva • Numeris • Konstanta • Juoda • 0 • Black • Mėlyna • 1 • Blue • Žalia • 2 • Green • Žydra • 3 • Cyan • Raudona • 4 • Red • Violetinė • 5 • Magenta • Ruda • 6 • Brown • Šviesiai pilka • 7 • LightGray Šviesios spalvos • Spalva • Numeris • Konstanta • Tamsiai pilka • 8 • DarkGray • Šviesiai mėlyna • 9 • LightBlue • Šviesiai žalia • 10 • LightGreen • Šviesiai žydra • 11 • LightCyan • Šviesiai raudona • 12 • LightRed • Šviesiai violetinė • 13 • LightMagenta • Geltona • 14 • Yellow • Balta • 15 • White Tekstiniame režime reikia skirti simbolių ir fono spalvas. Fono spalva tai lyg lapo, ant kurio rašome spalva. Simbolių ir fono spalvas galima parinkti procedūromis: • Tekstiniame režime reikia skirti simbolių ir fono spalvas. Fono spalva tai lyg lapo, ant kurio rašome spalva. Simbolių ir fono spalvas galima parinkti procedūromis: • TextColor(spalva: byte); • TextBackground(spalva: byte); • Procedūroje TextColor spalva yra sveikojo (byte) tipo konstanta (ar reiškinys), kurios reikšmės kinta nuo 0 iki 15. • Jei spalva > 15, tai tekstas mirksės, o spalvos numerį gausime atlikę operaciją spalva mod 16. Naudojant konstantą spalva, nusakyti mirksėjimą sukelsime prie tos konstantos pridėdami žodį Blink. • Procedūroje TextBackground spalva taip pat yra sveikojo (byte) tipo. Jos reikšmės kinta nuo 0 iki 7. Nėra mirksėjimo galimybės. Kai spalva > 7, tai jos reikšmę gausime apskaičiuodami spalva mod 8. Ekranas ir langai • Tekstiniame režime ekraną galime įsivaizduoti kaip stačiakampį, sudarytą iš mažų stačia-kampėlių, į kuriuos yra rašomu simboliai. Ekrano laukas padalintas į 25 eilutes ir 80 stulpelių. Stulpelio (x) ir eilutės (y) numerį galima laikyti stačiakampėlio koordinatėmis. Reiškia x kinta nuo 1 iki 80, o y nuo 1 iki 25. Viršutinio kairiojo stačiakampėlio koordinatės yra (1, 1), o apatinio dešiniojo (80, 25). Tai sudaro kairinę koordinačių sistemą. Ji skiriasi nuo dešininės koordinačių sistemos, kuri naudojama matematikoje ir sudaro tam tikrų nepatogumų. Ekrano valymui naudojama procedūra ClrScr. • Ekrano valymui naudojama procedūra ClrScr. • Langų, kurių kraštinės lygiagrečios ekrano kraštams, piešimui naudojama procedūra Window(x1, y1, x2, y2: byte). • Čia (x1, y1) yra kairiojo viršutinio kampo koordinatės, o (x2, y2) – dešiniojo apatinio kampo koordinatės. Turi būti patenkintos sąlygos, kad 1 ≤ x1 ≤ x2 ≤ 80 ir 1 ≤ y1 ≤ y2 ≤ 25. Ši procedūra apriboja žymeklio veiksmus ekrane, neleisdama jam išeiti už to lango tariamų ribų. • Ši procedūra apriboja žymeklio veiksmus ekrane, neleisdama jam išeiti už to lango tariamų ribų. • Lango nudažymui pasirinkta spalva, reikia atlikti tokią procedūrų seką: • Window(x1, y1, x2, y2); • TextBackground(spalva); • ClrScr; • Procedure langas(x1, y1, x2, y2, s: byte); • begin • Window(x1, y1, x2, y2); • TextBackground(s); • ClrScr; • end; • program langai; • uses crt; • var x1, y1, x2, y2, i, s: byte; • Procedure langas(x1, y1, x2, y2, s: byte); • Begin • Window(x1, y1, x2, y2); • TextBackground(s); • ClrScr; • End; begin • begin • langas(1, 1, 80, 25, 7); • Randomize; • for i := 1 to 20 do • begin • x1 := 1 + Random(30); • y1 := 1 + Random(15); • x2 := x1 + Random(50); • y2 := y1 + Random(10); • s := Random(7); • langas(x1, y1, x2, y2, s); • end; • Readln; • end. program grazesnis; • program grazesnis; • uses crt; • var a: real; • procedure langas(x1, y1, x2, y2, s: byte); • begin • window(x1, y1, x2, y2); • textbackground(s); • clrscr; • end; begin • begin • langas(1, 1, 80, 25, 7); • langas(10,10,20,11,4); • textcolor(2); • write(' n='); • readln(a); • langas(30,10,55,11,2); • textcolor(4); • writeln(' Ats.: sin(',a:4:2, ')= ', sin(a):7:4); • readln; • end. program lenta; • program lenta; • uses crt; • var x, y, s, i, j: byte; • procedure langas(x1, y1, x2, y2, s: byte); • begin • window(x1, y1, x2, y2); • textbackground(s); • clrscr; • end; begin • begin • langas(1, 1, 80, 25, 0); • for i := 1 to 8 do • begin • y :=i * 4; • for j := 1 to 8 do • begin • x := j * 8; • if (i + j) mod 2 =0 • then s:=4 • else s:=2; • langas(x, y, x+7, y+3, s); • end; • end; • readln; • end. Žymeklio valdymas • Funkcijos WhereX ir WhereY grąžina žymeklio koordinates. • Simbolių išvedimui norimoje ekrano vietoje galime pasinaudoti procedūra: • GotoXY(x, y: byte); čia (x, y) – žymeklio koordinatės. Klaviatūros skaitymo funkcijos • Vykdant programą, kai sutinkami sakiniai Read ar ReadLn, programos vykdymas pristabdomas ir laukiama, kol iš klaviatūros bus pateikti kokie nors duomenys. Modulis Crt leidžia pasinaudoti dar dviem funkcijom, kurios reaguoja į klaviatūros klavišų paspaudimus. Tai KeyPressed ir ReadKey. Funkcijos KeyPressed reikšmė yra true, jei koks nors klavišas klaviatūroje buvo paspaustas, kitaip jos reikšmė – false. Funkcijos KeyPressed reikšmė true virsta false įvykdžius funkciją ReadKey. Todėl dažnai šios funkcijos dažnai taikomos greta. • Funkcijos KeyPressed reikšmė yra true, jei koks nors klavišas klaviatūroje buvo paspaustas, kitaip jos reikšmė – false. Funkcijos KeyPressed reikšmė true virsta false įvykdžius funkciją ReadKey. Todėl dažnai šios funkcijos dažnai taikomos greta. • Programos vykdymui pristabdyti naudojome sakinį ReadLn, bet tai galima atlikti ir su ciklo sakiniu t.y.: • Repeat until KeyPressed; Funkcijos Readkey rezultatu yra simbolinio (char) tipo kintamasis, lygus klaviatūros nuspaustam simboliui. Šią funkciją galima panaudoti ir simbolinio tipo duomenų įvedimui iš klaviatūros (įvedamos reikšmės yra nematomos) nespaudžiant klavišo Enter. • Funkcijos Readkey rezultatu yra simbolinio (char) tipo kintamasis, lygus klaviatūros nuspaustam simboliui. Šią funkciją galima panaudoti ir simbolinio tipo duomenų įvedimui iš klaviatūros (įvedamos reikšmės yra nematomos) nespaudžiant klavišo Enter. • Naudojantis funkcija ReadKey, reikia žinoti simbolių ir specialių klavišų kodus. Pastaruosius perskaityti yra sudėtingiau – tenka kreiptis į šią funkciją du kartus. ASCII kodai • Kodas • Simbolis • Kodas • Simbolis • 32 • Tarpas • 41 • ) • 33 • ! • 42 • * • 34 • “ • 43 • + • 35 • # • 44 • , • 36 • $ • 45 • - • 37 • % • 46 • . • 38 • & • 47 • / • 39 • ‘ • 48 – 57 • 0 - 9 • 40 • ( • 58 • : • Kodas • Simbolis • Kodas • Simbolis • 59 • ; • 93 • ] • 60 • • 96 • ` • 63 • ? • 97 – 122 • a – z • 64 • @ • 123 • { • 65 – 90 • A – Z • 124 • | • 91 • [ • 125 • } • 92 • \ • 126 • ~ Specialiuosius klavišus atitinkančių simbolių kodai (* pažymėti simboliai yra išplėstinėje kodų lentelėje) • Kodas • Klavišas • Kodas • Klavišas • 8 • Backsp • 72 • ↑* • 9 • Tab • 80 • ↓* • 13 • Enter • 71 • Home* • 27 • Esc • 79 • End* • 59 – 68 • F1 – F10* • 73 • PgUp* • 133 • F11* • 81 • PgDn* • 134 • F12* • 82 • Ins* • 75 • ←* • 83 • Del* • 77 • →* Išplėstinės kodų lentelės simbolius galime perskaityti du kartus kreipdamiesi į funkciją ReadKey. Pirma kartą paspaudus tokį klavišą funkcijos reikšmė tampa lygi nuliniam simboliui #0 (čia # parašytas vietoj funkcijos chr). Antra kartą kreipiantis į ReadKey gausime išplėstinį to klavišo kodą. • Išplėstinės kodų lentelės simbolius galime perskaityti du kartus kreipdamiesi į funkciją ReadKey. Pirma kartą paspaudus tokį klavišą funkcijos reikšmė tampa lygi nuliniam simboliui #0 (čia # parašytas vietoj funkcijos chr). Antra kartą kreipiantis į ReadKey gausime išplėstinį to klavišo kodą. Klavišų kodus išveda tokia programa: (tarpas baigia programos vykdymą) Programa meniu sudarymui: • program pav; • uses crt; • var ch: char; • procedure langas(x1, y1, x2, y2, s:byte); • begin • window(x1, y1, x2, y2); • textbackground(s); • clrscr • end; • begin • langas(1,1,80,25,1); repeat • repeat • langas(20,5,60,15,5); • gotoxy(1,4); • writeln(' F1 - Pirmas veiksmas'); • writeln(' F2 - Antras veiksmas'); • writeln(' F3 - Trecias veiksmas'); • writeln(' ESC - Pabaiga'); • ch := readkey; • if ch = #0 then begin • begin • ch := readkey; • if ch = #59 then • begin • langas(1,1,80,25,1); • langas(20,10,40,12,4); • gotoxy(4,2); • writeln('Spaudziau F1'); • readln; • end else if ch = #60 then • else if ch = #60 then • begin • langas(1,1,80,25,1); • langas(40,14,60,16,4); • gotoxy(4,2); • writeln('Spaudziau F2'); • readln; • langas(1,1,80,25,1); • end else if ch = #61 then begin • begin • langas(1,1,80,25,1); • langas(10,18,30,20,4); • gotoxy(4,2); • writeln('Spaudziau F3'); • readln; • langas(1,1,80,25,1); • end; • end; • until ch = #27; • end. Ekrane matysime: Garso valdymo procedūros • Garso valdymui galima naudotis procedūromis: • Sound(Hz: word); • NoSound; • Delay(ms: word); • Sound išduoda Hz dažnio garsą, NoSound jį nutraukia, Delay daro ms milisekundžių pauzę. Pastaba: Procedūra Delay gali būti naudojama programoje ir kitiems tikslams, kai reikia ką nors užlaikyti. • Pastaba: Procedūra Delay gali būti naudojama programoje ir kitiems tikslams, kai reikia ką nors užlaikyti. • Aprašant muzikines melodijas, reikia žinoti natas atitinkančius dažnius. Pirmosios oktavos do natos dažnis yra 523,24 hercų. Visų kitų natų dažnius nesunku apskaičiuoti, žinant kad gretimų natų dažnis skiriasi dvylikto laipsnio šaknis iš 2 karto. Akivaizdu, kad tos pačios natos gretimose oktavose dažniai skiriasi du kartus. Pirmos oktavos natų dažnius parodys tokia programa: • program muzika; • uses crt; const d: real = 523.24; • n: array[1 .. 13] of string[5] = • ('do', 'do#', 're', 're#', 'mi', 'fa', 'fa#', • 'sol', 'so#', 'la', 'la#', 'si', 'do'); • var i, k: integer; • begin • for i := 1 to 13 do • begin • sound(round(d)); • delay(500); • nosound; • if i
Šį darbą sudaro 2072 žodžiai, tikrai rasi tai, ko ieškai!
★ Klientai rekomenduoja
Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?
Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!
Norint atsisiųsti šį darbą spausk ☞ Peržiūrėti darbą mygtuką!
Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!
Panašūs darbai
Kiti darbai
Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.
Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.
Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!