Помощь - Поиск - Пользователи - Календарь
Полная версия: задача на цикл с предусловием. помогите. грозит недопуск
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Алиса
люди, спасите. эта задача - либо мой допуск до экзамена либо нет...
условие следующее: "для заданного натурального числа n и вещественного числа x вычислите sinx+sinxsinx+sinxsinxsinx+...+sinxsinx...sinx используйте цикл с предусловием"

текст программы которую составила я:

program;
var
a,b,c,x:real;
n:integer;
begin
x:=Pi/2;
a:=sin(x);
b:=sqr(a);
c:=a+b;
n:=2
while n<=3 do begin
b:=b*a;
c:=c+b;
writeln ('c=',c,'');
n:=n+1;
end;
end.



Как Х я взяла Пи на 2 чтобы проверить идет ли программа... по идее при N=3 у меня С тоже должна быть=3... но программа упорно пишет с=2... что за бред не понимаю... вроде логически все правильно. пожалуйста попробуйте разобраться в чем дело... у меня мозги кипят уже по всякому вертела и подставляла, считала сама на бумажке, лажа какая-то...не выходит и все. В общем мне нужно чтобы она хотя бы при заданном иксе считала верно. жду помощи.

М
правда, с тегами лучше? мисс_граффити

Malice
4 он выводит, никак не 2. Т.к. цикл while выполняется 2 раза + a +b. Чтоб 3 стало поставь "n:=3;" или "while n<3".
Алиса
Цитата(Malice @ 23.01.2007 13:14) *

4 он выводит, никак не 2. Т.к. цикл while выполняется 2 раза + a +b. Чтоб 3 стало поставь "n:=3;" или "while n<3".



я пыталась. сначала присваивала n двойку, потом писала n меньше либо равно трем, n равно трем. перебирала другие числа. он все равно пишет эту двойку... сейчас вообще перестала программа даже грузиться... sad.gif( буду очень благодарна поправке, подсказке... может у меня комп глючит... ну в универе на компе такая же фигня была... ну все равно, допустим что-то с компьютерами... если получится в общем, выложите тут. мне нужна эта программа.
Lapp
Здесь цикл реализован для всех n, а не только больше 2:
var
a,b,c,x:real;
i,n:integer;
begin
Write( 'x=');ReadLn(x);
Write('n=');ReadLn(n);
a:=sin(x);
b:=1;
c:=0;
i:=0;
while i<n do begin
b:=b*a;
c:=c+b;
i:=i+1;
end;
WriteLn('c=',c:8:5);
ReadLn
end.

Надеюсь, ты разберешься с кодом..
Алиса
спасибо smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.