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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2013, 16:03   #1
vaseel1ch
Новичок
Джуниор
 
Регистрация: 19.12.2013
Сообщений: 2
По умолчанию выбор размерности

Здравствуйте, решил написать свою программу для курсовой работы на тему "решение СЛАУ методом Крамера", но с столкнулся с парой проблем..
1)моя программа умеет вычислять простые матрицы размером 2х2 и 3х3, как реализовать к примеру 4х4 я не знаю..
2)программе не хватает так скажем выбора размерности матрицы, а то есть, когда запускаешь программу, она просить ввести матрицу размером 3х3, после вывода результата идет расчет матрицы 2х2. Подскажите пожалуйста, как можно сделать этот самый выбор.

вот моя программа, она довольно большая

Код:
uses crt;
var a:array [1..3,1..3] of integer;
    b:array [1..3] of integer;
    c:array [1..2,1..2] of integer;
    f:array [1..2] of integer;
    i,j,k,l:integer;
    d,d1,d2,d3:integer;
    x1,x2,x3:real;
 
begin
clrscr;
writeln('Введите коэффиценты при неизвестных:');
for i:=1 to 3 do
for j:=1 to 3 do
 begin
  write('a[',i,',',j,']=');
  readln(a[i,j]);
 end;
writeln('Введите свободные члены:');
for i:=1 to 3 do
 begin
  write('b[',i,']=');
  readln(b[i]);
 end;
clrscr;
writeln('Расширенная матрица коэффициентов:');
for i:=1 to 3 do
 begin
  for j:=1 to 3 do
  write(a[i,j]:4);
  writeln(b[i]:6);
 end;
writeln;
d:= a[1,1]*a[2,2]*a[3,3]+a[1,2]*a[2,3]*a[3,1]+a[2,1]*a[3,2]*a[1,3]-a[1,3]*a[2,2]*
a[3,1]-a[1,2]*a[2,1]*a[3,3]-a[1,1]*a[2,3]*a[3,2];
if d=0 then
 begin
  write('Матрица линейно зависима');
  readln;
  exit
 end;
d1:=b[1]*a[2,2]*a[3,3]+a[1,3]*a[3,2]*b[2]+a[1,2]*a[2,3]*b[3]-a[1,3]*a[2,2]*b[3]-
a[2,3]*a[3,2]*b[1]-a[1,2]*a[3,3]*b[2];
d2:=a[1,1]*b[2]*a[3,3]+a[2,1]*b[3]*a[1,3]+a[2,3]*a[3,1]*b[1]-a[1,3]*b[2]*a[3,1]-
b[3]*a[2,3]*a[1,1]-b[1]*a[2,1]*a[3,3];
d3:=a[1,1]*a[2,2]*b[3]+a[2,1]*a[3,2]*b[1]+a[1,2]*b[2]*a[3,1]-a[2,2]*a[3,1]*b[1]-
a[3,2]*b[2]*a[1,1]-a[2,1]*a[1,2]*b[3];
x1:=d1/d;
x2:=d2/d;
x3:=d3/d;
writeln('x1=',x1:0:2);
writeln('x2=',x2:0:2);
writeln('x3=',x3:0:2);
readkey;
 
 
writeln('Введите коэффиценты при неизвестных:');
for i:=1 to 2 do
for j:=1 to 2 do
 begin
  write('a[',i,',',j,']=');
  readln(a[k,l]);
 end;
writeln('Введите свободные члены:');
for i:=1 to 2 do
 begin
  write('b[',i,']=');
  readln(b[i]);
 end;
clrscr;
writeln('Расширенная матрица коэффициентов:');
for i:=1 to 2 do
 begin
  for j:=1 to 2 do
  write(a[i,j]:4);
  writeln(b[i]:6);
 end;
writeln;
d:=a[1,1]*a[2,2]-a[1,2]*a[2,1];
if d=0 then
 begin
  write('Матрица линейно зависима');
  readln;
  exit
 end;
d1:=b[1]*a[2,2]-a[1,2]*b[2];
d2:=a[1,1]*b[2]-a[2,1]*b[1];
x1:=d1/d;
x2:=d2/d;
writeln('x1=',x1:0:2);
writeln('x2=',x2:0:2);
readkey;
end.


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

Модератор.

Последний раз редактировалось Serge_Bliznykov; 19.12.2013 в 16:11.
vaseel1ch вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение размерности массива SAMOUCHKA Общие вопросы C/C++ 36 25.10.2011 08:11
Объявление размерности массива. iCaesy Паскаль, Turbo Pascal, PascalABC.NET 2 22.10.2011 14:42
Матрица размерности Алексей679 Помощь студентам 2 16.04.2011 14:54
массив размерности n интервалом (-10;10). Scorch92 Помощь студентам 3 27.12.2010 20:39
увеличение размерности массива Лучик_света Общие вопросы .NET 3 25.10.2008 04:36