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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2011, 17:06   #1
dilja
 
Регистрация: 02.10.2011
Сообщений: 5
Печаль решить уравнение на паскаль

решить уравнение
Изображения
Тип файла: jpg IMG_0506.jpg (101.7 Кб, 145 просмотров)
dilja вне форума Ответить с цитированием
Старый 02.10.2011, 17:41   #2
Exoo
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 53
Радость

алгоритм примерно такой:

i:=0;
создаем цикл от t=-3 до t=3 с шагом 0.5
begin
в нем находим дискриминант для уравнения с данным значением t.
находим корни.
записываем корни в массивы х1[i] и х2[i].
i:=i+1;
end;

создаем цикл от i=0 до i=11 для нахождения максимальных и минимальных иксов, где max и min соответствующие массивы
begin
if x1[i]>x2[i] then max[i]:=x1[i], min[i]:=x2[i]
else max[i]=x2[i], min[i]:=x1[i];
end;
вновь создаем цикл i=0 до i=11
бегин
вычисляем уравнение где вместо х1 всавляем max[i], а вместо х2 вставляем min[i].
выводим результат
енд.

это всего лишь алгоритм, синтаксические нормы языка паскаль не учтены )
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок, а в том, чтобы писать программы, работающие при любом количестве ошибок.
Exoo вне форума Ответить с цитированием
Старый 02.10.2011, 18:39   #3
dilja
 
Регистрация: 02.10.2011
Сообщений: 5
По умолчанию

Код:
Program Lab3;
const H=0.5;
Xmin=-3;
Xmax=3;
Var D,t,x,x1,x2,y:real;
Begin
D:=sqr(0.3)-4*48*t;
While (D=sqr(0.3)-4*48*t) do
Begin
x:=Xmin;
Repeat
If D>0 Then
begin x1:=(-48+sqrt(D))/(2*0.3);
x2:=(-48-sqrt(D))/(2*0.3);
Writeln ('x1=', x1:7:2, 'x2=', x2:7:2);
end
Else
If D=0 Then
begin x1:=-48/(2*0.3);
Writeln ('x=', x1:7:2);
end
else writeln ('êîðíåé íåò!!!');
x:=x+H
until x>=Xmax;
y:=arctan(x1/x2)+sqrt(sqr(x1)+sqr(x2))*cos(0.05*x2);
Writeln ('y=', y:7:2);
end;
end.
можете ошибку найтиии??


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 02.10.2011 в 18:51.
dilja вне форума Ответить с цитированием
Старый 02.10.2011, 19:56   #4
Exoo
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 53
По умолчанию

Код:
.....
const H=0.5;
Xmin=-3;
Xmax=3;
Var D,t,x,x1,x2,y:real;
Begin
D:=sqr(0.3)-4*48*t;
While (D=sqr(0.3)-4*48*t) do
......
вас не смущает что первоначальное значение t ни как не заданно?

в вашей программе d всегда будет равно само себе. и поэтому цикл while у вас всегда выполняется
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок, а в том, чтобы писать программы, работающие при любом количестве ошибок.

Последний раз редактировалось Exoo; 02.10.2011 в 20:02.
Exoo вне форума Ответить с цитированием
Старый 02.10.2011, 20:04   #5
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Код:
program Project1;
var
  t0, t1, dt:double;
  x1,x2,y : double;
begin
 writeln('enter limits (-3..3) : ');read(t0,t1);
 if t1<=t0 then
 begin
  writeln('error limit value');
  exit;
 end;
 writeln('enter delta : ');read(dt);
  dt := abs(dt);
 if dt=0 then
 begin
  writeln('error delta value');
  exit;
 end;
 t0:=t0-dt;
 while t0<t1 do
 begin
  t0:=t0+dt;
  x1:=(48+sqrt(2304-1.2*t0))/0.6;
  x2:=(48-sqrt(2304-1.2*t0))/0.6;

  if x2>x1 then
   y:=arctan(x1/x2)+sqrt(x1*x1+x2*x2)*cos(0.05*x2) else
   y:=arctan(x2/x1)+sqrt(x1*x1+x2*x2)*cos(0.05*x1);
  writeln('t=',t0:6:2,' y=',y:8:4);
 end;
end.
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 03.10.2011 в 19:56. Причина: прощёлкал b2
JUDAS вне форума Ответить с цитированием
Старый 02.10.2011, 20:23   #6
dilja
 
Регистрация: 02.10.2011
Сообщений: 5
По умолчанию

а как t задать?
dilja вне форума Ответить с цитированием
Старый 03.10.2011, 19:53   #7
Exoo
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 53
По умолчанию

для начала.
Код:
t:=-3;
.
а дальше я думаю выше приведенный код пользователем JUDAS должен вам помочь
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок, а в том, чтобы писать программы, работающие при любом количестве ошибок.
Exoo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как решить уравнение когда ln(-x) ? chip115 Помощь студентам 0 27.11.2009 20:39
Решить уравнение : используя схему горнера решить с меньшим количеством умножений! Rusl92 Помощь студентам 1 06.09.2009 23:24
помогите решить уравнение fist53 Паскаль, Turbo Pascal, PascalABC.NET 3 04.06.2009 22:47
Помогите,пожалуйста, решить дифференциальное уравнение Emi Свободное общение 1 22.05.2009 17:36