| 
| 
 | Вопрос # 1 477/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты! Огромная просьба о помощи! Очень нужно сделать прогу.. но я не понимаю как сделать.. программирование для меня тяжело.. но надо сделать.. перебрала кучу информации, но всё равно не получается! одна надежда  на вас.. вот условие, пожалуйста помогите мне.составить подпрограмму, которая в матрице Y(m,n) меняет местами 1-й и k-й столбец (1<m). C помощью подпрограммы поменять местами первый и последний столбцы матриц A(12,9), C(7,11), и третий и пятый столбц матрицы B(8,15). Исходные и преобразованные матрицы вывести на экран дисплея. Элементы входных матриц вычисляются по формулам:
 A(c индексом i,j)=tg(j)+e^cos(i);
 B(c индексом i,j)=sin(3.2j+4.2)+e^tg(1.5i);
 C(c индексом i,j)=cos(12.4j+1)
 Буду очень благодарна, если кто откликнется.
 
|  |   Вопрос задала: Violina (статус: Посетитель)Вопрос отправлен: 5 апреля 2008, 14:54
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович Здравствуйте, Violina!Нет, ну курсовые надо самому решать, разве из-за того, что вы - девушка..
 В приложении код с подробными комментариями.
 Приложение:Переключить в обычный режим program Project;{    ______________  Wyfinger, 2008} {$APPTYPE CONSOLE} uses  SysUtils,  type   TMatrix = record    m, n : Integer;    d    : array of array of Real;  end;  procedure SetMatrixFormat(var Matrix: TMatrix; M, N: Integer);var  i : Integer;begin Matrix.m := M; Matrix.n := N; SetLength(Matrix.d, M); for i := 0 to M-1 do   SetLength(Matrix.d[i], N);end;  procedure PrintMatrix(Matrix: TMatrix);var  i, j : Integer;  str  : string;begin for i := 0 to Matrix.m-1 do   begin     Write('|');     for j := 0 to Matrix.n-1 do       begin          str := '          ' + FloatToStr( Round(Matrix.d[i,j]*10)/10 );          Write(str);         Write('|');       end;     WriteLn;   end;end;  procedure ExchangeCols(var Matrix: TMatrix; M, N: Integer);var  i     : Integer;  accum : Real;begin for i := 0 to Matrix.m-1 do   begin     accum := Matrix.d[i,M];     Matrix.d[i,M] := Matrix.d[i,N];     Matrix.d[i,N] := accum;   end;end; // ***************************************************************************** const  E = 2.718281828459; var    i, j       : Integer;begin  Randomize;   WriteLn('Enter matrix Y width (X): '); ReadLn(N); WriteLn('Enter matrix Y height (Y): '); ReadLn(M); WriteLn('Enter K value for Y: '); ReadLn(K); if K > N then   begin     WriteLn('Error: K must be < X');     Sleep(2000);     Exit;   end; SetMatrixFormat(A, 12, 9); SetMatrixFormat(B, 8, 15); SetMatrixFormat(C, 7, 11); SetMatrixFormat(Y, M, N);     for i := 0 to A.m-1 do   for j := 0 to A.n-1 do     A.d[i, j] := Tan(j) + Power(E, Cos(i)); for i := 0 to B.m-1 do   for j := 0 to B.n-1 do     B.d[i, j] := Sin(3.2*j+4.2) + Power(E, Tan(1.5*i)); for i := 0 to C.m-1 do   for j := 0 to C.n-1 do     C.d[i, j] := Cos(12.4*j+1); for i := 0 to Y.m-1 do   for j := 0 to Y.n-1 do     Y.d[i, j] := Random(1000)+Random;  WriteLn('The original matrix:'); WriteLn('  matrix A:'); PrintMatrix(A); WriteLn; WriteLn('  matrix B:'); PrintMatrix(B); WriteLn; WriteLn('  matrix C:'); PrintMatrix(C); WriteLn; WriteLn('  matrix Y:'); PrintMatrix(Y); WriteLn;   ExchangeCols(A, 0, A.n-1);  ExchangeCols(B, 2, 4);  ExchangeCols(C, 0, C.n-1);  ExchangeCols(Y, 0, K-1); WriteLn; WriteLn; WriteLn('The exchanged matrix:'); WriteLn('  matrix B:'); WriteLn('  matrix A:'); PrintMatrix(A); WriteLn; WriteLn('  matrix B:'); PrintMatrix(B); WriteLn; WriteLn('  matrix C:'); PrintMatrix(C); WriteLn; WriteLn('  matrix Y:'); PrintMatrix(Y); WriteLn; ReadLn;end. 
|  | Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)Время отправки: 7 апреля 2008, 04:10
 Оценка за ответ: 5
 Комментарий к оценке: Спасибо Вам огромное, Вы очень помогли мне. |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |