|
Вопрос # 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
Комментарий к оценке: Спасибо Вам огромное, Вы очень помогли мне.
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|