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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.11.2012, 19:57   #1
xxxartikxxx
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 23
Восклицание

Здраствуйте я студент заочник и я прошу вас помогти решыть задачку поскольку я начинаючийв етом деле опыта имею мало ...
и я не знаю как ето зделать.Огромноя прозьба помогите мне,
зарание спасибо
Задание:
Из матрицы A(a[1,1]=-24 ;a[1,2]=-16.5 ;a[2,1]=-14.2 ;a[2,2]=14) получить компоненты вектора X={xi}, i=1,2,...,n,в качестве вектора принять главную диагональ матрицы , которая преобразована следующим образом: в начале каждой строки должны быть ее неотрицательные элементы, а в конце - отрицательные элементы (с сохранением порядка следования тех или иных элементов).

Текст матрицы:
Код:
var A:array[1..20,1..20] of real;
i,j,n:integer;
begin
writeln;
n:=2;
for i:=1 to n do
for j:=1 to n do
begin
a[i,j] := -2 * (j / 2 - 3.1) * (i - 3.9) + Exp(2.5*Ln(i * j))- 10;
write('a[',i,',',j,']=',a[i,j]:6:5,' ');
end;
writeln;
readln;
end.

Последний раз редактировалось Stilet; 13.11.2012 в 20:13.
xxxartikxxx вне форума
Старый 13.11.2012, 20:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вектор можно формировать так:
Код:
j=1;
for i:=1 to n do if a[i,i]<0 then begin x[j]:=a[i,i] inc(j);end;
for i:=1 to n do if a[i,i]>=0 then begin x[j]:=a[i,i] inc(j);end;
Где размер вектора х соответственно равен N.
Совет: N задавай константой, не делай динмассивом - все равно не разберешся

P.S. А чего ты N задал 2? У тебя же 20 элементов - сделай N константой и A:array[1..n,1..n] of real;
I'm learning to live...

Последний раз редактировалось Stilet; 13.11.2012 в 20:15.
Stilet вне форума
Старый 13.11.2012, 20:37   #3
xxxartikxxx
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 23
По умолчанию

Программа должна иметь такой вид?
Код:
var A:array[1..n,1..n] of real;
i,j,n:integer;
const n;
begin
writeln;
for i:=1 to n do
for j:=1 to n do
begin
a[i,j] := -2 * (j / 2 - 3.1) * (i - 3.9) + Exp(2.5*Ln(i * j))- 10;
write('a[',i,',',j,']=',a[i,j]:6:5,' ');
end;
Begin
j=1;
for i:=1 to n do if a[i,i]<0 then begin x[j]:=a[i,i] inc(j);end;
for i:=1 to n do if a[i,i]>=0 then begin x[j]:=a[i,i] inc(j);end;
end
writeln;
readln;
end.
From Stilet: Что, школоте код выделать спецтегами противопоказано? или религия следовать правилам форума не позволяет?

Последний раз редактировалось Stilet; 13.11.2012 в 20:42.
xxxartikxxx вне форума
Старый 13.11.2012, 20:43   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да такой. Добавляй теперь вывод на экран.
I'm learning to live...
Stilet вне форума
Старый 13.11.2012, 20:51   #5
xxxartikxxx
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 23
По умолчанию

Выдает ошибку...
xxxartikxxx вне форума
Старый 13.11.2012, 20:54   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Потому что вот так надо:

Код:
const n=10;  {или другое число, какое Вам надо}
var A:array[1..n,1..n] of real;
x: array [1..n*n] of real;
i,j:integer;
Там у Вас ниже еще ошибки будут - в одном месте вместо := стоит =, в трех местах запяточия не стоят - как пить дать ругнется.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 13.11.2012 в 20:57.
Sciv вне форума
Старый 13.11.2012, 21:08   #7
xxxartikxxx
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 23
По умолчанию

А теперь все правильно?
код:
const n=2;
var A:array[1..n,1..n] of real;
x: array [1..n*n] of real;
i,j:integer;
begin
writeln;
for i:=1 to n do
for j:=1 to n do
begin
a[i,j] := -2 * (j / 2 - 3.1) * (i - 3.9) + Exp(2.5*Ln(i * j))- 10;
write('a[',i,',',j,']=',a[i,j]:6:5,' ');
end;
Begin
j:=1;
for i:=1 to n do if a[i,i]<0 then begin x[j]:=a[i,i] inc(j);end;
for i:=1 to n do if a[i,i]>=0 then begin x[j]:=a[i,i] inc(j);end;
wrireln(x[j]);
end
writeln;
readln;
end.
xxxartikxxx вне форума
Старый 13.11.2012, 21:17   #8
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

почти. Еще один знак:

Код:
wrireln(x[j]);
end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума
Старый 13.11.2012, 21:24   #9
xxxartikxxx
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 23
По умолчанию

Пишет ошыбку неверное выражение в
for i:=1 to n do if a[i,i]<0 then begin x[j]:=a[i,i] inc(j);end;
for i:=1 to n do if a[i,i]>=0 then begin x[j]:=a[i,i] inc(j);end;
xxxartikxxx вне форума
Старый 13.11.2012, 21:27   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Раз школота мои предупреждения не читает, тема закрыта. следующая такая же будет удаляться без сожаления.
I'm learning to live...
Stilet вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение вектора на матрицу. Паскаль xakkkkker Помощь студентам 2 18.06.2012 19:42
на вектора Рузанна Помощь студентам 3 13.10.2011 17:44
Паскаль: длина вектора, массивы... r.elen Помощь студентам 16 23.04.2011 13:34
Из одномерного массива(вектора) по доп.массиву разрешенных значений получить массив неразрешенных(Паскаль Марьянка Помощь студентам 8 01.04.2011 09:09