Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 31.03.2009
Сообщений: 35

Найти сумму элементов строк и столбцов, на пересечении которых лежат отрицательные элементы

18.05.2009, 20:14. Показов 1470. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задана прямоугольная матрица B размера m x n .Выполнить над матрицей В действия.
| 2 1 7 5 |
B= |8 9 11 3 |
|-3 -4 18 7 |

1.Найти сумму элементов строк и столбцов, на пересечении которых лежат отрицательные элементы.
2.Вычислить суммы элементов строк, номера которых определяются номерами ненулевых элементов заданного вектора (для этого пользователю требуется задать вектор)
3.Сформировать матрицу С из строк В расположив их так, чтобы количество отрицательных элементов в строке возростало с увеличением номера строки.
4.Построить матрицу С=А*В*В, где А - прямоугольная матрица размера n x m, а В квадратная матрица (m x m) .(для этого пользователю требуется задать матрицу А и В, и вывести С как матрицу)
5.Сформировать из столбцов В матрицу С , в которой столбцы расположены в порядке возростания сумм их элементов.
6.Вычислить суммы элементов строк, номера которых задаются целочисленным вектором.
7. Если количество ненулевых элементов В меньше , чем (m x n)/3 , сформировать матрицу С размерами к х 3 в первом столбце которой содержатся ненулевые элементы матрицы В , а во втором и третьем столбцах - их координаты в исходной матрице.( (m x n)/3 - число, число к число не нулевых элементов в матрице В.)

ПОМОГИТЕ ОФОРМИТЬ ВСЁ ЧЕРЕЗ ПРОЦЕДУРЫ БЕЗ ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ

1
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
uses crt;
Const
Nmax=8;
NMAXIMUM=999999;
var i,j,m,n,k,p:integer;
    A,B,C:array[1..Nmax,1..Nmax] of real;
    v:array[1..Nmax] of real;
    sum,sum1,sum2:real;
 
 
begin
 
 writeln('Vvedite kol-vo strok v matrice B (do ',Nmax,')');readln(m);
 writeln('Vvedite kol-vo stolbcov v matrice B (do ',Nmax,')');readln(n);
 
 writeln;
 
 
 
 for i:=1 to m do
 for j:=1 to n do
 begin
 write('B[',i,',',j,']: ');readln(B[i,j]);
 end;
 
 writeln;
 writeln(' matrica B :');
 writeln;
 
 
 for i:=1 to m do
 begin
 for j:=1 to n do write(B[i,j]:9:1,' ');
   writeln;
 end;
 
 begin
   for i:=1 to m do
   for j:=1 to n do
   if B[i,j]<0 then
    begin
 
      sum1:=0;
       begin
        for k:=1 to n do
         begin
          sum1:=sum1+B[i,k];
         end;
       end;
 
      sum2:=0;
       begin
        for p:=1 to m do
         begin
          sum2:=sum2+B[p,j];
         end;
       end;
      sum:=sum1+sum2;
 
     writeln('Summa stroki ',i,' i stolbca ',j,'  = ',sum:5:2)
    end;
 
  end;
 
 
readln;
end.
2

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
uses crt;
Const
Nmax=8;
var i,j,m,n,g,o,l:integer;
    A,B,C:array[1..Nmax,1..Nmax] of real;
    v:array[1..Nmax] of real;
    sm,sum,summax,summin:real;
 
 
begin
 
 writeln('Vvedite kol-vo strok v matrice B (do ',Nmax,')');readln(m);
 writeln('Vvedite kol-vo stolbcov v matrice B (do ',Nmax,')');readln(n);
 writeln('Vvedite kol-vo elementov vektora v');readln(g);
 writeln;
 
 
 
 for i:=1 to m do
 for j:=1 to n do
 begin
 write('B[',i,',',j,']: ');readln(B[i,j]);
 end;
 
 writeln;
 writeln(' matrica B :');
 writeln;
 
 
 for i:=1 to m do
 begin
 for j:=1 to n do write(B[i,j]:9:1,' ');
   writeln;
 end;
 
 for i:=1 to g do
 begin
 write('V[',i,']=');readln(v[i]);
 end;
 
writeln;
 
for i:=1 to m do
begin
if v[i]<>0 then
 begin
  sm:=0;
  for j:=1 to n do
  sm:=sm+B[i,j];
  writeln('Summa v stroke # ',i,'=',sm);
 end;
 end;
readln;
clrscr;
end.
3

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
uses crt;
Const
NMAX=4;
type matr=array[1..NMAX,1..NMAX+2] of integer;
 
procedure Vvod_B(var B:matr);{создание и вывод на экран исходной матрицы}
var i,j,k,l,m,n,x:integer;
begin
 
 writeln('Vvedite kol-vo strok v matrice B ');readln(m);
 writeln('Vvedite kol-vo stolbcov v matrice B ');readln(n);
 writeln;
 
 
 
 for i:=1 to m do
 for j:=1 to n do
 begin
 write('B[',i,',',j,']: ');readln(B[i,j]);
 end;
 
 writeln;
 writeln(' matrica B :');
 writeln;
 
 for i:=1 to m do
 begin
 for j:=1 to n do write(B[i,j]:5,' ');
   writeln;
 end;
end;
 
procedure Summ_Str(var B:matr);
var i,j,k,l,m,n,x:integer;
begin
for i:=1 to m do
 begin
  k:=0;
  for j:=1 to n do
  if b[i,j]<0 then k:=k+1;{считаем количество отрицательных в строке}
  b[i,n+1]:=k;{записывем его в первый дополнительный столбец}
  b[i,n+2]:=i;{во аторой дополнительный записываем номер строки}
 end;
 end;
 procedure Sort_Str(Var B:matr);
 var i,j,l,x,m,n:integer;
 begin
for i:=1 to m-1 do
for j:=i+1 to m do
if b[i,n+1]>b[j,n+1]then{по возрастанию знасений в предпоследнем столбце}
for l:=n+1 to n+2 do{сортируем оба дополнительных столбца}
 begin
  x:=b[i,l];
  b[i,l]:=b[j,l];
  b[j,l]:=x;
 end;
 end;
 
procedure Vyvod_C3(var B,C:matr);
var i,j,m,n:integer;
begin
writeln;
writeln(' matrica C :');
writeln;
 
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    c[i,j]:=b[b[i,n+2],j];
{строке массива С присваиваем значения строки с номером в последнем столбце массива В}
    write(c[i,j]:9);
   end;
  writeln;
 end;
 end;
 
var B,C:matr;
begin
clrscr;
Vvod_B(B);
Summ_Str(B);
Sort_Str(B);
Vyvod_C3(B,C);
readln;
end.
end.

4

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
uses crt;
const
n=4;
m=3;
type
matr=array[1..n,1..m] of integer;
procedure Vvod(var B:matr;x:integer;c:char);
var i,j:integer;
begin
writeln('Vvedite ',x*m,' Elementov Matrici ',c,':');
for i:=1 to x do
for j:=1 to m do
 begin
  write('el[',i,',',j,']=');
  readln(B[i,j]);
 end;
end;
procedure Vyvod(var B:matr;x:integer;c:string);
var i,j:integer;
begin
writeln('Matrica ',c,':');
for i:=1 to x do
 begin
   for j:=1 to m do
   write(B[i,j]:4,' ');
   writeln;
 end;
end;
procedure UmnMatr(m1,m2:matr;x:integer;var m3:matr);
var p,j,i:integer;
begin
for p:=1 to x do
for j:=1 to m do
   begin
     m3[p,j]:=0;
     for i:=1 to m do
       begin
         m3[p,j]:=m3[p,j]+m1[p,i]*m2[i,j];
       end;
   end;
end;
var a,b,c,d:matr;
begin
clrscr;
Vvod(a,n,'A');
Vvod(b,m,'B');
clrscr;
Vyvod(a,n,'A');
Vyvod(b,m,'B');
UmnMatr(a,b,n,d);
Vyvod(d,n,'D=A*B');
UmnMatr(d,b,n,c);
Vyvod(c,n,'C=A*B*B');
readln
end.

5

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
uses crt;
const
NMAX=4;
type matr=array[1..NMAX+2,1..NMAX] of integer;{2 лишних строки для сортировки}
procedure Vvod_B(var B:matr);{создание и вывод на экран исходной матрицы}
var i,j,m,n:integer;
begin
 
 writeln('Vvedite kol-vo strok v matrice B ');readln(m);
 writeln('Vvedite kol-vo stolbcov v matrice B ');readln(n);
 writeln;
 
 
 
 for i:=1 to m do
 for j:=1 to n do
 begin
 write('B[',i,',',j,']: ');readln(B[i,j]);
 end;
 
 writeln;
 writeln(' matrica B :');
 writeln;
 
 for i:=1 to m do
 begin
 for j:=1 to n do write(B[i,j]:9,' ');
   writeln;
 end;
end;
procedure Summ_Stb(var B:matr);{подсчет суммы в столбцах}
var i,j,sm,m,n:integer;
begin
 
for j:=1 to n do
 begin
  sm:=0;
  for i:=1 to m do
  sm:=sm+B[i,j];
  B[m+1,j]:=sm;{в первую дополнительную строку запишем суммы в столбцах}
  B[m+2,j]:=j;{во второю номера столбцов}
 end;
end;
procedure Sort_Stb(var B:matr);{сортировка номеров столбцов по возрастанию суммы}
var i,j,l,x,m,n:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n  do
if B[m+1,i]>B[m+1,j]then
for l:=m+1 to m+2 do
 begin
  x:=B[l,i];
  B[l,i]:=B[l,j];
  B[l,j]:=x;
 end;
end;
procedure Vyvod_C(var B,m1:matr);{вывод результирующей матрицы}
var i,j,m,n:integer;
begin
writeln('Matrica C:');
writeln;
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    m1[i,j]:=B[i,B[m+2,j]];
{каждой строке новой матрицы присваиваем знвчения строк,
указанных в последней строке исходной матрицы после сортировки}
    write(m1[i,j]:4);
   end;
  writeln;
 end;
end;
var B,C:matr;
begin
clrscr;
randomize;
Vvod_B(B);
Summ_Stb(B);
Sort_Stb(B);
Vyvod_C(B,C);
readln;
end.

6

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
uses crt;
const
m=3;{размеры матрицы по условию}
n=4;
type
mas=array[1..50] of integer;{целочисленный вектор}
str=array[1..n] of integer;{массивы-строки матрицы}
matr=array[1..m] of str;{матрица-массив строк}
procedure VvodMatr(var mt:matr);
var i,j:integer;
begin
writeln('Введите ',m*n,' элементов матрицы:');
for i:=1 to m do
for j:=1 to n do
 begin
  write('el[',i,',',j,']=');
  readln(mt[i,j]);
 end;
end;
procedure VyvodMatr(var mt:matr);
var i,j:integer;
begin
writeln('Матрица:');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(mt[i,j]:3,' ');
  writeln;
 end;
end;
procedure VvodMas(var ms:mas;var x:integer);
var i:integer;
begin
write('Размер массива x=');
readln(x);
writeln('Введите ',x,' элементов массива:');
for i:=1 to x do
 begin
  write('el[',i,']=');
  readln(ms[i]);
 end;
end;
procedure VyvodMas(var ms:mas;x:integer);
var i:integer;
begin
writeln('Массив:');
for i:=1 to x do
write(ms[i],' ');
writeln;
end;
function Summ(s:str):integer;
var i,sm:integer;
begin
sm:=0;
for i:=1 to n do
sm:=sm+s[i];{считаем сумму в массиве-строке матрицы}
Summ:=sm;
end;
procedure SummStr(mt:matr;ms:mas;x:integer;var sm:integer);
var i,j:integer;
begin
for i:=1 to m do
for j:=1 to x do
if i=ms[j] then{если номер строки есть в векторе}
 begin
  writeln('Сумма в строке ',i,'=',Summ(mt[i]));{считаем и выводим сумму}
  break;{дальше не ищем, чтоб не было повторов}
 end;
end;
var a:matr;
    v:mas;
    k,sm:integer;
begin
clrscr;
VvodMatr(a);
VvodMas(v,k);
clrscr;
VyvodMatr(a);
VyvodMas(v,k);
SummStr(a,v,k,sm);
readln
end.

7

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
uses CRT;
Const
Nmax=12;
var
B,C:array[1..Nmax,1..Nmax] of integer;
i,j,m,n,y:integer;
 
procedure Vvod_B;
 
begin
 
 writeln('Vvedite kol-vo strok v matrice B ');readln(m);
 writeln('Vvedite kol-vo stolbcov v matrice B ');readln(n);
 writeln;
 
 
 
 for i:=1 to m do
 for j:=1 to n do
 begin
 write('B[',i,',',j,']: ');readln(B[i,j]);
 end;
 
 writeln;
 writeln(' matrica B :');
 writeln;
 
 for i:=1 to m do
 begin
 for j:=1 to n do write(B[i,j]:5,' ');
   writeln;
 end;
 read;
end;
 
 
procedure Pere;
 
begin
y:= 0;
 
     begin
          for i:=1 to m do
          begin
               for j:=1 to n do
               begin
                    if B[i,j]<>0 then
                    begin
                         y:=y+1;
                         c[y,1]:=B[i,j];
                         c[y,2]:=i;
                         c[y,3]:=j;
 
 
                    end;
               end;
          end;
          read;
     end;
 
end;
 
procedure Vivod_C;
 
 begin
 writeln;
 writeln('Matrica C :');
 writeln;
  for i:=1 to y do
   begin
    for j:=1 to 3 do
     write(C[i,j]:5,' ');
     writeln;
   end;
   readln;
 end;
 
 
 
 
begin
 clrscr;
 Vvod_B;
 Pere;
 Vivod_C;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2009, 20:14
Ответы с готовыми решениями:

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

Найти количество строк матрицы, все элементы которых отрицательные
Задан двумерный массив целых чисел размером (n*m).Найти количество строк, все элементы которого отрицательные.

Найти количество строк матрицы, все элементы которых отрицательные.
Задан Двумерный массив целых чисел размером(n*m). Найти количество строк, все элементы которого отрицательные.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2009, 20:14
Помогаю со студенческими работами здесь

Найти количество строк матрицы, все элементы которых отрицательные
Найти количество строк матрицы, все элементы которых отрицательны.

Найти количество строк, столбцов матрицы, все элементы которых различны
Дана целочисленная матрица M x N . Найти колличество ее строк ,столбцов, все элементы которых разлчины. решать через двухмерный...

Процедуры: найти наименьшие элементы и номера строк и столбцов, в которых они расположены
найти наименьшие элементы и номера строк и столбцов, в которых они расположены для матриц A(10,15) и В(15,12). Использовать процедуру....

Вычислить сумму тех элементов матрицы, номера строк и столбцов которых принадлежат соответственно непустым множествам S1 и S2.
Вычислить сумму тех элементов матрицы, номера строк и столбцов которых принадлежат соответственно непустым множествам S1 и S2.

Найти наименьшую из сумм элементов строк и сумму наименьших элементов столбцов матрицы
Дана вещественная матрица A размеров 5*4. Найти наименьшую из сумм элементов строк матрицы и сумму наименьших элементов столбцов


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru