0 / 0 / 0
Регистрация: 01.06.2016
Сообщений: 7
1

Определить количество строк матрицы, не содержащих ни одного нулевого элемента

01.06.2016, 23:42. Показов 530. Ответов 3
Метки нет (Все метки)

Дана целочисленная прямоугольная матрица. Определить:
1) количество строк, не содержащих ни одного нулевого элемента;
2) максимальное из чисел, встречающихся в заданной матрице более одного раза.

Оформить решения задачи с помощью процедур и/или функций
(При решении задач не использовать глобальные переменные)

Помогите пожалуйста)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2016, 23:42
Ответы с готовыми решениями:

Определить количество строк матрицы, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить: 1) количество строк, не содержащих ни одного...

Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента
Не могли бы вы помочь с этим делом? Завтра сдавать, а ничего не идет:( Дана целочисленная...

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

Определить количество строк, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить: 1)количество строк, не содержащих ни одного...

3
22 / 22 / 39
Регистрация: 10.05.2014
Сообщений: 52
02.06.2016, 08:58 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
56
57
58
59
60
uses  Crt;
const n=5; m=6;
type  Tmatr=array[1..n,1..m] of integer;
function F1(aa:Tmatr;d:integer;ai,aj:integer):boolean;
var   x,y:integer;
      e:boolean;
begin
      e:=false;
       for y:=aj+1 to m do
        if aa[ai,y]=d then
         begin
           e:=true;
           Break
         end;
       if not e then
        for x:=ai+1 to n do
         for y:=1 to m do
          if aa[x,y]=d then
           begin
             e:=true;
             Break;
           end;
        F1:=e;
end;
var   a:Tmatr;
      i,j,t,k,max:integer;
begin
      ClrScr;
      Writeln('Matrix A:'); Writeln; Randomize;
      for i:=1 to n do
       begin
         for j:=1 to m do
          begin
            a[i,j]:=Random(50);
            Write(a[i,j]:4);
          end;
         Writeln;
        end;
       Writeln;
      k:=0; i:=1;
        repeat
           t:=0;
           for j:=1 to m do
            if a[i,j]=0 then Inc(t);
           if t=0 then Inc(k);
           Inc(i);
        until i>n;
       max:=-MaxInt;
        for i:=1 to n do
         for j:=1 to m do
          if a[i,j]>max then
           if F1(a,a[i,j],i,j) then max:=a[i,j];
      if k=0
       then Writeln('Net strok bez noley')
       else Writeln('Bez noley ',k,' strok');
      if max=-MaxInt
       then Writeln('Net max bolee odnogo raza')
       else Writeln('Max bolee odnogo raza = ',max);
      ReadKey;
end.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32481 / 20967 / 8113
Регистрация: 22.10.2011
Сообщений: 36,234
Записей в блоге: 7
02.06.2016, 10:27 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
{$mode objfpc}
uses Crt;
 
const n=5; m=6;
type
  Vector = array[1 .. m] of integer;
  Matrix = array[1 .. n] of Vector;
 
procedure CreateMatrix(var mx : Matrix);
var i, j : integer;
begin
  randomize;
  for i := 1 to n do
    for j := 1 to m do mx[i, j] := random(20);
end;
 
procedure PrintMatrix(mx : Matrix);
var
  v : vector;
  x : integer;
begin
  for v in mx do
  begin
    for x in v do write(x:3);
    writeln;
  end;
end;
 
function CheckZero(row : vector) : boolean;
var x : integer;
begin
  result := true;
  for x in row do result := result and (x <> 0);
end;
 
function MaxVal(mx : Matrix) : integer;
var
  v : vector;
  x : integer;
  s : set of byte;
begin
  result := -(maxint - 1);
  s := [];
 
  for v in mx do
    for x in v do
      if (X in s) and (X > result) then result := x
      else s := s + [X];
end;
 
var
  mx : Matrix;
  v : Vector;
  NonZero : integer = 0;
  Max : integer;
begin
  CreateMatrix(mx);
  PrintMatrix(mx);
  for v in mx do if CheckZero(v) then Inc(NonZero);
  writeln('non-zero rows count: ', NonZero);
 
  max := MaxVal(mx);
  if max = - (maxint - 1) then writeln('no duplicates in matrix')
  else writeln('max duplicated value = ', max);
end.
1
0 / 0 / 0
Регистрация: 01.06.2016
Сообщений: 7
02.06.2016, 11:45  [ТС] 4
спасибо вам большое) хорошо, что есть такие люди, как вы
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2016, 11:45
Помогаю со студенческими работами здесь

Определить количество строк массива, не содержащих ни одного нулевого элемента
Определить количество строк, не содержащих ни одного нулевого элемента, Максимальный элемент в...

Матрица. Определить количество строк, не содержащих ни одного нулевого элемента
Дана целочиленая матрица размером m * n.Определить количество строк, не содержащих ни одного...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru