Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 05.04.2015
Сообщений: 1
1

Не могу разобраться в коде

12.12.2017, 00:00. Показов 613. Ответов 0

Author24 — интернет-сервис помощи студентам
Всё не понятно тут, дали код программы в универе и сказали разобраться,
при этом никакой теории или инфы не дали.
Надежда только на вас.

Я так понял это обработчик какой-то

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
void CWDFDlg::parsing_message(int size, char* buf)
{
 
    int i, step = 0, cnt = 0;
    unsigned char summ = 0;
    unsigned char cs = 0;
    BOOL valid = false;
    char head[50];
 
 
 
    for (i = 0; i < size; i++)
    {
 
        if (step == 0){
            if (buf[0] != '$')break;
            step = 1;
        }
 
        else if (step == 1)
        {
 
            if (buf[i] != '*') summ ^= buf[i];
            else step = 2;
        }
        else if (step == 2)
        {
            if (buf[i] < 0x40) cs = (buf[i] & 0x0F) * 16;
            else               cs = (buf[i] - 55) * 16;
            step = 3;
        }
 
 
        else if (step == 3)
        {
            if (buf[i] < 0x40) cs += (buf[i] & 0x0F);
            else               cs += (buf[i] - 55);
            if (cs == summ) valid = true;
            break;
        }
    }
    //////////////////////////////////////////
 
    for (i = 0; i < 6; i++)
    {
        head[i] = buf[cnt++];
    }
    head[i] = 0;
    if ((strcmp(head, "$LGHD,") == 0) && (valid))
    {
        while ((buf[cnt] != ',') && (buf[cnt] != '*'))//Пропуск длины
        {
            cnt++;
        }
        cnt++;
        while ((buf[cnt] != ',') && (buf[cnt] != '*'))//Пропуск адреса
        {
            cnt++;
        }
        cnt++;
        i = 0;
        while ((buf[cnt] != ',') && (buf[cnt] != '*'))
        {
            head[i++] = buf[cnt++];
        }
        cnt++;
        head[i] = 0;
        if (strcmp(head, "ANS") == 0)
        {
            while (buf[cnt] != '*')
            {
                for (i = 0; i < 3; i++)
                {
                    head[i] = buf[cnt++];
                }
                head[i] = 0;
 
                if ((strcmp(head, "CH=")) == 0)
                {
                    i = 0;
                    while ((buf[cnt] != ',') && (buf[cnt] != '*'))
                    {
                        head[i++] = buf[cnt++];
                    }
                    head[i] = 0;
                    num_freq = atoi(head);
                    
 
                }
                else if (strcmp(head, "VL=") == 0)
                {   
                    i = 0;
                    while ((buf[cnt] != ',') && (buf[cnt] != '*'))
                    {
                        head[i++] = buf[cnt++];
 
                    }
                    head[i] = 0;
 
                    value_DAC = atoi(head);
                }
 
                else if (strcmp(head, "UB=") == 0)
                {
                    i = 0;
                    while ((buf[cnt] != ',') && (buf[cnt] != '*'))
                    {
 
                        head[i++] = buf[cnt++];
 
                    }
                    head[i] = 0;
 
                    value_U = atoi(head);
                }
 
                else if (strcmp(head, "SF=") == 0)
                {
                    i = 0;
                    while ((buf[cnt] != ',') && (buf[cnt] != '*'))
                    {
 
                        head[i++] = buf[cnt++];
 
                    }
                    head[i] = 0;
                    unsigned char v_freq = (unsigned char)atoi(head);
 
                    if (v_freq > 127)
                    {
                       v_freq_correction = (INT)(v_freq - 256);
                    }
                    else v_freq_correction = v_freq;
 
                }
 
                else
                {
                    while ((buf[cnt] != ',') && (buf[cnt] != '*')) cnt++;
                }
                if (buf[cnt] != '*')
                {
                    cnt++;
 
                }
            }
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2017, 00:00
Ответы с готовыми решениями:

Не могу разобраться в коде
На просторах форума нашёл полезный для меня код, но не понимаю ничего, что написанно в циклах ниже...

Не могу разобраться в коде
Код не мой, но хотелось бы разобраться, как и что работает. Вопросы возникли в выделенных строках....

Не могу разобраться в коде
Всем дня доброго.В плюсах я ровным счетом 0.Расшифровать по нормальному не могу.Отрывок из кода...

Не могу разобраться в коде
Здравствуйте, нашел код на форуме, он выводит файл в hex виде #include &lt;iostream&gt; #include...

0
12.12.2017, 00:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2017, 00:00
Помогаю со студенческими работами здесь

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

ошибка в коде,не могу разобраться
Определите структурный тип содержащий след инф-ю: Марка авто, цвет, кол-во, цена. Ввести 5 элем-в...

Не могу разобраться в коде программы для заполнения массива
Заранее извините, если глупые вопросы, я просто совсем новичок в этом деле. Разъясните, пожалуйста,...

Не могу разобраться в коде. Некорректный результат работы программы
Ввести с клавиатуры числа x, E . Последовательность a,a....a образована по закону a=3+...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru