Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Violina (статус: Посетитель)
Вопрос отправлен: 5 апреля 2008, 14:54
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович

Здравствуйте, Violina!
Нет, ну курсовые надо самому решать, разве из-за того, что вы - девушка..
В приложении код с подробными комментариями.

Приложение:
  1. program Project;
  2. {
  3.  
  4.  
  5. ______________
  6. Wyfinger, 2008
  7. }
  8.  
  9. {$APPTYPE CONSOLE}
  10.  
  11. uses
  12. SysUtils,
  13.  
  14.  
  15. type
  16.  
  17. TMatrix = record
  18. m, n : Integer;
  19. d : array of array of Real;
  20. end;
  21.  
  22.  
  23. procedure SetMatrixFormat(var Matrix: TMatrix; M, N: Integer);
  24. var
  25. i : Integer;
  26. begin
  27. Matrix.m := M;
  28. Matrix.n := N;
  29. SetLength(Matrix.d, M);
  30. for i := 0 to M-1 do
  31. SetLength(Matrix.d[i], N);
  32. end;
  33.  
  34.  
  35. procedure PrintMatrix(Matrix: TMatrix);
  36. var
  37. i, j : Integer;
  38. str : string;
  39. begin
  40. for i := 0 to Matrix.m-1 do
  41. begin
  42. Write('|');
  43. for j := 0 to Matrix.n-1 do
  44. begin
  45.  
  46. str := ' ' + FloatToStr( Round(Matrix.d[i,j]*10)/10 );
  47.  
  48. Write(str);
  49. Write('|');
  50. end;
  51. WriteLn;
  52. end;
  53. end;
  54.  
  55.  
  56. procedure ExchangeCols(var Matrix: TMatrix; M, N: Integer);
  57. var
  58. i : Integer;
  59. accum : Real;
  60. begin
  61. for i := 0 to Matrix.m-1 do
  62. begin
  63. accum := Matrix.d[i,M];
  64. Matrix.d[i,M] := Matrix.d[i,N];
  65. Matrix.d[i,N] := accum;
  66. end;
  67. end;
  68.  
  69. // *****************************************************************************
  70.  
  71. const
  72. E = 2.718281828459;
  73.  
  74. var
  75.  
  76.  
  77. i, j : Integer;
  78. begin
  79.  
  80. Randomize;
  81.  
  82.  
  83. WriteLn('Enter matrix Y width (X): ');
  84. ReadLn(N);
  85. WriteLn('Enter matrix Y height (Y): ');
  86. ReadLn(M);
  87. WriteLn('Enter K value for Y: ');
  88. ReadLn(K);
  89. if K > N then
  90. begin
  91. WriteLn('Error: K must be < X');
  92. Sleep(2000);
  93. Exit;
  94. end;
  95. SetMatrixFormat(A, 12, 9);
  96. SetMatrixFormat(B, 8, 15);
  97. SetMatrixFormat(C, 7, 11);
  98. SetMatrixFormat(Y, M, N);
  99.  
  100.  
  101.  
  102.  
  103. for i := 0 to A.m-1 do
  104. for j := 0 to A.n-1 do
  105. A.d[i, j] := Tan(j) + Power(E, Cos(i));
  106. for i := 0 to B.m-1 do
  107. for j := 0 to B.n-1 do
  108. B.d[i, j] := Sin(3.2*j+4.2) + Power(E, Tan(1.5*i));
  109. for i := 0 to C.m-1 do
  110. for j := 0 to C.n-1 do
  111. C.d[i, j] := Cos(12.4*j+1);
  112. for i := 0 to Y.m-1 do
  113. for j := 0 to Y.n-1 do
  114. Y.d[i, j] := Random(1000)+Random;
  115.  
  116. WriteLn('The original matrix:');
  117. WriteLn(' matrix A:');
  118. PrintMatrix(A);
  119. WriteLn;
  120. WriteLn(' matrix B:');
  121. PrintMatrix(B);
  122. WriteLn;
  123. WriteLn(' matrix C:');
  124. PrintMatrix(C);
  125. WriteLn;
  126. WriteLn(' matrix Y:');
  127. PrintMatrix(Y);
  128. WriteLn;
  129.  
  130.  
  131. ExchangeCols(A, 0, A.n-1);
  132.  
  133. ExchangeCols(B, 2, 4);
  134.  
  135. ExchangeCols(C, 0, C.n-1);
  136.  
  137. ExchangeCols(Y, 0, K-1);
  138. WriteLn;
  139. WriteLn;
  140. WriteLn('The exchanged matrix:');
  141. WriteLn(' matrix B:');
  142. WriteLn(' matrix A:');
  143. PrintMatrix(A);
  144. WriteLn;
  145. WriteLn(' matrix B:');
  146. PrintMatrix(B);
  147. WriteLn;
  148. WriteLn(' matrix C:');
  149. PrintMatrix(C);
  150. WriteLn;
  151. WriteLn(' matrix Y:');
  152. PrintMatrix(Y);
  153. WriteLn;
  154. ReadLn;
  155. end.
  156.  


Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 7 апреля 2008, 04:10
Оценка за ответ: 5

Комментарий к оценке: Спасибо Вам огромное, Вы очень помогли мне.

Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:47
Выполнено за 0.03 сек.