ProPlay.ru
  MAIN    NEWS    ARTICLES    TEAMS    DEMOS    VODs    ODDS    TOURNEYS    FORUMS    GALLERIES    SITE   
Русский Китайский
Forget password?
Registration

    Richest users
 ggtt 2664
 Hvostyn 2400
 GopaveC 2000
 rmn1x 2000
 Akon 1958
 razdavalochka 994
 CoolMast 700
 Devostatortk 606
 modify2h 600
 Boevik 400
    Poll

The Internaitonal 2015 был
Лучше предыдуших
Хуже предыдущих
Такой же



    Reports
SLTV StarSeries 6: Репортаж
SLTV StarSeries V: CS Global Offensive
Рейтинг ProPlay.ru: Январь 2013
Fnatic FragOut CS:GO League
SLTV StarSeries #4 CS:GO
SLTV Star Series #3: Репортаж
GosuLeague #3: Репортаж
SLTV Star Series #2: Репортаж
The Premier League Season 2: Репортаж
36ON.RU BATTLE CITY: Плей-офф
Fantasy Football - Евро 2012: Лига ProPlay.ru
Rising Stars Challenge
36ON.RU BATTLE CITY: Групповой этап
FnaticRC CS League: Групповой этап
It's Gosu's Monthly Madness: 2 сезон
36ON.RU BATTLE CITY: 2й квалификационный тур
The Premier League: 2 cезон
Fantasy Football - UEFA Champions League лига ProPlay.ru
36ON.RU BATTLE CITY: 1й квалификационный тур
36ON.RU BATTLE CITY: Составы команд


    Links


    #1   _Xsion_ @ 24.12.08 01:24 [пожаловаться]   
Лабораторная работа № 4. Шаблоны классов и операторные функции.

Рассмотрим множество неотрицательных целых чисел. Двоичным кодом называется сопоставление каждому числу последовательности из нулей и единиц. При этом длины кодовых последовательностей для различных чисел могут быть разными. Рассмотрим какой-либо двоичный код. Обозначим строку из нулей и единиц, сопоставленную числу i за Si. Код называется префиксным, если для любых двух различных чисел i и j последовательность Si не является префиксом Sj (префиксом строки называется строка, получаемая из данной откидыванием любого количества (в том числе и 0) последних символов, например 0, 01 или 0110 являются префиксами строки 0110). Преимуществом префиксного кода является то, что он позволяет при передаче последовательности чисел записывать коды последовательно без разделителей. Например, если ограничиться числами 0 1 2 и 3, префиксным кодом может быть следующий: S0 = 0, S1 = 10, S2 = 110, S3 = 111. Тогда, например, получив последовательность 01101000111, мы однозначно декодируем ее как последовательность 0, 2, 1, 0, 0, 3. Ваше задание заключается в том, чтобы разработать префиксный код, который позволяет закодировать любое неотрицательное целое число.

зы анал не предлагать, кто шарит пишите хотя бы идеи)))
    #3   sluff - wtf @ 24.12.08 01:28 [пожаловаться]   
типа каждому числу n сопоставить полседовательность из n единиц и одного нуля? бред какой то, тупые программеры

Вместо обычного разделителя используется 0
    #4   _Xsion_ @ 24.12.08 01:28 [пожаловаться]   
#2
хи-хи-хи , неплохая попытка но врядли это то! еще идеи?
    #5   otec кс @ 24.12.08 01:33 [пожаловаться]   
хи-хи-хи аффтар хитёр и что-то замышляет Exclamation
    #6   shapo @ 24.12.08 01:35 [пожаловаться]   
№5 Laughing
    #7   Bleiny @ 24.12.08 01:41 [пожаловаться]   
хи-хи-хи Shocked
    #8   father-djoged @ 24.12.08 01:44 [пожаловаться]   
Shocked Shocked Shocked
ЗЫ хи-хи-хи
    #9   Torchic @ 24.12.08 01:45 [пожаловаться]   
спиши Shocked
    #10   Tralivali @ 24.12.08 01:47 [пожаловаться]   
хи-хи-хи
ЗЫ Shocked Shocked Shocked
    #13   r1n @ 24.12.08 02:09 [пожаловаться]   
#12 невротебательскийзнатокнаукособеннопунктуациирусскогоязыка
    #14   Brand @ 24.12.08 02:17 [пожаловаться]   
в условии чтото не сходитсО ( ИМХО )
0 1 2 и 3, префиксным кодом может быть следующий: S0 = 0, S1 = 10, S2 = 110, S3 = 111
число 3 в 2-ой будет 11 как ты его етими штуками представиш ?
а еще 0-лей спереди может быть сколько угодно они роли не играют
З.Ы. не ч0ткое условие
    #15   eralaSHoked @ 24.12.08 02:18 [пожаловаться]   
хи-хи-хи Shocked Shocked Shocked
    #16   SUPERSHAD @ 24.12.08 02:28 [пожаловаться]   
почему S2 не 11?
несоответствие какое. афтар просто так придумывал числа?
З.Ы. не ч0ткое условие
    #17   lollynoob @ 24.12.08 02:33 [пожаловаться]   
хи-хи-хи! каврность афтора не знает пределов каварности!
    #18   Torchic @ 24.12.08 02:35 [пожаловаться]   
в с++ регулярки есть ?
    #19   _Xsion_ @ 24.12.08 02:43 [пожаловаться]   
#18 еще как есть, это получается самая простая. естественно движок сам придумываешь... а вот на это времени уже нету((
    #20   Brand @ 24.12.08 03:17 [пожаловаться]   
>>19
ето ты сам придумал что в С++ есть регулярные выражения? или помог кто ?
    #21   Зубанадюроль @ 24.12.08 03:35 [пожаловаться]   
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

namespace proj1
{
[Serializable()]
public class MetaFigure : Figure
{
public List figures = new List();

[NonSerialized()] public List array;

[NonSerialized()] public int firstX, firstY;

public MetaFigure()
: base(0, 0, 0, 0, 0, false, Color.Black, Color.Black)
{
}

public void MetaFigureSet(int firstX, int firstY, Point ScrP)
{
this.firstX = firstX;
this.firstY = firstY;
this.ScrP = ScrP;
}

// отрисовка остальных фигур
public override void Draw(Graphics g)
{
foreach (Figure f in array)
{
f.ScrP = ScrP;
if (!figures.Contains(f)) f.Draw(g);
}
DrawDash(g);
}

// отрисовка пунктиром
public override void DrawDash(Graphics g)
{
Pen P = new Pen(Color.Black, 1);
P.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
if (figures.Count != 0)
{
g.DrawRectangle(P, getrect());
foreach (Figure f in figures)
f.DrawDash(g);
}
}

// формирование прямоугольника, описывающего данные фигуры
public void InitRectangle()
{
FixOffsets();
if (figures.Count > 0)
{
X1 = figures[0].X1; X2 = figures[0].X2;
Y1 = figures[0].Y1; Y2 = figures[0].Y2;
foreach (Figure f in figures)
{
if (f.X1 < X1) X1 = f.X1; if (f.X2 > X2) X2 = f.X2;
if (f.Y1 < Y1) Y1 = f.Y1; if (f.Y2 > Y2) Y2 = f.Y2;
}
}
}

// определение фигур из заданного списка, попадающих в заданный прямоугольник
// метод 1 - использующий маски фигур
public int FillArrayWithMask(Point p)
{
bool fadded = false;
foreach (Figure f in array)
{
int oldpenSize = f.penSize;
if (f.penSize < 6) f.penSize = 6;
if ((p.X >= (f.X1 - f.penSize / 2)) && (p.Y >= (f.Y1 - f.penSize / 2))
&& (p.X = 0))
{
if ((X2 + offsetX < S.Width) && (Y2 + offsetY < S.Height))
DoMouseMove(g, offsetX, offsetY);
else if ((X2 + offsetX >= S.Width) && (Y2 + offsetY >= S.Height))
DoMouseMove(g, S.Width - X2 - 1, S.Height - Y2 - 1);
else if (X2 + offsetX >= S.Width)
DoMouseMove(g, S.Width - X2 - 1, offsetY);
else if (Y2 + offsetY >= S.Height)
DoMouseMove(g, offsetX, S.Height - Y2 - 1);
}
else if ((X1 + offsetX < 0) && (Y1 + offsetY < 0))
DoMouseMove(g, -X1, -Y1);
else if (X1 + offsetX < 0)
{
if (Y2 + offsetY < S.Height)
DoMouseMove(g, -X1, offsetY);
else
DoMouseMove(g, -X1, S.Height - Y2 - 1);
}
else if (Y1 + offsetY < 0)
{
if (X2 + offsetX < S.Width)
DoMouseMove(g, offsetX, -Y1);
else
DoMouseMove(g, S.Width - X2 - 1, -Y1);
}
}

// сдвиг массива фигур при движении мыши
public override void DoMouseMove(Graphics g, int X2, int Y2)
{
foreach (Figure f in figures)
{
f.offsetX = offsetX = X2;
f.offsetY = offsetY = Y2;
}
Draw(g);
}

public override void FixOffsets()
{
foreach (Figure f in array)
f.FixOffsets();
base.FixOffsets();
}


public override void AlignFigure(int offsetX, int offsetY)
{
offsetX = X1; X1 = 0; X2 -= offsetX;
offsetY = Y1; Y1 = 0; Y2 -= offsetY;
foreach (Figure f in figures)
f.AlignFigure(offsetX, offsetY);
}

public override void ReturnFigure(int offsetX, int offsetY)
{
foreach (Figure f in figures)
f.ReturnFigure(offsetX, offsetY);
X1 = offsetX; X2 += offsetX; offsetX = 0;
Y1 = offsetY; Y2 += offsetY; offsetY = 0;
}

public void ClearArray()
{
figures = new List();
}

public void DeleteSelected()
{
foreach (Figure f in figures)
array.Remove(f);
ClearArray();
}

public void CopyToBuff(IntPtr handle)
{
FixOffsets();

// устанавливаем все фигуры в 0

AlignFigure(offsetX,offsetY);

BinaryFormatter bf = new BinaryFormatter();

// собственный формат
MemoryStream ofms = new MemoryStream();

bf.Serialize(ofms, this);

// metafile
Graphics gr2 = Graphics.FromHwndInternal(IntPtr.Zero);
IntPtr dc = gr2.GetHdc();

Metafile mf = new Metafile(dc, EmfType.EmfOnly);

Graphics grm = Graphics.FromImage(mf);

foreach (Figure f in figures)
f.Draw(grm);

gr2.Dispose();
grm.Dispose();

// сбрасываем полученные данные в буфер
ClipboardMetafileHelper.PutEnhMetafileOnClipboard(handle, mf.GetHenhmetafile(), ofms);

// возвращаем фигуры на места
ReturnFigure(offsetX,offsetY);
}



}
}
    #22   Brand @ 24.12.08 03:57 [пожаловаться]   
>>21
А до-диез(С#) то тут при чом ?
З.Ы. не читал многа стр0чеГ
    #23   АймДжастШедов @ 24.12.08 04:22 [пожаловаться]   
еба как сессия на jопу давит начинается дурдом на формуе...учится надо уважаемые студенты,а не баб тискать и варку задрачивать.
хи-хи-хи

    Reply
Very Happy Smile Sad Surprised Shocked Confused Cool Laughing Mad Razz Embarassed Crying or Very sad Evil or Very Mad Twisted Evil Rolling Eyes Wink Exclamation Question Idea Arrow

New topic
Unsubscribe

    Event




    Next tourneys

Add tourney


    Last blogs
Online casino (3)
НУЖЕН СОВЕТ БРАБЛЕЯ (14)
СМОКЕРПУП (0)
мои соски упруги, а ваши ... (3)
Записки без смысла [5] (16)
Ф (1)
Я вернулась. Olya (12)

    Random galleries
c1q3: дотка сри

c1q3: Чо за баг в лубимой игре???

heL: pro винни

heL: :shoked: mJe за 2 часа игры))


    Searching a new authors!

ProPlay.ru ищет новых авторов. Прочитайте "Памятку для авторов" и, если заинтересовались, пишите нам miker@proplay.ru


    Links



Rambler's Top100
Яндекс цитирования Rambler's Top100

Copyright © 2006-2007 www.proplay.ru. All rights reserved.
Полное или частичное использование материалов сайта www.proplay.ru возможно только с письменного разрешения редакции.

Нашёл на сайте ошибку? Сообщи редакции!