122 / 122 / 73
Регистрация: 29.10.2011
Сообщений: 308
1

Обнуление и смещение в начало строки элементов квадратной матрицы (готовый код, найти косяк)

29.10.2011, 20:35. Показов 920. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Условие: Создать массив размерностью N×N (описать константу и задать размер по умолчанию
равный 10). Разработать процедуру заполняющую массив, переданный как параметр,
случайными числами в интервале от −N до N. Создать дополнительную процедуру
оперирующую с сформированным массивом -> Удалить в каждой строке все положительные элементы массива путём обнуления их
значений и смещения в начало строки.
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=10;
//-------------------------------------------------------
procedure FillArray (var mas:array[1..n, 1..n] of integer);
var i,j:integer;
begin
randomize;
for i:=1 to n do
    begin
     for j:=1 to n do
          mas[i,j]:=random(n*2)-n;
    end;
end;
//-------------------------------------------------------
procedure PrintArray (var mas:array[1..n, 1..n] of integer);
var i,j:integer;
begin
for i:=1 to n do
begin
     for j:=1 to n do
          write (mas[i,j]:4);
writeln;
end;
end;
//-------------------------------------------------------
procedure ZerroAndShift (var mas:array[1..n, 1..n] of integer);
var i,j,s:integer;
 
begin
for j:=1 to n do
    begin
    for i:=1 to n do
        begin
        if mas[i,j]>0 then
           begin
           mas[i,j]:=0;
           s:=i;
                for i:=s-1 downto 1 do
                begin
                     mas[i,j]:=mas[i+1,j];
                     mas[1,j]:=0;
                end;
           end;
        end;
    end;
end;
 
//-------------------------------------------------------
var
mas:array[1..n, 1..n] of integer;
i,j:integer;
 
begin
clrscr;
FillArray(mas);
PrintArray(mas);
ZerroAndShift(mas);
PrintArray(mas);
readln;
end.

Конкретно косяк в procedure ZerroAndShift. Суть идеи:перебором находит положительное число в строке, находит например 1 число - обнуляет его, и делает сдвиг всех предшествующих ему элементов на шаг вперед (i+1), а 1й элемент строки делает равным 0. и так до конца строки. но где то косяк, не работает.. подскажите что подправить.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2011, 20:35
Ответы с готовыми решениями:

Найти сумму элементов каждой строки квадратной матрицы
Добрый вечер! Нужна помощь в этой задаче Дан целочисленный квадратный массив 10х10. Найти сумму...

Передать в функцию указатель на начало и конец строки квадратной матрицы
Дана обычная квадратная матрица, размером matrixSize. Память под неё выделена с помощью оператора...

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

Обнуление побочной диагонали квадратной матрицы
Может кто написать алгоритм обнуления побочной диагонали квадратной матрицы? Помогите пожалуйста.

2
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.10.2011, 21:46 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure ZerroAndShift (var mas:array[1..n, 1..n] of integer);
var i,j,s:integer;
begin
for i:=1 to n do
 begin
  j:=1;
  while j<=n do
  if mas[i,j]>0 then
   begin
    if j=1 then mas[i,j]:=0
    else
     begin
      for s:=j downto 2 do
      mas[i,s]:=mas[i,s-1];
      mas[i,1]:=0;
      j:=j+1;
     end;
   end
  else j:=j+1;
 end;
end;
1
122 / 122 / 73
Регистрация: 29.10.2011
Сообщений: 308
30.10.2011, 12:57  [ТС] 3
Благодарю!
0
30.10.2011, 12:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2011, 12:57
Помогаю со студенческими работами здесь

Замена первых элементов каждой строки квадратной матрицы на сумму элементов этой строки
Замена первых элементов каждой строки квадратной матрицы на сумму элементов этой строки

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

Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти след матрицы
Препод задал такую задачу, но так как я не силен в C#, то у меня есть решение на Паскале, может...

Сравнить сумму элементов k-й строки и k-го столбца квадратной матрицы
Помогите, пожалуйста, решить задачу: Сравнить сумму элементов k-й строки и k-го столбца квадратной...


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

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

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