Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Hello, world! in C

2 views
Skip to first unread message

Ivan Shmakov

unread,
Mar 26, 2012, 1:26:54 AM3/26/12
to
Возвращаясь к вопросу о <<Hello, world!>> в C. В качестве
<<начальной>> программы может выступать и нечто более
<<вычислительное.>> Тот же (ставший классическим для ФП)
факториал. E. g.:

#include <stdio.h> /* for printf () */

static int
xfactorial (int a, int n)
{
/* . */
return (n > 1
? xfactorial (a * n, n - 1)
: a);
}

int
main ()
{
int n
= 5;
int f
= xfactorial (1, n);
printf ("%d! = %d\n",
n, f);
/* . */
return 0;
}

Причем, я предпочел начать с <<преобразования>> рекурсивного
определения факториала в <<математической>> записи в C-код,
после чего -- объяснить смысл функции main (), static-функций,
printf () для преобразования <<машинной>> формы числа в
<<символьную>> с выводом результата, и #include <stdio.h> как
способа подключения стандартных /объявлений/.

Да, я предпочел воспользоваться таким расширением (AIUI,
нестандартным) языка C как оптимизация <<хвостовой рекурсии>>,
реализуемым, в частности, GCC. Главным образом, ради большего
соответствия получаемого кода и исходной математической записи.

PS. BTW, возможно, под влиянием английского языка, я вполне понимаю
русское <<мир>> в т. ч. и как <<общество>>, <<народ>>, etc.

--
FSF associate member #7257

0 new messages