А теперь кусок кода того "американского историка"
Вот так то и с историей знаком и владеет навыками индуса
/* Convert function that will convert a
numeric month to an alphabetic month*/char *convert (mnth)
short mnth; /* numeric value of month passed to the function */
{
char *ptr; /* pointer to address of corresponding alphabetic month */static char alp_mon[12][10] = { "January","February","March","April",
"May","June","July","August","September",
"October","November","December" };
switch (mnth)
{
case 1:
ptr=alp_mon[0];
break;
case 2:
ptr=alp_mon[1];
break;
case 3:
ptr=alp_mon[2];
break;
case 4:
ptr=alp_mon[3];
break;
case 5:
ptr=alp_mon[4];
break;
case 6:
ptr=alp_mon[5];
break;
case 7:
ptr=alp_mon[6];
break;
case 8:
ptr=alp_mon[7];
break;
case 9:
ptr=alp_mon[8];
break;
case 10:
ptr=alp_mon[9];
break;
case 11:
ptr=alp_mon[10];
break;
case 12:
ptr=alp_mon[11];
break;
}
return(ptr);
}
КВА>А теперь кусок кода того "американского историка"
...
Складывается впечатление, что такой код там — нормальная практика программирования. Многим наверное вспомнилась история о "нашем" программисте "там" который влез в SQL запросы одной базы и выкинул целую таблицу из 300+ записей примерно такого вида :
ID, Value
1 , 0;
2 , 1;
3 , 2;
...
И когда он показывал оптимизированный код, где кроме прочего было что-то вроде "Set AnValue=Key-1" вместо "Select Value From...", начальство долго не могло понять "зачем он выбросил таблицу", и "как это может работать"
Этот идиотизм скорее всего придуман для того чтобы специально увеличить количество строк кода.
Теоретически за большее количество строк могут больше заплатить либо для того чтобы уменьшить соотношение ошибок и строк кода.
Re: История по американски и код на С
От:
Аноним
Дата:
18.05.06 15:52
Оценка:
Здравствуйте, Кирпа В.А., Вы писали:
КВА>Все помнят топик который из юмора попал в священные войны
КВА>здесь
Здравствуйте, Tolyan, Вы писали:
T>Здравствуйте, Кирпа В.А., Вы писали:
КВА>>...
T>Хотелось бы взглянуть на Ваш код, имеющий ту же функциональность, работающий не медленнее, написанный быстрее чем выше указанный
/* Convert function that will convert a
numeric month to an alphabetic month*/
char *convert (char *mnth)
{
static char *alp_mon[] = { "January","February","March","April",
"May","June","July","August","September",
"October","November","December" };
return alp_mon[mnth — 1];
}
Здравствуйте, Кирпа В.А., Вы писали:
T>>Хотелось бы взглянуть на Ваш код, имеющий ту же функциональность, работающий не медленнее, написанный быстрее чем выше указанный КВА>/* Convert function that will convert a КВА> numeric month to an alphabetic month*/ КВА>char *convert (short mnth) КВА>{ КВА> static char *alp_mon[] = { "January","February","March","April", КВА> "May","June","July","August","September", КВА> "October","November","December" }; КВА> return alp_mon[mnth — 1]; КВА>}
Здравствуйте, Кирпа В.А., Вы писали:
КВА>Здравствуйте, Tolyan, Вы писали:
T>>Здравствуйте, Кирпа В.А., Вы писали:
КВА>>>...
T>>Хотелось бы взглянуть на Ваш код, имеющий ту же функциональность, работающий не медленнее, написанный быстрее чем выше указанный КВА>/* Convert function that will convert a КВА> numeric month to an alphabetic month*/ КВА>char *convert (char *mnth) КВА>{ КВА> static char *alp_mon[] = { "January","February","March","April", КВА> "May","June","July","August","September", КВА> "October","November","December" }; КВА> return alp_mon[mnth — 1]; КВА>}
согласен Ваш вариант симпатичнее
Re[4]: История по американски и код на С
От:
Аноним
Дата:
19.05.06 07:49
Оценка:
Здравствуйте, Кирпа В.А., Вы писали:
T>>>Хотелось бы взглянуть на Ваш код, имеющий ту же функциональность, работающий не медленнее, написанный быстрее чем выше указанный КВА>>/* Convert function that will convert a КВА>> numeric month to an alphabetic month*/ КВА>>char *convert (short mnth) КВА>>{ КВА>> static char *alp_mon[] = { "January","February","March","April", КВА>> "May","June","July","August","September", КВА>> "October","November","December" }; КВА>> return alp_mon[mnth — 1]; КВА>>}
В вашем коде, как и в коде "индуса" — ошибка. Нет проверки на то, что mnth находится в нужных пределах от 1 до 12. Только в "индуском" случае возвращается левый указатель, а в вашем — будет эксепшн.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Кирпа В.А., Вы писали:
А>В вашем коде, как и в коде "индуса" — ошибка. Нет проверки на то, что mnth находится в нужных пределах от 1 до 12. Только в "индуском" случае возвращается левый указатель, а в вашем — будет эксепшн.
Согласен у меня будет сразу эксепшн а в "индуса" сразу после возврата из функции при попытке доступа по левому указателю
Так что поведение программы я сохранил
А>В вашем коде, как и в коде "индуса" — ошибка. Нет проверки на то, что mnth находится в нужных пределах от 1 до 12. Только в "индуском" случае возвращается левый указатель, а в вашем — будет эксепшн.
все так, но условия поставленной задачи были выполнены на 100%