С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
8 / 8 / 8
Регистрация: 09.11.2009
Сообщений: 44
1

Определить есть ли отрицательные элементы в матрице

14.12.2009, 20:41. Показов 1741. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Парни помогите с задачей!
Дана целочисленная матрица А(m*n). Определить есть ли отрицательные элементы в матрице А, и если есть, то выдать соответствующее сообщение. Выполнить замену их:
а) нулём, если таких элементов >3;
б) единицей, если таких элементов <=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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    n,m,i,j,k:byte;
begin
clrscr;
write('Количество строк m=');
readln(m);
write('Количество столбцов n=');
readln(n);
for i:=1 to m do
 for j:=1 to n do
  a[i,j]:=random(10)-5;
writeln('исходная матрица*');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j],' ');
  writeln;
 end;
for i:=1 to m do
for j:=1 to n do
if a[i,j]<0 then
inc(k);
if k>0 then writeln('Матрица содержит отрицательные элементы');
readln;
end.
Помогите сделать два пункта с помощью процедуры!

Добавлено через 51 минуту
Я уже полностью решил задачю, но без процедур. Помогите народ написать эту программу с процедурой!!!
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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    n,m,i,j,k:byte;
begin
clrscr;
write('Количество строк m=');
readln(m);
write('Количество столбцов n=');
readln(n);
for i:=1 to m do
 for j:=1 to n do
  a[i,j]:=random(10)-2;
writeln('?б室**п ¬*ваЁж*');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j],' ');
  writeln;
 end;
for i:=1 to m do
for j:=1 to n do
if a[i,j]<0 then
inc(k);
if k>0 then writeln('Матрица содержит отрицательные элементы');
if k>3 then
 begin
  for i:=1 to m do
  for j:=1 to n do
    if a[i,j]<0 then
    a[i,j]:=0;
 end
else
 begin
  for i:=1 to m do
  for j:=1 to n do
   if a[i,j]<0 then
   a[i,j]:=1;
 end;
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j],' ');
  writeln;
 end;
readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2009, 20:41
Ответы с готовыми решениями:

Процедура: определить, есть ли отрицательные элементы в матрице А
Помогите плиз записать эту программу с процедурой!!! uses crt; const nmax=20; var a:array of...

В матрице определить сумму первой и последней строки и заменить ею отрицательные элементы побочной диагонали
В заданной квадратной матрице определить сумму элементов первой и последней строки. Заменить этой...

В матрице заменить все отрицательные элементы нулями над главной диагональю
Как написать? В матрице заменить пулями все отрицательные элементы нулями над главной диагональю.

В матрице заменить отрицательные элементы, расположенные выше диагонали, средним геометрическим положительных
Не знаю как исправить надо. Мне нужно, чтобы все элементы, расположенные выше диагонали, имели одно...

2
2 / 2 / 4
Регистрация: 23.11.2009
Сообщений: 7
14.12.2009, 21:19 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
program minEl;
const nmax=20;
type t_matr=array[1..nmax,1..nmax] of integer;
var a:t_matr;
    n,m,i,j,k:byte;
procedure zamena (var a:t_matr);
var n,m,i,j,k:byte;
begin
write('Количество строк m=');
readln(m);
write('Количество столбцов n=');
readln(n);
for i:=1 to m do
 for j:=1 to n do
  a[i,j]:=random(10)-5;
writeln('исходная матрица*');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j],' ');
  writeln;
 end;
for i:=1 to m do
for j:=1 to n do
if a[i,j]<0 then
inc(k);
if k>0 then writeln('Матрица содержит ',k ,' отрицательнх элементов');
if k>3 then 
for i:=1 to m do
for j:=1 to n do
if a[i,j]<0 then
a[i,j]:=0;
 
if k<3 then 
for i:=1 to m do
for j:=1 to n do
if a[i,j]<0 then
a[i,j]:=1;
 
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j],' ');
  writeln;
 end;
readln;
end;
begin
zamena(a);
end.
1
8 / 8 / 8
Регистрация: 09.11.2009
Сообщений: 44
14.12.2009, 21:41  [ТС] 3
Sanja35, я только не пойму в твоём варианте задачи зачем нужна процедура. Текст программы остался такимже.
0
14.12.2009, 21:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2009, 21:41
Помогаю со студенческими работами здесь

В матрице (6,6) заменить в строке все отрицательные элементы на 0, если сумма элементов этой строки отрицательна.
В матрице (6,6) заменить в строке все отрицательные элементы на 0, если сумма элементов этой строки...

В последовательности действительных чисел a1, a2, ..., aN есть только положительные и отрицательные элементы.
Я понимаю что это очень простая и глупая задачка.. но у меня ступор некий возник.. --&gt;в...

В массиве переставить местами первый и второй отрицательные элементы, третий и четвертый отрицательные элементы и т.д.
В массиве переставить местами первый и второй отрицательные элементы, третий и четвертый...

Найти в файле отрицательные элементы, и когда они есть, то выводит их на экран
Написать программу, которая в файле, ищет отрицательные элементы, и когда они есть, то выводит их...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru