08.01.2011, 22:03 | #1 (permalink) |
Новичок
Регистрация: 08.01.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите с одной задачкой на Паскале
|
08.01.2011, 22:03 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Может быть ваша тема уже имеет решение на нашем форуме, посмотрите тут Помогите с задачей в Паскале Помогите с программой в Паскале Помогите с задачкой на сортировку обменом Помогите с задачкой по графике Помогите с задачкой на Паскале Помогите с программой в паскале |
09.01.2011, 07:48 | #4 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Формулу в общем виде вам почти дали, используя её и цикл "пока" - пишите программу, там ничего особо сложного нет.
__________________
Убить всех человеков! Последний раз редактировалось AlexZir; 09.01.2011 в 09:07 Причина: ;) |
09.01.2011, 08:07 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну, положим, формулу дали не то, чтобы правильную, ибо (-1)^2n никакой знакопеременности не обеспечит, поскольку (-1), будучи в четную степень возведенной, завсегда единицею будет. Я бы предложил вариант [(-1)^(n-1)]*(2n-1)/(2n+1).
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
09.01.2011, 09:07 | #6 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
это мелочи по сравнению с мировой революцией
Как я уже писал - предлагайте свой вариант, а тут вас поправят, за вас вашу работу никто делать не будет, халява тут не очень приветствуется.
__________________
Убить всех человеков! |
09.01.2011, 23:10 | #7 (permalink) |
Новичок
Регистрация: 08.01.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Program Vika;
var N, i, S: real; begin write('Введите число слагаемых N='); readln(N); S:=0; i:=1; while i<=N do begin S:=S+exp(n-1*ln(-1))*(2*n-1)/(2*n+1); end; write('Сумма S=', S); end. простите, но я лошара в программировании. Уж исправьте, что неправильно! грешна! так или не так? Но программа не работает... |
10.01.2011, 09:28 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Нет, не существует. Функция логарифм (не зависимо от основания) определена в диапазоне 0<x<=∞, а потому такой способ изменения знака не годится. Кроме того, у Вас абсолютно неправильно построен цикл: вместо того, чтобы в каждое слагаемое подставлять свое значение переменной цикла i, Вы все их считаете с постоянной величиной n. И уж если Вы используете цикл while - do, то не забывайте в его теле принудительно увеличивать значение переменной цикла i, т.е. нужно написать что-то вроде i:=i+1.
Всех этих неприятностей и проблем можно избежать, если: 1. Ввести пользовательскую функцию Sign (знак), возвращающую +1 для нечетных слагаемых и -1 для четных. 2. Задать формат переменных N и i целочисленным, а не вещественным - тогда можно обойтись обычным циклом for i:=1 to N do. Итого: Код:
Program Vika; var N,i:Integer; S: real; Function Sign(m:Integer):Integer; begin if (m mod 2)=0 then Sign:=-1 else Sign:=1; end; begin write('Введите число слагаемых N= '); readln(N); S:=0; for i:=1 to N do S:=S+(2*i-1)/(2*i+1)*Sign(i); writeln('Сумма S= ', S); readln; end. Код:
Program Vika; var N,i:Integer; a,S: real; begin write('Введите число слагаемых N= '); readln(N); S:=0; for i:=1 to N do begin a:=(2*i-1)/(2*i+1); if (i mod 2)=0 then a:=-a; S:=S+a; end; writeln('Сумма S= ', S); readln; end. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|