С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 19

Исправьте пожалуйста некоторые недочеты в программе по решению СЛАР методом Гаусса

28.04.2009, 22:22. Показов 1674. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел программку для решения сист.лин.уравнений размерности n методом Гаусса, но нужно еще сделать так,чтобы она не рушилась при введении диагонального элемента равного нулю,как это сделать я не пойму(вероятно как-то переставить столбцы или строки) помогите пожалуйста. И еще один проблем - с блок-схемой лажа,разветвлений нет,как ее составить для этого кода??
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
program project2;
var
     a:array of array of real;
       b,x:array of real;
         h:real;
           i,j,k,n:integer;
begin
 writeln('Vvedute koluchestvo uravnenuy: ');
 readln(n);
setlength(a,n+1);
setlength(b,n+1);
setlength(x,n+1);
  for i:=1 to n do
begin
setlength(a[i],n+1);
writeln('uravnenue nomer ',i);
writeln('Vvedute koeficientu');
  for j:=1 to n do
begin 
write('a[',i,',',j,']=');read(a[i,j]);
   end;
writeln('Vvedite pravuiu chast uravnenuya');
write('b[',i,']=');read(b[i]); 
   end;
writeln('Matruca');
  for i:=1 to n do
begin
write(i);
  for j:=1 to n do
write(a[i,j]);
writeln(b[i]) 
   end;
  for i:=1 to n-1 do
  for j:=i+1 to n do
begin
a[j,i]:=-a[j,i]/a[i,i];
  for k:=i+1 to n do
a[j,k]:=a[j,k]+a[j,i]*a[i,k];
b[j]:=b[j]+a[j,i]*b[i] end;
x[n]:=b[n]/a[n,n];
  for i:=n-1 downto 1 do
begin
h:=b[i];
  for j:=i+1 to n do h:=h-x[j]*a[i,j];
x[i]:=h/a[i,i]; end;
writeln('Kornu uravnenuya');
  for i:=1 to n do writeln('x(',i,')=',x[i]);
end.
Добавлено через 57 минут 0 секунд
Ребята помогите,а!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.04.2009, 22:22
Ответы с готовыми решениями:

Решение СЛАУ(СЛАР) методом Гаусса
Можете написать программу, для решения СЛАУ методом Гаусса на c#! Вы ее писали, но с классами! реализуйте, пожалуйста ее без классов!...

Исправить ошибки в программе по решению симплекс методом
Написал программу по решинию симплекс методом, 11 не могу исправить. Выдает на переменные, все попробывал В архива файл .cpp и .txt

исправьте,пожалуйста,ошибки в программе
Цель задания:в матрице 10х10 найти кол-во локальных минимумов и сумму элементов(по модулю)выше главной диагонали,вот,что...

5
 Аватар для Norby
66 / 66 / 5
Регистрация: 12.03.2008
Сообщений: 392
29.04.2009, 00:16
насчет нулей, надо просто поменять две строки местами, так чтобы на диагонали не было нулей. по правилам это разрешается. единственную поправку нужно добавить в знаке определителя, при перестановке столбцов он (знак) изменится на противоположный
0
0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 19
12.05.2009, 21:37  [ТС]
Ребята какие у вас еще предложения??
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
12.05.2009, 22:04
Вот весь Гаусс, все три процедуры.
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
type
  Tmass=array of Real;
  Tmatrix=array of Tmass;
  
procedure Per(k,n:integer;var a:Tmatrix;var b:Tmass);
//перестановка данной строки и строки с наибольшим главным элементом
var j,i:integer;z:Real;
begin
   z:=a[k,k];i:=k;
   for j:=k+1 to n-1 do
   begin
     if abs(a[j,k])>z then
     begin
     z:=a[j,k];i:=j;
     end;
   end;
     if i>k then
     for j:=k to n-1 do
     begin
     z:=a[i,j];a[i,j]:=a[k,j];a[k,j]:=z;//перестановка коэффициентов
     end;
     z:=b[i];b[i]:=b[k];b[k]:=z;//перестановка свободных членов
end;
 //прямой ход Гаусса
Procedure PrChod(n:integer;var a:Tmatrix;var b:Tmass);
var k,j,i:integer;r:real;
begin
  for k:=0 to n-1 do
    begin
     if a[k,k]=0 then Per(k,n,a,b);//перестановка строк
     for j:=k+1 to n-1 do //пересчет коэффициентов
        begin
          r:=a[j,k]/a[k,k];
          for i:=k to n-1 do
            begin
              a[j,i]:=a[j,i]-r*a[k,i];
            end;
          b[j]:=b[j]-r*b[k];
        end;
     end;
end;
  //обратный ход Гаусса
Procedure ObrChod(n:integer;a:Tmatrix;b:Tmass;var x:Tmass);
var k,j:integer;r,g:real;
begin
  for k:=n-1 downto 0 do
     begin
       r:=0;
       for j:=k+1 to n-1 do
          begin
            g:=a[k,j]*x[j];
            r:=r+g;
          end;
       x[k]:=(b[k]-r)/a[k,k];
     end;
end;
1
0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 19
12.05.2009, 23:09  [ТС]
Спасибо,но как-то это все громоздко. Помоги пожалуйста встроить твои процедуры в мою программу.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
13.05.2009, 07:58
Давай сам немного поработай. а то надергал всего и не знаешь что делать. Пока сам не разберешься, никто тебе не поможет. Практически все у тебя есть.

Добавлено через 1 минуту 0 секунд
ак-то это все громоздко.
А ты хочешь написать прогу по решению СЛАУ в три строчки? Тогда вперед!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2009, 07:58
Помогаю со студенческими работами здесь

Пожалуйста, исправьте ошибки в программе
var n:integer; a:array of string; //Переменная типа string, который будет пройден в след. уроке buf: string; i,j:integer; ...

Исправьте, пожалуйста, ошибку в программе
program z1; const n=7; var a:array of integer; i,j:integer; begin for i:=1 to n do for j:=1 to n do if (i=j) then a:=0; ...

Исправьте пожалуйста ошибку в простой программе!
программа выдает 3 таких ошибки error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов строки...

Исправьте пожалуйста ошибку в программе. Там не работает почему то 5 и 6 меню
#include <iostream> // Підключення модулів #include <stdlib.h> #include <cstdio> #include <string.h> #include <stdio.h> ...

Исправьте/добавьте, пожалуйста, в программе код, чтобы стала работающей
Среднее из чётных положительных элементов. Сформировать новый динамический массив из косинусов отрицательных элементов, подсчитав их число...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru