Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2010, 02:08   #1
Mambakremen
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 10
По умолчанию Возведение в степень

Задание
Найти сумму Y=F1(x)/F2(x), где a<=x<=b, x менятется с шагом h=c. Задано F1(x)=exp((1/5)*ln(6*x-x*x)), F2(x)=sin(exp(2*x)*ln(x))-cos(x), a=3.5, b=6.5, c=0.2.(Сам писал функции может ошибся ) Сделать два варианта программы с использованием циклов for & repeat.

Уже понял почему ошибка, потому что в функции F1 - Ln(отрицательное_число), проблема в том что как возвести в степень по другому.

Цикл for - ошибка 207

Код:
program summa;
uses crt;
const
a=3.5;
b=6.5;
c=0.2; {wag h}
var x,y,F1,F2:real;i,n:integer;
begin
writeln('Summa funrcuu y=F1(x)/F2(x)');
x:=a;
n:=round((b-a)/c)+1;
for i:=1 to n  do
 begin
F1:=exp((1/5)*ln(6*x-x*x));
F2:=sin(exp(2*x)*ln(x))-cos(x);
y:=y+(F1/F2);
x:=x+c;
end;
writeln(y:1:2);
readkey;
end.
Цикл repeat - ошибка 207

Код:
program summa;
uses crt;
const
a=3.5;
b=6.5;
c=0.2; {wag h}
var x,y,F1,F2:real;i,n:integer;
begin
clrscr;
writeln('Summa funrcuu y=F1(x)/F2(x)');
x:=a;
repeat
F1:=exp((1/5)*ln(6*x-x*x));
F2:=sin(exp(2*x)*ln(x))-cos(x);
y:=y+(F1/F2);
x:=x+c;
until x>b;
writeln(y:1:2);
readkey;
end.
Mambakremen вне форума Ответить с цитированием
Старый 14.11.2010, 08:54   #2
Риндера
Delphi, учу С
Форумчанин
 
Аватар для Риндера
 
Регистрация: 20.10.2010
Сообщений: 178
По умолчанию

Знаешь что такое ОДЗ? Область допустимых значений.
Введи проверку везде перед вычислениями, чтобы не было деления на ноль, логарифмов из отрицательного числа и т.п.
Например, тут:
Код:
if ((6*x-x*x) > 0) and (x > 0) then
begin
   F1(x)=exp((1/5)*ln(6*x-x*x));
   F2(x)=sin(exp(2*x)*ln(x))-cos(x);
end
else writeln('Error!');

Последний раз редактировалось Риндера; 14.11.2010 в 08:58.
Риндера вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
возведение в степень [CODER] Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 14.04.2014 10:18
Возведение в степень. Drakulov Свободное общение 30 01.03.2011 16:35
возведение в степень ILNARM Паскаль, Turbo Pascal, PascalABC.NET 16 16.10.2009 23:04
возведение в степень Lissisa Помощь студентам 1 21.03.2009 22:34
Возведение в степень... Sota Общие вопросы C/C++ 7 18.07.2007 17:05