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

Отладить программу

07.05.2011, 09:50. Показов 716. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
дано было задание...чтобы программа решали систему линейных уравнений методом зейделя, но решает не все...мне нужно чтоб она решила конкретно вот эту систему

1,7х1+2,8х2+1,9х3=0,7
2,1х1+3,4х2+1,8х3=1.1
4,2х1-1,7х2+1,3х3=2.8

с заранее спасибо)))

Добавлено через 1 минуту
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
Program kursach;
type matr=array [1..20,1..20] of real;
     mas=array [1..20] of real;
var i,j,n:integer;
    F,E,v:real;
    A,C:matr;
    X,X0,R,b,z:mas;
BEGIN
  writeln('Введите размерность массива N');
readln(N);
  writeln('Введите точность вычислений E');
readln(E);
  writeln('Введите свободные члены ');
    for i:=1 to n do
      for j:=1 to n do
       readln(a[i,j]);
  writeln('Введите свободные члены ');
    for i:=1 to n do
     readln (b[i]);
  writeln('Введенная матрица : ');
    for i:=1 to n do begin
      for j:=1 to n do
      write(A[I,j]);
    write(B[i]);
    writeln;
    end;
  for i:=1 to n do begin
    for j:=1 to n do begin
     if i=j then c[i,j]:=0
     else c[i,j]:=-a[i,j]/a[i,i];
    end;
  R[i]:=b[i]/a[i,i];
  x0[i]:=R[i];
 
 
  end;
  for i:=1 to n do begin
  F:=0;
    for j:=1 to n do
    F:=F+c[i,j]*x0[j];
  x[i]:=F+R[i];
  end;
repeat
begin
  for i:=1 to n do begin
   x0[i]:=x[i];
   z[i]:=x0[i];
  end;
  for i:=1 to n do begin
  F:=0;
    for j:=1 to n do
    F:=F+c[i,j]*z[j];
  x[i]:=F+R[i];
  z[i]:=x[i];
 end;
V:=abs(x[i]-x0[i])
end;
until V<=e;
writeln('╧юыєў:');
  for i:=1 to n do
   writeln('x[',i,']=',x[i]:2:4);
writeln;
readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2011, 09:50
Ответы с готовыми решениями:

отладить программу
Гипер гимаройная задача.... услове! Имееться таблица данных осреднемесячной температуре по...

отладить программу
в 6 пункте нужно чтобы выходило из таблицы в главное меню, а оно что то глючит прогу открывайте в...

Составить и отладить программу
Составить и отладить программу вычисления значения функции с помощью бесконечного ряда Тейлора с...

Помогите отладить программу!
Нужна эту прогу {$R-} Program Kalorii; uses crt; Type Tmas=array of integer; var ...

5
0 / 0 / 0
Регистрация: 29.04.2011
Сообщений: 15
09.05.2011, 20:20  [ТС] 2
Помогите пожалуйста...или ни кто не может?
0
56 / 56 / 20
Регистрация: 07.02.2011
Сообщений: 159
09.05.2011, 22:24 3
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
    Uses CRT;
     
    Const
         maxn = 10;
     
    Type
        Data = Real;
        Matrix = Array[1..maxn, 1..maxn] of Data;
        Vector = Array[1..maxn] of Data;
     
    { Процедура ввода расширенной матрицы системы }
    Procedure ReadSystem(n: Integer; var a: Matrix; var b: Vector);
    Var
       i, j, r: Integer;
    Begin
         r := WhereY;
         GotoXY(2, r);
         Write('A');
         For i := 1 to n do begin
             GotoXY(i * 6 + 2, r);
             Write(i);
             GotoXY(1, r + i + 1);
             Write(i:2);
         end;
         GotoXY((n + 1) * 6 + 2, r);
         Write('b');
         For i := 1 to n do begin
             For j := 1 to n do begin
                 GotoXY(j * 6 + 2, r + i + 1);
                 Read(a[i, j]);
             end;
             GotoXY((n + 1) * 6 + 2, r + i + 1);
             Read(b[i]);
         end;
    End;
     
    { Процедура вывода результатов }
    Procedure WriteX(n :Integer; x: Vector);
    Var
       i: Integer;
    Begin
         For i := 1 to n do
             Writeln('x', i, ' = ', x[i]);
    End;
     
    { Функция, реализующая метод Зейделя }
    Function Seidel(n: Integer; a: Matrix; b: Vector; var x: Vector; e: Data) :Boolean;
    Var
       i, j: Integer;
       s1, s2, s, v, m: Data;
    Begin
     
         { Исследуем сходимость }
         For i := 1 to n do begin
     
             s := 0;
             For j := 1 to n do
                 If j <> i then
                    s := s + Abs(a[i, j]);
     
             If s >= Abs(a[i, i]) then begin
                Seidel := false;
                Exit;
             end;
     
         end;
     
         Repeat
     
             m := 0;
             For i := 1 to n do begin
     
                 { Вычисляем суммы }
                 s1 := 0;
                 s2 := 0;
                 For j := 1 to i - 1 do
                     s1 := s1 + a[i, j] * x[j];
                 For j := i to n do
                     s2 := s2 + a[i, j] * x[j];
     
                 { Вычисляем новое приближение и погрешность }
                 v := x[i];
                 x[i] := x[i] - (1 / a[i, i]) * (s1 + s2 - b[i]);
     
                 If Abs(v - x[i]) > m then
                    m := Abs(v - x[i]);
     
             end;
     
         Until m < e;
     
         Seidel := true;
    End;
     
    Var
        n, i: Integer;
        a: Matrix;
        b, x: Vector;
        e: Data;
    Begin
          ClrScr;
          Writeln('Программа решения систем линейных уравнений по методу Зейделя');
          Writeln;
     
          Writeln('Введите порядок матрицы системы (макс. 10)');
          Repeat
                 Write('>');
                 Read(n);
          Until (n > 0) and (n <= maxn);
          Writeln;
     
          Writeln('Введите точность вычислений');
          Repeat
                 Write('>');
                 Read(e);
          Until (e > 0) and (e < 1);
          Writeln;
     
          Writeln('Введите расширенную матрицу системы');
          ReadSystem(n, a, b);
          Writeln;
     
          { Предполагаем начальное приближение равным нулю }
          For i := 1 to n do
              x[i] := 0;
     
          If Seidel(n, a, b, x, e) then begin
             Writeln('Результат вычислений по методу Зейделя');
             WriteX(n, x);
          end
          else
              Writeln('Метод Зейделя не сходится для данной системы');
          Writeln;
    End.
0
0 / 0 / 0
Регистрация: 29.04.2011
Сообщений: 15
10.05.2011, 15:13  [ТС] 4
эту программу можете ваще с форума выкинуть!!!!!!!!! она не считает...ну так что всё больше ни кто?

Добавлено через 8 часов 41 минуту
200 на счёт кину тому кто мне пришлёт программу рабочую!!!
0
56 / 56 / 20
Регистрация: 07.02.2011
Сообщений: 159
10.05.2011, 18:45 5
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
Uses CRT;
Const maxn = 10;
Type Data = Real; Matrix = Array[1..maxn,
1..maxn] of Data; Vector =
Array[1..maxn] of Data;
Procedure ReadSystem(n: Integer; var a: Matrix; var b:Vector);
Var i, j, r:
Integer;
Begin r := WhereY; GotoXY(2, r); Write('A'); For i := 1 to
n do begin GotoXY(i* 6 + 2, r); Write(i); GotoXY(1,r + i + 1);
Write(i:2); end; GotoXY((n +1) * 6 + 2, r); Write('b'); For i := 1 to
n do begin For j :=1 to n do begin
GotoXY(j * 6 + 2, r + i + 1);
Read(a[i, j]); end; GotoXY((n+ 1) * 6 + 2, r + i + 1);
Read(b[i]); 
end;
End;
Procedure WriteX(n :Integer; x: Vector);
Var i: Integer;
Begin For i := 1 to
n do
Writeln('x', i, ' = ', x[i]);
End;
Function Seidel(n: Integer; a: Matrix; b: Vector; var x:Vector; e: Data) :Boolean;
Var i, j: Integer; s1, s2, s, v,
m: Data;
Begin 
 For i := 1 to
n do begin s := 0; For j :=
1 to n do If j
<> i then s
:= s + Abs(a[i, j]); If s
>= Abs(a[i, i]) then begin Seidel
:= false; Exit; end; end; Repeat m := 0; For i :=
1 to n do begin 
 s1 :=0; s2 :=0; For j:= 1 to i - 1 do
s1 := s1 + a[i, j] * x[j]; For j:= i to n do
s2 := s2 + a[i, j] * x[j]; 
 v :=x[i]; x[i] := x[i] - (1 / a[i, i]) * (s1 + s2- b[i]); If
Abs(v - x[i]) > m then m:= Abs(v - x[i]); end; Until m <
e; Seidel :=true;
End;
Var n, i: Integer; a: Matrix; b, x: Vector; e: Data;
Begin ClrScr;
Writeln('Программа решения систем линейных уравнений по методу Зейделя');
Writeln;
Writeln('Vvedite poriadok matrisi sistemi (max. 10)'); Repeat
Write('>');
Read(n); Until (n
> 0) and (n <= maxn); Writeln;
Writeln('Vvedite tochnost vichislenii'); Repeat
Write('>');
Read(e); Until (e> 0) and (e < 1); Writeln;
Writeln('Vvedite rasshirennuu matrisu sistemi');
ReadSystem(n, a, b); Writeln; 
For i := 1
to n do x[i] :=0; If Seidel(n,
a, b, x, e) then begin
Writeln('Resultat vichislenia po Zeidelu'); WriteX(n,x); end else
Writeln('Metod zeideli ne sxoditsi dle sistemi'); Writeln;
End.
0
0 / 0 / 0
Регистрация: 29.04.2011
Сообщений: 15
25.05.2011, 22:43  [ТС] 6
вот вы кидаете готовые программы...не задумыаясь...она не считает поставленное задание...и я попросил помочь с отладкой моей программы...если кто может помогите...я же не прошу решить за меня...а прошу просто помочь уже с готовым исходником))) помогите)
0
25.05.2011, 22:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2011, 22:43
Помогаю со студенческими работами здесь

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

Написать алгоритм и отладить программу
Помогите пожалуйста) Задание: В заданном тексте в каждом нечетном слове поменять местами первые...

Отладить программу, сортировка с разделением
Помогите плиз, если можете, отладить программу. Надо очень срочно: Задан массив AX (N). Добавить...

Написать и отладить программу для табулирования функции
1)написать и отладить программу для табулирования функции y=ln (2x2 +3x-5) для xв интервале с...


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

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