Форум программистов, компьютерный форум CyberForum.ru

Объясните код программы - C++

Восстановить пароль Регистрация
 
Kisunya
 Аватар для Kisunya
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 49
20.10.2011, 14:54     Объясните код программы #1
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
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 AnsiString s=Memo1->Text;
 int s_leng=s.Length();
 AnsiString num="";
 int kol=0;
 int chislo[100];
 int chast[100];
   for (int i=1; i<=s_leng; i++)
      {
       if (!razdelitel(s[i]))
           num+=s[i];
       else
       if (num!="")
           {
            int num_leng=num.Length();
            bool esli_chislo=true;
            for (int j=1; j<=num_leng; j++)
             {
               if (!isdigit(num[j]))
                  {
                   esli_chislo = false;
                    break;
                  }
             }
                 if (esli_chislo)
                    {
                     int n=StrToInt(num);
                     bool est=false;
                     for (int j=0; j<kol; j++)
                         {
                          if (chislo[j]==n)
                              {
                                est=true;
                                chast[j]++;
                                break;
                              }
                          }
                      if (!est)
                           {
                            chislo[kol] = n;
                            chast[kol] = 1;
                            kol++;
                           }
                     }
                      num="";
            }
        }
        StringGrid1->RowCount=kol+1;
        for (int i=0; i<kol; i++)
             {
                StringGrid1->Cells[0][i + 1]=IntToStr(chislo[i]);
                StringGrid1->Cells[1][i + 1]=IntToStr(chast[i]);
             }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2011, 14:54     Объясните код программы
Посмотрите здесь:

C++ Объясните код программы
C++ Объясните пожалуйста код и ход работы программы на С++
Объясните код программы C++
Объясните код программы C++
C++ Объясните код
C++ Упорядочивание массива c++. Объясните код программы
C++ Объясните код
C++ Объясните код программы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mycola
22 / 12 / 13
Регистрация: 23.03.2013
Сообщений: 157
16.07.2014, 17:48     Объясните код программы #2
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
void __fastcall TForm1::Button2Click(TObject *Sender) /*обработчик события нажатия Button2 */
{
    AnsiString s = Memo1->Text; //--забиваем текст с обьекта memo1 в ANSI строку s
    int s_leng = s.Length();    //---инициализируем переменную типа целое число и назначаем ей значение длины строки s
    AnsiString num = "";        // --- создали новую пустую строку
    int kol = 0;                // счетчик
    int chislo[100];            // масив из 100 єлементов типа целіх чисел
    int chast[100];             // масив из 100 єлементов типа целіх чисел
    for (int i = 1; i <= s_leng; i++)     /*инициализация цикла количество проходов равняеться количеству символов строки s*/
    {
        if (!razdelitel(s[i])) //хз но скорее всего какой то символ передаеться функции или класу для какой то проверки
            num += s[i];    //--добавление i-того символа строки s в  строку num
        else
            if (num != "") //---если строка num не пустая
            {
            int num_leng = num.Length();  //определение длины строки num
            bool esli_chislo = true;      //--создание флага 
            for (int j = 1; j <= num_leng; j++) /*инициализация цикла количество проходов равняеться количеству символов строки num */
            {
                if (!isdigit(num[j])) /*проверка не  являеться ли символ из строки num числом */
                {
                    esli_chislo = false;
                    break;
                }
            }
            /*просто више проверяеться то  что вся строка num содержит числа,*/
            // если да то виполняеться следующее
            if (esli_chislo)
            {
                int n = StrToInt(num); // инициализация новой переменной с именем n которая содержит число которое содержалось в строке num 
                bool est = false; //-еще один флаг
                for (int j = 0; j<kol; j++)  /*инициализация цикла количество проходов равняеться количеству kol. 
                                             Странно что это работает так как количество инициализировано и равняеться 0 
                                             и нигде не изменялось... */
                {
                    if (chislo[j] == n) /*если число с массива chislo с индексом j равно числу n то.. */
                    {
                        est = true;   // --изменение значения флага
                        chast[j]++;   // число по индексу j с массива chast + 1
                        break;       //выход з цикла
                    }
                }
                if (!est)  //если est неправда
                {
                    chislo[kol] = n; // присваеваем числу с масива chislo и индексом kol значение n
                    chast[kol] = 1;     // присваеваем числу с масива chast и индексом kol значение 1
                    kol++;              // инкремент счетчика kol
                }
            }
            num = "";  //jочистка строки num
            }
    }
    //--а далее тут разные действия с обьектом StringGrid1
    StringGrid1->RowCount = kol + 1;
    for (int i = 0; i<kol; i++)
    {
        StringGrid1->Cells[0][i + 1] = IntToStr(chislo[i]);
        StringGrid1->Cells[1][i + 1] = IntToStr(chast[i]);
    }
 
}
Yandex
Объявления
16.07.2014, 17:48     Объясните код программы
Ответ Создать тему
Опции темы

Текущее время: 04:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru