непонятно(

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
mdems
Сообщения: 20
Зарегистрирован: 14 авг 2009, 22:48

непонятно... :)
Объясните пожалуста зачем нужна переменная p ... поподробней я начал изучать функции непонимаю как это происходит...(

Код: Выделить всё


#include <stdio.h>

int power ( int m, int n);

int main()
{
	int i;
	for (i = 0; i < 10; ++i)
		printf("%d\n", power ( 2,i ));
	return 0;
}

int power( int base, int n )
{
	int i,p;
 
	p = 1;
	for(i = 1; i <= n; ++i)
		p = p * base;
	return p;
}
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Тяжёлый случай :)

Переменная p является вспомогательной переменной и используется для перемножения числа base на само себя n раз.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
_SG
Сообщения: 53
Зарегистрирован: 28 фев 2009, 10:43
Откуда: Севастополь

Гы, Ромео, ты чуток неправильно объяснил. Это функция возведения в степень. base в степени n
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Мммм, а что неверно в моих словах? Разве перемножение числа на само себя - это не есть степень числа? :) То, что это степень, это и так понятно (хотя бы по названию функции). Я же попытался объяснить сам код, чтобы стала понятна суть происходящего, абстрагируясь от специальных терминов.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
_SG
Сообщения: 53
Зарегистрирован: 28 фев 2009, 10:43
Откуда: Севастополь

Это тебе и мне понятно, а mdems как мне кажется было не понятно.
mdems
Сообщения: 20
Зарегистрирован: 14 авг 2009, 22:48

Парени спасибо вам, очень благодарен что вы есть у меня)) :)
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

_SG писал(а):Гы, Ромео, ты чуток неправильно объяснил. Это функция возведения в степень. base в степени n
_SG, прочитай определенеи целой степени. Ты просто назвал одним словом то, что Romrro пытался инетрпретировать. Но правильны оба варианта и ещё третий: "переменная p - это мультипликативный счётчик, исспльзуемый для накопления произведения нескольких (n) множителей, в данном случае равных друг другу (и равных base), следовательно результатом будет энная степнь base".
Romeo писал(а):Мммм, а что неверно в моих словах? Разве перемножение числа на само себя - это не есть степень числа? :) То, что это степень, это и так понятно (хотя бы по названию функции). Я же попытался объяснить сам код, чтобы стала понятна суть происходящего, абстрагируясь от специальных терминов.
Слово "степень" термин, но не специальный, а общеизвестный. Но так как спросившего интересовало не назначение всей функции, а её алгоритм и назначие переменной, то именно твое объяснение лучше, а то, что написал _SG ничего не даёт. А еще лучше так:
"при трансляции этой строки сначала анализируется правый операнд оператора присваивания, и в том месте, где в нём (операнде) исспользвано имя переменной p, этот идентификатор понимается как ссылка на старое значение p до присваивания, а потом уже читается, куда (снова в переменную p) надо поместить целиком всё значение правой части (произведение p на base). При исполнении этой строки произведние станет новым значением перенной p. То есть такая строк аозначает "увеличить p в base раз"".
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответить