Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 09.09.2009
Сообщений: 44
1

Помогите исправить задачу

03.10.2009, 17:45. Показов 670. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня дано уравнение a*x+b=0. Мне нужно найти его значение через метод деления отрезка пополам и метод итераций. Сделать так чтобы можно было задать любое значение а и любое значение b, а также точность и интервал на котором я буду искать данное значение. Вот текст программы
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Program task_1;
uses crt;
function F(a,b,c,x:real):real;
begin
F:=a*x+b;
end;
procedure Dihot(a,b,c,xn,xk,e:real;var x:real);
var xs:real;
begin
repeat
 xs:=(xn+xk)/2;
 if F(a,b,c,xn)*F(a,b,c,xs)<=0 then xk:=xs
 else xn:=xs;
until xk-xn<e;
x:=(xn+xk)/2;
writeln('method dilennya navpil:');
writeln('x=',x:0:1);
end;
procedure Iter(a,b,c,xn,xk,e:real;var x:real);
var x1,x2,f1,f2:real;
    n,i:longint;
begin
{method iteracij}
n:=round((xk-xn)/e);
x1:=xn; f1:=F(a,b,c,x1);
for i:=1 to n do
  begin
   x2:=x1+(xk-xn)/n;
   f2:=F(a,b,c,x2);
   if f1*f2 <= 0 then
    begin
     writeln('method iteracij:');
     writeln('x=',(x2 + x1)/2:0:5);
    end;
   x1:=x2; f1:=f2;
  end;
end;
 
var a,b,c,xn,xk,x,e:real;
begin
clrscr;
a:=-0.5;b:=-1;
xn:=-5;xk:=5;
if F(a,b,c,xn)=0 then
  begin
     writeln('x=xn=',a:9:6);
     readln;
     exit;
  end;
if F(a,b,c,xk)=0 then
   begin
     writeln('x=xk=',b:9:6);
     readln;
     exit;
   end;
if F(a,b,c,xn)*F(a,b,c,xk)>0 then
  begin
   writeLn('meghi intervaly zadani nevirno');
   readln;
   exit;
  end;
writeln('F(x)=a*x+b=0');
writeln('a=-0.5; b=-1;');
writeln;
writeln('tochnist = 0.1: ');
e:=0.1;
Dihot(a,b,c,xn,xk,e,x);
Iter(a,b,c,xn,xk,e,x);
writeln;
writeln('tochnist = 0.05: ');
e:=0.05;
Dihot(a,b,c,xn,xk,e,x);
Iter(a,b,c,xn,xk,e,x);
writeln;
writeln('tochnist = 0.001: ');
e:=0.001;
Dihot(a,b,c,xn,xk,e,x);
Iter(a,b,c,xn,xk,e,x);
readln
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2009, 17:45
Ответы с готовыми решениями:

Исправить задачу
Вставьте сюда задачу(она ниже), она у меня вставлена, но чет работает не очень хорошо. uses...

Эта задача сделана по другой структуре, нужно исправить ее исправить на нормальную задачу delphi
Эта задача сделана по другой структуре, помогит ее исправить на нормальную задачу delphi

Исправить задачу
Добрый день форумчане! Срочно требуется помощь. Не могу довести до конца загрузку и показ...

исправить задачу
вот есть задача 1 фотография и решение её и Из этой задачи нужно сделать как то решение ко 2й...

2
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
4190 / 1291 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
03.10.2009, 18:01 2
в чем вопрос-то?
1
0 / 0 / 1
Регистрация: 09.09.2009
Сообщений: 44
03.10.2009, 19:06  [ТС] 3
Мне нужно сделать так чтобы при компиляции можно было задать любое значение а и любое значение b, а также точность и интервал на котором я буду искать данное значение.

Добавлено через 39 минут
Все я уже исправил, спасибо за помощь. Программа будет выглядеть так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Program task_1;
uses crt;
function F(a,b,c,x:real):real;
begin
F:=a*x+b;
end;
procedure Dihot(a,b,c,xn,xk,e:real;var x:real);
var xs:real;
begin
repeat
 xs:=(xn+xk)/2;
 if F(a,b,c,xn)*F(a,b,c,xs)<=0 then xk:=xs
 else xn:=xs;
until xk-xn<e;
x:=(xn+xk)/2;
writeln('method dilennya navpil:');
writeln('x=',x:0:1);
end;
procedure Iter(a,b,c,xn,xk,e:real;var x:real);
var x1,x2,f1,f2:real;
    n,i:longint;
begin
{method iteracij}
n:=round((xk-xn)/e);
x1:=xn; f1:=F(a,b,c,x1);
for i:=1 to n do
  begin
   x2:=x1+(xk-xn)/n;
   f2:=F(a,b,c,x2);
   if f1*f2 <= 0 then
    begin
     writeln('method iteracij:');
     writeln('x=',(x2 + x1)/2:0:5);
    end;
   x1:=x2; f1:=f2;
  end;
end;
 
var a,b,c,xn,xk,x,e:real;
begin
clrscr;
writeln ('vvesti znachennya a= , b= ');
readln (a,b);
writeln ('vvesti meghi xn= xk= ');
readln (xn, xk);
if F(a,b,c,xn)=0 then
  begin
     writeln('x=xn=',a:9:6);
     readln;
     exit;
  end;
if F(a,b,c,xk)=0 then
   begin
     writeln('x=xk=',b:9:6);
     readln;
     exit;
   end;
if F(a,b,c,xn)*F(a,b,c,xk)>0 then
  begin
   writeLn('meghi intervaly zadani nevirno');
   readln;
   exit;
  end;
writeln('F(x)=a*x+b=0');
writeln('a=  b=');
writeln;
readln;
readln;
writeln('tochnist= ');
readln(e);
Dihot(a,b,c,xn,xk,e,x);
Iter(a,b,c,xn,xk,e,x);
writeln;
writeln('tochnist= ');
readln (e);
Dihot(a,b,c,xn,xk,e,x);
Iter(a,b,c,xn,xk,e,x);
writeln;
writeln('tochnist= ');
readln (e);
Dihot(a,b,c,xn,xk,e,x);
Iter(a,b,c,xn,xk,e,x);
readln
end.
0
03.10.2009, 19:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2009, 19:06
Помогаю со студенческими работами здесь

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

Исправить задачу
Полумагическим квадратом называется квадратная матрица, в которой суммы чисел в каждой строке...

Немного исправить задачу
нужно так, а у меня получилось что он начинает заполнять с правой стороны,а мне нужно с левой unit...

Дополнить/исправить задачу по Prolog
Создать семантическую сеть в Prolog. Задание: определения принадлежности животного к определенному...

Как исправить задачу с циклом for?
Доброе утро. Я неправильно решил задачу Дано вещественное число X и целое число N (&gt; 0). Найти...

Поиск элементов массива, исправить задачу
Задан числовой массив А. Составить программу поиска элементов массива, которые является наименьшим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru