Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.06;
Скачать: CL | DM;

Вниз

ВОПРОСЫ АЛГОРИТМОВ!   Найти похожие ветки 

 
crazy_corpse ©   (2006-07-14 15:09) [0]

ПРЕДЛОЖЕНИЕ:
Предлагаю в этом раздельчике писать свои задачи и решения для них, главным здесь будет являться алгоритм решения. Использование каких-то компонентов делфи и вопросы программирования в делфи будет обсуждаться только если это непосредственно может помочь при решении задачи
ПРИЧИНА:
В инете трудно искать алгоритмы некоторых задач, а если здесь начать собирать некоторое подобие задачника то это мне как кажеться будет ничего себе.
ПОЧЕМУ ЗДЕСЬ?
Да потому что тут то все мастера и "вертяться" )). Помогут подскажут.
Еще одним условие или как бы желанием будет улучшение алгоритмов этим мастерами. Надеюсь помогут.


 
Джо ©   (2006-07-14 15:15) [1]

Так алгоритмы чего? Ж:)


 
Vlad ©   (2006-07-14 15:16) [2]


> crazy_corpse ©   (14.07.06 15:09)  

Так тут целый форум этому посвящен, зачем выдлять специальный раздел?


 
DrPass ©   (2006-07-14 15:17) [3]


> Предлагаю в этом раздельчике писать свои задачи и решения
> для них

Ага. Ветка на одном из самых болтливых технических форумов Рунета - самое подходящее место для размещения базы алгоритмов и решений.


 
Джо ©   (2006-07-14 15:19) [4]

Автору: есть такой проект http://algolist.manual.ru


 
unknown ©   (2006-07-14 15:20) [5]

Кладовку и единую базу процедур и ф-й для чего придумывали?


 
crazy_corpse ©   (2006-07-14 15:59) [6]

Вот и первая моя задачка и к ней алгоритмик начнем с малого, прошу все совету по алгоритму писать не укоснительно если они возникают конечно))
Задача
Введите некоторое количество вещественных чисел. Определить произведение минимального и максимального из них.
Решение
Ну как мне кажеться числа надо вводить в массив и потом сортировать его. А как вам? Может надо просто при вводе запоминать минимальный сразу и сравнивать его с последующими? Но как бы то не было пишу алгоритм с массивом.
//процедура ввода массива
//сразу возникает вопрос может можно использовать динамический массив каким то образом?
const
nmax=100;
type
tmy_array=array [1..nmax] of real;
var
a:tmy_array;
n:integer=1;
{$R *.dfm}
// вводим числа
procedure TForm1.VvestiClick(Sender: TObject);
begin
a[n]:=strtofloat(edit1.Text);
n:=n+1;
end;

var
min:real;
imin,s:integer;
i:integer;
procedure TForm1.KonecClick(Sender: TObject);
begin
//n получилась на еденицу больше так что надо бы убрать
n:=n-1;
vvesti.Visible:=false;// убераем кнопочку она нам не нужна больше
//сортировка выбором можно обсудить более "лучший метод" сортировки
 for s:=1 to n-1 do begin
   min:=a[s];
   imin:=s;
   for i:=s+1 to n do
     if a[i]<min then begin
       min:=a[i];
       imin:=i;
     end;
   a[imin]:=a[s];
   a[s]:=min;
 end;
 // Перемножаем первый и последний член
 label1.caption:="Произвдеенеие первого и последнего члена равно "+
 floattostr(a[1])+"*"+floattostr(a[n])+"="+floattostr(a[1]*a[n]);
 //Убираем и эту кнопку показываем кнопку выхода из программы
 close.Visible:=true;//для этого выбираем компоненнт bitbtn на вкладке additional и выставяем свойству kind значение bkclose;
 close.Kind:=bkclose;
 konec.Visible:=false;
end;

Ну вот вроде все. Для примера.


 
crazy_corpse ©   (2006-07-14 16:03) [7]

Удалено модератором


 
crazy_corpse ©   (2006-07-14 16:09) [8]

http://algolist.manual.ru
кстати по этой ссылке действительно можно нарыть много инфы, но ведь задачи решаемы в универах достаточно однообразны, и я хотел просто помочь новичкам ведь имея готовый алгоритм все просто. Да и самому было бы полезно посмотреть да пообсуждать на пригодность и универсальность сами алгоритмы а то на этой ссылке ведь не форум там опфтом то не поделишься.


 
Джо ©   (2006-07-14 16:25) [9]

> а то на этой ссылке ведь не форум там опфтом то не поделишься.

Там есть и форум, зачем дезинформировать?


 
Джо ©   (2006-07-14 16:25) [10]

http://algolist.manual.ru/forum/


 
crazy_corpse ©   (2006-07-14 16:37) [11]

Удалено модератором


 
crazy_corpse ©   (2006-07-14 17:02) [12]

Следующая задача:
Введите некоторое малое число eps>0, имеющее смысл погрешности вычисления (например, 0,001; 0,0005 и т.д.), и число x в пределах 0.5<x<10.5 и вычислите следующее выражение:
y=1+x/1!+x^2/2!+...+x^n/n!+...;
Вычисления прекратите, когда очередное слагаемое станет по модулю меньше, чем eps. Выведите x,y,eps и количество использованных слагаемых.
Поехали!
На формочку кидаем лейблы и едиты которые помогут ам ввести eps, и х, и еще один лейбл для вывода нужной инфы.
Щас вот короче начал писать и возни вопросик, Как проверить правильность ввода в edit вот в этой конкретной задаче:
пишу че то типа

procedure TForm1.Button1Click(Sender: TObject);
begin
 while (eps<0) or (eps<1) do begin
   eps:=strtofloat(edit1.text);
   label1.Caption:="Вы вели eps не из диапазона 0..1. Повторите ввод" ;
 end;
 while (x<0.5) or (x>10.5) do begin
   x:=strtofloat(edit2.Text);
   label2.Caption:="Вы вели х не из диапазона 0,5..10,5. Повторите ввод";
 end;//тут она че то по кругу начала того. В паскале проще в этом смысле
//че надо сделать?
end;


 
Jeer ©   (2006-07-14 17:10) [13]

2006 - 1985 = 6

Нарушаем арифметику.


 
Плохиш ©   (2006-07-14 17:15) [14]


>  end;//тут она че то по кругу начала того. В паскале проще
> в этом смысле

А ты что хотел. Хочешь сказать, что в паскале циклы подругому работают?
А ну живо пошёл азбуку учить.


 
crazy_corpse ©   (2006-07-14 17:37) [15]

ну так может подскажите как правильно и без особых усилий проверить поподает ли число из edit в диапазон?
в паскале то пишу типа в этом цикле readln(eps) к примеру, а здесь так нельзя. Вот и посоветуйте начинающим как получше фисла в программу вводить!


 
Плохиш ©   (2006-07-14 17:41) [16]

В азбуке "Делфи за 21 секунду" всё хорошо расписано.


 
crazy_corpse ©   (2006-07-14 17:45) [17]

где это?


 
crazy_corpse ©   (2006-07-14 17:47) [18]

я конечно понимаю, что точно можно через обработчик события клавиатуры обработать но че то мне кажеться это мутырным так что давайте об этом поговорим.


 
Zeqfreed ©   (2006-07-14 18:08) [19]

Выражение «детский сад в другом месте» было бы как нельзя кстати… Просто мысли в слух, не обращайте внимание, продолжайте.


 
crazy_corpse ©   (2006-07-14 19:25) [20]

Удалено модератором


 
Virgo_Style ©   (2006-07-14 20:18) [21]

Не надо было притворяться, что это не для себя %-)

P.S. Сортировать массив для того, чтобы выбрать минимальный и максимальный элемент??? У-у-у-у... Как все запущено %-)


 
Игорь Шевченко ©   (2006-07-14 22:01) [22]

