Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Алгоритмы и задачи
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 ]
Модераторы: paradise, KMA
  

Mira_5



Новичок

Помогите, пожалуйста, составить алгоритм для вычисления этой функции.
Вычислить с заданной точностью э значение функции Y для каждого из 20 значений Х:

Y = 1 – X / 2 + (1*3*X2) / (2*4) – (1*3*5*X3) / (2*4*6) +

+ (1*3*5*7*X4) / (2*4*6*8) – ...

Значения Х и э ввести
Плохо въезжаю, сколько тут циклов будет: 1 или 1 и ещё один вложенный? И ещё: как тут можно сформулировать условие выхода из цикла?

Всего сообщений: 39 | Присоединился: сентябрь 2007 | Отправлено: 19 сен. 2007 16:09 | IP
KMA



Долгожитель

Здесь всего 1 цикл, условием будет пока не достигнет заданной точности:
Code Sample:
 
Y=1;
i=1;  счетчик
k=1; шаг (четный или нет)
Sn=0; член ряда
выполнять
  Sn=i/(i+1)*(-Sn); формула общего члена
  Y=Y+Sn*X[k]      ; вычисляем функцию
  i=i+2                  ; прибавляем к счетчику 2
  k=k+1                ; увеличиваем шаг
пока Sn>eps


При этом я понимаю, что Х это есть массив наперед заданных значений.

-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 20 сен. 2007 22:28 | IP
KMA



Долгожитель

Ой, прости, перепутал, в общем Sn=1 вначале (на ноль умножаем, получаем всегда ноль =))

-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 20 сен. 2007 22:30 | IP
Mira_5



Новичок

Спасибо, что ответили. Только я хотела спросить: Y=1 -- это присвоение значения иксу или что-то другое? Счётчик -- это вроде как считать, какой шаг по счёту -- там их надо 20. И ещё : как понять "шаг" и какое им. значение, чётный или нет?

Всего сообщений: 39 | Присоединился: сентябрь 2007 | Отправлено: 1 окт. 2007 15:06 | IP
KMA



Долгожитель


Спасибо, что ответили.

Всегда пожалуйста.

Только я хотела спросить: Y=1 -- это присвоение значения иксу или что-то другое?

Естественно, что это присваивание, а вообще это выходная величина, которую ты должна вычислить с точностью до eps (эпселент). Почему равно 1, потому как это начальное состояние, у тебя же начинается Y=1-... а далее члены ряда, вот эти члены ряда я и определял в цикле. Т. е. как ты могла заметить Y на каждой итерации цикла добавляется новый член ряда, который вычисляется по формуле Sn=i/(i+1)*(-Sn);.

Счётчик -- это вроде как считать, какой шаг по счёту -- там их надо 20. И ещё : как понять "шаг" и какое им. значение, чётный или нет?


Счетчик это понятие в данной задаче образное, т. е. мне нужно изменить на 2 значение счетчика, чтобы сосчитать член ряда. Шаг, это есть количество итераций. В скобочках указывается четный или нет (это моя глупость, я когда писал в листинге у меня было немного другое решение задачи, а потом я переделал, а комментарий убрать забыл).

X[k] это твои x1, x2, x3, x4, x5 и т. д. просто в программировании, чтобы не задавать 20 переменных одного типа вводят понятие массива, соответственно x[1]=x1, x[2]=x2, x[3]=x3 и т. д.

Чтобы понять как программа работает, я объясню 2 итерации цикла или 2 шага.

Вначале выполняется:
Y=1;
i=1;  
k=1;  
Sn=1;


шаг 1  
  Sn=1/(1+1)*(-1); Sn=-1/2
  Y=1+Sn*X[1]      ; Y=1+(-1/2)*x1
  i=1+2                  ; i=3
  k=1+1                ; k=2
если точность не достигнута, то выполнить еще один шаг цикла:
шаг 2
Sn=3/(3+1)*(-(-1/2)); Sn=3/(2*4)  
  Y={(1-(1/2)*x1)}+(3/(2*4))*X[2]  ; Y={}+(3/(2*4))*x2
  i=3+2                  ; i=5
  k=2+1                ; k=3
если точность eps не достигнута то выполнять следующий шаг
шаг 3
...

и т. д.
Пока не будет достигнута заданная точность.

В {} я обозначил предыдущее значение функции, чтобы удобнее было читать. Суть понятна?


Если тебе больше понятнее на языке программирования, чем условная запись, скажи на каком я думаю, что смогу помочь написать.


(Сообщение отредактировал KMA 3 окт. 2007 14:31)

-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 3 окт. 2007 14:27 | IP
Mira_5



Новичок

Вообще это программа на Паскале, но у меня сейчас глаавная задача в том, чтобы составить этот алгоритм в графическом редставлении -- ну, т.е. визуальную схему.
Вот сейчас суть да, понятна.
Я, значит, в начале объявляю все эти переменные, потом "Процесс" -- там идёт вычисление функции -- потом я, не доходя до проверки условия, увеличиваю значение счётчика и шаг -- а потом дохожу только до проверки условия -- Sn>eps -- если условие "нет" -- возвращаюсь в начало -- к "Процессу", если условие выполняется "да" -- то вывожу резалт. То есть я поняла, что там не надо создавать ещё дополнительный цикл, чтобы вычислять каждую переменную отдельно -- ну, в смысле, х1, х2, etc...
Вот мне кажется что я тут напутала -- к какому этапу должна возвращаться программма, если условие Sn>eps  не выполняется?
А в остальном вроде я именно так поняла

Всего сообщений: 39 | Присоединился: сентябрь 2007 | Отправлено: 5 окт. 2007 15:02 | IP
Mira_5



Новичок

кстати, я там в условии ошибку сейчас нашла. Y = 1 – X / 2 + (1*3*X2) / (2*4) – (1*3*5*X3) / (2*4*6) +

+ (1*3*5*7*X4) / (2*4*6*8) – ...
Там так написано. Только это не X2, X3, X4 -- это x во второй степени, х в третьей, в четвёртой и т.д. Это не влияет на решение этой задачи?

Всего сообщений: 39 | Присоединился: сентябрь 2007 | Отправлено: 5 окт. 2007 15:06 | IP
Gr1d



Новичок

Дааа, прикольно

Всего сообщений: 1 | Присоединился: октябрь 2007 | Отправлено: 6 окт. 2007 15:40 | IP
KMA



Долгожитель


Там так написано. Только это не X2, X3, X4 -- это x во второй степени, х в третьей, в четвёртой и т.д. Это не влияет на решение этой задачи?


так, тяжелый случай =). А ты сама как думаешь? Вообщем тебе задание, попробуй напиши код там где у тебя степени и правильные прибавки. Выложи сюда, а потом обсудим.

-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 16 окт. 2007 18:59 | IP
profeccor



Новичок

я мож не в тему а кто нить на С++ пишет

Всего сообщений: 24 | Присоединился: октябрь 2007 | Отправлено: 17 окт. 2007 8:04 | IP

Отправка ответа:
Имя пользователя   Вы зарегистрировались?
Пароль   Забыли пароль?
Сообщение

Использование HTML запрещено

Использование IkonCode разрешено

Смайлики разрешены

Опции отправки

Добавить подпись?
Получать ответы по e-mail?
Разрешить смайлики в этом сообщении?
Просмотреть сообщение перед отправкой? Да   Нет
 

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 ]

Форум работает на скрипте © Ikonboard.com