PDA

Просмотр полной версии : лабораторная ОСАЛП



Maxilver
12.10.2008, 12:37
Писал лабораторную по Основам алгоритмизации и программирования , не смог справится с одним заданием.
Нужно составить блок схему данного уравнения, в частности по последнему блоку где X(в степени n) разделить на n...
http://hufflepuff.sk6.ru/osalp.jpg
с дополнительным условием что модуль икса должен быть меньше 1

Сначала я ввожу переменую E=1(она будет считать сколько было сделано шагов, и она же будет делителем) и переменую A=0 (для суммирования).
Человек должен ввеси икс и N(число шагов)
Далее проверка на X<1; X>-1 для удовлетворения условия с модулем икса.
Потом проверка на E<=N и если нет, вывод A и конец.
А дальше не знаю как разобратся со степенями.:(
Прошу помочь) заранее спасибо:)

C_O_D_E
12.10.2008, 13:21
Степень обычно вычисляется по какой-либо формуле, в зависимости от ЯП (в паскале нпр: exp(b*ln (a)) -- это a в степени b

цикл от 1 до N с шагом 2
возводим в степень;
делим;
суммируем.
возвращаемся на начало цикла

Maxilver
12.10.2008, 13:52
В том то и проблемА, что в блок схемах нем не разрешают использовать степеные выражения. Тоесть если нужен икс в квадрате то мы присваеваем ему значение(икс умножить на икс).
Может быть там нужно добавить ещё одну переменую - R которая будет считать сколько раз икс умножался на икс, а когда достигнет какого-то придела, то отправит икс дальше, а сама обнулится, для повтора этих действий.

Тоесть, если например как нибудь придумать, чтобы она сравнивалась с N, а N = 3
R<=N (+)
X = X * X
R = R + R

R<=N (+)
X = X * X
R = R + R

R<=N (+)
X = X * X
R = R + R

R<=N (-)
R = 0 (или 1)
Выход из цикла

Ну а там далее уже S = X/N


Вроде должно случится, но почему то что-то не так, гдето в порядке действий напутал:confused:

Тода наверное ещё надо будет делать N с шагом в 1, а уже в выражении S её переработать. Ну или ввести ещё одну переменную(

C_O_D_E
12.10.2008, 19:32
можно возводить в степень рекурсовно, хотя это и сложно.
можно циклами.


N от 1до 3
шаг 1. N=1
i=1
r=x
end;
S= r/n
r=1;
end;

шаг 2. N=2
i=1
r=r*x
i=2
r=r*x
S=S+r/n
r=1;
end;
шаг 3. N=2
i=1
r=r*x
i=2
r=r*x
i=3
r=r*x
S=S+r/n
end;

somewhere
13.10.2008, 10:23
Не решайте задачу "в лоб", степень здесь не нужна, такие задачи уже давно разжеваны здесь, ищите