В любом случае правила читать - оно неплохо.


 
Leonid Troyanovsky ©   (2006-07-14 22:05) [23]


> Игорь Шевченко ©   (14.07.06 22:01) [22]

> В любом случае правила читать - оно неплохо.


And, в частном случае, графоманство - это плохо.

--
Regards, LVT.


 
TUser ©   (2006-07-15 08:08) [24]

crazy_corpse ©   (14.07.06 15:59) [6]
Введите некоторое количество вещественных чисел. Определить произведение минимального и максимального из них.

Да, это трудновато найти в интернете.

crazy_corpse ©   (14.07.06 15:59) [6]
Ну как мне кажеться числа надо вводить в массив и потом сортировать его. А как вам?

Мне так не кажется, т.к. проще и быстрее один раз пробежать по массиву, найдя минимум и максимум. Не за чем его сортировать. Но можешь заюзать один из сотен алгоритмов сортировки, если тебе так проще.

Мой совет автору - решил свои задачи, положи их под сукно на пару недель. Эту пару недель потрать на решение других задач, чуть посложнее. Потом вынимай из-под сукна и думаю - надо их постить на форум или нет.


 
Галинка ©   (2006-07-15 19:11) [25]

Примим правила игры (хотя может это и не правильно).

Проверку правильности ввода я бы сделала не по нажатию кнопки "Считать", а по выходу из самого Едита. т.е. в событии OnExit. и делается она элегантнее в защищенном блоке try ... except.... Типа такого:


procedure Form1.Edit1OnExit(...);
try
eps:=strtofloat(edit1.text);
if (eps<0) or (eps>1) then MyError=EOutOfRange;
except
on EConvertError do MessageBox(0,"Недопустимое знчение !","ОШИБКА",0);
on EOutOfRange do MessageBox(0,"Недопустимое знчение !","ОШИБКА",0);
end;
end;


 
crazy_corpse ©   (2006-07-16 00:08) [26]

[25] Галинка ©   (15.07.06 19:11)
вот это уже обнадеживает)) спасибо ПРОДОЛЖИМ?


 
Footballer ©   (2006-07-16 00:26) [27]

Согласен с Virgo_Style ©   (14.07.06 20:18) [21]

> Не надо было притворяться, что это не для себя %-)


 
Footballer ©   (2006-07-16 00:30) [28]

crazy_corpse ©   (14.07.06 17:02) [12]
тут она че то по кругу начала того. В паскале проще в этом смысле
//че надо сделать?
А надовсего-навсего исправить опечатку!


> while (eps<0) or (eps<1) do begin

while (eps<0) or (eps>1) do begin


 
crazy_corpse ©   (2006-07-16 12:31) [29]

Я не притворялся что это не для себя и в любом случае человек делает все исключительно только для своей пользы. Но не зависимо от этого хотелось бы услышать умные коментарии по алгоритмам. Эти задачи меня попросили решить в PASCAL, я решил там их еще много. Вот для себя то я и хочу узнать как бы это делать побыстрее да получше вот цель превалирующая. Но в то же время уверен что комуто это все таки пригодиться.


 
crazy_corpse ©   (2006-07-16 13:36) [30]

А вот с try.. except.. мне вот что не понятно MyError какого класса он мне выдает ее как неизвестную переменую.


 
Virgo_Style ©   (2006-07-16 13:54) [31]

вероятно, подразумевалось raise EOutOfRange.Create(...)


 
crazy_corpse ©   (2006-07-16 16:51) [32]

Ладно забудем об этой задачке ее портировать на делфи все равно тупо. Вот еще одна задачка:
Написать в одном модуле алгоритм аппроксимации рядом Фурье и всю визуальную работу с ним, че то типа этого вот че я наваял.
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, Buttons;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Label1: TLabel;
   Button1: TButton;
   Button2: TButton;
   Label2: TLabel;
   Edit2: TEdit;
   Button3: TButton;
   Memo1: TMemo;
   Button4: TButton;
   Image1: TImage;
   BitBtn1: TBitBtn;
   Label3: TLabel;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure Button4Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation
const
 nmax=100;// &#236;&#224;&#234;&#241;&#232;&#236;&#224;&#235;&#252;&#237;&#238;&#229; &#234;&#238;&#235;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238; &#242;&#238;&#247;&#229;&#234;
 kmax=5;// &#236;&#224;&#234;&#241;&#232;&#236;&#224;&#235;&#252;&#237;&#238;&#229; &#234;&#238;&#235;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238; &#227;&#224;&#240;&#236;&#238;&#237;&#232;&#234;
var
 n:integer=1;//&#234;&#238;&#235;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238; &#242;&#238;&#247;&#229;&#234;
 k:integer=3;//&#234;&#238;&#235;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238; &#227;&#224;&#240;&#236;&#238;&#237;&#232;&#234;
 y:array [1..nmax] of real; // &#236;&#224;&#241;&#241;&#232;&#226; &#242;&#238;&#247;&#229;&#234; &#234;&#238;&#242;&#238;&#240;&#251;&#229; &#237;&#224;&#228;&#238; &#224;&#239;&#239;&#240;&#238;&#234;&#241;&#232;&#236;&#232;&#240;&#238;&#226;&# 224;&#242;&#252;
 a0:real;//&#239;&#229;&#240;&#226;&#251;&#233; &#247;&#235;&#229;&#237; &#240;&#255;&#228;&#224;
 suma,sumb:array [1..kmax] of real;//&#238;&#241;&#242;&#224;&#235;&#252;&#237;&#251;&#229; &#247;&#235;&#229;&#237;&#251; &#240;&#255;&#228;&#224;
 sa,sb:array [1..kmax] of string;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 label1.Caption:="&#194;&#226;&#229;&#228;&#232;&#242;&#229; "+inttostr(n)+"-&#243;&#254; &#242;&#238;&#247;&#234;&#243; (&#237;&#229; &#225;&#238;&#235;&#229;&#229; "+inttostr(nmax)+" &#242;&#238;&#247;&#229;&#234;)";
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 //&#226;&#226;&#238;&#228;&#232;&#236; &#242;&#238;&#247;&#234;&#232; &#226; &#236;&#224;&#241;&#241;&#232;&#226; &#229;&#241;&#235;&#232; &#232;&#245; &#234;&#238;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238; &#237;&#229; &#239;&#240;&#229;&#226;&#251;&#248;&#224;&#229;&#242; &#236;&#224;&#234;&#241;&#232;&#236;&#224;&#235;&#252;&#237;&#238;&#227;&#238;
 if n<=nmax then begin
   y[n]:=strtofloat(edit1.Text);
   n:=n+1;// &#239;&#240;&#232;&#225;&#251;&#226;&#235;&#255;&#229;&#236; &#242;&#238;&#247;&#234;&#243;
   label1.Caption:="&#194;&#226;&#229;&#228;&#232;&#242;&#229; "+inttostr(n)+"-&#243;&#254; &#242;&#238;&#247;&#234;&#243; (&#237;&#229; &#225;&#238;&#235;&#229;&#229; "+inttostr(nmax)+" &#242;&#238;&#247;&#229;&#234;)";
 end;
 button2.visible:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
//&#243;&#234;&#240;&#224;&#248;&#229;&#237;&#232;&#229;
 label1.Visible:=false;
 edit1.Visible:=false;
 button1.Visible:=false;
 edit2.Visible:=true;
 edit2.Top:=edit1.Top;
 edit2.Left:=edit1.Left;
 label2.Visible:=true;
 label2.Top:=label1.Top;
 label2.Left:=label1.Left;
 label2.Caption:="&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#234;&#238;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238; &#227;&#238;&#240;&#236;&#238;&#237;&#232;&#234; &#240;&#255;&#228;&#224; &#212;&#243;&#240;&#252;&#229; (&#237;&#229; &#225;&#238;&#235;&#229;&#229; "+inttostr(kmax)+")";
 button2.Visible:=false;
 button3.Visible:=true;
 button3.Top:=button1.top;
 button3.Left:=button2.Left;
 button3.Caption:=button1.caption;
 button3.Width:=button1.Width;
 n:=n-1;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
 t:array [1..nmax] of real;
 cs,sn:array [1..kmax,1..nmax] of real;//cos & sin
 i,j:integer;
 sumy,dvan:real;
 st:string;
begin
 k:=strtoint(edit2.text);
 t[1]:=0;
 dvan:=2/n;
 ////////////////////////////////////
 for j:=1 to k do begin
   cs[j,1]:=1;
   sn[j,1]:=0;
 end;
 ///////////////////////////////////
 for i:=2 to n do begin
   t[i]:=t[i-1]+pi/6;
   for j:=1 to k do begin
     cs[j,i]:=cos(j*t[i]);
     sn[j,i]:=sin(j*t[i]);
   end;
 end;
 //////////////////////////////////
 sumy:=0;
 for i:=1 to n do begin
   sumy:=sumy+y[i];
 end;
 a0:=(1/n)*sumy;
 //////////////////////////////////
 for j:=1 to k do begin
   for i:=1 to n do begin
     suma[j]:=suma[j]+dvan*y[i]*cs[j,i];
     sumb[j]:=sumb[j]+dvan*y[i]*sn[j,i];
     str(suma[j]:4:2,sa[j]);
     str(sumb[j]:4:2,sb[j])
   end;
 end;
 i:=1;
 st:=floattostr(a0);
 while i<=k do begin
   st:=st+"+("+sa[i]+")*cos(t)"+"+("+sb[i]+")*sint(t)";
   inc(i);
 end;
 button3.Visible:=false;
 edit2.Visible:=false;
 label2.Visible:=false;
 memo1.Visible:=true;
 memo1.Lines.Add("&#206;&#242;&#247;&#229;&#242;:");
 memo1.Lines.add("&#202;&#238;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238; &#242;&#238;&#247;&#229;&#234;:"+inttostr(n));
 memo1.Lines.Add("&#202;&#238;&#238;&#240;&#228;&#232;&#237;&#224;&#242;&#251; &#242;&#238;&#247;&#229;&#234;:");
 for i:=1 to n do
   memo1.Lines.Add(inttostr(i)+"-&#224;&#255; &#242;&#238;&#247;&#234;&#224;: "+floattostr(y[i]));
 memo1.Lines.Add("&#202;&#238;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238; &#227;&#224;&#240;&#236;&#238;&#237;&#232;&#234;: "+inttostr(k));
 memo1.Lines.Add("&#192;&#237;&#224;&#235;&#232;&#242;&#232;&#247;&#229;&#241;&#2 34;&#238;&#229; &#243;&#240;&#224;&#226;&#237;&#229;&#237;&#232;&#229; &#228;&#235;&#255; &#224;&#239;&#239;&#240;&#238;&#234;&#241;&#232;&#236;&#224;&#246;&#232;&#232;  &#232;&#241;&#241;&#235;&#229;&#228;&#243;&#229;&#236;&#238;&#227;&#238; &#239;&#240;&#238;&#246;&#229;&#241;&#241;&#224; &#240;&#255;&#228;&#238;&#236; &#212;&#243;&#240;&#252;&#229; &#241; "+inttostr(k)+" &#227;&#224;&#240;&#236;&#238;&#237;&#232;&#234;&#224;&#236;&#232;:");
 memo1.Lines.Add(st);
 button4.Visible:=true;
end;


 
crazy_corpse ©   (2006-07-16 16:53) [33]

НЕ получились коментарии ну ладно если че я готов все объяснить
Последняя процедура:procedure TForm1.Button4Click(Sender: TObject);
const
dx=20;
dy=20;
lr=6;
var
//&#228;&#235;&#255; &#241;&#238;&#240;&#242;&#232;&#240;&#238;&#226;&#234;&#232;
i:integer;
min:real;
imin,s:integer;
temp_y:array [1..nmax] of real;
// &#240;&#232;&#241;&#238;&#226;&#224;&#237;&#232;&#229;
WI,HI:integer;
l,v:integer;
drx,dry:integer;
ky:array [1..nmax] of integer;
ymash:real;
//&#227;&#240;&#224;&#244;&#232;&#234;
gx,gy:real;
px,py:longint;
y0:integer;
begin
 memo1.Visible:=false;
 for i:=1 to n do
   temp_y[i]:=y[i];
 ////////////&#232;&#249;&#229;&#236; &#236;&#224;&#234;&#241;&#232;&#236;&#243;&#236;/////////////////
 for s:=1 to n-1 do begin
   min:=temp_y[s];
   imin:=s;
   for i:=s+1 to n do
     if temp_y[i]<min then begin
       min:=temp_y[i];
       imin:=i;
     end;
   temp_y[imin]:=temp_y[s];
   temp_y[s]:=min;
 end;
 ////////////&#238;&#241;&#232;////////////////
 wi:=image1.ClientWidth;
 hi:=image1.ClientHeight;
 l:=wi-2*dx;
 v:=hi-2*dy;
 drx:=round(l/n);
 dry:=drx;
 with image1.canvas do begin
   MoveTo(dx,dy);
   LineTo(dx,dy+v);
   LineTo(dx+l,dy+v);
   while drx<=l do begin
     moveto(dx+drx,dy+v+lr);
     lineto(dx+drx,dy+v-lr);
     drx:=drx+round(l/n);
   end;
   while dry<=v do begin
     moveto(dx-lr,dy+v-dry);
     lineto(dx+lr,dy+v-dry);
     dry:=dry+round(l/n);
   end;
 end;
 ////&#240;&#232;&#241;&#243;&#229;&#236; &#227;&#240;&#224;&#244;&#232;&#234;////////////////////////////////
 drx:=2*round(l/n);
 ymash:=v/temp_y[n];
 for i:=1 to n do
   ky[i]:=round(dy+v-ymash*y[i]);
 image1.Canvas.Brush.Color:=clblack;
 image1.Canvas.Brush.Style:=bssolid;
 for i:=1 to n do begin
   image1.Canvas.Ellipse(drx-2,ky[i]-2,drx+2,ky[i]+2);
   drx:=drx+round(l/n);
 end;
 case k of
   1:begin
       image1.Canvas.MoveTo(dx+round(l/n),dx+v-round(ymash*(a0+suma[1])));
       for px:=1 to l-round(l/n) do begin
         gx:=px*2*pi/(l);
         gy:=a0+suma[1]*cos(gx)+sumb[1]*sin(gx);
         py:=round(dx+v-ymash*gy);
         image1.Canvas.LineTo(px+dx+round(l/n),py);
       end;
   end;
   2:begin
       image1.Canvas.MoveTo(dx+round(l/n),dx+v-round(ymash*(a0+suma[1]+suma[2])));
       for px:=1 to l-round(l/n) do begin
         gx:=px*2*pi/(l);
         gy:=a0+suma[1]*cos(gx)+sumb[1]*sin(gx)+suma[2]*cos(2*gx)+sumb[2]*sin(2*gx);
         py:=round(dx+v-ymash*gy);
         image1.Canvas.LineTo(px+dx+round(l/n),py);
       end;
    end;
   3:begin
       image1.Canvas.MoveTo(dx+round(l/n),dx+v-round(ymash*(a0+suma[1]+suma[2]+suma[3])));
       for px:=1 to l-round(l/n) do begin
         gx:=px*2*pi/(l);
         gy:=a0+suma[1]*cos(gx)+sumb[1]*sin(gx)+suma[2]*cos(gx)+sumb[2]*sin(gx)+suma[3]*cos(3*gx)+suma[4]*sin(3*gx);
         py:=round(dx+v-ymash*gy);
         image1.Canvas.LineTo(px+dx+round(l/n),py);
       end;
   end;
   4:begin
       image1.Canvas.MoveTo(dx+round(l/n),dx+v-round(ymash*(a0+suma[1]+suma[2]+suma[3]+suma[4]+suma[5])) );
       for px:=1 to l-round(l/n) do begin
         gx:=px*2*pi/(l);
         gy:=a0+suma[1]*cos(gx)+sumb[1]*sin(gx)+suma[2]*cos(2*gx)+sumb[2]*sin(2*gx)+suma[3]*cos(3*gx)+sumb[3]*sin(3*gx)+suma[4]*cos(4*gx)+sumb[4]*sin(4*gx);
         py:=round(dx+v-ymash*gy);
         image1.Canvas.LineTo(px+dx+round(l/n),py);
       end;
   end;
   5:begin
       image1.Canvas.MoveTo(dx+round(l/n),dx+v-round(ymash*(a0+suma[1]+suma[2]+suma[3]+suma[4]+suma[5])) );
       for px:=1 to l-round(l/n) do begin
         gx:=px*2*pi/(l);
         gy:=a0+suma[1]*cos(gx)+sumb[1]*sin(gx)+suma[2]*cos(2*gx)+sumb[2]*sin(2*gx)+suma[3]*cos(3*gx)+sumb[3]*sin(3*gx)+suma[4]*cos(4*gx)+sumb[4]*sin(4*gx)+suma[5]*cos(5*gx)+sumb[5]*sin(5*gx);
         py:=round(dx+v-ymash*gy);
         image1.Canvas.LineTo(px+dx+round(l/n),py);
       end;
   end;
 end;
 button4.Visible:=false;
 image1.Canvas.MoveTo(l+dx,dx+v);
 image1.Canvas.LineTo(l+dx-6,dx+v-3);
 image1.Canvas.MoveTo(l+dx,dx+v);
 image1.Canvas.LineTo(l+dx-6,dx+v+3);
 image1.Canvas.MoveTo(dx,dy);
 image1.Canvas.LineTo(dx-3,dy+6);
 image1.Canvas.MoveTo(dx,dy);
 image1.Canvas.LineTo(dx+3,dx+6);
 label3.Visible:=true;
 label3.Caption:="&#195;&#240;&#224;&#244;&#232;&#234; &#224;&#239;&#239;&#240;&#224;&#234;&#241;&#232;&#236;&#232;&#240;&#243;&#254;&# 249;&#229;&#233; &#244;&#243;&#237;&#234;&#246;&#232;&#232; &#241;&#238;&#228;&#229;&#240;&#230;&#224;&#249;&#232;&#233; "+inttostr(k)+" &#227;&#224;&#240;&#236;&#238;&#237;&#232;&#234;";
end;

end.


 
crazy_corpse ©   (2006-07-16 16:54) [34]

Кстати может быть кто подскажет я из делфы код вынимаю ctrl-c сюда вставляю ctrl-v а коменты вон во что превращаються какой тут шрифт надод в делфе поставить чтоб так не было.



Страницы: 1 вся ветка

Текущий архив: 2006.08.06;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.044 c
15-1152723465
Petr V. Abramov
2006-07-12 20:57
2006.08.06
беспредел


15-1152692547
DevilDevil
2006-07-12 12:22
2006.08.06
Быстрая компиляция Builder-a


15-1152401878
SerJaNT
2006-07-09 03:37
2006.08.06
Оборудование


2-1153208432
rebroff
2006-07-18 11:40
2006.08.06
Запрос с извлечением года из даты рождения (InterBase)


15-1152509587
Ega23
2006-07-10 09:33
2006.08.06
С Днём рождения! 9 июля