Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
5 / 5 / 2
Регистрация: 02.10.2011
Сообщений: 87

Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из номеров минимальных нечетных элементов строк матрицы

02.10.2011, 23:59. Показов 4738. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
поможете сделать?
Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из номеров минимальных нечетных элементов строк матрицы
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.10.2011, 23:59
Ответы с готовыми решениями:

Получить вектор из порядковых номеров строк минимальных элементов матрицы
Дана квадратная матрица.Нужно составить вектор из порядковых номеров строк элементов которые являются минимальными в своем столбце....

Сформировать с помощью процедуры вектор, состоящий из минимальных элементов столбцов матрицы
Заданы матрицы А(3х4) и В(3х5). Элементы их определите как случайные числа из диапазонов ,. Сформируйте с помощью процедуры вектор,...

Дана матрица А(п,п) целых чисел. Построить вектор, состоящий из номеров максимальных четных элементов строк матрицы
Задача 9. Дана матрица А(n,n) целых чисел. Построить вектор, состоящий из номеров максимальных четных элементов строк матрицы

11
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
03.10.2011, 01:04
Цитата Сообщение от Point_0 Посмотреть сообщение
из номеров минимальных нечетных элементов строк
Это я так понимаю минимальная сумма элементов нечетных строк, тогда:
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
type
   t_matrix = array[1..100, 1..100] of integer;
   t_array = array[1..100] of integer;
 
function input_size(name : char) : integer;
   var value : integer;
   begin
      repeat write(name, ' = '); readln(value)
      until (value > 1) and (value <= 100);
      input_size := value
   end;
 
procedure input_matrix(var matrix : t_matrix; n, m : integer);
   var i, j : integer;
   begin
      for i := 1 to n do
         for j := 1 to m do begin
            write('matrix[', i, ', ', j, '] = '); readln(matrix[i, j])
         end
   end;
 
function sum_row(var matrix : t_matrix; i, m : integer) : integer;
   var j, sum : integer;
   begin
      sum := 0;
      for j := 1 to m do
         sum := sum + matrix[i, j];
      sum_row := sum
   end;
 
procedure calculate(var matrix : t_matrix; var result : t_array; n, m : integer; var k : integer);
   var i, j, min, sum : integer;
   begin
      min := sum_row(matrix, 1, m);
      for i := 2 to n do
         if i mod 2 = 1 then begin
            sum := sum_row(matrix, i, m);
            if min > sum then min := sum
         end;
      k := 0;
      for i := 1 to n do
         if i mod 2 = 1 then
            if min = sum_row(matrix, i, m) then begin
               k := k + 1;
               result[k] := i
            end
   end;
 
procedure output_array(var result : t_array; k : integer);
   var i : integer;
   begin
      write('Результат: ');
      for i := 1 to k do
         write(result[i], ' ');
      writeln
   end;
   
var matrix : t_matrix; result : t_array; n, m, k : integer;
begin
   n := input_size('n'); {просим пользователя задать n}
   m := input_size('m'); {просим пользователя задать m}
   input_matrix(matrix, n, m); {просим пользователя заполнить матрицу}
   calculate(matrix, result, n, m, k); {вычисляем результат}
   output_array(result, k) {выводим результирующий массив}
end.
2
5 / 5 / 2
Регистрация: 02.10.2011
Сообщений: 87
03.10.2011, 15:58  [ТС]
огромное спасибо, вроде так все)))
если что сам поправлю
еще раз огромное спасибо)

Добавлено через 14 часов 16 минут
Blood-Angel,
препод сказал что программа выполнена слишком сложно. Особенно она придралась к чару, как можно без него?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2011, 17:05
Самому писать нужно, а не срамиться с чужим кодом.

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
uses crt;
const nmax=20;
type mas=array[1..nmax] of integer;{одномерный массив}
    matr=array[1..nmax] of mas;{матрица=массив строк-массивов}
procedure Matrix(var a:matr;var n,m:byte);{создание матрицы}
var i,j:byte;
begin
repeat
write('Количество строк до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' m=');
readln(m);
until m in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    a[i,j]:=random(20);
    write(a[i,j]:4);
   end;
  writeln;
 end;
writeln;
end;
function Nomer(a:mas;m:byte):byte;{определение номера минимального нечетного в строке}
var imn,i:byte;
begin
imn:=0;{пока 0}
i:=1;
while(i<=m)and(imn=0) do{ищем первое нечетное}
if a[i] mod 2<>0 then imn:=i{если нашли, пока это номер минимального}
else i:=i+1;
if imn>0 then{ищем самый минимальный}
 for i:=1 to m do
 if(a[i] mod 2<>0)and(a[i]<a[imn]) then imn:=i;
Nomer:=imn;
end;
procedure Vektor(a:matr;n,m:byte;var b:mas);{создание вектора по условию}
var i:byte;
begin
writeln('Вектор номеров нечетных минимальных элементов строк:');
for i:=1 to n do
 begin
  b[i]:=Nomer(a[i],m);
  write(b[i],' ');
 end;
end;
 
var a:matr;
    b:mas;
    m,n:byte;
begin
clrscr;
randomize;
Matrix(a,n,m);
Vektor(a,n,m,b);
readln
end.
1
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
03.10.2011, 17:33
Цитата Сообщение от Point_0 Посмотреть сообщение
Особенно она придралась к чару, как можно без него?
Вроде ничего такого сложного не использовал, упростил так:
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
type
   t_matrix = array[1..100, 1..100] of integer;
   t_array = array[1..100] of integer;
 
{процедура заполнения матрицы}
procedure input_matrix(var matrix : t_matrix; n, m : integer);
   var i, j : integer;
   begin
      for i := 1 to n do
         for j := 1 to m do begin
            write('matrix[', i, ', ', j, '] = '); readln(matrix[i, j])
         end
   end;
 
{функция для вычисления суммы строки матрицы}
function sum_row(var matrix : t_matrix; i, m : integer) : integer;
   var j, sum : integer;
   begin
      sum := 0;
      for j := 1 to m do
         sum := sum + matrix[i, j];
      sum_row := sum
   end;
 
procedure calculate(var matrix : t_matrix; var result : t_array; n, m : integer; var k : integer);
   var i, j, min, sum : integer;
   begin
      {поиск минимальной суммы нечетной строки матрицы}
      min := sum_row(matrix, 1, m);
      for i := 2 to n do
         if i mod 2 = 1 then begin {каждая нечетная строка матрицы}
            sum := sum_row(matrix, i, m);
            if min > sum then min := sum
         end;
      {на основе найденного минимума создается результирующий массив}
      k := 0; {размер результирующего массива}
      for i := 1 to n do
         if i mod 2 = 1 then {каждая нечетная строка матрицы}
            if min = sum_row(matrix, i, m) then begin {если текущая строка минимальна}
               k := k + 1; {увеличение размерности результирующего массива на 1}
               result[k] := i {добавление в результирующий массив номер найденной строки матрицы}
            end
   end;
 
{процедура вывода элементов массива}
procedure output_array(var result : t_array; k : integer);
   var i : integer;
   begin
      write('Результат: ');
      for i := 1 to k do
         write(result[i], ' ');
      writeln
   end;
   
var matrix : t_matrix; result : t_array; n, m, k : integer;
begin
   write('n = '); readln(n); {просим пользователя задать n}
   write('m = '); readln(m); {просим пользователя задать m}
   input_matrix(matrix, n, m); {просим пользователя заполнить матрицу}
   calculate(matrix, result, n, m, k); {вычисляем результат}
   output_array(result, k) {выводим результирующий массив}
end.
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2011, 18:09
Blood-Angel, Какие ты все время суммы считаешь?
0
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
03.10.2011, 18:18
Puporev, суммирую отдельно элементы для каждой строки. Нахожу строки с минимальной суммой и отсеиваю четные номера строк. Что-то не так?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2011, 18:21
Blood-Angel, Читай условие
Цитата Сообщение от Point_0 Посмотреть сообщение
получить вектор, состоящий из номеров минимальных нечетных элементов строк матрицы
Это значит нужно в каждой строке найти наименьшее нечетное число и его номер в строке записать в вектор.

Добавлено через 39 секунд
Слова сумма вообще нигде нет...
0
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
03.10.2011, 18:35
Цитата Сообщение от Puporev Посмотреть сообщение
Это значит нужно в каждой строке найти наименьшее нечетное число и его номер в строке записать в вектор.
Тогда так:
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
type
   t_matrix = array[1..100, 1..100] of integer;
   t_array = array[1..100] of integer;
 
{процедура заполнения матрицы}
procedure input_matrix(var matrix : t_matrix; n, m : integer);
   var i, j : integer;
   begin
      for i := 1 to n do
         for j := 1 to m do begin
            write('matrix[', i, ', ', j, '] = '); readln(matrix[i, j])
         end
   end;
 
{процедура вывода элементов массива}
procedure output_array(var result : t_array; k : integer);
   var i : integer;
   begin
      write('Результат: ');
      for i := 1 to k do
         write(result[i], ' ');
      writeln
   end;
 
procedure calculate(var matrix : t_matrix; n, m : integer);
   var result : t_array; i, j, min : integer;
   begin
      for i := 1 to n do begin
         {поиск минимума}
         min := 1;
         for j := 1 to m do
            if (matrix[i, j] mod 2 = 1) and (matrix[i, min] > matrix[i, j]) then
               min := j;
         {добавление в массив}
         result[i] := min
      end;
      output_array(result, n) {выводим результирующий массив}
   end;
   
var matrix : t_matrix; n, m : integer;
begin
   write('n = '); readln(n); {просим пользователя задать n}
   write('m = '); readln(m); {просим пользователя задать m}
   input_matrix(matrix, n, m); {просим пользователя заполнить матрицу}
   calculate(matrix, n, m); {вычисляем результат}
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2011, 18:38
Pascal
1
2
{поиск минимума}
         min := 1;
А если первый элемент четный и меньше всех нечетных?
1
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
03.10.2011, 18:55
Цитата Сообщение от Puporev Посмотреть сообщение
А если первый элемент четный и меньше всех нечетных?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure calculate(var matrix : t_matrix; n, m : integer);
   var result : t_array; i, j, k, min : integer; f : boolean;
   begin
      k := 0;
      for i := 1 to n do begin
         {поиск минимума}
         f := false;
         for j := 1 to m do
            if matrix[i, j] mod 2 = 1 then
               if f = false then begin
                  f := true;
                  min := j
               end
               else if matrix[i, min] > matrix[i, j] then
                  min := j;
         {добавление в массив}
         if f = true then begin
            k := k + 1;
            result[k] := min
         end
      end;
      output_array(result, k) {выводим результирующий массив}
   end;
1
5 / 5 / 2
Регистрация: 02.10.2011
Сообщений: 87
03.10.2011, 19:16  [ТС]
еее, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.10.2011, 19:16
Помогаю со студенческими работами здесь

Даны три квадратные матрицы. Сформировать вектор, состоящий из минимальных элементов каждой матрицы, отличных от нуля
Даны три квадратные матрицы. Сформировать вектор, состоящий из минимальных элементов каждой матрицы, отличных от нуля. Поиск минимального...

Используя процедуры и функции получить из матрицы вектор
Ребята, выручайте, я сама как-то вообще не разберусь, как в Паскале это написать: Используя процедуры и функции из целочисленной матрицы...

Получить вектор, каждый элемент которого определяется разностью сумм элементов нечетных смежных строк части матрицы размером y*y
Помогите пожалуйста) Нужно получить вектор, каждый элемент кото-рого определяется разностью сумм эле-ментов нечетных смежных строк части...

Получить массив, состоящий из номеров строк матрицы, в которых второй элемент больше первого вдвое
Дана матрица nxm. Найти количество элементов, лежащих на отрезке (p,q) и их произведение. Получить массив, состоящий из номеров строк, в...

Построить вектор, который состоит из минимальных элементов строк матрицы
Дано матрицу А(4Х3) построить вектор который состоит из самых маленьких елементов строк матрици( поиск самого маленького елемента оформить...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru