ProPlay.ru
  ГЛАВНАЯ    НОВОСТИ    СТАТЬИ    КОМАНДЫ    ДЕМКИ    VOD'ы    СТАВКИ    ТУРНИРЫ    КЛУБЫ    ФОРУМЫ    ГАЛЕРЕИ    РЕКЛАМА    САЙТ   
English Китайский
Забыли пароль?
Регистрация

     Расписание ProPlayTV
Мы ищем стримеров по League of Legends и DOTA2!
    Самые богатые
 ggtt 2664
 Hvostyn 2400
 GopaveC 2000
 rmn1x 2000
 Akon 1958
 razdavalochka 994
 CoolMast 700
 Devostatortk 606
 modify2h 600
 Boevik 400
    События ProPlay.ru

Сезон ставок The International 2015

    Голосование

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



    Counter-Strike: Global Offensive
Counter-Strike: Global Offensive #1
csgo.proplay.ru:27016 0/
Counter-Strike: Global Offensive #2
csgo.proplay.ru:27215 0/
    Репортажи
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: Составы команд





    #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опу давит начинается дурдом на формуе...учится надо уважаемые студенты,а не баб тискать и варку задрачивать.
хи-хи-хи

    Ответить
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

Новая тема
Подписаться

    Партнеры


Турниры ESL


    Нас можно найти тут:
vkontakte ProPlay.ru - Официальная группа
mirc Наш канал в IRC
Facebook Мы в Facebook
Twitter Мы в Twitter

    Будущие турниры

Добавить турнир



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

    Случайные галереи
SPo1LeR[oldschool]: Медведев <3 Зенит

c1q3: Птички яички О_О

WhiteFаng: Susan_Coffey_19

Vab: DeathAdder (3)


    Ищем авторов!

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


    Реклама
Fuse на PC, Psi-Ops: The Mindgate Conspiracy видео, дополнение для SimCity (2013), NoCD для Resistance 3



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

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