Автор |
Помогите сделать "Описание программы" |
Sanal
Пользователь
Сообщений: 9
Зарегистрирован: 06.05.10 |
Опубликовано 03-06-2010 06:53 |
|
|
Вот проги...плиз помогите
http://letitbit.net/download/20159.20b959c1f9919e79b75546051/MGraph.rar.html
http://letitbit.net/download/82415.821f688fc3aed9b9055415f12/Graphs.rar.html
Изменил(а) Sanal, 03-06-2010 06:54 |
|
Автор |
RE: Помогите сделать "Описание программы" |
Kest
Супер Администратор
Сообщений: 226
Зарегистрирован: 01.01.70 |
Опубликовано 03-06-2010 08:44 |
|
|
смотря что ты имеешь ввиду под описанием? Блок схемы могу сделать, или комментарии проставить?
Я знаю, что ничего не знаю, но многие не знают и этого |
|
Автор |
RE: Помогите сделать "Описание программы" |
Sanal
Пользователь
Сообщений: 9
Зарегистрирован: 06.05.10 |
Опубликовано 03-06-2010 09:03 |
|
|
Посмотри здесь как надо сделать...
http://letitbit.net/download/95215.9514096256ffb042918275266/5.doc.html |
|
Автор |
RE: Помогите сделать "Описание программы" |
Kest
Супер Администратор
Сообщений: 226
Зарегистрирован: 01.01.70 |
Опубликовано 03-06-2010 10:37 |
|
|
не скачивается
Я знаю, что ничего не знаю, но многие не знают и этого |
|
Автор |
RE: Помогите сделать "Описание программы" |
Sanal
Пользователь
Сообщений: 9
Зарегистрирован: 06.05.10 |
Опубликовано 03-06-2010 13:04 |
|
|
Дай мыло скину? |
|
Автор |
RE: Помогите сделать "Описание программы" |
Kest
Супер Администратор
Сообщений: 226
Зарегистрирован: 01.01.70 |
Опубликовано 03-06-2010 13:12 |
|
|
Скачал посмотрел ты сам скриншотов проги не можешь сделать? )) нажимай кнопку Prt Scr и вставляй в ворд
Я знаю, что ничего не знаю, но многие не знают и этого |
|
Автор |
RE: Помогите сделать "Описание программы" |
Sanal
Пользователь
Сообщений: 9
Зарегистрирован: 06.05.10 |
Опубликовано 03-06-2010 13:14 |
|
|
Могу!!!нужны коменты.... |
|
Автор |
RE: Помогите сделать "Описание программы" |
Kest
Супер Администратор
Сообщений: 226
Зарегистрирован: 01.01.70 |
Опубликовано 03-06-2010 13:59 |
|
|
Например MGraph, процедура отрисовки графика:
procedure TMainForm.PaintGraphics(Func: string); {рисуем график функции на imgGraphic}
var Xaxis, Yaxis: integer; {положение осей на рисунке} i: integer; workfunc: TE; funcresult,j: Extended;
Bitmap: TBitmap; strDiv: string; strDivPos: integer; XbeginDiv: Extended; flgPaint:boolean;
{преобразователь в тип TPoint}
function ToPoint(const x,y: integer): TPoint; begin Result.X := x; Result.Y := y; end;
begin
// устанавливаем начальные параметры
Self.StatusBar.Panels[0].Text := 'Working...'; Self.StatusBar.Refresh; Bitmap := nil;
try
Bitmap := TBitmap.Create;
Bitmap.Width := Self.FGraphicParam.PaintX+Self.FGraphicParam.Xborder*2;
Bitmap.Height := Self.FGraphicParam.PaintY+Self.FGraphicParam.Yborder*2;
Self.imgGraphic.Picture.Graphic := Bitmap;
Self.imgGraphic.SetBounds(5,5,Bitmap.Width,Bitmap.Height);
finally
Bitmap.Free;
end;
{$IFDEF MSWINDOWS}
Self.imgGraphic.Canvas.Brush.Color := clWhite;
Self.imgGraphic.Canvas.Brush.Style := bsDense4;
{$ELSE}
Self.imgGraphic.Canvas.Brush.Style := bsSolid;
Self.imgGraphic.Canvas.Brush.Color := clSilver;
{$ENDIF}
Self.imgGraphic.Canvas.Pen.Color := clBlack;
Self.imgGraphic.Canvas.Pen.Style := psSolid;
Self.imgGraphic.Canvas.FillRect(Self.imgGraphic.ClientRect);
Self.imgGraphic.Canvas.Rectangle(Self.imgGraphic.ClientRect);
// вычисляем положение координатных осей
Yaxis := -Round(Self.FGraphicParam.Xmin*Self.FGraphicParam.DivX)+Self.FGraphicParam.Xborder;
if Yaxis<Self.FGraphicParam.Xborder then Yaxis := Self.FGraphicParam.Xborder else if Yaxis>Self.FGraphicParam.PaintX+Self.FGraphicParam.Xborder then Yaxis := Self.FGraphicParam.PaintX+Self.FGraphicParam.Xborder;
Xaxis := Round(Self.FGraphicParam.Ymax*Self.FGraphicParam.DivY)+Self.FGraphicParam.Yborder;
if Xaxis<Self.FGraphicParam.Yborder then Xaxis := Self.FGraphicParam.Yborder else if Xaxis>Self.FGraphicParam.PaintY+Self.FGraphicParam.Yborder then Xaxis := Self.FGraphicParam.PaintY+Self.FGraphicParam.Yborder;
// рисуем оси координат
Self.imgGraphic.Canvas.Brush.Color := clBlack; Self.imgGraphic.Canvas.Brush.Style := bsDense4;
{X}
Self.imgGraphic.Canvas.MoveTo(Self.FGraphicParam.Xborder, Xaxis); Self.imgGraphic.Canvas.LineTo(Self.GraphicParam.PaintX+Self.FGraphicParam.Xborder, Xaxis);
Self.imgGraphic.Canvas.Polygon([ToPoint(Self.GraphicParam.PaintX+Self.FGraphicParam.Xborder, Xaxis), ToPoint(Self.GraphicParam.PaintX+Self.FGraphicParam.Xborder-16, Xaxis-4), ToPoint(Self.GraphicParam.PaintX+Self.FGraphicParam.Xborder-15, Xaxis), ToPoint(Self.GraphicParam.PaintX+Self.FGraphicParam.Xborder-16, Xaxis+4)]);
{Y}
Self.imgGraphic.Canvas.MoveTo(Yaxis, Self.FGraphicParam.Yborder); Self.imgGraphic.Canvas.LineTo(Yaxis, Self.GraphicParam.PaintY+Self.FGraphicParam.Yborder);
// Self.imgGraphic.Canvas.Polygon([ToPoint(Yaxis, Self.FGraphicParam.Yborder), ToPoint(Yaxis-Self.GraphicParam.Xborder div 3, 7*Self.FGraphicParam.Yborder div 3), ToPoint(Yaxis, 9*Self.FGraphicParam.Yborder div 4), ToPoint(Yaxis+Self.GraphicParam.Xborder div 3, 7*Self.FGraphicParam.Yborder div 3)]);
Self.imgGraphic.Canvas.Polygon([ToPoint(Yaxis, Self.FGraphicParam.Yborder), ToPoint(Yaxis-4, Self.FGraphicParam.Yborder+16), ToPoint(Yaxis, Self.FGraphicParam.Yborder+15), ToPoint(Yaxis+4, Self.FGraphicParam.Yborder+16)]);
// надписи на осях
Self.imgGraphic.Canvas.Font := Self.FGraphicParam.Font;
i := Xaxis-6-Self.imgGraphic.Canvas.TextHeight(Self.FGraphicParam.Xstr); if i<Self.FGraphicParam.Yborder then i := Xaxis+6;
Self.imgGraphic.Canvas.TextOut(Self.FGraphicParam.Xborder+Self.FGraphicParam.PaintX-Self.imgGraphic.Canvas.TextWidth(Self.FGraphicParam.Xstr),i,Self.FGraphicParam.Xstr);
i := Yaxis+9; if i+Self.imgGraphic.Canvas.TextWidth(Self.FGraphicParam.Ystr)>Self.FGraphicParam.Xborder+Self.FGraphicParam.PaintX then i := Yaxis-9-Self.imgGraphic.Canvas.TextWidth(Self.FGraphicParam.Ystr);
Self.imgGraphic.Canvas.TextOut(i,Self.FGraphicParam.Yborder,Self.FGraphicParam.Ystr);
// рисуем координатную сетку (задается параметрам DivXYstr)
Self.imgGraphic.Canvas.Font := Self.FGraphicParam.FontDivision;
{x}
strDivPos := Self.FGraphicParam.Xborder; XbeginDiv := Self.FGraphicParam.Xmin;
if Self.FGraphicParam.DivXstr>Self.tbarDivX.Min then repeat
Self.imgGraphic.Canvas.MoveTo(strDivPos, Xaxis-1); Self.imgGraphic.Canvas.LineTo(strDivPos, Xaxis+1);
Str(XbeginDiv:0:2, strDiv);
if Xaxis+1+Self.imgGraphic.Canvas.TextHeight(strDiv)<Self.FGraphicParam.Yborder+Self.FGraphicParam.PaintY
then Self.imgGraphic.Canvas.TextOut(strDivPos, Xaxis+1, strDiv)
else Self.imgGraphic.Canvas.TextOut(strDivPos, Xaxis-1-Self.imgGraphic.Canvas.TextHeight(strDiv), strDiv);
Inc(strDivPos, Round(Self.imgGraphic.Canvas.TextWidth(strDiv)+Self.imgGraphic.Canvas.TextWidth(strDiv)*(Self.tbarDivX.Position/(Self.tbarDivX.Max-Self.tbarDivX.Min))));
XbeginDiv := Self.FGraphicParam.Xmin+(Self.FGraphicParam.Xmax-Self.FGraphicParam.Xmin)*(strDivPos-Self.FGraphicParam.Xborder)/Self.FGraphicParam.PaintX;
until strDivPos>Self.FGraphicParam.PaintX-Self.FGraphicParam.Xborder;
{y}
strDivPos := Self.FGraphicParam.Yborder+Self.FGraphicParam.PaintY; XbeginDiv := Self.FGraphicParam.Ymin;
if Self.FGraphicParam.DivYstr>Self.tbarDivY.Min then repeat
Self.imgGraphic.Canvas.MoveTo(Yaxis-1, strDivPos); Self.imgGraphic.Canvas.LineTo(Yaxis+1, strDivPos);
Str(XbeginDiv:0:2, strDiv);
if Yaxis+4+Self.imgGraphic.Canvas.TextWidth(strDiv)<Self.FGraphicParam.PaintX+Self.FGraphicParam.Xborder
then Self.imgGraphic.Canvas.TextOut(Yaxis+4, strDivPos-Self.imgGraphic.Canvas.TextHeight(strDiv) div 2, strDiv)
else Self.imgGraphic.Canvas.TextOut(Yaxis-Self.imgGraphic.Canvas.TextWidth(strDiv)-4, strDivPos-Self.imgGraphic.Canvas.TextHeight(strDiv) div 2, strDiv);
Dec(strDivPos, Round(Self.imgGraphic.Canvas.TextHeight(strDiv)+Self.imgGraphic.Canvas.TextHeight(strDiv)*(Self.tbarDivY.Position/(Self.tbarDivY.Max-Self.tbarDivY.Min))));
XbeginDiv := Self.FGraphicParam.Ymax-(Self.FGraphicParam.Ymax-Self.FGraphicParam.Ymin)*(strDivPos-Self.FGraphicParam.Yborder)/Self.FGraphicParam.PaintY;
until strDivPos<Self.FGraphicParam.Yborder*2+Self.imgGraphic.Canvas.TextHeight(strDiv);
// рисуем график функции
Self.imgGraphic.Canvas.Pen.Color := clNavy; flgPaint:=false;
if MathematicsFunc.Parse_Line(Func, workfunc) then begin {разлагаем функцию в дерево}
for i:=Self.FGraphicParam.Xborder to Self.FGraphicParam.Xborder+Self.FGraphicParam.PaintX do begin {цикл по всевозможным точкам на рисунке и строим график}
j := Self.FGraphicParam.Xmin+(Self.FGraphicParam.Xmax-Self.FGraphicParam.Xmin)*((i-Self.FGraphicParam.Xborder)/Self.FGraphicParam.PaintX);
if not MathematicsFunc.Count_Func(true, workfunc, j, 0, funcresult) then begin Self.imgGraphic.Canvas.MoveTo(i, Xaxis); flgPaint:=false; Continue; end;
funcresult := -funcresult*Self.FGraphicParam.DivY+Self.FGraphicParam.Ymax*Self.FGraphicParam.DivY+Self.FGraphicParam.Yborder;
if i=Self.FGraphicParam.Xborder
then Self.imgGraphic.Canvas.MoveTo(i, Round(funcresult))
else if (Round(funcresult)<Self.FGraphicParam.Yborder) then Self.imgGraphic.Canvas.MoveTo(i, Self.FGraphicParam.Yborder)
else if (Round(funcresult)>Self.FGraphicParam.Yborder+Self.FGraphicParam.PaintY) then Self.imgGraphic.Canvas.MoveTo(i, Self.FGraphicParam.Yborder+Self.FGraphicParam.PaintY)
else if flgPaint then Self.imgGraphic.Canvas.LineTo(i, Round(funcresult)) else Self.imgGraphic.Canvas.MoveTo(i, Round(funcresult));
flgPaint:=true;
end;
MathematicsFunc.Delete_Tree(workfunc); {освобождаем дерево функции}
end;
// заканчиваем работу
Self.StatusBar.Panels[0].Text := 'Active';
end;
В коде достаточно комментариев
Я знаю, что ничего не знаю, но многие не знают и этого
Изменил(а) Kest, 03-06-2010 14:01 |
|
Автор |
RE: Помогите сделать "Описание программы" |
Kest
Супер Администратор
Сообщений: 226
Зарегистрирован: 01.01.70 |
Опубликовано 03-06-2010 14:03 |
|
|
А программа Graph по проще, в ней тоже есть комментарии:
procedure TForm1.StartBtnClick(Sender: TObject);
var n:cardinal;
m:word;
str:string;
label a;
begin
form1.caption:='Graphics - Расчет точек';
graph:=true;
ram:=true;
xe:=strtofloat(xend.text);
xs:=strtofloat(xstart.text);
if xe<xs then
begin
str:=xend.text;
xend.text:=xstart.text;
xstart.text:=str;
xe:=xe+xs;
xs:=xe-xs;
xe:=xe-xs;
end;
step:=strtofloat(steped.text);
if (step>abs(xe-xs))or(step<0) then
begin
showmessage('Неверный шаг');
exit;
end;
setlength(x,trunc(abs(xe-xs)/step)+1);
setlength(y,trunc(abs(xe-xs)/step)+1);
gauge1.maxvalue:=high(y);
for n:=0 to high(x) do
begin
x[n]:=xs+n*step;
str:=formed.text;
str:=erranalise(str);
a:; //метка для обновления длинны str в цикле
for m:=1 to length(str) do
begin
//подстановка числа вместо x
if ((str[m]='x')or(str[m]='X')){and(x[n]>=0)} then
begin
delete(str,m,1);
insert(floattostr(x[n]),str,m);
goto a;
end;
{ if ((str[m]='x')or(str[m]='X'))and(x[n]<0) then
begin
delete(str,m,1);
insert(floattostr(x[n]),str,m);
str[m]:='~';
goto a;
end;}
end;
//решение функции в точке x
y[n]:=strtofloat(analise(str));
gauge1.progress:=n;
end;
xyminmax;
ris;
end;
Я знаю, что ничего не знаю, но многие не знают и этого |
|
Автор |
RE: Помогите сделать "Описание программы" |
Sanal
Пользователь
Сообщений: 9
Зарегистрирован: 06.05.10 |
Опубликовано 03-06-2010 19:50 |
|
|
Ты меня понил!(((( |
|
Автор |
RE: Помогите сделать "Описание программы" |
Sanal
Пользователь
Сообщений: 9
Зарегистрирован: 06.05.10 |
Опубликовано 03-06-2010 20:05 |
|
|
Это я знаю !!!!что в листенге |
|
Автор |
RE: Помогите сделать "Описание программы" |
Kest
Супер Администратор
Сообщений: 226
Зарегистрирован: 01.01.70 |
Опубликовано 03-06-2010 21:02 |
|
|
Sanal написал:
Могу!!!нужны коменты....
ты писал что тебе нужны комменты, я открыл исходники - там есть комменты
Я знаю, что ничего не знаю, но многие не знают и этого |
|
Автор |
RE: Помогите сделать "Описание программы" |
Sanal
Пользователь
Сообщений: 9
Зарегистрирован: 06.05.10 |
Опубликовано 04-06-2010 11:18 |
|
|
Ты не понил...(((фуф!!! ты же скачал http://letitbit.net/download/95215.9514096256ffb042918275266/5.doc.html
там же Образец...Там вставленые картинки и написано нажимаем туда и что выходит... |
|
Автор |
RE: Помогите сделать "Описание программы" |
Kest
Супер Администратор
Сообщений: 226
Зарегистрирован: 01.01.70 |
Опубликовано 05-06-2010 18:36 |
|
|
тогда тебе нужно обращаться сюда
Я знаю, что ничего не знаю, но многие не знают и этого |
|
Автор |
RE: Помогите сделать "Описание программы" |
PowerBlack
Пользователь
Сообщений: 121
Зарегистрирован: 07.08.22 |
Опубликовано 01-05-2023 17:26 |
|
|
Если вам нравится футбол, как вид спорта и вы уверены в том, что сможете делать 100% прогнозы. Ну или, хоть иногда делать так, чтобы ваша ставка сыграла То конечно же ставьте. Мне больше интересен киберспорт. Когда учился в университете, то даже сам участвовал в соревнованиях по контр страйку. И, между прочим, занимал далеко не последние места. А однажды занят призовое третье место. Я ставлю через 1xbet зеркало 1xbet , а ты какую контору выбрал? Или только планируешь и определяешься? |
|
Автор |
RE: Помогите сделать "Описание программы" |
Seresa
Пользователь
Сообщений: 3
Зарегистрирован: 08.06.23 |
Опубликовано 08-06-2023 11:47 |
|
|
Здесь очень умные люди общаются, я многое не понял! |
|