Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 17
1

Реализация алгоритма M-последовательности

12.12.2017, 14:56. Просмотров 565. Ответов 1
Метки нет (Все метки)


Требуется реализовать M-последовательность, количество чисел задаётся пользователем. Реализуется посредством массива (можно и не массивом) состоящим из 10 элементов (в моём случае) 1000000000, далее требуется взять 6 и 9 элемент массива (если считать с 1 то 7 и 10) и сделать исключающее или между ними, далее в массиве сдвинуть элементы с конца в начало ( пример 9 элемент становится равен 8, а 0 элемент становиться равным 9 и т.д.) после сортировки массива 0-й элемент массива приравнять к результату исключающего ИЛИ между 6 и 9, после это число вывести на экран и так в зависимости от того сколько пользователь введёт чисел. Но данные в массиве почему-то равны 0, ошибку найти не удалось, возможно алгоритм сам по себе плохой.
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
namespace Lab5 
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            
            float s=0;
            byte [] mlength = new byte [10] {1,0,0,0,0,0,0,0,0,0};
           Int32 ct = Convert.ToInt32(textBox1.Text);
           int w = 0;
           int q = 9;
            for (int i=0; i<ct; i++)
            {
                
                s = mlength[6] ^ mlength[9];
                while (q > 0)
                {
                    if (q == 9)
                    {
                        mlength[0] = mlength[9];
                    }
                    
                    mlength[q] = mlength[q - 1]; 
                    q--;
                }
                mlength[0] =Convert.ToByte(s);
                w++;
                if (w < 9)
                {
                    w = 0;
                    foreach (int qq in mlength)
                    {
                        listBox1.Items.Add(qq);
                    }
                }
            }
            
        }
 
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            textBox1.Clear();
            listBox1.Items.Clear();
        }
 
        private void textBox1_PreviewTextInput(object sender, TextCompositionEventArgs e)
        {
            if (!Char.IsDigit(e.Text, 0)) e.Handled = true;
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2017, 14:56
Ответы с готовыми решениями:

Реализация алгоритма цикла
Приветствую! В общем сразу к делу! Метод подключения клиента TCPClient к серверу. Условие...

Реализация алгоритма DES
Помогите исправить ошибку моей реализации DES :(

Реализация математического алгоритма в программу
Здравствуйте уважаемые. Прошу вашей помощи. Пытаюсь Реализовать алгоритм, но не получается, не могу...

Полная реализация алгоритма MD5 с string
Ребят, помогите найти полную реализацию алгоритма MD5, а не встроенную функцию. Ее та сделать проще...

1
8119 / 4390 / 1724
Регистрация: 11.02.2013
Сообщений: 9,351
13.12.2017, 11:45 2
Ты зачем-то в алгоритм намешал контролов, которые там не нужны. Честно говоря, по описанию в Википедии я не совсем понял алгоритм, но описанные тобой действия вот:
Класс Mls
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
static class Mls
{
    public static List<byte> GetSequence(byte[] bytes, int count)
    {
        var result = new List<byte>();
        for (int i = 0; i < count; i++)
        {
            var xor = (byte)(bytes[6] ^ bytes[9]);
            bytes = bytes.ShiftRight();
            bytes[0] = xor;
            result.AddRange(bytes);
        }
        return result;
    }
    /// <summary>
    /// Сдвиг элементов массива от конца к началу
    /// </summary>
    public static T[] ShiftLeft<T>(this T[] array)
    {
        var first = array[0];
        for (int i = 1; i < array.Length; i++)
        {
            array[i - 1] = array[i];
        }
        array[array.Length - 1] = first;
        return array;
    }
    /// <summary>
    /// Сдвиг элементов массива от начала к концу
    /// </summary>
    public static T[] ShiftRight<T>(this T[] array)
    {
        var last = array[array.Length - 1];
        for (int i = array.Length - 2; i >= 0; i--)
        {
            array[i + 1] = array[i];
        }
        array[0] = last;
        return array;
    }
}

И пример:
C#
1
2
3
4
private void findSeqButton_Click(object sender, EventArgs e)
{
    listBox1.DataSource = Mls.GetSequence(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, (int)timesNud.Value);
}
0
Вложения
Тип файла: zip mls.zip (15.5 Кб, 5 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2017, 11:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Реализация алгоритма блочного кода с постоянным смещением
Всем ночь добрая !) Помогите пожалуйста, от чего можно оттолкнуться в следующем задании? ...

Реализация алгоритма кластеризации K-means для монохромных изображений
Доброго времени суток форумчане. Пишу алгоритм кластеризации K-means для монохромных...

Параллельная реализация алгоритма Дейкстры
Объясните пожалуйста каким образом распарллелить можно алг.Дейкстры

Реализация алгоритма передискретизации изображений
Всем доброе время суток. :) Есть задача - реализовать алгоритм изменения размеров изображений с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.