Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1

Научиться искусству оптимизации кода

07.02.2013, 00:21. Показов 2543. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго вечера. Такой вопрос, может есть у кого свободная минутка и может научить правилу формирования кода, делать код более компактным и для других программистов более читаемым.
Мой код практически одинаковый для 3 кнопок,не знаю что можно заключить в процедуру. Код работает, но хочется научиться грамотно всё делать

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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
void __fastcall TForm1::btn1Click(TObject *Sender)
{
    Memo2->Clear();              //очистка
    Memo2->Lines->Add("");      //добавление строки
    if (i==1) {                //если i=1
        for( int i=0; i<mmo1->Lines->Count; i++ )
        {
            if (!mmo1->Lines->Strings[i].IsEmpty())   //исключаю пустые строчки
                if (!mmo1->Lines->Strings[i].Pos("#by lida"))
                {
                    stroka=mmo1->Lines->Strings[i];
                    int r=stroka.Pos("#");
                    AnsiString nach=stroka.SubString(r+1, stroka.Length()-r+1);
                    AnsiString kon=stroka.SubString(0, r-1);
                    Memo2->Lines->Add("[reader]");
                    Memo2->Lines->Add(" label = " + nach);
                    Memo2->Lines->Add(" enable = 1");
                    list->Delimiter=':';
                    list->DelimitedText=kon;
                    list2->Delimiter='/';
                    list2->DelimitedText=list->Strings[3].SubString(0, stroka.Pos("0")-1);
                    list2->Strings[2]= StringReplace(list2->Strings[2],"f","0",TReplaceFlags()<<rfReplaceAll);
                    list2->Delete(0);
                    String finde=list2->Strings[0].Trim();
                    String ident;
                    String a=" NTV";
                    if (nach.LowerCase().Trim()!= a.LowerCase().Trim())
                    {
                        for(int i=0; i<list3->Count; i++)
                        {
                            if(list3->Strings[i].Pos(finde))
                            {
                                ident=list3->Strings[i].Trim();
                                ident.Delete(1,5);
                            }
                        }
                    }
                    else
                    {
                        ident="040600,050100,050B00,050900,040610,040620";
                    }
                    list2->Strings[1]= (" CAID= "+ list2->Strings[0]);
                    list2->Delete(0);
                    list->Delete(3);
                    list->Strings[0]=" protocol = "+ list->Strings[0];
                    list->Strings[1]=" device = "+ list->Strings[1] + "," + list->Strings[2] ;
                    list->Strings[3]=" user = " + list->Strings[3];
                    list->Strings[4]=" password = "+ list->Strings[4];
                    list->Strings[5]=" key = " + list->Strings[5];
                    list->Delete(2);
                    Memo2->Lines->AddStrings(list);
                    Memo2->Lines->AddStrings(list2);
                    Memo2->Lines->Add(" IDENT="+ ident);
                    Memo2->Lines->Add( " inactivitytimeout = 20");
                    Memo2->Lines->Add( " reconnecttimeout = 10");
                    Memo2->Lines->Add(" fallback = 0");
                    Memo2->Lines->Add(" group = 1");
                    Memo2->Lines->Add("");
                    stat1->Panels->Items[3]->Text= ( "OSCAM - Готово!");
                }
        }
    }
    else
    {
        ShowMessage("Нажмите кнопку обновить!");
        stat1->Panels->Items[3]->Text= ( "OSCAM - Не готово!");
    }
    btn5Click(0);
    PlaySoundW( L"alert.wav", 0, SND_ASYNC );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    mmo3->Clear();
    mmo3->Lines->Add("");
    if (i==1) {
        for( int i=0; i<mmo1->Lines->Count; i++ )
        {
            if (!mmo1->Lines->Strings[i].IsEmpty())   //исключаю пустые строчки
                if (!mmo1->Lines->Strings[i].Pos("#by lida"))
                {
                    stroka=mmo1->Lines->Strings[i];
                    int r=stroka.Pos("#");
                    AnsiString nach=stroka.SubString(r+1, stroka.Length()-r+1);
                    AnsiString kon=stroka.SubString(0, r-1);
                    mmo3->Lines->Add("[reader]");
                    mmo3->Lines->Add(" label = " + nach);
                    list->Delimiter=':';
                    list->DelimitedText=kon;
                    list2->Delimiter='/';
                    list2->DelimitedText=list->Strings[3].SubString(0, stroka.Pos("0")-1);
                    list2->Strings[2]= StringReplace(list2->Strings[2],"f","0",TReplaceFlags()<<rfReplaceAll);
                    list2->Delete(0);
                    String finde=list2->Strings[0];
                    String ident;
                    String a=" NTV";
                    if (nach.LowerCase().Trim()!= a.LowerCase().Trim())
                    {
                        for(int i=0; i<list3->Count; i++)
                        {
                            if(list3->Strings[i].Pos(finde))
                            {
                                ident=list3->Strings[i];
                                ident.Delete(1,5);
                            }
                        }
                    }
                    else
                    {
                        ident="040600,050100,050B00,050900,040610,040620";
                    }
                    list2->Strings[1]= (" CAID= "+ list2->Strings[0]);
                    list2->Delete(0);
                    list->Delete(3);
                    list->Strings[0]=" protocol = "+ list->Strings[0];
                    list->Strings[1]=" device = "+ list->Strings[1] + "," + list->Strings[2] ;
                    list->Strings[3]=" Account = "+ list->Strings[3] + "," + list->Strings[4];;
                    list->Strings[5]=" key = "+ list->Strings[5];
                    list->Delete(2);
                    list->Delete(3);
                    mmo3->Lines->AddStrings(list);
                    mmo3->Lines->AddStrings(list2);
                    mmo3->Lines->Add(" IDENT="+ ident);
                    mmo3->Lines->Add(" ReconnectTimeout = 20");
                    mmo3->Lines->Add(" InactivityTimeOut = 15");
                    mmo3->Lines->Add(" fallback = 0");
                    mmo3->Lines->Add(" group = 1");
                    mmo3->Lines->Add("");
                    stat1->Panels->Items[2]->Text= ( "MPCS - Готово!");
                }
        }
    }
    else
    {
        ShowMessage("Нажмите кнопку обновить!");
        stat1->Panels->Items[2]->Text= ( "MPCS - НЕ готово!");
    }
    PlaySoundW( L"alert.wav", 0, SND_ASYNC );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button12Click(TObject *Sender)
{
    mmo4->Clear();
    if (i==1) {
        for( int i=0; i<mmo1->Lines->Count; i++ )
        {
            if (!mmo1->Lines->Strings[i].IsEmpty())   //исключаю пустые строчки
                if (!mmo1->Lines->Strings[i].Pos("#by lida"))
                {
                    stroka=mmo1->Lines->Strings[i];
                    int r=stroka.Pos("#");
                    AnsiString nach=stroka.SubString(r+1, stroka.Length()-r+1);
                    AnsiString kon=stroka.SubString(0, r-1);
                    list->Delimiter=':';
                    list->DelimitedText=kon;
                    list->Delete(3);
                    list->Strings[0]=list->Strings[0] + "525://" + list->Strings[3] + ":" + list->Strings[4] + "@" + list->Strings[1]  + ":" + list->Strings[2] +  ":" + list->Strings[5] ;
                    list->Delete(2);
                    list->Delete(3);
                    mmo4->Lines->Add(list->Strings[0]);
                    stat1->Panels->Items[4]->Text= ( "SNS - Готово!");
                }
        }
    }
    else
    {
        ShowMessage("Нажмите кнопку обновить!");
    }
    PlaySoundW( L"alert.wav", 0, SND_ASYNC );
}
//---------------------------------------------------------------------------
Что код делает:
Из такого вида строки
newcamd:127.0.0.1:5000:0/4AE1/ffff:tuner:tuner:01020304050607080910111 21314# oskam
Конвертирует её в формат 3 других программ для SatTV
1
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[reader]
 label =  oskam
 enable = 1
 protocol = newcamd
 device = 127.0.0.1,5000
 user = tuner
 password = tuner
 key = 0102030405060708091011121314
 CAID= 4AE1
 IDENT=
 inactivitytimeout = 20
 reconnecttimeout = 10
 fallback = 0
 group = 1
2

Code
1
2
3
4
5
6
7
8
9
10
11
12
[reader]
 label =  oskam
 protocol = newcamd
 device = 127.0.0.1,5000
 Account = tuner,tuner
 key = 0102030405060708091011121314
 CAID= 4AE1
 IDENT=
 ReconnectTimeout = 20
 InactivityTimeOut = 15
 fallback = 0
 group = 1
3
Code
1
newcamd525://tuner:tuner@127.0.0.1:5000:0102030405060708091011121314
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.02.2013, 00:21
Ответы с готовыми решениями:

Нужен совет в оптимизации кода
Нужно оптимизировать метод Deallocate, который переводит нужный указатель из allotted в exempted, и, если указателя нет, бросает ошибку. Я...

гигиеничность кода c# - научиться разделять код на файлы
Подскажите пожалуйста! Тут я не имею ввиду качественную: комментируемость\именование переменных\объектов\классов. Мне нужно как то...

Оптимизации кода
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;algorithm&gt; using namespace std; int main() { int n; cin &gt;&gt;...

30
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.02.2013, 19:07
Студворк — интернет-сервис помощи студентам
Кстати для выходных файлов наверное можно было использовать IniFile
1
 Аватар для Pirat-SR
67 / 67 / 10
Регистрация: 20.02.2012
Сообщений: 234
07.02.2013, 21:04
Цитата Сообщение от Ddv122 Посмотреть сообщение
Можно пример этой утилиты(исходника)??Уж очень мне интересно, как скомпилируется текст с label

Вот код который записан в лабел:
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
//---------------------------------------------------------------------------
 
void __fastcall TForm2::On_PlayClick(TObject *Sender) //Label1Click
{
OnPbs->Visible = false;
OnP->Visible = false;
OnNy->Visible = false;
OnNn->Visible = false;
OnPnm->Visible = false;
OnStvo->Visible = false;
OnM->Visible = false;
OnYpk->Visible = false;
PlayPbs->Visible = true;
PlayP->Visible = true;
PlayNy->Visible = true;
PlayNn->Visible = true;
PlayPnm->Visible = true;
PlayStvo->Visible = true;
PlayM->Visible = true;
PlayYpk->Visible = true;
PlayPbs1->Visible = true;
PlayPbs2->Visible = true;
PlayP1->Visible = true;
PlayP2->Visible = true;
}
//---------------------------------------------------------------------------

Вот код который этот лаберл вызывает:

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
//---------------------------------------------------------------------------
 
void __fastcall TForm2::PlayYpkClick(TObject *Sender)
{
if(FileExists("Tracks/K4-Ypk.mp3"))
{
Timer1->Enabled = false;
MediaPlayer1->Close();
MediaPlayer1->FileName = "";
MediaPlayer1->FileName = "Tracks/K4-Ypk.mp3";
MediaPlayer1->Open();
On_PlayClick(Form2);                                 //Label1Click
OnYpk->Visible = true;
PlayYpk->Visible = false;
StopE->Visible = false;
PauseE->Visible = false;
Tracks_Play_Pause_Stop->Caption = "Track Play";
Timer1->Interval = 200;
MediaPlayer1->Play();
Timer1->Enabled = true;
}
else
{
Application->MessageBox("Музыкальный файл не найден! \nВоспроизведение невозможно!",
"Ошибка!", MB_ICONSTOP);
}
if(FileExists("Texts tracks/K4-Ypk.v1.0"))
{
RE->Lines->Clear();
RE->Lines->LoadFromFile("Texts tracks/K4-Ypk.v1.0");
SaveText->Caption = "Я посылаю код";
}
else
{
RE->Text = ("Текстовый файл не найден! \nЧтение невозможно!");
}
}
//---------------------------------------------------------------------------
И таких кнопок с воспроизведением у меня в программе 11 штук.
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
07.02.2013, 21:21  [ТС]
Pirat-SR, ха, а в процедуру нельзя было объявить?и почему label?чего бы просто кнопку не скрыть?
0
 Аватар для Lelik-pahan
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,858
07.02.2013, 21:22
Ddv122, я так понимаю, что в первых двух функциях у тебя всё различие лишь в используемом Memo (2 или 3)? тогда сделай функцию, в которую будешь передвать указатель на нужное Memo

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
void TForm1::Parser(TMemo *memo)
{
    memo->Clear();
    memo->Lines->Add("");
    if (i==1) {
        for( int i=0; i<mmo1->Lines->Count; i++ )
        {
            if (!mmo1->Lines->Strings[i].IsEmpty())   //исключаю пустые строчки
                if (!mmo1->Lines->Strings[i].Pos("#by lida"))
                {
                    stroka=mmo1->Lines->Strings[i];
                    int r=stroka.Pos("#");
                    AnsiString nach=stroka.SubString(r+1, stroka.Length()-r+1);
                    AnsiString kon=stroka.SubString(0, r-1);
                    memo->Lines->Add("[reader]");
                    memo->Lines->Add(" label = " + nach);
                    list->Delimiter=':';
                    list->DelimitedText=kon;
                    list2->Delimiter='/';
                    list2->DelimitedText=list->Strings[3].SubString(0, stroka.Pos("0")-1);
                    list2->Strings[2]= StringReplace(list2->Strings[2],"f","0",TReplaceFlags()<<rfReplaceAll);
                    list2->Delete(0);
                    String finde=list2->Strings[0];
                    String ident;
                    String a=" NTV";
                    if (nach.LowerCase().Trim()!= a.LowerCase().Trim())
                    {
                        for(int i=0; i<list3->Count; i++)
                        {
                            if(list3->Strings[i].Pos(finde))
                            {
                                ident=list3->Strings[i];
                                ident.Delete(1,5);
                            }
                        }
                    }
                    else
                    {
                        ident="040600,050100,050B00,050900,040610,040620";
                    }
                    list2->Strings[1]= (" CAID= "+ list2->Strings[0]);
                    list2->Delete(0);
                    list->Delete(3);
                    list->Strings[0]=" protocol = "+ list->Strings[0];
                    list->Strings[1]=" device = "+ list->Strings[1] + "," + list->Strings[2] ;
                    list->Strings[3]=" Account = "+ list->Strings[3] + "," + list->Strings[4];;
                    list->Strings[5]=" key = "+ list->Strings[5];
                    list->Delete(2);
                    list->Delete(3);
                    memo->Lines->AddStrings(list);
                    memo->Lines->AddStrings(list2);
                    memo->Lines->Add(" IDENT="+ ident);
                    memo->Lines->Add(" ReconnectTimeout = 20");
                    memo->Lines->Add(" InactivityTimeOut = 15");
                    memo->Lines->Add(" fallback = 0");
                    memo->Lines->Add(" group = 1");
                    memo->Lines->Add("");
                    stat1->Panels->Items[2]->Text= ( "MPCS - Ãîòîâî!");
                }
        }
    }
    else
    {
        ShowMessage("Нажмите кнопку обновить!");
        stat1->Panels->Items[2]->Text= ( "OSCAM - Не готово!");
    }
    PlaySoundW( L"alert.wav", 0, SND_ASYNC );
}
А на кликах по кнопкам вызывай
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::btn1Click(TObject *Sender)
{
    Parser(Memo2);
}
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Parser(mmo3);
}
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
07.02.2013, 21:25  [ТС]
Lelik-pahan, разница в 3х строках, но спасибо за решение
C++
1
2
3
4
          nList->Add(" user = " + SS[4]);
          nList->Add(" password = "+ SS[5]); }
          if (varnt==2)  {
          nList->Add(" Account = "+SS[4]+","+SS[5]);   }
