Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/36: Рейтинг темы: голосов - 36, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 19
1

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

03.05.2010, 03:01. Просмотров 7400. Ответов 12
Метки нет (Все метки)

Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента.
Характеристикой строки целочисленной матрицы назовём сумму положительных элементов. Переставляя строки заданной матрицы, расположить их в соотвествии с ростом характеристик.
задача в паскале
помогите
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2010, 03:01
Ответы с готовыми решениями:

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

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

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

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

12
Модератор
61203 / 45876 / 31667
Регистрация: 18.05.2008
Сообщений: 110,480
03.05.2010, 09:14 2
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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,ks:byte;
    f:boolean;
begin
clrscr;
randomize;
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)-9;
     write(a[i,j]:4);
    end;
   writeln;
 end;
writeln;
ks:=0;{кол столб без 0}
for j:=1 to m do{смотрим все столбцы}
 begin
  f:=true;{пока нолей нет}
  i:=1;
  while f and(i<=n)do{пока не ноль и не конец столбца}
   begin
    if a[i,j]=0 then f:=false{если ноль меняем значение флага}
    else i:=i+1;{иначе идем вперед}
   end;
  if f then ks:=ks+1;{если нет 0, считаем}
 end;
writeln('Количество столбцов без нолей=',ks);
readln
end.
Добавлено через 4 минуты
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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of real;
    n,m,i,j,l:byte;
    sm,b:real;
begin
clrscr;
randomize;
write('Количество строк n=');
readln(n);
write('Количество столбцов m=');
readln(m);
{вычисление сумм в строках и запись их в дополнительный столбец}
for i:=1 to n do
 begin
  sm:=0;
  for j:=1 to m do
   begin
    a[i,j]:=10*random-4;
    if a[i,j]>0 then sm:=sm+a[i,j];
   end;
  a[i,m+1]:=sm;
 end;
writeln('Исходный массив:');
writeln('Сумма':(m*5+8));
for i:=1 to n do
 begin
  for j:=1 to m+1 do
  if j=m+1 then write(a[i,j]:8:1)
  else write(a[i,j]:5:1);
  writeln;
 end;
{перестановка строк по неубыванию сумм(по последнему столбцу)}
for i:=1 to n-1 do
for l:=i+1 to n do
if a[i,m+1]>a[l,m+1] then
for j:=1 to m+1 do
 begin
  b:=a[i,j];
  a[i,j]:=a[l,j];
  a[l,j]:=b;
 end;
writeln('Строки по неубыванию сумм:');
writeln('Сумма':(m*5+8));
for i:=1 to n do
 begin
  for j:=1 to m+1 do
  if j=m+1 then write(a[i,j]:8:1)
  else write(a[i,j]:5:1);
  writeln;
 end;
readln
end.
1
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 19
05.05.2010, 02:41  [ТС] 3
Спасибо, только я не знаю как объеденить эти 2 задачи!
0
Модератор
61203 / 45876 / 31667
Регистрация: 18.05.2008
Сообщений: 110,480
05.05.2010, 07:16 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,ks,l:byte;
    sm,b:integer;
    f:boolean;
begin
clrscr;
randomize;
repeat
write('Количество строк до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' m=');
readln(m);
until m in [1..nmax];
{вычисление сумм в строках и запись их в дополнительный столбец}
for i:=1 to n do
 begin
  sm:=0;
  for j:=1 to m do
   begin
    a[i,j]:=random(10)-4;
    sm:=sm+a[i,j];
    a[i,m+1]:=sm;
   end;
 end;
writeln('Исходный массив:');
writeln('Сумма':(m*4+6));
for i:=1 to n do
 begin
  for j:=1 to m+1 do
  if j=m+1 then write(a[i,j]:6)
  else write(a[i,j]:4);
  writeln;
 end;
writeln;
ks:=0;{кол столб без 0}
for j:=1 to m do{смотрим все столбцы}
 begin
  f:=true;{пока нолей нет}
  i:=1;
  while f and(i<=n)do{пока не ноль и не конец столбца}
   begin
    if a[i,j]=0 then f:=false{если ноль меняем значение флага}
    else i:=i+1;{иначе идем вперед}
   end;
  if f then ks:=ks+1;{если нет 0, считаем}
 end;
writeln('Количество столбцов без нолей=',ks);
write('Press Rnter...');
readln;
{перестановка строк по неубыванию сумм(по последнему столбцу)}
for i:=1 to n-1 do
for l:=i+1 to n do
if a[i,m+1]>a[l,m+1] then
for j:=1 to m+1 do
 begin
  b:=a[i,j];
  a[i,j]:=a[l,j];
  a[l,j]:=b;
 end;
writeln('Строки по неубыванию сумм:');
writeln('Сумма':(m*4+6));
for i:=1 to n do
 begin
  for j:=1 to m+1 do
  if j=m+1 then write(a[i,j]:6)
  else write(a[i,j]:4);
  writeln;
 end;
readln
end.
0
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 19
07.05.2010, 05:27  [ТС] 5
Спасибо. у меня вопрос как убрать сумму

Добавлено через 2 минуты
Как можно это по другому записать:
until n in [1..nmax];
И что бы мы матрицу вводили с клавиатуры. а не с регенерации случайных чисел

Добавлено через 52 минуты
а можешь ещё интер убрать
0
3301 / 1362 / 109
Регистрация: 28.04.2009
Сообщений: 4,823
07.05.2010, 05:41 6
Цитата Сообщение от spy-man Посмотреть сообщение
Как можно это по другому записать:
until n in [1..nmax];
убрать цикл repeat-until вообще.


Цитата Сообщение от spy-man Посмотреть сообщение
И что бы мы матрицу вводили с клавиатуры. а не с регенерации случайных чисел
напиши
Pascal
1
2
write('a[',i,',',j,']=');
   readln(a[i,j]);
Добавлено через 22 секунды
Цитата Сообщение от spy-man Посмотреть сообщение
а можешь ещё интер убрать
какой энтер?
0
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 19
07.05.2010, 05:43  [ТС] 7
52 строчка write('Press Rnter...');
0
3301 / 1362 / 109
Регистрация: 28.04.2009
Сообщений: 4,823
07.05.2010, 05:44 8
удали её вообще. Это не так сложно сделать я думаю
0
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 19
07.05.2010, 05:51  [ТС] 9
я ещё не понел про цикал until
repeat until
0
3301 / 1362 / 109
Регистрация: 28.04.2009
Сообщений: 4,823
07.05.2010, 05:55 10
Цитата Сообщение от spy-man Посмотреть сообщение
repeat until
ну так открой встроенный хелп паскаля или гугл или преподавателя спроси, и может быть поймешь.
0
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 19
07.05.2010, 06:08  [ТС] 11
с циклом разобрался а чтобы вводить матрицу с клавиатуры надо за место randomize; вставить
write('a[',i,',',j,']=');
readln(a[i,j]);
0
3301 / 1362 / 109
Регистрация: 28.04.2009
Сообщений: 4,823
07.05.2010, 06:15 12
да, замените и всё.
Пробуйте сами, учитесь творите!
1
1 / 1 / 0
Регистрация: 03.05.2010
Сообщений: 19
16.05.2010, 05:35  [ТС] 13
можешь мне исправить задачу немного что бы сумма прибавлла четные и положительные
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2010, 05:35

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

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

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

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

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


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

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

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