Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
52 / 51 / 19
Регистрация: 22.03.2009
Сообщений: 173
1

Матрицу 9х8 преобразовать в матрицу 8х7, вычеркнув строку и столбец

23.03.2009, 22:23. Показов 3089. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Матрицу 9х8 преобразовать в матрицу 8х7 , вычеркнув строку и столбец, на пересечении которых расположен наименьший элемент матрицы A.
Нашел минимум и программа вычеркивает только столбец. Где что неправильно указал ?

для заполнения исходной таблицы используется генератор

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
program lab3pr4;
uses crt;
 var a,b:array[1..9,1..8] of integer;
  i,j,min,k,l:integer;
begin
 clrscr;
 for i:=1 to 9 do
 for j:=1 to 8 do
  a[i,j]:=trunc(random*(-50))+40;
  min:=a[1,1]; k:=1; l:=1;
 for i:=1 to 9 do
 for j:=1 to 8 do
   if a[i,j]<min then
   begin
    min:=a[i,j];
    k:=i; l:=j;
   end;
 writeln('min= ',min);
 writeln('stroka ',k,' stolbec ',l);
 
{ думаю что ошибка где то здесь }
 for k:=1 to 9 do
 for l:=1 to 8 do
  begin
   if i=k then b[i,j]:=0 else b[i,j]:=a[i,j];
   if j=l then b[i,j]:=0 else b[i,j]:=a[i,j];
  end;
 
{ далее только выводим конечный результат}
 
 writeln('--- isxodnij massiv---');
 for i:=1 to 9 do
   begin
    for j:=1 to 8 do
      write(a[i,j]:5);
     writeln;
    end;
 writeln;
 writeln('--- konechnij massiv--- ');
 for i:=1 to 9 do
   begin
    for j:=1 to 8 do
     if b[i,j]<>0 then write(b[i,j]:5);
     writeln;
    end;
 readkey;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2009, 22:23
Ответы с готовыми решениями:

Массив: Из элементов матрицы B(10,10) построить матрицу С, вычеркнув столбец и строку с максимальным элементом
Из элементов матрицы B(10,10) построить матрицу С, вычеркнув столбец и строку с максимальным...

как умножить матрицу столбец на матрицу строку MathCAD
как умножить матрицу столбец на матрицу строку и додати (+) их элементы если можно то пример

Формировать новую матрицу, вычеркнув из исходной матрицы строку с максимальной суммой элементов
Количество строк и столбцов в матрице может быть любым,не превышающим 8. Сформировать новую...

Преобразовать заданную прямоугольную матрицу Х (р,к) в матрицу строку У (п, расположив последовательно все столбцы матрицы Х
Преобразовать заданную прямоугольную матрицу Х (р,к) в матрицу строку У (п, расположив...

2
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
24.03.2009, 06:54 2
Pascal
1
2
3
4
5
6
for i:=1 to 9 do
   begin
    for j:=1 to 8 do
      write(a[i,j]:5);
     writeln;
    end;
Думаю, что надо так:
Pascal
1
2
3
4
5
6
for i:=1 to 8 do
   begin
    for j:=1 to 7 do
      write(a[i,j]:5);
     writeln;
    end;
Добавлено через 37 секунд
Это где конечный результат
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
24.03.2009, 07:01 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
46
47
48
49
50
51
52
53
54
55
56
57
program lab3pr4;
uses crt;
var a:array[1..9,1..8] of integer;{b-лишний массив}
    i,j,min,k,l:integer;
begin
clrscr;
randomize;{чтоб получать разные случайные числа}
for i:=1 to 9 do
for j:=1 to 8 do
a[i,j]:=random(30)-10;
min:=a[1,1]; k:=1; l:=1;
for i:=1 to 9 do
for j:=1 to 8 do
if a[i,j]<min then
   begin
    min:=a[i,j];
    k:=i; l:=j;
   end;
writeln('min= ',min);
writeln('stroka ',k,' stolbec ',l);
{выводить исходный массив нужно до прербразований}
writeln('--- isxodnij massiv---');
 for i:=1 to 9 do
   begin
    for j:=1 to 8 do
      if(i=k)or(j=l)then
        begin
         textcolor(12); {выделим цветом строку и столбец}
         write(a[i,j]:5);
        end
      else
        begin
         textcolor(15);
         write(a[i,j]:5);
        end;
     writeln;
    end;
 writeln;
 
{удаление строки-сдвиг всех строк на 1 вверх к нужной }
for i:=k to 8 do
for j:=1 to 8 do
a[i,j]:=a[i+1,j];
{удаление столбца-сдвиг всех столбцов на 1 влево к нужному }
for j:=l to 7 do
for i:=1 to 8 do
a[i,j]:=a[i,j+1];
{ далее только выводим конечный результат}
writeln('--- konechnij massiv--- ');
for i:=1 to 8 do
   begin
    for j:=1 to 7 do
     write(a[i,j]:5);
     writeln;
    end;
readkey;
end.
0
24.03.2009, 07:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2009, 07:01
Помогаю со студенческими работами здесь

Дана квадратная матрица порядка m. Преобразовать матрицу по правилу: строку с номером сделать столбцом с номером n, а столбец с номером n - строкой с
Дана квадратная матрица порядка m. Преобразовать матрицу по правилу: строку с номером сделать...

Как преобразовать матрицу в один столбец
Есть такого плана таблица 1 2 3 4 5 6 7 8 9 Как сделать что бы exel записал все в один...

Добавить в матрицу строку и столбец
Привет всем! Помогите, пожалуйста решить одну задачку. Один не справлюсь. Вот задача:

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


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

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