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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2012, 15:43   #1
GaJIbI4
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 77
Сообщение Объединение 3 векторов в двумерный массив

Возникли проблемы с задачей.
Даны три вектора X={x1, x2, x3,}, Y={y1, y2, y3}, Z={z1, z2, z3}.
Построить матрицу A, столбцами которой будут соответственно векторы X, Y, Z, упорядоченные в порядке возрастания. Упорядочение вектора в порядке возрастания оформить в виде подпрограммы.

Вот что я придумал, компилятор ругается.
Код:
uses crt;
type
mass=array[1..3] of real;

Const
m=3;
n=3;


procedure sort(var M:mass);
var
i,j:integer;
Me:real;
begin
for i:=1 to 2 do
for j:=i+1 to 3 do
if M[j]<M[i] then
begin
Me:=M[i];
M[i]:=M[j];
M[j]:=Me;
end;
end;




var
A:array[1..M,1..N] of real;
X:Array[1..N] of real;
Y:Array[1..N] of real;
Z:Array[1..N] of real;
i,j:integer;
begin
clrscr;


write('введите координаты вектора X: ');
for i:=1 to n do
read(X[i]);



write('введите координаты вектора Y: ');
for i:=1 to n do
read(Y[i]);


write('введите координаты вектора Z: ');
for i:=1 to n do
read(Z[i]);

sort(X);
sort(Y);
sort(Z);


for i:=1 to N do
begin
for j:=1 to M do
begin
A[i,j]:=X[i];
A[i+1,j]:=Y[i];
A[i+2,j]:=Z[i];
end;
end;
for j:=1 to N do
begin
for i:=1 to M do
write(' ',A[i,j]:5:2);
writeln;
end;

end.
GaJIbI4 вне форума Ответить с цитированием
Старый 02.01.2012, 16:17   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Примерно так:

Код:
Const
m=3;
n=3;

type
wtf=array[1..M,1..N] of real;
mass=Array[1..N] of real;


procedure sort(var M:mass);
var
i,j:integer;
Me:real;
begin
for i:=1 to 2 do
for j:=i+1 to 3 do
if M[j]<M[i] then
begin
Me:=M[i];
M[i]:=M[j];
M[j]:=Me;
end;
end;




var
A:wtf;
X,y,z:mass;
i,j:integer;

begin


write('введите координаты вектора X: ');
for i:=1 to n do
read(X[i]);



write('введите координаты вектора Y: ');
for i:=1 to n do
read(Y[i]);


write('введите координаты вектора Z: ');
for i:=1 to n do
read(Z[i]);

sort(X);
sort(Y);
sort(Z);


for i:=1 to N do
  for j:=1 to M-2 do
    begin
      A[i,j]:=X[i];
      A[i,j+1]:=Y[i];
      A[i,j+2]:=Z[i];
    end;



for i:=1 to N do
  begin
    for j:=1 to M do
      write(' ',A[i,j]:5:2);
    writeln;
  end;

readln;

end.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 02.01.2012, 16:33   #3
GaJIbI4
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 77
По умолчанию

Спасибо, большое, работает =)
GaJIbI4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Массив из 2 векторов GreatMuse Общие вопросы C/C++ 6 30.01.2010 22:09
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Ввод векторов и матриц, умножение матрицы на вектор и вычисление скалярного призведения двух векторов zverushka Помощь студентам 18 20.02.2009 15:25