Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
bichara
0 / 0 / 0
Регистрация: 13.12.2016
Сообщений: 13
#1

Задача по программе с несколькими процедурами

13.12.2016, 17:29. Просмотров 739. Ответов 2
Метки нет (Все метки)

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

Заранее благодарю...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2016, 17:29
Ответы с готовыми решениями:

Блок-схему к программе с процедурами
помогите пожалуйста составить блок схему к программе uses crt; const ...

Задача с процедурами (срочно, а то не охота летом на пересдачи ездить)
Здравствуйте. Помогите решить задачу, пожалуйста: Дано натуральное число n....

Таймер с несколькими процедурами
Доброго времени суток, уважаемые форумчане! Есть один таймер и две процедуры,...

Обработчик не хочет работать с несколькими процедурами
Перейду сразу к делу: При нажатии на кнопку на одной форме я показываю...

Задача с процедурами
PROGRAM lab5_2; uses crt; var i,a:longint; l:byte; s:string; begin...

2
vint-81
охотник
1009 / 533 / 650
Регистрация: 29.09.2014
Сообщений: 1,083
13.12.2016, 21:23 #2
Лучший ответ Сообщение было отмечено bichara как решение

Решение

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
const n=6;m=5;
type matr=array[1..n,1..m] of integer;
var a:matr;
 
procedure in_matr(var x:matr);
var i,j:integer;
begin
 for i:=1 to n do
  for j:=1 to m do
   a[i,j]:=random(5)
end; 
 
procedure out_matr(var x:matr;s:string);
var i,j:integer;
begin
 writeln(s);
 for i:=1 to n do
  begin
   for j:=1 to m do write(x[i,j]:3);
   writeln
  end 
end;
 
//столбец с минимальным количеством нулевых
function min_zero(x:matr):integer;
var i,j,k,ktmp,min:integer;
begin
 k:=0;
 for j:=1 to m do
  begin
   ktmp:=0;
   for i:=1 to n do if a[i,j]=0 then inc(ktmp);
   if ktmp>k then begin k:=ktmp;min:=j end;
   min_zero:=min
  end;
  
end;
 
// замена первого столбца и столбца с минимальным количеством нулей
procedure sw(j:integer; var x:matr);
var i,tmp:integer;
begin
 for i:=1 to n do 
  begin
   tmp:=a[i,j];a[i,j]:=a[i,1];a[i,1]:=tmp
  end 
end;
 
//перестановка всех нулей в конец столбца
procedure p(var a:matr);
var i,i_n,tmp:integer;
begin
 i_n:=n;
 for i:=n downto 1 do
  if a[i,1]=0 
    then begin tmp:=a[i,1];a[i,1]:=a[i_n,1];a[i_n,1]:=tmp;dec(i_n) end
end;
 
begin
 in_matr(a);
 out_matr(a,'Исходная:');
 if min_zero(a)=0 
  then writeln('Нет нулей')
  else
   begin
    sw(min_zero(a),a);
    p(a);
    out_matr(a,'Полученная:')
   end 
end.
0
bichara
0 / 0 / 0
Регистрация: 13.12.2016
Сообщений: 13
14.12.2016, 00:35  [ТС] #3
Огромнейшее спасибо!!!!!!!!!!!!!!!!!!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2016, 00:35

Задача с процедурами
Задан целочисленный одномерный массив A из N элементов. Найти номер первого...

задача с процедурами и функциями
Привет) Очень нужна ваша помощь по решению данной задачки, не получается...

Оформить процедурами основное решение ( ввод-вывод оформить в главной программе).
Дано число k и матрица размера 4 x 9. После столбца матрицы с номером k...


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

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

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