Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите понять задание к задаче / 3 сообщений из 3, страница 1 из 1
01.06.2013, 10:31
    #38282248
mag_box2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять задание к задаче
Привет всем, есть задание для решения на C#, но я не совсем могу понять условие что от меня хотят

Класс для хранения множества символов. Внутреннее представление может быть массивом байтов (256 байт) или массива битов (32 байта). При этом i -тый байт (бит) содержит информацию о наличии во множестве символа с кодом i .

Точнее вот эту часть не могу понять:
При этом i -тый байт (бит) содержит информацию о наличии во множестве символа с кодом i

Как нибудь это можно перефразировать чтобы я понял , или пример какой нибудь (кусочек кода), а дальше я все сам допишу , спасибо .
...
Рейтинг: 0 / 0
01.06.2013, 12:01
    #38282283
skole
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять задание к задаче
Обрати внимание, как устроена таблица символов, каждому символу соответствует определенный байт (набор битов). Компьютер конвертирует байт в соответствующий печатный символ. Некоторые символы занимают размер больше чем 1 байт, тогда им выделяется дополнительные байты. Для определения такой зависимости 1 байт выделяется под старший или начальный символ, который указывает на то, что знак состоит из нескольких байтов.

Это простое объяснение, в реальности структура кодировочной таблицы сложнее и не всегда состоит из базового 1 байта (8 битов).

По аналогии мы видим, что таблица символов представляет не только массив битов, но и массив байтов. Роль начального символа в твоем задании играет переменная i.
...
Рейтинг: 0 / 0
07.06.2013, 15:12
    #38290441
mag_box2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять задание к задаче
Примерно так, будет соответствовать задаче ?:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
namespace lab10
{

    public class MySymvols
    {
        
        const int _size = 32; // Максимальное значение количества символов
        // Будем хранить маленькие буквы английского алфавита и пунктуацию
        byte[] _symTable;     // Таблица символов
        List<byte> _symList;  // Набор символов
        string _punktStr;     // Для удобного преобразования в стоку
        int[] _punktAsii;     // Для удобного преобразования из строки

        public MySymvols()
        {
            _symList = new List<byte>();
            _punktStr = ".,:;!?";
            _punktAsii = new int[] { 46, 44, 58, 59, 33, 63 };
            SetupSymTable();
        }

        public void SetupSymTable()
        {
            _symTable = new byte[32];

            for (int i = 0; i < _size; i++)
                _symTable[i] = Convert.ToByte(i);
        }

        public void Add(byte sym)
        {
            _symList.Add(sym);
        }

        public void Add(string str)
        {
            foreach (char c in str)
            {
                int b = Convert.ToInt32(c);
                if (b >= 97 && b < 123)
                {
                    b = b - 97;
                    _symList.Add((byte)b);
                }
                else
                {
                    for (int i = 0; i < _punktAsii.Length; i++)
                    {
                        if (b == (byte)_punktAsii[i])
                          _symList.Add((byte)(i + 26));
                    }
                }
            }
        }

        public char Get(int sym)
        {
            if (sym < 0 || sym >= 32)
                return ' ';

            if (sym >= 26)
                return _punktStr[sym - 26];

            char c = Convert.ToChar(sym + 97);
            return c;
        }


        public override string ToString()
        {
            string str = "";

            foreach (byte b in _symList)
                str += Get(b);

            return str;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {

            MySymvols msym2 = new MySymvols();
            msym2.Add("abcdefghijklmnopqrstuvqxyz.,:;!?");
            Console.WriteLine(msym2.ToString());
        }
    }
}
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите понять задание к задаче / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]