0
 Аватар для Lelik-pahan
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,858
07.02.2013, 21:34
Это не проблема
C++
1
2
3
4
5
6
7
8
9
void TForm1::Parser(TMemo *memo, bool variant)
{
//.......здесь общая часть
    if (variant)
    {
        //3 строки, в которых разница
    }
//...снова общая часть
}

C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::btn1Click(TObject *Sender)
{
    Parser(Memo2, true);
}
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Parser(mmo3, false);
}
Добавлено через 5 минут
а если возможных вариантов больше двух, то

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void TForm1::Parser(TMemo *memo, int variant)
{
//.......здесь общая часть 
    switch (variant)
    {
        case 0:
            //......
            break;
        case 1:
            //......
            break;
        case 2:
            //......
            break;
    }   
//...снова общая часть
}
1
 Аватар для Pirat-SR
67 / 67 / 10
Регистрация: 20.02.2012
Сообщений: 234
07.02.2013, 21:42
Цитата Сообщение от Ddv122 Посмотреть сообщение
Pirat-SR, ха, а в процедуру нельзя было объявить?и почему label?чего бы просто кнопку не скрыть?

Я самоучка в C++ Builder и изучаю его методом тыка. Про процедуры я слышал на этом форуме но не знаю что это. Мне удобней использовать лабелы, тем более можно их подписывать какой на них код. С кнопками это прошедший этап, лабелы более компактные.
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
07.02.2013, 22:18  [ТС]
nick42, все по идеи хорошо работает но- цикл не работает, дублирует одну и туже строку
Code
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
TStringList *list ,* list2,* list3, *nList;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    list = new TStringList;        // Создание экземпляра класса TStringList
    list2 = new TStringList;      // Создание экземпляра класса TStringList
    list3 = new TStringList;     // Создание экземпляра класса TStringList
    nList = new TStringList;     // Создание экземпляра класса TStringList
 
}
//---------------------------------------------------------------------------
__fastcall TForm1::~TForm1( ) {
    delete list;          //освобождаем память
    delete list2;        //освобождаем память
    delete list3;       //освобождаем память
    delete nList;        //освобождаем память
}
 
void __fastcall TForm1::Button19Click(TObject *Sender)
{
#define SS list->Strings
    int varnt = ((TButton *)Sender)->Tag;
    mmo4->Clear();
    if (i!=1) ShowMessage("!");
    else  for(int j=0; j<mmo1->Lines->Count; j++)
      if (mmo1->Lines->Strings[j].Pos("#by lida")==0) {
        ExtractStrings(TSysCharSet()<<':'<<'#'<<'\r'<<'\0',TSysCharSet(),
           mmo1->Lines->Strings[j].c_str(),list);
        if (varnt==3) mmo4->Lines->Add(String().sprintf(
          "%s525://%s:%s@%s:%s:%s ",SS[0],SS[4],SS[5],SS[1],SS[2],SS[6] ));
else  {
          nList->Add("[reader]");
          nList->Add(" label = "+SS[7]);
          nList->Add(" protocol = "+SS[0]);
          nList->Add(" key = "+SS[6]);
          nList->Add(" device = "+SS[1]+","+SS[2]);
          if (varnt==1) {
          nList->Add(" user = " + SS[4]);
          nList->Add(" password = "+ SS[5]); }
          if (varnt==2)  {
          nList->Add(" Account = "+SS[4]+","+SS[5]); }
          else
 
           nList->Add(" Group = 1");
           nList->Add(" fallback = 0");
           nList->Add(" CAID= "+ SS[3]);
           nList->Add(" Idents= ");
           nList->Add(" inactivitytimeout = 20");
           nList->Add(" reconnecttimeout = 10");
           nList->Add("");
 
 
     }
 
        }
            mmo4->Lines->AddStrings(nList);
#undef SS
}
Добавлено через 15 минут
не пойму где мой косяк...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
07.02.2013, 22:34
.. мы про цикл забыли. Надо очищать:
C++
1
2
        list->Clear(); 
        ExtractStrings(...
Добавлено через 9 минут
П.С. а еще точнее - нужно оба очищать (и list, и nList) еще перед циклом
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
07.02.2013, 23:28  [ТС]
nick42, спасибо осталось одно переделать поиск
он был такой
C++
1
2
3
4
     if(list3->Strings[i].Pos(finde))
     {
       ident=list3->Strings[i];
       ident.Delete(1,5);
Но нужно немного изменить Поиск
Он должен осуществляться по 2 параметрам
Искомые слова в SS[3] и SS[7]
Поиск по List3, но приоритет отдаётся [B]SS[7] , и результат должен быть, текст после знака :
т.е в
SS[3] и SS[7]
строки:
0500
NTV
в list3
0500:00001,05877
NTV:00001,05877
0500:00501,58954
и в итоге у нас должно получится
00001,05877
но количество знаков до ":" не известно
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
08.02.2013, 00:46
Кто мне скажет, с чего это все начиналось, и почему тема уверенно превращается в свалку? Или выходим на финишную/изначальную прямую, или будем делать теме больно .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.02.2013, 00:46

Методы оптимизации кода
Написал статью по оптимизации кода на С++. Ее можно почитать тут: А вы какие еще способы оптимизации кода знаете? (я не говорю про...

Советы по оптимизации кода
Написал парсер данных. Подскажите как можно было сделать проще? Стрелка должна быть в отдельной переменной. &lt;?php $a =...

Указания по оптимизации кода
Что скажете? Не будет сильно грузить? 24 экземпляра этого скрипта находятся в сцене. Критика поддерживается! P.S. Скрипт отвечает за...

Совет по оптимизации кода PHP
Здравтвуйте, уважаемые пользователя форума, прошу вашего совета, по более коректному наисанию нижеследующего кода: &lt;? require...

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


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью. Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости. Решение: Создан документ со следующими. . .
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово. Решение: Создан документ с единственным. . .
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить сумму и количество положительных элементов массива, расположенных в четных строках. Решение: Создан документ с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru