Objekta kustība tiek panākta to uzzīmējot, īsu brītiņu paturot un zīmējot gabaliņu uz priekšu.
Programma pārslidina riņķa līniju pāri ekrānam no kreisās līdz labajai malai.
uses Graph,Crt; var x,y:integer; begin InitGraph(x,y,''); x:=9; repeat SetColor(1); circle(x,100,10); delay(10); SetColor(0); circle(x,100,10); x:=x+1; until x>GetMaxX-9; readln; CloseGraph; end. |
1. Pauzei izmantosim procedūru dalay no crt moduļa.
5. Centra abscisa sākumā. Rādiuss būs 10. Tāpēc riņķa līnijas kreisās malas abscisa sākumā būs 0.
7. Uzstādām zīmēšanas krāsu.
8. Uzzīmējam riņķīti.
9. Pauze. Ar to varam regulēt kustības ātrumu. Ja pauze būs ļoti maza, mēs riņķiti vispār nepamanīsim.
10.Uzstādām fona krāsu.
11.Uzzīmējam riņķīti fona krāsā, t.i., to izdzēšam.
12.Nākošā centra abscisa. Ja grib ātrāk, var palielināt par vairkiem punktiem.
13.Tā turpinām līdz riņķīša labā mala ir sasniegusi ekrāna labo malu.
Liksim bumbiņai kustēties pa taisnstūra iekšpusi 450 leņķi attiecībā pret tā malu. Sasniedzot malu, bumbiņa pret to atsitīsis un turpinās kustību. Procesu varēs apturēt, nospiežot kādu no tastatūras taustiņiem.
uses Graph,Crt; var x,y,a,b:integer; begin InitGraph(x,y,''); rectangle(20,20,600,500); a:=1;b:=1; randomize; x:=random(500)+70; y:=random(400)+70; repeat SetColor(15); circle(x,y,10); delay(10); SetColor(0); circle(x,y,10); x:=x+a; y:=y+b; if x=589 then a:=-1; if x=31 then a:=1; if y=489 then b:=-1; if y=31 then b:=1; until KeyPressed; readln; CloseGraph; end. |
5. Uzzīmējam taisnstūri.
6. Tās būs virziana vektora koordinātas. Ja a=1, kustība notiek pa labi. Ja a=-1, kustība notiek pa kreisi. Ja b=1, kustība notiek uz leju. Ja b=-1, kustība notiek uz augšu.
Tātad sākumā bumbiņa kustēsies pa labi uz leju.
8.,9. x un y - bubiņas centra koordinātas. Sākumā bumbiņu novietosim gadījuma punktā.
10.Ciklā būs bumbiņas kustības viens solis - pārvietošna vienu punktu uz sāniem un vienu punktu vertikālā virzienā.
11.Bumbiņas krāsa.
12.Uzzīmējam bumbiņu.
13.Pauze.
14.Krāsa dzēšanai.
15.Bumbiņa tiek dzēsta.
16.,17.Aprēķinam bumbiņas centra nākošās koordinātas.
18.Ja sasniegta labā mala, jāmaina virziens uz kreiso pusi.
19.Ja sasniegta kreisā mala, jāmaina virziens uz labo pusi.
20.Ja sasniegta apakšējā mala, jāmaina virziens uz augšu.
21.Ja sasniegta augšējā mala, jāmaina virziens uz leju.
22.Kustība beigsies pēc taustiņa nospiesanas. Funkcija KeyPressed atrodas crt modulī.
Šī programma atrisina kvadrātvienādojumu ax2+bx+c=0.
var a,b,c:integer; D:real; begin writeln('Ievadi kvadrātvienādojuma koeficientus a,b,c:'); readln(a,b,c); D:=b*b-4*a*c; if D<0 then writeln('Vienādojumam sakņu nav') else if D=0 then writeln('x=',-b/(2*a):1:2) else writeln('x1=',(-b-sqrt(D))/(2*a):1:2,' x2=',(-b+sqrt(D))/(2*a):1:2); end. |
4. Dialogs ar lietotāju.
5. Ievadām kavdrātvienādojuma koeficientus.
6. Aprēķinam diskriminantu.
7. Ja diskriminants negatīvs izvadām paziņojumu, ka sakņu nav.
(Šis operators izpleties pa trim rindiņām. Var rakstīt arī vienā. Jārakstā kā uzskatāmāk.)
8. Ja diskriminants ir 0, izvadām vienu sakni.
9. Ja diskriminants lielāks par 0, izvadām 2 saknes.
Uzdevumi
3 R 100 100 50 L 50 20 70 80 R 200 100 20Sastādīt programmu, kas uzzīmē datnē aprakstītos objektus.