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

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

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

> Прораммирование алгоритмов цикличной структуры, ошибка 207
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской
Реальное имя: Евгений

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


Задание
Найти сумму 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.(Сам писал функции может ошибся smile.gif ) Сделать два варианта программы с использованием циклов for & repeat.

Цикл 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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Вещественное с нулем нельзя сравнивать НИКОГДА. Равно как и с другими вещественными числами. Только больше/меньше/не_равно. Я бы вообще запретил для вещественных типов операцию сравнения, по крайней мере сделал бы предупреждение при попытке применить операцию "=" к операндам таких типов. Количество глюков (причем, далеко не всегда безобидных) в программах резко бы поубавилось.

Цитата
всё правильно там написано.
В таком случае, это делается еще проще:

var Flag: Integer;

t := (6*x-x*x);
if t > 0 then flag := 1
else if t < 0 then flag := -1
else flag := 0;

F1 := Flag * exp((1/5)*ln(abs(t)));
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Mambakremen   Прораммирование алгоритмов цикличной структуры   13.11.2010 15:24
volvo   Добавь строчку: for i:=1 to n do begin writeln(6…   13.11.2010 15:29
Mambakremen   Добавь строчку: for i:=1 to n do begin writeln(…   13.11.2010 15:33
volvo   Я не сказал "добавь и эта ошибка уйдет".…   13.11.2010 15:43
Mambakremen   Ребята, извините, не знаю как по другому... :ypria…   13.11.2010 16:09
TarasBer   > Из FAQ не пойму этих строк... F1 нажми, там …   13.11.2010 16:16
volvo   У нас не FAQ по FPC. Огромное количество программ …   13.11.2010 16:31
Mambakremen   Спасибо :) Буду пробовать.   13.11.2010 16:36
volvo   Кстати, таки не приведется: Что гарантирует: рез…   13.11.2010 18:52
Mambakremen   Решил не мучатся с функцией, простой усл. оператор…   15.11.2010 3:10
volvo   Неправда. Число в нулевой степени - не ноль, а еди…   15.11.2010 3:19
TarasBer   Возводим не в нулевую степень, а в 1/5. 0^(1/5)=0 …   15.11.2010 15:01
volvo   Вещественное с нулем нельзя сравнивать НИКОГДА. Ра…   15.11.2010 15:17
TarasBer   Что случится в этом примере из-за сравнения с нулё…   15.11.2010 15:50


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

 





- Текстовая версия 24.12.2025 4:22
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name