Листинг программы:
Program Kursovaya_rabota_Simonoff;
uses crt, graph;
type pip=array [1..320] of real;
var p:char;
kod1, kod2:integer;
y,c:pip; max,min:real; nmenu,i:integer; menu:array [1..8] of string;
fon, sim, ram:integer;
kart:text;
cvet_fona,cvet_simvola,cvet_tablici:integer;
{------------------------------------------------------}
Procedure Animaciya;
Type SMS=array[1..180] of integer;
var TLT2,SMR2,TLT,SMR:SMS;i,GM,GD:integer;
VAR R,RR:integer;
BEGIN
GD:=DETECT;
GM:=2;
R:=90;
RR:=60;
INITGRAPH (GD, GM, 'a:\bgi');
SETBKCOLOR(15);
CLEARDEVICE;
SETLINESTYLE(0,2,3);
SETCOLOR(1);
RECTANGLE(5,5,635,475);
repeat
FOR I:=1 TO 180 DO BEGIN
SETCOLOR(8);
TLT[I]:=round(R*cos(I*Pi/45));
SMR[I]:=round(R*sin(I*Pi/45));
TLT2[I]:=round(RR*cos(I*Pi/90));
SMR2[I]:=round(RR*sin(I*Pi/90));
Circle(320,240,70);
SETCOLOR(4);
Circle(320-TLT[i],240-SMR[i],20);
SETCOLOR(2);
Circle(320+TLT2[i],240-SMR2[i],10);
SETFILLSTYLE(1,1);
delay(1500);
setcolor(15);
Circle(320+TLT2[i],240-SMR2[i],10);
Circle(320-TLT[i],240-SMR[i],20);
SETFILLSTYLE(1,15);
end;
Until keypressed;
CLOSEGRAPH;
END;
{------------------------------------------------------}
Procedure graphic_funkcii(var y,c:pip; max,min:real);
Var dx,dy:real;
p:char;
i,xx,yy,gd,gm:integer;
Begin
GD:=detect; GM:=2;
InitGraph (GD,GM,'a:\BGI');
SetBkColor (12);
ClearDevice;
Rectangle (5,5,635,475);
SetColor (4);
Line (320,470,320,10);
MoveTo (320,10); LineRel (-10,10);
MoveTo (320,10); LineRel (10,10);
SetTextStyle (1,0,4); OutTextXY (330,5,'Y');
Line (10,240,630,240);
MoveTo (630,240); LineRel (-10,-10);
MoveTo (630,240); LineRel (-10,10);
OutTextXY (600,240,'X');
if abs(max)>abs(min) then dy:=abs(max) else dy:=abs(min);
if abs(c[1])>abs(c[320]) then dx:=abs(c[1]) else dx:=abs(c[320]);
for i:=1 to 320 do begin xx:=320+round((c[i]*310)/dx);
yy:=240-round((y[i]*230)/dy);
if i=1 then moveto(xx,yy) else lineto (xx,yy); end;
p:=readkey;
closegraph;
End;
{-----------------------------------------------------}
Procedure Zastavka(Var kart:text);
Var i:integer;
s:string;
Begin
TextBackGround(cvet_fona);
assign (kart,'a:\more.txt');
reset(kart);
clrscr;
while not eof(kart) do begin readln(kart,s);
writeln(s); end;
close(kart);
readln;
End;
{-----------------------------------------------------}
Procedure tabulaciya (Var y,c:pip);
Var x1,x2,x,dx,k,l,m,n,f:real;
a:integer;
Begin
textbackground(cvet_fona);
Clrscr;
textcolor(cvet_simvola);
Writeln('Vvedite parametri l,m,n,');
Readln(l,m,n);
Writeln('Vvedite nachalnoe znachenie');
Readln(x1);
Writeln('Vvedite konechnoe znachenie');
Readln(x2);
Clrscr;
x:=x1;
dx:=(x2-x1)/319;
k:=1;
For a:=1 to 320 do begin y[a]:=l*(1-n/Exp(abs(x)))*cos(m*x);
c[a]:=x;
x:=x+dx;
k:=k+1;
end;
End;
{-----------------------------------------------------}
Procedure Vibor_cveta;
Begin
Textbackground(cvet_fona);
window(1,1,80,25);
clrscr;
Textcolor(cvet_tablici);
GoToxy(2,1); Write('ЙНННННННННННННННННННЛННННННННН»');
GoToxy(2,2); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,2); Write('Cvet');
Textcolor(cvet_tablici);
GoToxy(22,2); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,2); Write(' Kod ');
Textcolor(cvet_tablici);
GoToxy(32,2); Write('є');
GoToxy(2,3); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,3); Write('Chernii');
Textcolor(cvet_tablici);
GoToxy(22,3); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,3); Write('0');
Textcolor(cvet_tablici);
GoToxy(32,3); Write('є');
GoToxy(2,4); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,4); Write('Sinii');
Textcolor(cvet_tablici);
GoToxy(22,4); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,4); Write('1');
Textcolor(cvet_tablici);
GoToxy(32,4); Write('є');
GoToxy(2,5); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,5); Write('Zelenii');
Textcolor(cvet_tablici);
GoToxy(22,5); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,5); Write('2');
Textcolor(cvet_tablici);
GoToxy(32,5); Write('є');
GoToxy(2,6); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,6); Write('Golyboi');
Textcolor(cvet_tablici);
GoToxy(22,6); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,6); Write('3');
Textcolor(cvet_tablici);
GoToxy(32,6); Write('є');
GoToxy(2,7); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,7); Write('Krasnii');
Textcolor(cvet_tablici);
GoToxy(22,7); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,7); Write('4');
Textcolor(cvet_tablici);
GoToxy(32,7); Write('є');
GoToxy(2,8); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,8); Write('Fioletovii');
Textcolor(cvet_tablici);
GoToxy(22,8); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,8); Write('5');
Textcolor(cvet_tablici);
GoToxy(32,8); Write('є');
GoToxy(2,9); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,9); Write('Corichnevii');
Textcolor(cvet_tablici);
GoToxy(22,9); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,9); Write('6');
Textcolor(cvet_tablici);
GoToxy(32,9); Write('є');
GoToxy(2,10); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,10); Write('Svetlo serii');
Textcolor(cvet_tablici);
GoToxy(22,10); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,10); Write('7');
Textcolor(cvet_tablici);
GoToxy(32,10); Write('є');
GoToxy(2,11); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,11); Write('Temno serii');
Textcolor(cvet_tablici);
GoToxy(22,11); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,11); Write('8');
Textcolor(cvet_tablici);
GoToxy(32,11); Write('є');
GoToxy(2,12); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,12); Write('Svetlo sinii');
Textcolor(cvet_tablici);
GoToxy(22,12); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,12); Write('9');
Textcolor(cvet_tablici);
GoToxy(32,12); Write('є');
GoToxy(2,13); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,13); Write('Svetlo zelenii');
Textcolor(cvet_tablici);
GoToxy(22,13); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,13); Write('10');
Textcolor(cvet_tablici);
GoToxy(32,13); Write('є');
GoToxy(2,14); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,14); Write('Svetlo golyboi');
Textcolor(cvet_tablici);
GoToxy(22,14); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,14); Write('11');
Textcolor(cvet_tablici);
GoToxy(32,14); Write('є');
GoToxy(2,15); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,15); Write('Svetlo krasnii');
Textcolor(cvet_tablici);
GoToxy(22,15); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,15); Write('12');
Textcolor(cvet_tablici);
GoToxy(32,15); Write('є');
GoToxy(2,16); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,16); Write('Svetlo Fioletovii');
Textcolor(cvet_tablici);
GoToxy(22,16); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,16); Write('13');
Textcolor(cvet_tablici);
GoToxy(32,16); Write('є');
GoToxy(2,17); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,17); Write('Gholtii');
Textcolor(cvet_tablici);
GoToxy(22,17); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,17); Write('14');
Textcolor(cvet_tablici);
GoToxy(32,17); Write('є');
GoToxy(2,18); Write('є');
Textcolor(cvet_simvola);
GoToxy(5,18); Write('Belii');
Textcolor(cvet_tablici);
GoToxy(22,18); Write('є');
Textcolor(cvet_simvola);
GoToxy(24,18); Write('15');
Textcolor(cvet_tablici);
GoToxy(32,18); Write('є');
Gotoxy(2,19); Writeln('ИНННННННННННННННННННКНННННННННј');
Readln;
Textcolor(cvet_simvola);
Writeln('Vvedi cvet_fona');
Readln(cvet_fona);
Writeln('Vvedi cvet_simvola');
Readln(cvet_simvola);
Writeln('Vvedi cvet_tablici');
Readln(cvet_tablici);
clrscr;
End;
{------------------------------------------------------}
procedure print_tab (var y,c:pip);
var i,k:integer;
Begin
Window(1,1,80,25);
Textbackground(cvet_fona);
Clrscr;
Textcolor(cvet_tablici);
k:=3;
Gotoxy(2,1);write(' ЙННННННННЛНННННННННННННННННННЛНННННННННННННННННН»');
Gotoxy(2,2);write(' є');
Textcolor(cvet_simvola);
Gotoxy(5,2); write('Elem.');
Textcolor(cvet_tablici);
Gotoxy(13,2); write('є');
Textcolor(cvet_simvola);
Gotoxy(15,2); write('Argument ');
Textcolor(cvet_tablici);
Gotoxy(33,2); write('є');
Textcolor(cvet_simvola);
Gotoxy(35,2); write('Functia');
Textcolor(cvet_tablici);
Gotoxy(52,2); write('є');
Gotoxy(2,3); write (' МННННННННОНННННННННННННННННННОНННННННННННННННННН№');
for i:=1 to 320 do
if i mod 20=0 then begin
k:=k+1;
Textcolor(cvet_tablici);
Gotoxy(4,k); write('є');
Textcolor(cvet_simvola);
Gotoxy(5,k); write (i:3);
Textcolor(cvet_tablici);
Gotoxy(13,k); write('є');
Textcolor(cvet_simvola);
Gotoxy(15,k); write(y[i]:10:2);
Textcolor(cvet_tablici);
Gotoxy(33,k); write('є');
Textcolor(cvet_simvola);
Gotoxy(35,k); write(c[i]:10:2);
Textcolor(cvet_tablici);
Gotoxy(52,k); write('є');
end;
Textcolor(cvet_tablici);
Gotoxy(2,20); write(' ИННННННННКНННННННННННННННННННКННННННННННННННННННј');
Readln;
Clrscr;
End;
{-----------------------------------------------------}
Procedure Extremum (Var y,c:pip; var Ymax,Ymin:real) ;
var i:integer;
Begin
CLRSCR;
Ymax:=Y[1];
Ymin:=Y[1];
For i:=2 to 320 do
begin if y[i]>Ymax then Ymax:=y[i];
if y[i]<Ymin then Ymin:=y[i]; end;
End;
Procedure Print_Extremum (Ymax,Ymin:real);
Begin
Window(1,1,80,25);
Textbackground(cvet_fona);
Clrscr;
Textcolor(cvet_tablici);
Gotoxy(1,2); write('ЙННННННННННННННННННННННННННННННННННННННННННННННН»');
Gotoxy(1,3); write('є');
Textcolor(cvet_simvola);
Gotoxy(3,3); write('Minimalnoe znachenie funkcii:',Ymin:10:2,'');
Textcolor(cvet_tablici);
Gotoxy(49,3); write('є');
Gotoxy(1,4); write('є');
Textcolor(cvet_simvola);
Gotoxy(3,4); write('Maksimalnoe znachenie funkcii:',Ymax:10:2,'');
Textcolor(cvet_tablici);
Gotoxy(49,4); write('є');
Gotoxy(1,5); write('ИНННННННННННННННННННННННННННННННННННННННННННННННј');
Readln;
End;
{-----------------------------------------------------}
Procedure Vivod_imeni (Var y,c:pip);
Var i:integer;
Begin
Clrscr;
Window (1,1,80,25);
TextBackGround (cvet_fona);
Clrscr;
Window (20,6,50,20);
TextBackGround (1);
Clrscr;
Window (19,5,49,19);
TextBackGround (cvet_tablici);
Clrscr;
GoToXY (4,3);textcolor(cvet_simvola);
Writeln (' \\SimonoFF// ');
Writeln (' Sergey ');
Writeln (' ');
Writeln (' ');
Writeln (' ');
Writeln (' gruppa 3102 ');
Writeln (' ');
Writeln (' ');
Writeln (' \\ Samara 2007 //');
Readln;
window(1,1,80,25);
Clrscr;
End;
{-------------------------------------------------------}
Begin
cvet_fona:=4;
cvet_simvola:=14;
cvet_tablici:=7;
Menu[1]:='1. Vibor cveta';
Menu[2]:='2. Tabulaciya funkcii';
Menu[3]:='3. Maksimalnoe i minimalnoe znachenie';
Menu[4]:='4. Grafic';
Menu[5]:='5. Zastavka';
Menu[6]:='6. Vipolnil';
Menu[7]:='7. Individualnoe zadanie';
Menu[8]:='8. Exit';
Nmenu:=1;
fon:=4; sim:=12; ram:=0;
Repeat;
TextBackGround (Fon);
Clrscr;
TextColor (sim);
For i:=1 to 8 do begin GoToXY (20,i+11); Write (menu[i]); end;
begin
TextBackGround (ram);
TextColor (fon);
GoToXY (20,nmenu+11); Write (menu[nmenu]);
kod1:=ord(readkey);
if kod1=0 then begin kod2:=ord(readkey);
if (kod2=80) and (nmenu<9) then nmenu:=nmenu+1;
if (nmenu=9) and (kod2=80) then nmenu:=1;
if (kod2=72) and (nmenu>0) then nmenu:=nmenu-1;
if (kod2=72) and (nmenu=0) then nmenu:=8;
end;
if kod1=13 then begin
if nmenu=1 then begin vibor_cveta; end;
if nmenu=2 then begin tabulaciya (y,c); print_tab (y,c); end;
if nmenu=3 then begin tabulaciya (y,c); extremum (y,c,max,min); print_extremum (max,min); end;
if nmenu=4 then begin tabulaciya (y,c); extremum (y,c,max,min); graphic_funkcii (y,c,max,min); readln;end;
if nmenu=5 then begin zastavka (kart);end;
if nmenu=6 then begin vivod_imeni (y,c); end;
if nmenu=7 then begin animaciya; end;
if nmenu=8 then exit;
end;
end;
until nmenu<0;
End.