1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
цикл repeat, Нужно вычислить выражение -0,5+0,7-0,9+...+0.23;
Доброго времени. Уважаемые специалисты. У меня вот такой вопрос. Нужно вычислить выражение -0,5+0,7-0,9+...+0.23; Я написал программу, но не не могу понять правильно или нет. Подскажите
const n=0.23 var s, x:real; zn:integer; begin s:=0.5; x:=0.2;zn:=-1; repeat s:=s*zn; s:=s+x; x:=x+0.2; zn:=-zn; until x>0.23; writeln ('s= ' ,s:8:3); end.
Меня еще условие немного настораживает потому что оканчивается 0,23
Добавлено через 10 мин. Думаю вместо 0,23 там должно быть 2,3. А может это хитрость такая
Нет. Опять то же самое. Не выделяйте первый элемент! Он точно такой же, как и остальные! Сколько раз повторять? За что ему выпала честь сразу быть занесенным в сумму? (Похоже, пришло время написать об этом развернутый ответ, а может даже статью ) Все проще:
s := 0; { <-- Сумма ВСЕГДА инициализируется 0, запомни это раз и навсегда } x := 0.5; zn := -1; repeat s := s + x*zn; { Увеличиваем сумму, принимая во внимание знак } writeln(x:5:2); x:=x+0.2; zn:=-zn; until x > 2.3;
(примечание: если сумма инициализирована не нулем - программа с большой степенью вероятности будет выброшена, ибо это подгонка под ответ а не вычисления).
Цитата
Меня еще условие немного настораживает потому что оканчивается 0,23
Правильно настораживает, у тебя изначально по модулю начальное значение больше, чем конечное, хотя модули членов ряда вроде бы все время возрастают. Программа зациклится. Может до 2.3, а не 0.23?
Большое спасибо, а то смотрел примеры в лекциях и насобирал. Посчитал вручную совсем другой ответ выходил вот и обратился за помощью. 3 дня голову ломал. А напишите статью дайте ссылку обязательно прочитаю ))