IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> задача на цикл с предусловием. помогите. грозит недопуск
Алиса
сообщение 23.01.2007 12:58
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Женский

Репутация: -  0  +


люди, спасите. эта задача - либо мой допуск до экзамена либо нет...
условие следующее: "для заданного натурального числа 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... что за бред не понимаю... вроде логически все правильно. пожалуйста попробуйте разобраться в чем дело... у меня мозги кипят уже по всякому вертела и подставляла, считала сама на бумажке, лажа какая-то...не выходит и все. В общем мне нужно чтобы она хотя бы при заданном иксе считала верно. жду помощи.

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



Сообщение отредактировано: мисс_граффити - 23.01.2007 13:41
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
Malice
сообщение 23.01.2007 13:14
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


4 он выводит, никак не 2. Т.к. цикл while выполняется 2 раза + a +b. Чтоб 3 стало поставь "n:=3;" или "while n<3".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Алиса
сообщение 23.01.2007 14:37
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Женский

Репутация: -  0  +


Цитата(Malice @ 23.01.2007 13:14) *

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



я пыталась. сначала присваивала n двойку, потом писала n меньше либо равно трем, n равно трем. перебирала другие числа. он все равно пишет эту двойку... сейчас вообще перестала программа даже грузиться... sad.gif( буду очень благодарна поправке, подсказке... может у меня комп глючит... ну в универе на компе такая же фигня была... ну все равно, допустим что-то с компьютерами... если получится в общем, выложите тут. мне нужна эта программа.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 23.01.2007 14:57
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Здесь цикл реализован для всех 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.

Надеюсь, ты разберешься с кодом..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Алиса
сообщение 23.01.2007 15:29
Сообщение #5





Группа: Пользователи
Сообщений: 3
Пол: Женский

Репутация: -  0  +


спасибо smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 10:11
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"