RGR(FINAL)
.docОмский Государственный Технический Университет
Кафедра «Информатика и вычислительная техника»
Расчётно-графическая работа
по дисциплине
«Алгоритмические языки и программирование»
Разработал студент
Кондратенко К.Ю.
группа ИВТ-144.
Руководитель проекта
к.т.н. Шафеева О.П.
г. Омск 2004
Содержание
-
Описание задач..............................................................................................3
-
Текст программы............................................................................................-
2.1 Подпрограмма к заданию 3_2................................................................4
2.2 Полная программа с использование подпрограмм……………...…5-9
3. Алгоритм решения (схемы алгоритма)………………………………........-
3.1 Схема алгоритма к подпрограмме 3_2………………………………10
3.2 Программа с использованием подпрограмм.......................................11
4. Графики в Microsoft Excel...………………………………………………..-
4.1 Графики функции к подпрограмме 3_2.............................................12
4.2 Графики функции y:=5*x-exp(x)-2*x*sqrt(x).....................................13
Описание задач.
1. Вычислить значение двух функций F(x)=sqrt(exp(x)-1) и F(x)=x*ln(x)*ln(x) в n точках, равномерно распределённых на интервале (a <= x <= b),
где a=-pi, b=pi.
2. Рассчитать функцию и построить график y:=5*x-exp(x)-2*x*sqrt(x)
3. Начертить графики функций из задачи №1 и сравнить результаты
построения в Excel.
2.Тексты программ
2.1 Подпрограмма к заданию 3_2
Задание:
Вычислить значение двух функций F(x)=sqrt(exp(x)-1) и F(x)=x*ln(x)*ln(x) в n точках, равномерно распределённых на интервале (a <= x <= b),
где a=-pi, b=pi.
Program Lab_3_2;
Const
aa=-pi;
bb=pi;
Var
F1,F2,xt,Dx:real;
Ii,nn:integer;
Begin
Writeln('Введите количество точек и нажмите “Enter” :’);
Readln(nn);
DX:=abs(bb-aa)/(nn-1);
xt:=aa;
writeln(' _____________________________ ');
writeln(' * I * X * F1 * F2 *');
writeln(' *___*________*________*____ ___* ');
For ii:=1 to nn do
Begin
F1:=2-cos(x);
F2:=sqrt((x*x*x*x)+4);
writeln('і', i:3,'і',x:8:3,'і',F1:8:4,'і',F2:8:4,'і');
x:=x+Dx;
End;
writeln(' -------------------------------- ');
End.
2.2 Полная программа с использование подпрограмм
Program RGR; {Кондратенко Кирилл ИВТ - 144}
Uses Graph,Crt;
Const
aa=-pi;
bb=pi;
Procedure Menu;
Var
m:string;
n:byte;
x,xx,xxt,xt,yy,yt,ww,y,yz,dx,F1,F2,Y1,Y2:Real;
a,b,c,i,l,ct,xc,xz,az,bz,ee,ii,nn,ll,zz,xxx,yyy:Integer;
Begin
Clrscr;
TextColor (10);
Closegraph;
Writeln('');
Writeln('');
Writeln('');
Writeln('');
Writeln('****************Расчетно - графическая работа*************');
Writeln('');
Writeln(' 1.Вывод таблицы результатов');
Writeln(' 2.Построить график');
Writeln(' 3.Сведенье о Авторе');
Writeln(' 4.Вывод таблицы результатов и график работы 3_2');
Writeln(' 5. Заставка к расчетно - графической работе')
Writeln(' 6.Выход');
Writeln('');
TextColor (21);
Write ('Введите <1,2,3,4,5> или <6> и нажмите "Enter": ');
Readln(n);
Case n of
1: Begin
TextColor(11);
Closegraph;
Clrscr;
Writeln ('______________________');
Writeln ('| X | Y |');
Writeln ('______________________');
For XC:=1 to 10 do
Begin
ww:=5*xc-exp(xc)-2*xc*sqrt(xc);
Writeln ('|',XC:2,' | ',ww:14:2,' ');
End;
Writeln ('______________________');
Readln;
End;
2: Begin
DetectGraph (a,b);
InitGraph (a,b,'C:\BP\BGI');
SetGraphmode (2);
SetBKcolor(0);
SetColor(4);
SetTextStyle(0,0,1);
line (0,240,640,240);
line (640,240,630,235);
line (640,240,630,245);
line (320,0,320,480);
line (320,0,325,10);
line (320,0,315,10);
OutTextXY (630,225,'x');
OutTextXY (330,0,'y');
m:='654321 123456';
For l:=1 to 13 do
Begin
line (l*50-30,235,l*50-30,245);
OutTextXY (l*50-31,250,m[l]);
If l<=6 then OutTextXY (l*50-38,250,'-');
End;
For l:=1 to 9 do
Begin
line (315,l*50-10,325,L*50-10);
OutTextXY (305,l*50-13,m[l+2]);
If l>=4 then OutTextXY (298,l*50-13,'-');
End;
Readkey;
SetColor(5);
x:=0;
y1:=5*x-exp(x)-2*x*sqrt(x);
MoveTO (Trunc (320+x*50),480-Trunc(240+y1*50));
x:=0.1;
For i:=1 to 100 do
Begin
y1:=5*x-exp(x)-2*x*sqrt(x);
xx:=x-0.1;
yy:=5*xx-exp(xx)-2*xx*sqrt(xx);
xxx:=Trunc((320+x*50)-(320+xx*50));
yyy:=Trunc((240+y1*50)-(240+yy*50));
LineRel(xxx,-yyy);
x:=x+0.1;
End;
Readkey;
CloseGraph;
End;
3: Begin
TextColor (4);
Clrscr;
Writeln('');
Writeln (' Программа разработана Кондратенко Кириллом Юрьевичем ');
Writeln (' стедентом ОмГТУ факультета Автоматизации ');
Writeln (' группы АП - 114 ');
Writeln ('');
Writeln (' г. Омск 2004 год. ');
Readln;
End;
4:Begin
Textcolor (12);
Clrscr;
Writeln('Функция <F1:=2-cos(x)>');
Writeln('Функция <F2:=sqrt(x*x*x*x+4)>');
Writeln('При условии -3,14<=x<=3,14');
Writeln(' Введите количество точек и "Enter": ');
Read(nn);
Dx:=abs(bb-aa)/(nn-1);
Xt:=aa;
Ii:=1;
Writeln(' *-----------------------------------------------------*');
Writeln(' * i * x * F1 * F2 *');
Writeln(' *------*--------------*-------------*----------------*');
Readln;
While xt<=bb+0.01 do
Begin
F1:=2-cos(xt);
F2:=sqrt(xt*xt*xt*xt+4);
Writeln(' *',ii:3,' *',xt:8:2,' *',F1:8:2,' *',F2:8:2,' *');
Xt:=xt+dx;
Ii:=ii+1;
End;
Writeln(' *____*_________*_________*_________*');
Readln;
Detectgraph(ct,ee);
Initgraph(ct,ee,'c:\bp\bgi');
Setgraphmode(2);
Setcolor(3);
Lineto(0,240);
Xxt:=0;
For l:=1 to 640 do
Begin
Xt:=xxt;
Yt:=2-cos(xxt);
Lineto(trunc(xt*30),trunc(yt*30+240));
Xxt:=xxt+dx;
End;
Moveto(0,240);
Setcolor(4);
Xxt:=0;
For l:=1 to 640 do
Begin
Xt:=xxt;
Yt:=sqrt(xt*xt*xt*xt+4);
Lineto(trunc(xt*30),trunc(yt*30+240));
Xxt:=xxt+dx;
End;
Setcolor(15);
Moveto(0,0);
Lineto(0,480);
Readln;
End;
6:Begin
Clrscr;
Writeln ('Спасибо что использовали продукцию ОмГТУ');
Readln;
End;
5: Begin
Detectgraph(at,bt);
Initgraph(at,bt,'C:\Bp\bgi');
Setbkcolor(0);
Setgraphmode(2);
Settextstyle(0,0,10);
Repeat
Yt:=sin(xt)+5;
Putpixel (xt+20,trunc(yt*10)-30,25);
Putpixel (xt+20,trunc(yt*10)+420,25);
Setcolor(random(50));
Outtextxy(100,220,'OmGTU');
Inc(xt,10);
Until keypressed;
Closegraph;
End;
End;
End;
Begin
Menu; End.
4.2 Графики функции y:=5*x-exp(x)-2*x*sqrt(x)