Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
54 / 57 / 26
Регистрация: 26.10.2011
Сообщений: 186
1

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

19.01.2012, 11:14. Показов 1375. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1. Даны натуральное число N, целочислинная матрица А размером N*N. Вставить после каждого нечетного столбца столбец, состоящий из 1, а после каждой четной строки строку, состоящую из 0.

2. Получить матрицу А, размером N*N (используя один вложенный цикл, не используя условных операторов и дополнительных переменных): (см. Изображение 1)


3. Дана целочисленная квадратная матрица порядка N. Переставить строки матрицы, чтобы их последние элементы располагались в порядке невозрастания. Сотрировка выбором.

4. Даны натуральное число N, действительная матрица А размера 2N*2N. Получить новую матрицу, переставляя ее блоки размера N*N: (см. Изображение 2).

Заранее благодарю за помощь.
Миниатюры
Вставить после каждого нечетного столбца матрицы столбец, состоящий из единиц  
Изображения
 
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2012, 11:14
Ответы с готовыми решениями:

После столбца матрицы с номером K вставить столбец из единиц.
Не могу найти где надо исправить код.Помогите пжл . Условие задачи: Дана матрица размера M ×...

После столбца матрицы с номером K вставить столбец из единиц
Дорогие программисты.Решите пожалуста хоть что то из этого. 1)Дана целочисленная матрица размера M...

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

После столбца матрицы с номером k вставить столбец из нулей
Дано число k и матрица размера 4 x 9. После столбца матрицы с номером k вставить столбец из нулей....

3
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
19.01.2012, 12:41 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of byte;
    n,i,j:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=(n-j+i)*ord(j>=i);
    write(a[i,j]:4);
   end;
  writeln;
 end;
readln
end.
Добавлено через 4 минуты
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
uses crt;
const nmax=5;
var a:array[1..2*nmax,1..2*nmax] of real;
    n,i,j:integer;
    x:real;
begin
clrscr;
repeat
write('Размер половины матрицы от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Исходная матрица:');
for i:=1 to 2*n do
 begin
  for j:=1 to 2*n do
   begin
    a[i,j]:=10*random;
    write(a[i,j]:5:2);
   end;
  writeln;
 end;
for i:=1 to n do
for j:=1 to n do
 begin
  x:=a[i,j];
  a[i,j]:=a[n+i,j];
  a[n+i,j]:=a[n+i,n+j];
  a[n+i,n+j]:=a[i,n+j];
  a[i,n+j]:=x;
 end;
writeln('Перестановка блоков по часовой стрелке:');
for i:=1 to 2*n do
 begin
  for j:=1 to 2*n do
  write(a[i,j]:5:2);
  writeln;
 end;
readln
end.
Добавлено через 5 минут
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    n,i,j,k,imx,buf:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы n=');
readln(n);
until n in [1..nmax];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(50);
    write(a[i,j]:4)
   end;
  writeln;
 end;
writeln;
{перестановка строк по неневозрастанию элементов последнего столбца
сортировка выбором}
for i:=1 to n-1 do {от первой строки до предпоследней}
 begin
  imx:=i;{выбираем номер максимального элемнта}
  for k:=i+1 to n do {впереди}
  if a[k,n]>a[imx,n] then imx:=k;{если находим больше, запоминаем}
  for j:=1 to n do{все элемнты строк}
   begin
    buf:=a[i,j];
    a[i,j]:=a[imx,j];{проверяемой и найденной обмениваем}
    a[imx,j]:=buf;
   end;
 end;
writeln('Строки по невозрастанию последних элементов:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
readln
end.
Добавлено через 7 минут
Цитата Сообщение от Michael_Atak Посмотреть сообщение
Вставить после каждого нечетного столбца столбец, состоящий из 1, а после каждой четной строки строку, состоящую из 0.
Это типа отдельно, сначала одно, потом другое? А то непонятно что должно быть на пересечении столбца с 0 и строки с 1.
2
54 / 57 / 26
Регистрация: 26.10.2011
Сообщений: 186
20.01.2012, 04:27  [ТС] 3
Ну, как я понимаю, сначала надо вставлять столбец, потом строку. Получается, должны стоять нули

Добавлено через 20 минут
А вот у вас в 17-ой строке 2-й задачи есть функция ord. А что она делает и можно как-нибудь обойтись без нее??
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.01.2012, 07:07 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Michael_Atak Посмотреть сообщение
есть функция ord. А что она делает и можно как-нибудь обойтись без нее??
Эта функция возвращает значение выражения перечисляемого типа, в данном случае ord(true)=1, ord(false)=0
Поэтому умножая вычисленное значение элементов ниже главной диагонали на ord(j>=i)=0 получаем ноль.
Если нельзя пользоваться if else то я по другому не знаю.

Добавлено через 29 минут
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
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=10;
var a:array[1..2*nmax,1..2*nmax] of integer;
    n,n1,n2,i,j,k:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    repeat
    a[i,j]:=random(50);
    until not(a[i,j] in [0,1]);
    write(a[i,j]:4);
   end;
  writeln;
 end;
{вставка столбцов}
n1:=n;{новое количество столбцов}
j:=n1;{начнем с конца чтобы не менялись индексы}
while j>=1 do
if odd(j) then{если нечетный}
 begin
  n1:=n1+1;{добавим 1 столбец}
  if j=n1-1 then{если это был последний}
   for i:=1 to n do
   a[i,n1]:=1{заполним столбец 1}
  else{если не последний}
   begin
    for k:=n1 downto j+2 do{сдвинем все столбцы за ним на 1 вправо}
    for i:=1 to n do
    a[i,k]:=a[i,k-1];
    for i:=1 to n do{на свободное место вставим столбец из 1}
    a[i,j+1]:=1;
   end;
  j:=j-1{сместимся влево}
 end
else j:=j-1;{четные пропускаем}
{вставка строк}
n2:=n;{новое количество строк}
i:=n2;{начнем с конца чтобы не менялись индексы}
while i>=2 do
if i mod 2=0 then{если четная}
 begin
  n2:=n2+1;{добавим 1 строку}
  if i=n2-1 then{если это была последняя}
   for j:=1 to n1 do
   a[i,n2]:=0{заполним строку 0}
  else{если не последняя}
   begin
    for k:=n2 downto i+2 do{сдвинем все строки за ней на 1 вниз}
    for j:=1 to n1 do
    a[k,j]:=a[k-1,j];
    for j:=1 to n1 do{на свободное место вставим строку из 0}
    a[i+1,j]:=0;
   end;
  i:=i-1{сместимся вверх}
 end
else i:=i-1;{нечетные пропускаем}
writeln('Вставка столбцов и строк:');
for i:=1 to n2 do
 begin
  for j:=1 to n1 do
  write(a[i,j]:4);
  writeln;
 end;
readln
end.
1
20.01.2012, 07:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2012, 07:07
Помогаю со студенческими работами здесь

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

После каждого нечетного значения, вставить нулевой элемент
Помогите пожалуйста. После каждого нечетного значения, вставить нулевой элемент.

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

Перед первым столбцом матрицы, содержащим только положительные элементы, вставить столбец из единиц
Разработка в среде Turbo Pascal программы вствавки в матрицу столбца из единиц. Дана матрица...


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

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