Автор Тема: Почему возникает ошибка?  (Прочитано 4485 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Prutvel

  • Пользователь
  • **
  • Сообщений: 25
    • Просмотр профиля
Почему возникает ошибка?
« : 12 Марта 2010, 00:27:34 »
Привет!
Я писала программу для того, чтобы найти значения функции - программа простая - надо было задать формулу, по которой в цикле посчитались и вывелись бы нужные значения. Однако возникает ошибка: error while linking, почему-то, перел последним end.
Подскажите, пожалуйста, как исправить?
А программу надо было такую:
"Расчет диффузионных профилей" - называется так,

N/N(нулевое)=erfc(x/корень(Dt))=1-erf(x/(2*корень(Dt))
только я в паскале не нашла функцию эрфактум..., поэтому переписала в ПРОСТОМ варианте:
y=(1/(1+a1*x/(2*корень(Dt))+a2*(x/(корень(Dt)))^2+a3*(x/(корень(Dt)))^3+a4*(x/(корень(Dt)))^4)^4)-0,01
где D=10^(-10) - десять в минус десятой степени
t=60 секунд
a1=0,278393
a2=0,230389
a3=0,000972
a4=0,078108
Получилась программа:
Var
x,y,a1,a2,a3,a4,t,h:real;
begin
a1:=0.278393;
a2:=0.230389;
a3:=0.000972;
a4:=0.078108;
x:=0.29;
t:=60;
h:=10000/(2*sqrt(t));
while x<=1.26 do
begin
y:=-0.01+1/sqr(sqr(1+sqr(a1*x*h+a2*(x*h))+sqr(a3*x*h)*a3*x*h+ sqr(sqr(a4*x*h))));
writeln ('x= ' ,x:4:2, ' y= ',y:8:6);
x:=x+0.03;
end;
readln;
end.

Причем, надо еще график тоже в паскале построить, а потом все это в маткаде сделать, но эта ошибка все время появляется, подскажите, как ее исправить...
Нам сказали, что х будет с двумя знаками после запятой, а у - с 6 знаками после запятой...

Мне не удается запустить программу во FREE PASCAL

Но если y всегда -0,01, может быть, подскажете, пожалуйста, как поступить в этом случае???
Может, тип переменных какой-нибудь другой надо...


кроме того, нам дали формулу: N/N(нулевое)=erfc(x/корень(Dt))=1-erf(x/(2*корень(Dt))
где эта самая функция erf(z) от какой-то переменной z определяется так:
erf(z)=1-1/[(1+a1*z+a2*z^2+a3*z^3+a4*z^4)^4]+E(z) где E(z)=0,01 и промежуток х [0,29;1,26]

График - кривая, нам сказали, похожа на ветвь обычной гиперболы, убывающей в 1 четверти...
Подскажите, прошу...

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #1 : 12 Марта 2010, 00:43:40 »
Проверьте количество скобок. А почему он должен быть иным или как вы хотите разным если у вас одни и те же значения у a1,a2, которые вы задаете присовениями. И потом почему вы применяете функцию sqr вместо sqrt? 
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #2 : 12 Марта 2010, 00:46:33 »
А свою загадочную для меня функцию erf погуглите
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Prutvel

  • Пользователь
  • **
  • Сообщений: 25
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #3 : 12 Марта 2010, 00:49:53 »
Я использую sqr, так как мне надо функцию возводить в квадрат, точнее, я нахожу нужную степени при повторном возведении в квадрат или умножением, а sqrt - это если корень брать...

Оффлайн Prutvel

  • Пользователь
  • **
  • Сообщений: 25
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #4 : 12 Марта 2010, 00:52:47 »
Для меня эта фуункция тоже загадочной была, я гуглила ее... Но в Pascal ее все равно нет.

Я же написала общий вид этой функции, как нам на занятии давали... Просто подставляем одно в другое, можно все константы сразу подставить, но Free Pascal мне ошибку выводит: error while linking прямо перед последним end

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #5 : 12 Марта 2010, 00:57:37 »
Просто я к тому что у вас sqr стоит там где должен был бы стоять sqrt по формуле или я ее неправильно прочел. А вот с графиком один добрый дядя математик, написал на pas специальный модуль для рисования графиков заданных функций. Описан в книге "Pascal на примерах математики". Завтра если    не найдете книжку и CD попробую выложить как атач. Извините проверить вас не могу под рукой паскального компила нету вот сейчас ставлю
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #6 : 12 Марта 2010, 00:59:58 »
Полный исходник покажите
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Prutvel

  • Пользователь
  • **
  • Сообщений: 25
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #7 : 12 Марта 2010, 01:00:45 »
Спасибо,  вы мой спаситель... ;)

Оффлайн Prutvel

  • Пользователь
  • **
  • Сообщений: 25
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #8 : 12 Марта 2010, 01:01:39 »
исходник - это что?

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #9 : 12 Марта 2010, 01:03:18 »
Полный текст программы)
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Prutvel

  • Пользователь
  • **
  • Сообщений: 25
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #10 : 12 Марта 2010, 01:05:08 »
Var
x,y,a1,a2,a3,a4,t,h:real;
begin
a1:=0.278393;
a2:=0.230389;
a3:=0.000972;
a4:=0.078108;
x:=0.29;
t:=60;
h:=10000/(2*sqrt(t));
while x<=1.26 do
begin
y:=-0.01+1/sqr(sqr(1+sqr(a1*x*h+a2*(x*h))+sqr(a3*x*h)*a3*x*h+ sqr(sqr(a4*x*h))));
writeln ('x= ' ,x:4:2, ' y= ',y:8:6);
x:=x+0.03;
end;
readln;
end.

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #11 : 12 Марта 2010, 01:17:37 »
Ладно завтра проверю, попробую чем смогу помочь
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Prutvel

  • Пользователь
  • **
  • Сообщений: 25
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #12 : 12 Марта 2010, 01:20:04 »
Буду ждать до завтра. Спасибо.

Оффлайн Prutvel

  • Пользователь
  • **
  • Сообщений: 25
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #13 : 12 Марта 2010, 18:00:42 »
я в ворде набрала формулу где здесь ее показать можно?

Оффлайн Prutvel

  • Пользователь
  • **
  • Сообщений: 25
    • Просмотр профиля
Re: Почему возникает ошибка?
« Ответ #14 : 12 Марта 2010, 18:08:50 »
Вам по почте послала.

 

Рекурсивная процедура. Почему рекурсия работает неправильно?

Автор Asira

Ответов: 1
Просмотров: 2538
Последний ответ 24 Декабря 2009, 22:22:25
от InfStudent
Почему программа не работает?

Автор What Is My Life

Ответов: 4
Просмотров: 2334
Последний ответ 21 Марта 2010, 21:41:50
от Данила
Метод простой итерации в MS Excel: ошибка в формуле

Автор lonesome_pirate

Ответов: 3
Просмотров: 3466
Последний ответ 06 Марта 2014, 19:41:34
от mad_math
Посмотрите где ошибка? должно быть h=0.010

Автор mike37

Ответов: 0
Просмотров: 1331
Последний ответ 01 Ноября 2011, 16:12:14
от mike37
Ошибка в коде

Автор privatnebank

Ответов: 4
Просмотров: 2571
Последний ответ 05 Февраля 2010, 20:15:36
от privatnebank