Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 9
1

В двумерном массиве вставить перед четными столбцами столбец из нулей, а после нечетных строк строку из единиц

31.03.2014, 08:39. Показов 2759. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Подскажите пожалуйста решение следующей проблемы.
Задан двумерный квардартный массив с числов строк и столбцов N
необходимо вставить перед четными столбцами столбец из нулей, а после нечетных строк строку состоящую из единиц .
Написал прогу по заполнению массива
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program prim2;
  uses crt;
  type mas=array[1..100,1.. 100] of integer;
  var a:mas;
      i,j,k,n:integer;
begin
  clrscr;
  randomize;
  write('n=');readln(n);
{Создаем и распечатываем двумерный массив.}
  for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          a[i,j]:=random(45)-22;
          write(a[i,j]:4);
        end;
      writeln;
    end;
как можно сделать вставки строк из нулей и единиц?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2014, 08:39
Ответы с готовыми решениями:

Вставить после всех столбцов, содержащих максимальный элемент, столбец из единиц в двумерном массиве StringGrid
Дан двумерный массив, сформированный случайным образом (заполнен числами от -100 до 100). Нужно...

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

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

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

5
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.03.2014, 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
61
program prim2;
uses crt;
type mas=array[1..20,1..20] of integer;
var a:mas;
    i,j,p,n,m,k:integer;
begin
clrscr;
randomize;
write('n=');
readln(n);
{Создаем и распечатываем двумерный массив.}
writeln('Исходный массив');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    repeat
    a[i,j]:=-22+random(45);
    until not(a[i,j] in [0,1]);
    write(a[i,j]:4);
   end;
  writeln;
 end;
 {вставляем столбцы из нолей перед четными}
 k:=n;
 j:=k;
 while j>=1 do
 if j mod 2=0 then
  begin
   k:=k+1;
   for p:=k downto j do
   for i:=1 to n do
   a[i,p]:=a[i,p-1];
   for i:=1 to n do
   a[i,j]:=0;
   j:=j-1
  end
 else j:=j-1;
 {ставляем строки из 1 после нечетных}
 m:=n;
 i:=m;
 while i>=1 do
 if odd(i)then
  begin
   m:=m+1;
   for p:=m downto i+1 do
   for j:=1 to k do
   a[p,j]:=a[p-1,j];
   for j:=1 to k do
   a[i+1,j]:=1;
   i:=i-1
  end
 else i:=i-1;
 writeln('Вставка столбцов и строк');
 for i:=1 to m do
  begin
   for j:=1 to k do
   write(a[i,j]:4);
   writeln
  end;
 end.
1
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 9
31.03.2014, 11:26  [ТС] 3
спасибо большое сейчас проверю работоспособность программы.

Добавлено через 1 час 21 минуту
Добрый день! проверил все работает спасибо!
Возможно ли переписать данную программу с использованием Procedure?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.03.2014, 11:55 4
Лучший ответ Сообщение было отмечено foxroot как решение

Решение

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
75
76
77
78
program prim2;
uses crt;
type mas=array[1..20,1..20] of integer;
procedure vvod(var a:mas;var n:integer);
var i,j:integer;
begin
{ввод размера и элементов массива}
write('n=');
readln(n);
for i:=1 to n do
for j:=1 to n do
 repeat
  a[i,j]:=-22+random(45);
 until not(a[i,j] in [0,1]);
end;
procedure print(a:mas;n,m:integer);
var i,j:integer;
begin
{печать массива}
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i,j]:4);
  writeln
 end;
end;
procedure stb(var a:mas;n:integer;var k:integer);
var i,j,p:integer;
begin
{вставляем столбцы из нолей перед четными}
k:=n;
j:=k;
while j>=1 do
if j mod 2=0 then
 begin
  k:=k+1;
  for p:=k downto j do
  for i:=1 to n do
  a[i,p]:=a[i,p-1];
  for i:=1 to n do
  a[i,j]:=0;
  j:=j-1
 end
else j:=j-1;
end;
procedure str(var a:mas;n,k:integer;var m:integer);
var i,j,p:integer;
begin
{ставляем строки из 1 после нечетных}
m:=n;
i:=m;
while i>=1 do
if odd(i)then
 begin
  m:=m+1;
  for p:=m downto i+1 do
  for j:=1 to k do
  a[p,j]:=a[p-1,j];
  for j:=1 to k do
  a[i+1,j]:=1;
  i:=i-1
 end
else i:=i-1;
end;
var a:mas;
    n,m,k:integer;
begin
clrscr;
randomize;
vvod(a,n);
writeln('Исходный массив');
print(a,n,n);
stb(a,n,k);
str(a,n,k,m);
writeln('Вставка столбцов и строк');
print(a,m,k);
readln
end.
1
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 9
31.03.2014, 12:00  [ТС] 5
Спасибо большое !
0
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 9
08.04.2014, 18:54  [ТС] 6
добрый день!
помогите пожалуйста сделать блок схему каждой процедуре. как это будет выглядеть?
0
08.04.2014, 18:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2014, 18:54
Помогаю со студенческими работами здесь

Вставить в массиве после строк с максимальными элементами строку из нулей
Дан двумерный массив размером 6 * 7, заполненный случайным образом. Вставить после строк с...

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

В двумерном массиве вставить последнюю строку после всех строк, в которых есть заданное число А
В двумерном массиве вставить последнюю строку после всех строк, в которых есть заданное число А.

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


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

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