Вывести самую нижнюю строку матрицы в обратном порядке - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Нужна помощь: как с помощью данной процедуры
Листинг программы
  1. procedure M2MS;
  2. var i, j, k: integer;
  3. begin
  4. k := 1;
  5. for i:=N downto 1 do
  6. for j:=N downto 1 do begin
  7. MS[k] := M[i, j];
  8. k := k + 1;
  9. end;
  10. end;
вывести только самую нижнюю строку матрицы в обратном порядке, а не всю матрицу целиком. Заранее спасибо. Вся программа целиком:
Листинг программы
  1. Program Matrix;
  2. Uses Crt;
  3. Var M: array [1..15, 1..15] of Integer;
  4. N: Integer;
  5. MS: array [1..225] of Integer;
  6. min, max: Integer;
  7.  
  8. function InputN: Integer;
  9. var n: integer;
  10. check: boolean;
  11. begin
  12. repeat
  13. writeln('Vvedite razmernost matricy (®Ot 5 do 15)');
  14. readln(n);
  15. if (n >= 5) and (n <= 15) then check := true
  16. else check := false;
  17. until check;
  18. InputN := n;
  19. end;
  20.  
  21. procedure RandomMatrix(a, b: integer);
  22. var i, j: integer;
  23. begin
  24. randomize;
  25. for i:=1 to N do
  26. for j:=1 to N do
  27. M[i, j] := a + random(b-a+1);
  28. end;
  29.  
  30. procedure WriteMatrix;
  31. var i, j: integer;
  32. begin
  33. for i:=1 to N do begin
  34. for j:=1 to N do write(M[i, j]:5);
  35. writeln;
  36. end;
  37. end;
  38.  
  39. procedure Exchange;
  40. var i, j, mx, x: integer;
  41. begin
  42. mx := N div 2;
  43. for i:=1 to mx do
  44. for j:=1 to (mx-i+1) do begin
  45. x := M[N-mx+i, N-mx+j];
  46. M[N-mx+i, N-mx+j] := M[j, N-i+1];
  47. M[j, N-i+1] := x;
  48. end;
  49. end;
  50.  
  51. procedure WriteColoredMatrix;
  52. var i, j, mx: integer;
  53. begin
  54. mx := N div 2;
  55. for i:=1 to N do begin
  56. for j:=1 to N do begin
  57. TextColor(LightGray);
  58. if (i <= mx) and (j >= (N-mx+1)) then begin
  59. if j >= (N-mx+i) then TextColor(Yellow);
  60. end else if (i >= (N-mx+1)) and (j >= (N-mx+1)) then begin
  61. if j <= (2*N-i-mx+1) then TextColor(Red);
  62. end;
  63. write(M[i, j]:5);
  64. end;
  65. writeln;
  66. end;
  67. TextColor(LightGray);
  68. end;
  69.  
  70. procedure M2MS;
  71. var i, j, k: integer;
  72. begin
  73. k := 1;
  74. for i:=N downto 1 do
  75. for j:=N downto 1 do begin
  76. MS[k] := M[i, j];
  77. k := k + 1;
  78. end;
  79. end;
  80.  
  81. procedure WriteMatrixString;
  82. var i: integer;
  83. begin
  84. TextColor(Green);
  85. for i:=1 to sqr(N) do write(MS[i]:5);
  86. writeln;
  87. TextColor(LightGray);
  88. end;
  89.  
  90. procedure SortVozrast;
  91. var i, j, m: integer;
  92. begin
  93. for i:=1 to sqr(N)-1 do begin
  94. m := i;
  95. for j:=i+1 to sqr(N) do
  96. if MS[j] < MS[m] then m := j;
  97. if m <> i then begin
  98. j := MS[i];
  99. MS[i] := MS[m];
  100. MS[m] := j;
  101. end;
  102. end;
  103. end;
  104. procedure SortUbyv;
  105. var i, j, m: integer;
  106. begin
  107. for i:=1 to sqr(N)-1 do begin
  108. m := i;
  109. for j:=i+1 to sqr(N) do
  110. if MS[j] > MS[m] then m := j;
  111. if m <> i then begin
  112. j := MS[i];
  113. MS[i] := MS[m];
  114. MS[m] := j;
  115. end;
  116. end;
  117. end;
  118. procedure FindMinMax;
  119. var i, j, mx: integer;
  120. check: boolean;
  121. begin
  122. min := M[1, 1];
  123. max := M[1, 1];
  124. mx := N div 2;
  125. for i:=1 to N do
  126. for j:=1 to N do begin
  127. check := true;
  128. if (i <= mx) and (j >= (N-mx+1)) then begin
  129. if j >= (N-mx+i) then check := false;
  130. end else if (i >= (N-mx+1)) and (j >= (N-mx+1)) then begin
  131. if j <= (2*N-i-mx+1) then check := false;
  132. end;
  133. if check then begin
  134. if M[i, j] < min then min := M[i, j];
  135. if M[i, j] > max then max := M[i, j];
  136. end;
  137. end;
  138. end;
  139. Begin
  140. ClrScr;
  141. TextColor(White);
  142. writeln('========= Kursovaya rabota =========');
  143. writeln;
  144. TextColor(LightGray);
  145. N := InputN;
  146. RandomMatrix(-100, 100);
  147. writeln;
  148. writeln('Zapolnennaya matrica');
  149. WriteMatrix;
  150. writeln;
  151. writeln('Nazhmite lyubuyu klavishu...');
  152. readkey;
  153. Exchange;
  154. writeln;
  155. writeln('Preobrazovannaya matrica');
  156. WriteColoredMatrix;
  157. writeln;
  158. writeln('Nazhmite lyubuyu klavishu...');
  159. readkey;
  160. M2MS;
  161. writeln;
  162. writeln('Matrica-stroka poluchennaya obhodom');
  163. WriteMatrixString;
  164. writeln;
  165. writeln('Nazhmite lyubuyu klavishu...');
  166. readkey;
  167. SortVozrast;
  168. writeln;
  169. writeln('Matrica-stroka sortirovannaya po vozrastaniyu');
  170. WriteMatrixString;
  171. writeln;
  172. writeln('Nazhmite lyubuyu klavishu...');
  173. readkey;
  174. SortUbyv;
  175. writeln;
  176. writeln('Matrica-stroka sortirovannaya po ubyvaniyu');
  177. WriteMatrixString;
  178. writeln;
  179. writeln('Nazhmite lyubuyu klavishu...');
  180. readkey;
  181. writeln;
  182. writeln('Poisk max i min elementa v matrice');
  183. WriteColoredMatrix;
  184. FindMinMax;
  185. writeln;
  186. writeln('Minimalnyi element = ', min);
  187. writeln('Maximalnyi element = ', max);
  188. writeln;
  189. writeln('Nazhmite lyubuyu klavishu dlya zaversheniya programmy');
  190. readkey;
  191. End.
Либо как вывести нижнюю строку матрицы иным способом. Спасибо

Решение задачи: «Вывести самую нижнюю строку матрицы в обратном порядке»

textual
Листинг программы
  1.   repeat
  2.     writeln('Vvedite razmernost matricy (®Ot 5 do 15)');
  3.     readln(n);
  4.     if (n >= 5) and (n <= 15) then check := true
  5.     else check := false;
  6.   until check;

Объяснение кода листинга программы

  1. В цикле repeat-until происходит чтение размера матрицы от пользователя и проверка его значения на соответствие диапазону от 5 до 15.
  2. Если пользователь ввел корректное значение, то переменная check принимает значение true, иначе - false.
  3. Цикл repeat продолжается до тех пор, пока значение переменной check не станет равным true.
  4. После выхода из цикла, выводится сообщение 'Vvedite razmernost matricy (®Ot 5 do 15)', что означает Введите размер матрицы (от 5 до 15).
  5. Затем, с помощью функции readln(), считывается введенное пользователем значение и сохраняется в переменной n.
  6. Проверяется, соответствует ли введенное значение диапазону от 5 до 15. Если да, то переменная check принимает значение true, иначе - false.
  7. Цикл repeat-until повторяется до тех пор, пока значение переменной check не станет равным true.
  8. Когда это условие выполняется, цикл завершается и программа переходит к выводу самой нижней строки матрицы в обратном порядке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы