<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Два студента пишут лабы &#187; лабы</title>
	<atom:link href="http://www.studcode.ru/archiv/tag/laby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.studcode.ru</link>
	<description>Конспекты лекций, самостоятельные работы по  delphi, с++, php. Курсовые проекты. Все что мы сделали вы можете скачать без проблем!</description>
	<lastBuildDate>Wed, 27 Oct 2010 15:15:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Быстрая сортировка Хоара</title>
		<link>http://www.studcode.ru/archiv/bystraya-sortirovka-xoara-2/</link>
		<comments>http://www.studcode.ru/archiv/bystraya-sortirovka-xoara-2/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 18:40:48 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Лабораторные работы]]></category>
		<category><![CDATA[лабы]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=972</guid>
		<description><![CDATA[Задание: реализовать алгоритм быстрой сортировки Хоара на Delphi.


unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure [...]]]></description>
			<content:encoded><![CDATA[<p><em>Задание</em>: реализовать алгоритм <a href="http://www.studcode.ru/archiv/bystraya-sortirovka-xoara/">быстрой сортировки Хоара</a> на Delphi.</p>
<p><span id="more-972"></span></p>
<pre><code>
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  const N=40;
var
  Form1: TForm1;
  mas: array[1..N] of integer;
implementation

{$R *.dfm}
procedure sort(l, r: integer);
var
  i,j,temp: integer;
  left: boolean;
begin
left:=true;
if (r-l)>=1 then
begin
 i:=l;
 j:=r;

 while i<>j do
   begin
    if left=true then begin
      if mas[i]<=mas[j] then
        begin
         j:=j-1;
        end
      else
        begin
         temp:=mas[i];
         mas[i]:=mas[j];
         mas[j]:=temp;
         inc(i);
         left:=false;
        end;
      end
      else
      begin
      if mas[i]<=mas[j] then
        begin
         inc(i);
        end
      else
        begin
         temp:=mas[i];
         mas[i]:=mas[j];
         mas[j]:=temp;
         j:=j-1;
         left:=true;
        end;
        end;
   end;
sort(l, i-1);
sort(j+1, r);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
begin
randomize;
Label1.Caption:='';
for i:=1 to N do
  begin
   mas[i]:=random(100);
   Label1.Caption:=Label1.Caption+'  '+IntToStr(mas[i]);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
Label2.Caption:='';

sort(1,N);
for i:=1 to N do
  Label2.Caption:=Label2.Caption+'  '+IntToStr(mas[i]);
end;

end.

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/bystraya-sortirovka-xoara-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сортировка. Метод погружения.</title>
		<link>http://www.studcode.ru/archiv/sortirovka-metod-pogruzheniya/</link>
		<comments>http://www.studcode.ru/archiv/sortirovka-metod-pogruzheniya/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 17:21:14 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Дополнительные разделы программировани]]></category>
		<category><![CDATA[Лабораторные работы]]></category>
		<category><![CDATA[лабы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сортировки]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=965</guid>
		<description><![CDATA[Метод основан на сравнении последнего элемента со всеми.
Алгоритм:

понадобится два массива:  исходный(неупорядоченный) и выходной(пустой)
берем первый элемент исходного массива и помещаем в конец выходного
в цикле сравниваем добавленый элемент со всеми, пока он не станет на свое место
повторяем пункт 3 пока в исходном массиве не закончатся элементы



  #include 
  #include


  void add(int *mas[20], int n)
 [...]]]></description>
			<content:encoded><![CDATA[<p>Метод основан на сравнении последнего элемента со всеми.</p>
<p><em>Алгоритм:</em></p>
<ol>
<li>понадобится два массива:  исходный(неупорядоченный) и выходной(пустой)</li>
<li>берем первый элемент исходного массива и помещаем в конец выходного</li>
<li>в цикле сравниваем добавленый элемент со всеми, пока он не станет на свое место</li>
<li>повторяем пункт 3 пока в исходном массиве не закончатся элементы</li>
</ol>
<p><span id="more-965"></span></p>
<pre><code>
  #include <iostream.h>
  #include
<math.h>

  void add(int *mas[20], int n)
    {
     int i,j,*temp;

     for (i=0;i<n;i++)
       cout<<mas[i]<<"   "<<endl;

       j=n-1;
       while ((mas[j]<mas[j-1])|j>0)
         {
          temp=mas[j-1];
          mas[j-1]=mas[j];
          mas[j]=temp;
          --j;
         }
       for (i=0;i<n;i++)
         cout<<mas[i]<<"   "<<endl;

    }

  void main ()
    {

     int   menu, exit;
     int mas[20];
     int n;

     n=0;

     while (exit==0)
       {
	cout << "1   add element"  << endl << "2   exit" << endl;
	cin>>menu;
	switch (menu)
	  {
	   case 1: { cin>>mas[n];  ++n; add(&#038;mas, n);  } ; break;

	   default: exit=1;
	  }
       };

    }

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/sortirovka-metod-pogruzheniya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Закрашивание замкнутых областей.</title>
		<link>http://www.studcode.ru/archiv/zakrashivanie-zamknutyx-oblastej/</link>
		<comments>http://www.studcode.ru/archiv/zakrashivanie-zamknutyx-oblastej/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 17:12:06 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Лабораторные работы]]></category>
		<category><![CDATA[исходники]]></category>
		<category><![CDATA[лабы]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=963</guid>
		<description><![CDATA[Замкнутая область задается границей определенного цвета или цветным пятном.
Простейший алгоритм заполнения называется алгоритм кораеда.
Алгоритм:

Добавить начальную полоску в список
Цикл, пока список не пустой


берем первую точку из списка(удаляем ее)
закрашиваем взятую точку
проверяем 4 точки вокруг и если их цвет не совпадает с цветом границыи она не закрашена, то добавляем ее в список.



unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Classes, [...]]]></description>
			<content:encoded><![CDATA[<p>Замкнутая область задается границей определенного цвета или цветным пятном.</p>
<p>Простейший алгоритм заполнения называется алгоритм <span style="text-decoration: underline;"><strong>кораеда</strong></span>.</p>
<p><em>Алгоритм:</em></p>
<ul>
<li>Добавить начальную полоску в список</li>
<li>Цикл, пока список не пустой</li>
</ul>
<ol>
<li>берем первую точку из списка(удаляем ее)</li>
<li>закрашиваем взятую точку</li>
<li>проверяем 4 точки вокруг и если их цвет не совпадает с цветом границыи она не закрашена, то добавляем ее в список.</li>
</ol>
<p><span id="more-963"></span></p>
<pre><code>
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, jpeg, ExtCtrls, ColorGrd;

type
Stek = ^St;
    St=record
    x,y:integer;
    Next:Stek;
    end;
  TForm1 = class(TForm)
    Image1: TImage;
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    first:stek;{ Public declarations }
    C1,C2:TColor;
    procedure Add (X1,Y1:integer);
    procedure Del (var X1,y1:integer);
  end;
var
  Form1: TForm1;
  MD: boolean;
implementation

{$R *.DFM}

procedure TForm1.Add(X1, Y1: integer);
var
 elem:Stek;
begin
   New (elem);
elem.x:=X1;
elem.y:=Y1;
elem.Next:=first;
first:=elem;
end;

procedure TForm1.Del(var X1, y1: integer);
var
x,y:integer;
elem:Stek;
begin
   if first <> nil then
   begin
   x1:=first.x;
   y1:=first.y;
   elem:=first;
   first:=first.Next;
   dispose (elem);
    end;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var
  X1,y1:integer;
  begin
  if Button=mbleft then
  begin
  MD:=true;
  Image1.Canvas.MoveTo(x,y);
  end
  else
  begin
  c2:=Image1.Canvas.Pixels[x,y];
  c1:=RGB(random(255),random(255),random(255));
  first:=nil;
  Add(x,y);
  while (first <> nil) do
  begin
  Del (x1,y1);
  Image1.Canvas.Pixels[x1,y1]:=C1;
  if (Image1.Canvas.Pixels[x1,y1-1]=C2) then
  Add (x1,Y1-1);
   if (Image1.Canvas.Pixels[x1,y1+1]=C2) then
  Add (X1,Y1+1);
  if (Image1.Canvas.Pixels[x1-1,y1]=C2)then
   Add (x1-1,y1);
  if (Image1.Canvas.Pixels[x1+1,y1]=C2)  then
  Add (x1+1,y1);
  end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
first:=nil;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if MD then
  Image1.Canvas.LineTo(x,y);
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
MD:=false;
end;
end.

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/zakrashivanie-zamknutyx-oblastej/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Фрактальное дерево.</title>
		<link>http://www.studcode.ru/archiv/fraktalnoe-derevo/</link>
		<comments>http://www.studcode.ru/archiv/fraktalnoe-derevo/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 16:54:59 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Лабораторные работы]]></category>
		<category><![CDATA[исходники]]></category>
		<category><![CDATA[лабы]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=961</guid>
		<description><![CDATA[Фрактал &#8211; это графический объект состоящий из множества небольших объектов, каждый из которых выглядит как и сам большой объект.
Задание: нарисовать фрактальное дерево.


unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
  [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Фрактал</strong> &#8211; это графический объект состоящий из множества небольших объектов, каждый из которых выглядит как и сам большой объект.</p>
<p><em>Задание:</em> нарисовать фрактальное дерево.</p>
<p><span id="more-961"></span></p>
<pre><code>
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    //procedure fak(x, y, a, al, be, ga: integer);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  max:integer;  //густота ветвей, самая густая=1, чем больше тем убывает
implementation

{$R *.dfm}

Procedure Draw(x, y : Integer; l, u : real);//рекурсивная процедура рисавания всего изображения
Procedure lineto1(x, y : Integer; l, u : real); //процедура рисования линии по заданным координатам
Begin
   Form1.Canvas.MoveTo(x,y);
   Form1.Canvas.LineTo(Round(x + l * cos(u)), Round(y - l * sin(u)));
End;
Begin
   If l > max then
    Begin
      l := l * 0.7;
      lineto1(x, y, l, u);
      x := Round(x + l * cos(u));
      y := Round(y - l * sin(u));
      Draw(x, y, l, u + pi / strtoint(form1.edit2.text));{Угол поворота 1}
      Draw(x, y, l, u - pi / strtoint(form1.edit3.text));{Угол поворота 2}
   End;
end;
procedure TForm1.Button1Click(Sender: TObject);
var x1,y1,x2,y2:integer;
    a:real;
begin
form1.Canvas.Brush.Color:=clwhite;
form1.Canvas.Rectangle(0, 0, Form1.Width, Form1.Height);
max:=StrToInt(Edit1.Text); //водим число 1,2,3....
x1:=Form1.ClientWidth div 2; //середина формы
y1:=Form1.ClientHeight - 100; //100 пикселей от нижнего края
Draw(x1, y1, Form1.ClientHeight div 3, pi/2)//размер рисунка 2/3 высоты формы, самый оптимальный
end;                                         //угол между ветвями 90 град.

end.

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/fraktalnoe-derevo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ИНТЕРПОЛЯЦИОННЫЙ МНОГОЧЛЕН ЛАГРАНЖА. СХЕМА ЭЙТКЕНА.</title>
		<link>http://www.studcode.ru/archiv/interpolyacionnyj-mnogochlen/</link>
		<comments>http://www.studcode.ru/archiv/interpolyacionnyj-mnogochlen/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 16:50:12 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Лабораторные работы]]></category>
		<category><![CDATA[лабы]]></category>
		<category><![CDATA[лекции]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=956</guid>
		<description><![CDATA[Задание: Вычислить  значения многочлена Лагранжа, аппроксимирующего функцию F(x), заданную своими  значениями yi=F(xi), i:=0..n. Вычисления проводить при x=xi,   i=0,&#8230;,n и при x= (xi   + xi+1)/2,  i=0,&#8230;,n-1.


unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus;

type
  TForm1 = class(TForm)
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
  [...]]]></description>
			<content:encoded><![CDATA[<p><em>Задание</em>: Вычислить  значения многочлена Лагранжа, аппроксимирующего функцию F(x), заданную своими  значениями yi=F(xi), i:=0..n. Вычисления проводить при x=xi,   i=0,&#8230;,n и при x= (xi   + xi+1)/2,  i=0,&#8230;,n-1.</p>
<p><span id="more-956"></span></p>
<pre><code>
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus;

type
  TForm1 = class(TForm)
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  X_i: array [0..100] of real;
  Y_i: array [0..100] of real;
  col: integer;
implementation

{$R *.dfm}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
procedure draw();
var x1:    integer;
    y1:    real;
    q:     real;
    i,j:   integer;
begin
form1.Canvas.MoveTo(0,0);
for x1:=0 to form1.Width do
 begin y1:=0;
  for i:=0 to col-1 do
   begin q:=1;
    for j:=0 to col-1 do
     begin
      if i&lt;&gt;j then
       q:=q*(x1-X_i[j])/(X_i[i]-X_i[j]);
      end;
      y1:=y1+y_i[i]*q;
   end;
form1.Canvas.LineTo(x1,round(y1));
 end;
end;
begin
Canvas.Rectangle(0,0,Form1.Width,Form1.Height);
form1.Canvas.Ellipse(X-2,Y-2,X+2,Y+2);
X_i[col]:=X;
Y_i[col]:=Y;
inc(col);
draw;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
col:=0;
end;
end.
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/interpolyacionnyj-mnogochlen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Графика. Зеркальное отражение.</title>
		<link>http://www.studcode.ru/archiv/grafika-zervalnoe-otrazhenie/</link>
		<comments>http://www.studcode.ru/archiv/grafika-zervalnoe-otrazhenie/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 21:51:54 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[исходники]]></category>
		<category><![CDATA[лабы]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=565</guid>
		<description><![CDATA[Тут как бы и писать особо нечего)
Входных параметров всего два: изображение и булева переменная. Если True, то отображение горизонтальное, иначе вертикальное.

Юзайте на здоровье

procedure FlipBitmap(Bitmap: TBitmap; FlipHor: Boolean);
{Зеркальное отражение изображения.
 Если FlipHor = True, то отражение по горизонтали,
 иначе по вертикали.}
var
  x, y, W, H: Integer;
  Pixel_1, Pixel_2: PRGBTriple;
  MemPixel: TRGBTriple;
begin
  Bitmap.PixelFormat [...]]]></description>
			<content:encoded><![CDATA[<p>Тут как бы и писать особо нечего)<br />
Входных параметров всего два: изображение и булева переменная. Если True, то отображение горизонтальное, иначе вертикальное.<br />
<span id="more-565"></span><br />
Юзайте на здоровье</p>
<pre><code>
procedure FlipBitmap(Bitmap: TBitmap; FlipHor: Boolean);
{Зеркальное отражение изображения.
 Если FlipHor = True, то отражение по горизонтали,
 иначе по вертикали.}
var
  x, y, W, H: Integer;
  Pixel_1, Pixel_2: PRGBTriple;
  MemPixel: TRGBTriple;
begin
  Bitmap.PixelFormat := pf24Bit;
  W := Bitmap.Width - 1;
  H := Bitmap.Height - 1;
  if FlipHor then {отражение по горизонтали}
    for y := 0 to H do
    begin
      {помещаем оба указателя на строку H:}
      Pixel_1 := Bitmap.ScanLine[y];
      Pixel_2 := Bitmap.ScanLine[y];
      {помещаем второй указатель в конец строки:}
      Inc(Pixel_2, W);
      {цикл идёт только до середины строки:}
      for x := 0 to W div 2 do
      begin
        {симметричные точки обмениваются цветами:}
        MemPixel := Pixel_1^;
        Pixel_1^ := Pixel_2^;
        Pixel_2^ := MemPixel;
        Inc(Pixel_1); {смещаем указатель вправо}
        Dec(Pixel_2); {смещаем указатель влево}
      end;
    end
  else {отражение по вертикали}
    {цикл идёт только до средней строки:}
    for y := 0 to H div 2 do
    begin
      {помещаем первый указатель на строку H,
       а второй на строку симметричную H:}
      Pixel_1 := Bitmap.ScanLine[y];
      Pixel_2 := Bitmap.ScanLine[H - y];
      for x := 0 to W do
      begin
        {симметричные точки обмениваются цветами:}
        MemPixel := Pixel_1^;
        Pixel_1^ := Pixel_2^;
        Pixel_2^ := MemPixel;
        Inc(Pixel_1); {смещаем указатель вправо}
        Inc(Pixel_2); {смещаем указатель вправо}
      end;
    end;
end;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/grafika-zervalnoe-otrazhenie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Из двух массивов выбрать одинаковые четные числа</title>
		<link>http://www.studcode.ru/archiv/575/</link>
		<comments>http://www.studcode.ru/archiv/575/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 21:50:22 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[лабы]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=575</guid>
		<description><![CDATA[Постановка задачи
Дано. Одномерные массивы. А и В,  каждый  из которых содержит не более 20 элементов целого типа.
Требуется. Разработать программу, которая должна выполнять следующие функции:
1.	Вводить с клавиатуры исходные данные(или формировать исходные массивы А  и  В  случайными числами).  Размерность массивов А  и  В  10 &#8211; 20 элементов
2.	Формировать одномерный [...]]]></description>
			<content:encoded><![CDATA[<p>Постановка задачи<br />
Дано. Одномерные массивы. А и В,  каждый  из которых содержит не более 20 элементов целого типа.<br />
Требуется. Разработать программу, которая должна выполнять следующие функции:<br />
1.	Вводить с клавиатуры исходные данные(или формировать исходные массивы А  и  В  случайными числами).  Размерность массивов А  и  В  10 &#8211; 20 элементов<br />
2.	Формировать одномерный массив С, содержащий те элементы исходных массивов А  и В, которые указаны   в задании. Элементы в массиве   С  не должны повторяться.<br />
3.	Выводить следующую информацию:<br />
число элементов в массиве A;<br />
значения элементов массива A;<br />
число элементов в массиве B;<br />
значения элементов массива B;<br />
результаты работы программы.<br />
Каждая функция программы должны быть оформлена как процедура с параметрами.<br />
Примечание. Дополнительный массив не использовать.</p>
<p><span id="more-575"></span></p>
<p>Алгоритм и текстовые примеры<br />
Основной функцией задачи является create_array_C которой в качестве параметра передаются 2 массива. Функция проверяет элементы массива А на четность (при помощи ф-ии fmod, которая возвращает остаток от деления на число). Следующее условие – проверка на совпадение элементов массива А и В. Если оба условия выполняются начинается цикл и условие проверки повторений элементов массива С. Если элементы совпадают происходит прерывание цикла (точнее двух циклов, $k и $i т.к. оператор break имеет параметр 2, который указывает на количество вложенных циклов которые нужно прервать.</p>
<pre><code>function create_array_C ($array_A, $array_B)
{
$n=0;
for ($i=0; $i&lt;=19; $i++)
 {
     for ($j=0; $j&lt;=19; $j++)
     {
          if  (fmod ($array_A[$i],2) == 0 &amp;&amp; $array_A[$i]==$array_B[$j]) // проверяем на четность и находим смежные елементы
          {
              for($k=0;$k&lt;=$n;$k++)
              {
                  if($array_A[$i]==$array_C[$k]) // проверяем совпадение елементов массива
                  break(2); // в Delphi и С++ такого нет (в C# есть). Параметр 2 означает количество вложенных циклов
              }
              $array_C[$n]=$array_A[$i]; // Заносим элементы в массив С
              echo "$array_C[$n]";
              $n++;
              break;
          }

     }
 }

}
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/575/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Графика. Эффект инея.</title>
		<link>http://www.studcode.ru/archiv/grafika-effekt-ineya/</link>
		<comments>http://www.studcode.ru/archiv/grafika-effekt-ineya/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 21:46:06 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[исходники]]></category>
		<category><![CDATA[лабы]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=559</guid>
		<description><![CDATA[Эффект инея так же может быть исспользована в качестве фильтра для графического редактора. Процедура как бы рассевает пиксили изображения в радиусе Hor, Ver: Integer;, тем самым создается эффект стекла или же инея, кому как удобней 

Пользуйтесь на здоровье&#8230;

procedure Disorder(Bitmap: TBitmap; Hor, Ver: Integer; BackColor: TColor);

  function RandomInRadius(Num, Radius: Integer): Integer;
  begin
   [...]]]></description>
			<content:encoded><![CDATA[<p>Эффект инея так же может быть исспользована в качестве фильтра для графического редактора. Процедура как бы рассевает пиксили изображения в радиусе Hor, Ver: Integer;, тем самым создается эффект стекла или же инея, кому как удобней <img src='http://www.studcode.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
<span id="more-559"></span><br />
Пользуйтесь на здоровье&#8230;</p>
<pre><code>
procedure Disorder(Bitmap: TBitmap; Hor, Ver: Integer; BackColor: TColor);

  function RandomInRadius(Num, Radius: Integer): Integer;
  begin
    if Random(2) = 0 then
      Result := Num + Random(Radius)
    else
      Result := Num - Random(Radius);
  end;

type
  TRGB = record
    B, G, R: Byte;
  end;
  pRGB = ^TRGB;
var
  x, y, WW, HH, xr, yr: Integer;
  Dest1, Dest2, Src1, Src2: PRGB;
  Bmp: TBitmap;
begin
  Randomize;
  Bitmap.PixelFormat := pf24Bit;
  Bmp := TBitmap.Create;
  try
    Bmp.Assign(Bitmap);
    WW := Bitmap.Width - 1;
    HH := Bitmap.Height - 1;
    Bitmap.Canvas.Brush.Color := BackColor;
    Bitmap.Canvas.FillRect(Rect(0, 0, WW + 1, HH + 1));
    for y := 0 to HH do
    begin
      for x := 0 to WW do
      begin
        xr := RandomInRadius(x, Hor);
        yr := RandomInRadius(y, Ver);
        if (xr >= 0) and (xr < WW) and (yr >= 0) and (yr < HH) then
        begin
          Src1 := Bmp.ScanLine[y];
          Src2 := Bmp.ScanLine[yr];
          Dest1 := Bitmap.ScanLine[y];
          Dest2 := Bitmap.ScanLine[yr];
          Inc(Src1, x);
          Inc(Src2, xr);
          Inc(Dest1, x);
          Inc(Dest2, xr);
          Dest1^ := Src2^;
          Dest2^ := Src1^;
        end;
      end;
    end;
  finally
    Bmp.Free;
  end;
end;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/grafika-effekt-ineya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Графика. Эффект блоков.</title>
		<link>http://www.studcode.ru/archiv/grafika-effekt-blokov/</link>
		<comments>http://www.studcode.ru/archiv/grafika-effekt-blokov/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 21:35:13 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[исходники]]></category>
		<category><![CDATA[лабы]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=554</guid>
		<description><![CDATA[В ходе выполнения курсового проекта (Графический редактор) мной был разработан фильтр для преобразования BMP изображений. Данный фильтр позволяет получить эффект блоков. Выполнен он в виде небольшой процедуры, которая работает с блоками пикселей.
Процедуре передается 5 параметров: Bitmap: TBitmap;(наше изображение); Hor, Ver:  Integer;(размеры наших блоков); MaxOffset:  Integer;(на сколько пикселей будем смещать); BackColor:TColor);(цвет, которым будем закрашивать [...]]]></description>
			<content:encoded><![CDATA[<p>В ходе выполнения курсового проекта (Графический редактор) мной был разработан фильтр для преобразования BMP изображений. Данный фильтр позволяет получить эффект блоков. Выполнен он в виде небольшой процедуры, которая работает с блоками пикселей.<br />
Процедуре передается 5 параметров: Bitmap: TBitmap;(наше изображение); Hor, Ver:  Integer;(размеры наших блоков); MaxOffset:  Integer;(на сколько пикселей будем смещать); BackColor:TColor);(цвет, которым будем закрашивать промежутки).<br />
<span id="more-554"></span></p>
<pre><code>
procedure Blocks(Bitmap: TBitmap; Hor, Ver, MaxOffset:
  Integer; BackColor: TColor);
{вырезаем прямоугольники со сторонами Hor Ver
и копируем их в радиусе MaxOffset}

  function RandomInRadius(Num, Radius: Integer): Integer;
  begin
    if Random(2) = 0 then
      Result := Num + Random(Radius)
    else
      Result := Num - Random(Radius);
  end;

var
  x, y, xd, yd: Integer;
  Bmp: TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    Bmp.Assign(Bitmap);
    Bitmap.Canvas.Brush.Color := BackColor;
    Bitmap.Canvas.FillRect(Rect(0, 0, Bitmap.Width, Bitmap.Height));
    xd := (Bitmap.Width - 1) div Hor;
    yd := (Bitmap.Height - 1) div Ver;
    Randomize;
    for x := 0 to xd do
      for y := 0 to yd do
        BitBlt(Bitmap.Canvas.Handle,
          RandomInRadius(Hor * x, MaxOffset),
          RandomInRadius(Ver * y, MaxOffset),
          Hor, Ver, Bmp.Canvas.Handle, Hor * x, Ver * y, SRCCOPY);
  finally
    Bmp.Free;
  end;
end;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/grafika-effekt-blokov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>D-деревья.</title>
		<link>http://www.studcode.ru/archiv/d-derevya/</link>
		<comments>http://www.studcode.ru/archiv/d-derevya/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 22:36:27 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[исходники]]></category>
		<category><![CDATA[лабы]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=582</guid>
		<description><![CDATA[Тема. D-деревья.
Цель: 

изучить устройство и принцип заполнения D-деревьев.
научиться использовать на практике основные алгоритмы по обработке D-деревьев

Ход работы
Разработайте программу в соответствии со следующими требованиями:

 Создание D-дерева (случайное / ручной ввод);
 добавление элемента в D-дерево;
 удаление элемента из D-дерева;
 все операции должны быть наглядно представлены.
 Важно: обязательно соблюдение инварианта!


На форму нужно кинуть только таймер.
Вот собственно код:

unit Unit1;

interface

uses
 [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: underline;"><strong>Тема. </strong></span>D-деревья.<br />
<span style="text-decoration: underline;"><strong>Цель: </strong></span></p>
<ul>
<li>изучить устройство и принцип заполнения D-деревьев.</li>
<li>научиться использовать на практике основные алгоритмы по обработке D-деревьев</li>
</ul>
<p style="text-align: center;"><strong>Ход работы</strong></p>
<p>Разработайте программу в соответствии со следующими требованиями:</p>
<ol>
<li> Создание D-дерева (случайное / ручной ввод);</li>
<li> добавление элемента в D-дерево;</li>
<li> удаление элемента из D-дерева;</li>
<li> все операции должны быть наглядно представлены.</li>
<li> Важно: обязательно соблюдение инварианта!</li>
</ol>
<p><span id="more-582"></span><br />
На форму нужно кинуть только таймер.<br />
Вот собственно код:</p>
<pre><code>
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const D=4;

type TIach=record
  x,y,znach:integer;
end;

var
  Form1: TForm1;
  Ia:array[0..999]of TIach;
  Xc,Yc,Col:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;
begin
randomize;
Ia[0].x:=form1.Width div 2;
Ia[0].Y:=0;
Ia[0].znach:=0;
Col:=1;
Xc:=0;
Yc:=1;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var i,x:integer;
begin
form1.Canvas.FillRect(rect(0,0,form1.Width,form1.Height));
x:=0;
for i:=1 to Col-1 do
  begin
  x:=x+1;
  form1.Canvas.MoveTo(Ia[i].x,Ia[i].y*36+8);
  form1.Canvas.LineTo(Ia[(i-1)div D].x,Ia[(i-1)div D].y*36+8);
  end;

for i:=0 to Col-1 do
  begin
  form1.Canvas.Ellipse(Ia[i].x-16,Ia[i].y*36,Ia[i].x+16,Ia[i].y*36+32);
  form1.Canvas.TextOut(Ia[i].x-4,Ia[i].y*36+12,inttostr(Ia[i].znach));
  end;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var ax,ay,i:integer;
begin
if(Button=mbLeft)then
  begin
  form1.Caption:=inttostr(Xc)+':'+floattostr(power(2,Yc));
  Ia[Col].x:=round(form1.Width/(power(D,Yc)*2)*(Xc*2+1));
  Ia[Col].Y:=Yc;
  Ia[Col].znach:=Col;
  Col:=Col+1;
  Xc:=Xc+1;
  if(Xc>=round(power(D,Yc)))then
    begin
    Yc:=Yc+1;
    Xc:=0;
    end;
  end
else
  begin
  ay:=Y div 32;
  ax:=round( (x-16)/(form1.Width/(power(D,ay))) );
  for i:=round(power(D,ay)-1)+ax to Col-1 do
    Ia[ i ].znach:=Ia[ i+1 ].znach;
  Col:=Col-1;
  Xc:=Xc-1;
  if(Xc<0)then
    begin
    Yc:=Yc-1;
    Xc:=round(power(D,Yc))-1;
    end;
  form1.Caption:=inttostr(ay)+':'+inttostr(ax)+':'+inttostr( round(power(D,ay)-1));
  end;
end;

end.

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/d-derevya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

