Учусь на IT-специальности в одном из московских вузов. Пришлось мне тут объяснять одной в меру блондинистой одногруппнице, что такое функции в Си и с чем их едят. И так, и эдак пробовал — не понимает. И тут меня осенило:
— Хорошо, давай перейдем на понятный тебе язык. Представь, что исходный код — это рецепт. Директивы #include — это как список продуктов к нему, функция main() — главное блюдо, а другие функции в этом файле — всякие гарниры и соусы. В основном рецепте помещаются только их названия в духе «теперь поставим картошку», а чуть ниже, после основного рецепта, детально расписано, как её варить.
Случилось чудо — она поняла и даже по моим наброскам допилила прогу до рабочего состояния.