Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Antihaos
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 37
1

Дана матрица. Поменять строки с максимальной и минимальной суммой квадратов местами

15.10.2014, 19:06. Просмотров 1030. Ответов 1
Метки нет (Все метки)

Здравствуйте. Помогите написать программу, пожалуйста.
"Дан Массив B(M,N); M,N<=100. Переставить строки с минимальным и максимальным значением суммы квадратов их элементов"
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2014, 19:06
Ответы с готовыми решениями:

Заполнить матрицу по спирали, поменять местами столбцы с минимальной и максимальной суммой элементов
заполнить матрицу 7Х7 элементами от 1 до 49 по спирали. Поменять местами...

Дана матрица размером nxn. Поменять местами к-ю и 1-ю строки (1<=k, 1<=n)
Выручайте! Заранее благодарна!

Поменять местами серии массива с максимальной и минимальной длиной
Задан целочисленный массив размера N. Поменять местами серии с максимальной и...

Дана матрица, заменить 1 столбец столбцом с минимальной суммой элементов
Добрый вечер. Решил закодировать следующую задачу: &quot;дана матрица, заменить 1...

В матрице найти строки с максимальной и минимальной суммой положительных элементов. Как упростить?
P1 := Low(Integer); // Левая граница значений Integer равная -2147483648 ...

1
ildwine
Супер-модератор
3051 / 1927 / 1240
Регистрация: 04.03.2013
Сообщений: 4,708
Записей в блоге: 1
15.10.2014, 20:23 2
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
const
  {максиумы}
  MAX_M = 100; {строки}
  MAX_N = 100; {столбцы}
type
  matrix = array [1..MAX_M, 1..MAX_N] of integer;
var
  b : matrix;
  row1, row2, n, m : integer;
  
{процедура заполнения массив}
procedure Input(var z : matrix);
var x, y : integer;
begin
  for x := 1 to m do
    for y := 1 to n do
      z[x,y] := random(100)
end;
 
{процедура вывода массива}
procedure Output(z : matrix);
var x, y : integer;
begin
  for x := 1 to m do
  begin
    for y := 1 to n do
      write(z[x,y]:4);
    writeln
  end
end;
 
{функция поиска суммы квадратов строки}
function SqrSum(z : matrix; k : integer) : integer;
var temp, y  : integer;
begin
  temp := 0;  
  for y := 1 to n do
      temp := temp + sqr(z[k,y]);
  SqrSum := temp
end;
 
{процедура определяет строки которые надо менять местами}
procedure operate(z : matrix; var s1, s2 : integer);
var
  x, max, min, x_max, x_min, temp : integer;
begin
  max := -maxInt;
  min := maxInt;
  for x := 1 to m do
  begin
    temp := SqrSum(z, x);
    if temp > max then
    begin
      max := temp;
      x_max := x
    end;
    if temp < min then
    begin
      min := temp;
      x_min := x
    end
  end;
  s1 := x_max;
  s2 := x_min
end;
 
{процедура для обмена строк с номерами s1 и s2}
procedure xchange(var z : matrix; s1, s2 : integer);
var y, temp : integer;
begin
  for y := 1 to n do
  begin 
    temp := z[s1, y];
    z[s1,y] := z[s2, y];
    z[s2,y] := temp
  end
end;
 
{ОСНОВНАЯ ПРОГРАММА}
begin
  randomize;
  {выбор размерности}
  repeat
    write('введите размерность массива B (2<=M,N<=100): ');
    readln(m, n);
    if (not (m in [2..MAX_M])) or (not (n in [2..MAX_N]))
      then writeln('неверный ввод размерности!')
  until (m in [2..100]) and (n in [2..100]);
  {ввод массива}
  input(b);
  {вывод массива}
  writeln('исходный массив:');
  output(b);
  {обходим строки массива находя сумму квадратов и проверяем ее на max/min
  фиксируем строки для обмена}
  operate(b, row1, row2);
  writeln('надо менять местами строки: ', row1, ' и ', row2); 
  {выпонляем обмен}
  xchange(b, row1, row2);
  {снова выводим}  
  writeln('массив после изменения:');
  output(b);
  readln
end.
Код
введите размерность массива B (2<=M,N<=100): 1 1
неверный ввод размерности!
введите размерность массива B (2<=M,N<=100): 4 10
исходный массив:
  89  91  89  35  24  40  78  68  70  98
  30  82  76  28  77  70  91  82  84  55
   0  46  72   3   3  83  18  35  10  89
  13  53  82  17  66  50   3  78  21  18
надо менять местами строки: 1 и 4
массив после изменения:
  13  53  82  17  66  50   3  78  21  18
  30  82  76  28  77  70  91  82  84  55
   0  46  72   3   3  83  18  35  10  89
  89  91  89  35  24  40  78  68  70  98
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2014, 20:23

Дана матрица, заменить 1 столбец столбцом с минимальной суммой элементов. Ошибки при компиляции
Добрый вечер. Решил закодировать следующую задачу: &quot;дана матрица, заменить 1...

Дана матрица А (n×n). Написать программу, которая находит столбец матрицы с максимальной суммой элементов
Помогите написать программу: Дана матрица А (n×n). Написать программу,...

Матрица. Поменять местами столбцы с максимальной и минимальной суммой элементов
Помогите пожалуйста.Нужно в прямоугольной матрице поменять местами столбцы с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru