Здравствуйте. Господа, прошу вашей помощи )
Вообщем ситуация следующая:
С прошлого семестра (в котором мы начинали и видимо закончили изучать паскаль) за мной числится несданная курсовая. Курсовой конечно это назвать сложно, это скорее самостоятельная работа, но все же...
Загвоздка в том что бОльшее количество занятий я не посещал (о чем сейчас оч жалею), и сделать задание сам к сожалению не смог. Поэтому взял у друга его работу и сдал. На работе стояла хорошая отметка (результат каких-то исправлений прямо в печатной версии, в присутствии препода. изначальна работат тоже была не верна). Я переписал, вроде бы, исправленый код, но когда я сдал работу под своим именем препод нашел ошибку и настоятельно рекомендует мне ее исправить. Я к сожалению в паскале разбираюсь не очень, поэтому прошу Вашей помощи, благо програмулинка совсем маленькая
1. В следующий раз тему с таким название закрою. Перенаименовал.
2. Почему в Теоретические вопросы ? Перенесено в задачи
3. Читаем правила форума.
С твоим либо - либо ясности мало
Списибо за внимание...
С просони еще и не так можно написать Опаздывал в инст, быстро печатал ну и машинально сначала е нажал потом и
Исправляю
Блин ну ты обо мне совсем плохого мнения
оО! Нарыл задание!
Подсчитать сумму:
Felixxl,
ну тебе же klem4 давал ссылку о разложении Exp(x) в ряд... А Exp раскладывается как раз по такой формуле, которую ты привел... Вот более точная ссылка: http://forum.pascal.net.ru/index.php?s=&showtopic=4535&view=findpost&p=44175 (вторая программа в этом посте)
Если бы я еще что-то понял из того что там написано...
Трудность в том что нам преподали очень мало операторов, и выкручиваться приходится ими... вот например ума не приложу что означает inc(n) (
Увеличение n на 1... Можешь заменить на
n := n + 1
var
k, n: integer;
x, s, next: double;
begin
write('k = '); readln(k);
write('x = '); readln(x);
next := 1;
s := 0;
n := 0;
repeat
n := n + 1;
next := (next * x) / n;
s := s + next;
until (n = k);
writeln('s = ', s:10:5);
end.
Огромное спасибо за помощь!
Только у меня проблемка... Набрал программу в паскале. И когда нажимаю запуск курсор перескакивает на readln(x) и выскакивает ошибка: "Error 116: Must be in 8087 mode to compile this."
=((
Изза чего это может происходить? P.S. У меня Turbo pascal 7.
И еще один вопросик: что за тип переменных double?
Сделай одно из двух:
1) либо поменяй Double на Real (просто Double - сопроцессорный тип, а у тебя как видно не включена по умолчанию поддержка сопроцессора)
2) либо САМОЙ ПЕРВОЙ строкой программы поставь {$N+}, это как раз и включит поддердку сопроцессорных типов...
Заменил на real и все заработало! Еще раз огромное вам человеческое спасибо!
И вопросик, с вашего позволения: это полностью вся программа, или, грубо говоря, скелет, куда просто нужно подставить x^k и k!?
Просто я в коде не узрел ни возведения в степень ни фактиориала...
Это - полная программа... Возведение в степень делается вот тут: (next*x) , факториал вычисляется последовательным умножением знаменателя на N... Согласись, что
X*X*X*X - это не что иное как X^4, а (1/1)*(1/2)*(1/3)*(1/4) равносильно 1/4!, хотя ты и не видишь функции их вычисления...
Ну вроде бы примерно понял )
Опять же спасибо! Попытаюсь вникнуть...
Ничего. Просто пытаюсь понять, про 1/4 это опечатка, или я еще и в математике чего-то не понимаю )
Там написно не 1/4, a 1/4!
И восклицательный знак тут означает факториал
4! = 1 * 2 * 3 * 4 = 24
5! = 1 * 2 * 3 * 4 * 5 = 120
Учите матчасть (с)
Тьфу блин, я (!) воспринял не как значек факториала а просто как воскл. знак )
Совсем стар стал...