Комментарии
- 17 фев 2019 10:16Андрей ЛысенкоЮра! пиши на нормальном языке))) не занимайся самозадротством, или тебе по кайфу называть свои методы gb()… bd(), а к элементам массива обращаться aa[fd]! код должен быть читабельным, каждое название должно нести смысл или намек, желательно на английском языке, недопустимо нервировать других программистов, ты же не только для себя пишешь. Если это из учебника, то мой совет найди другое учебное пособие, не травмируй себе мозг, я по таким же дебильным примерам учил С/С++, но я на них не зацикливался.
- 17 фев 2019 10:44Юрий Казекин ответил Андрею ЛысенкоА если классы, переменные не несут никакого смысла? Или этих смыслов штук шесть в одной программе, а я их хочу распространить на всю программу?
- 17 фев 2019 12:20Андрей Лысенко ответил Юрию КазекинуДа я тебе не про переменные, а про методы (по-другому функции), их то немного, переменные особенно локальные я бы тоже не стал никак обзывать, но методов и массивов - не так уж и много, а когда к функции обращаешься ласково по имени и тебе приятно и для других этот участок кода становится узнаваемым. Например, ga () можно назвать SymbToDigit() как вариант, легко интерпретируется как Symbol to Digit то есть символ в цифру, заодно и английский подучишь, знание языка стимулирует развитие интеллекта.
- 17 фев 2019 12:24Юрий Казекин ответил Андрею ЛысенкоЧто-то не хочется соображать. Не согласен.
- 17 фев 2019 12:25Юрий Казекин ответил Андрею Лысенкоga () и gb () вызываются только один раз. Это внутренние функции, которые необязателньо помнить. Один раз использовал и всё.
- 17 фев 2019 12:26Юрий Казекин ответил Андрею ЛысенкоВообще написание примеров - это как бег по дороге с препятствиями. Никогда не знаешь, какие камни ВДРУГ попадутся, что придется преодолевать. Поэтому и названия единообразные. Чтоб не запоминать.
- 17 фев 2019 12:26Андрей Лысенко ответил Юрию КазекинуБывает, Юра, ленность мысли))))) это не догма, но признак хорошего тона в программировании, без этой культуры твой код будет называться гавнокодом, это не в обиду тебе.
- 17 фев 2019 12:27Андрей Лысенко ответил Юрию КазекинуНу я и говорю если это примеры из книжки то книжка это не ахти как написана, криво вообщем)
- 17 фев 2019 12:27Юрий Казекин ответил Андрею ЛысенкоТакой способ можно применять, когда программа одна, объединена одной идеей. А у меня не так. У меня несколько, может быть десятки разнообразных примеров, слитых в одну программу.
- 17 фев 2019 12:28Андрей Лысенко ответил Юрию КазекинуДа, я тебя понял.
- 17 фев 2019 12:28Юрий Казекин ответил Андрею ЛысенкоВ книжке все OK, но мне, чтобы написать и все слить в одну - я переменные абстрагирую вот таким вот образом. От первоначальных имен ничего не остается. Никто так не пишет, даже в книжке. В книжке все понятно написано, с названиями все в порядке.
- 17 фев 2019 12:29Юрий КазекинЯ просто до больших программ не дошел. Другие дела есть.
- 17 фев 2019 12:29Юрий КазекинМне вон комиксы собирать и статьи с английского переводить. Есть чем заняться.
- 17 фев 2019 12:34Андрей Лысенко ответил Юрию Казекинулучшая практика это как раз и клепание своего кривого говнокода, пишешь какое-нибудь "г", сталкиваешься при этом с какими-нибудь страшными трудностями, сначала думаешь лезть в петлю или утопится, потом находит озарение, лезешь сначала в книжку, если там нет то по форумам, можно наоборот сначала в сеть, если есть целый пример - копипастишь его в свою прогу и смотришь как это великолепие вместе занимается "секасом" и так далее двигаешься. Так намного интереснее, поверь, даже если результатов не видно, они точно лучше чем зачитанные до дыр бестолковые примеры.
- 17 фев 2019 15:23Юрий Казекин ответил Андрею ЛысенкоЯ хочу прочитать книжку.
Для того чтобы оставить комментарий, войдите или зарегистрируйтесь
Группа для программистов ( programming )
:Юрий Казекин
Очередной движок для решения задач.
Под номером 2.
Предназначен для вывода графики в массовом порядке. Предполагается, что в программе будет 5 групп изображений, в каждой группе 5 штук. Смена изображений осуществляется нажатием произвольной клавиши.
// Движок для решения графических задач (1)
// Язык Visual C++ 6.0
// p8Doc.h
class CP8Doc:public CDocument
{
protected:
CP8Doc ();
DECLARE_DYNCREATE (CP8Doc);
char aa [50]; // место для вводимых символов
int ca; // исходное данное - целое число
int da, db; // указатель ввода в строку данных, <Enter>
int ea, eb; // указатель чтения данных; введённое число
void ga (); // перевод данных из символьной формы в цифровую
void gb ();
};
- - - - -
// p8Doc.cpp
CP8Doc::CP8Doc ()
{
aa [0] = 0;
da = db = 0;
}
void CP8Doc::ga ()
{
db = 1;
ea = 0;
while ((aa [ea] < '0' || aa [ea] > '9') && aa [ea]) ea++;
gb ();
ca = eb;
}
void CP8Doc::gb ()
{
eb = 0;
while (aa [ea] >= '0' && aa [ea] <= '9')
{
eb = eb * 10 + aa [ea] - '0';
ea++;
}
}
- - - - -
// p8View.cpp
int d = 0; // счётчик изображений
int e = 100; // масштаб изображения
int g, h;
void CP8View::OnDraw (CDC *pDC)
{
CP8Doc *pdoc = GetDocument ();
ASSERT_VALID (pdoc);
CString a;
if (pdoc -> db == 0)
{
pDC -> TextOut (10, 10, "Введите целое число (1):");
pDC -> TextOut (10, 35, pdoc -> aa);
return;
}
if (pdoc -> ca == 1)
{
if (d == 0)
{
for (g = 0; g < 11; g++)
{
pDC -> MoveTo (e * g, 0);
pDC -> LineTo (e * g, e * 10);
pDC -> MoveTo (0, e * g);
pDC -> LineTo (e * 10, e * g);
}
}
}
}
void CP8View::OnChar (UINT nChar, UINT nRepCnt, UINT nFlags)
{
CP8Doc *pdoc = GetDocument ();
ASSERT_VALID (pdoc);
if (pdoc -> db)
{
if (d < 5) d++;
goto aaa;
}
if (nChar == 8)
{
if (pdoc -> da) {pdoc -> da--; pdoc -> aa [pdoc -> da] = 0;}
goto aaa;
}
if (nChar == 13)
{
pdoc -> ga ();
goto aaa;
}
if (pdoc -> da < 49)
{
pdoc -> aa [pdoc -> da] = nChar;
pdoc -> aa [pdoc -> da + 1] = 0;
pdoc -> da++;
}
aaa:
Invalidate ();
CView::OnChar (nChar, nRepCnt, nFlags);
}