Цитата(Димас @ 22.02.2007 23:08)

и как вижу сам не сделаю((( как сделать рекурсивную функцию для вычисления количества цифр((((
....
надо через долбаную рекурсию

как написать это в рекурсии?

Димас, не падай духом! Рекурсия - это просто. Даже проще, чем циклы

Допустим, ты большой начальник (хотя и не самый).
Тебе приходит бумага: сосчитать количество цифр в числе (число на полстраницы).
Тебе самому считать лень - это дело подчиненных. Но, поскольку ты хочешь все же вложить немного своего труда, ты стираешь одну цифру. Оставшееся число ты отсылаешь подчиненному. Когда он вернет тебе бумагу, ты прибавишь к его результату 1 (это ты умеешь

) и отрапортуешь о сделанной работе.
Подчиненный тоже начальник - поменьше, чем ты, но достаточно большой..
Он поступает точно так же как ты: стирает одну циферку и отсылает бумагу подчиненному, который, в свою очередь, тоже немаленький начальник...
И так далее.
В конце концов один из этой цепочки начальников получает пустую бумагу: все цифры уже стерты по одной предыдущими начальниками. Он решает, что это работа вполне посильная для него, и не стоит беспокоить подчиненных. Пишет свою резолюцию: "0 цифр" - и возвращает бумагу обратно.
Теперь бумага поднимается вверх. И на каждом этапе число увеличивается на единицу.
Что будет в результате?
Думаю, ты догадался..

Делаешь функцию, например CountDigs(M:integer):integer;
Она смотрит: если М равно нулю, то значение функции сделать нулем и выйти.
Если не ноль - то снова вызвать ту же самую функцию, но не от М, а от M div 10 (стирание цифры), прибавить к ней 1 и выйти с этим результатом.
Теперь сможешь сделать? Пиши, что непонятно.
Добавлено через 6 мин. mamont001, ты в самом деле думаешь, что типа помог? что человек, не сумевший разобраться в нескольких строчках, написанных
volvo, сможет отыскать нужное место в твоем юните и изменить его под себя?.. да еще и в неправильной кодировке..