Вопрос № 104462: Помогите, пожалуйста:
1) Дано натуральное число N. Вычислить:
S=1-1/2+1/4-1/8+...+(-1)N (степень)*1/2N (степень).
2)Дано натур. число N. Вычислить произведение первых N сомножителей:
P=2/3*4/5*6/7*...*2N/2N+1.
(с помощью цикла с п...
Вопрос № 104.462
Помогите, пожалуйста:
1) Дано натуральное число N. Вычислить:
S=1-1/2+1/4-1/8+...+(-1)N (степень)*1/2N (степень).
2)Дано натур. число N. Вычислить произведение первых N сомножителей:
P=2/3*4/5*6/7*...*2N/2N+1.
(с помощью цикла с параметром).
Отправлен: 06.10.2007, 11:46
Вопрос задала: Nicetyy (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Verena
Здравствуйте, Nicetyy!
Задачка, в общем-то, простая... Попробуем разобраться, что именно Вам не понятно. Начнём с самого простого - что такое цикл с параметром. Для Pascal это цикл вида: for i:= K to N do, где K - первое значение для параметра i, а N - последнее. То есть цикл выполняется, пока i < = N, и это будет происходить N-K+1 раз. Понятно, что параметр - обязательно число целое. Внутри цикла может находиться только один оператор, а чтобы расположить несколько, их надо заключить в операторные скобки begin-end.
Теперь о задачах. В них действительно надо использовать циклы с параметром. Алгоритм решения всех таких задач похож: к сумме (произведению) прибавляется (домножается) следующий член, который либо чисто вычисляется по заданной формуле, либо наращивается по мере прохождения цикла.
Для первой задачи не имеет смысла каждый раз вычислять степень 2 или -1, поскольку это невыгодно с точки зрения быстродействия (так выполняется больше операций). Лучше всего завести дополнительные переменные, одна из которых будет выражать, с плюсом или минусом по формуле идёт следующий член, а вторая - наращивать степень двойки, находящуюся в знаменателе. Обе эти переменные будут изменяться на каждой итерации цикла, и таким образом, на каждой i-ой итерации мы будем уже иметь (-1)^i и 2^i, и дополнительные действия
не потребуются - мы просто подставим их в формулу и сложим с уже имеющейся суммой. Начальным значением для суммы зададим 1, поскольку это число из ряда не высчитывается по заданной формуле. Если бы мы пошли другим, нерациональным путём, то внутри основного цикла должны были бы завести ещё один, в котором каждый раз сначала вычисляли бы i-ую степень -1 и 2. Хоть так никто, конечно, не делает, такой метод полезен для овладевания циклами с параметром :)
Для второй задачи всё проще. Здесь каждый член ряда прямо зависит от текущей итерации, т.е. выражается формулой 2*i/(2*i+1). Здесь нам не нужны никакие ухищрения и дополнительные переменные, мы просто домножаем уже имеющуюся часть произведения на новый его член. Следует заметить, что здесь изначальным значением p тоже будет 1, поскольку, домножая на 0, мы всегда бы получили 0 в результате.
Если Вы до сих пор ещё не поняли, как написать решение этих задач, то обратитесь к приложению, где реализовано всё, о чём я говорю. Только вот такие простые задачи всё-таки нудо писать самостоятельно, если Вы собираетесь хоть немного научиться этому.
Удачи!
Приложение:
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 07.10.2007, 02:07 Оценка за ответ: 5 Комментарий оценки: Спасибо большое за объяснение=)