Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.01 c
15-1151396003
Nous Mellon_
2006-06-27 12:13
2006.08.06
О летнем отдыхе


3-1148979455
Still Swamp
2006-05-30 12:57
2006.08.06
Поделитесь заголовочным файлом для FireBird Embeded


4-1145342218
max999
2006-04-18 10:36
2006.08.06
Как правильно выбирать шрифты для рисования...


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


8-1137972704
clampo
2006-01-23 02:31
2006.08.06
Как юзать PNG





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский