Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 1
Регистрация: 31.01.2015
Сообщений: 5
1

Поменять местами строку матрицы, содержащую максимальный элемент, со строкой, содержащей минимальный

10.06.2015, 02:07. Просмотров 2170. Ответов 1
Метки нет (Все метки)


Суть задания , поменять местами строку, содержащую максимальный элемент, со строкой, содержащей минимальный элемент, если оба таких элемента находятся в одной строке, то вывести сообщение и номер строки.
Также мог бы кто помочь , мне нужно предложить третий ввод данных считывания с файла , то есть в файле написана размерность , либо сама матрица и ее вывести и также с заданием.
Вот код ввода 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
var
  x: array [1..10, 1..10] of integer;
  y: array [1..10, 1..10] of real;
  i, j, n, k: integer;
begin
  repeat
    write('Введите разномерность массива (1..10): ');
    readln(n);
    if not (n in [1..10]) then writeln('Неверная разномерность массива.');
  until n in [1..10];
  repeat
    writeln('Введите число - способ создания массива: ');
    writeln('    1: через датчик случайных чисел.');
    writeln('    2: с клавиатуры.');
    readln(k);
    if not (k in [1..2]) then writeln('Ошибка!');
  until k in [1, 2];
  case k of
    1: for i:=1 to n do
         for j:=1 to n do
           x[i,j]:=random(201)-100;
    2: for i:=1 to n do
         for j:=1 to n do
             begin
               write('X[',i,', ',j,']=');
               readln(x[i,j]);
             end;
  end;
  writeln('Матрица: ');
  for i:=1 to n do
    begin
      for j:=1 to n do write(x[i,j]:5);
      writeln;
    end;
    end.
Добавлено через 1 час 18 минут
Так подразобрался , теперь нужно предложить третий способ считывания с файла
Цитата Сообщение от hawk04 Посмотреть сообщение
мне нужно предложить третий ввод данных считывания с файла , то есть в файле написана размерность , либо сама матрица и ее вывести и также с заданием.
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
uses crt;
var a:array[1..10,1..10] of integer;
    VIBOR,i,j,MIN,MAX:byte;
    mn,mx,x,l:integer;
begin
repeat;
 write('Введите размерность массива (1...10): ');
       readln(l);
          If not (l in [1..10]) then writeln ('Неверная размерность.');
             until l in [1..10];
              repeat;
                 writeln('Введите число - способ создания массива: ');
                 writeln('    1: через датчик случайных чисел.');
                 writeln('    2: с клавиатуры.');
                 
                   readln(VIBOR);
               If not (VIBOR in [1..2]) then writeln ('ОШИБКА');
                       until VIBOR in [1..2];
         
                 case VIBOR of
          
                     1: for i:=1 to l do
                        for j:=1 to l do
                        a[i,j]:=random(201)-100;{заполняем матрицу элементами}
                        
                     2: for i:=1 to l do
                        for j:=1 to l do
                          begin
                           write('a[',i,',',j,',]=');
                            readln(a[i,j]);
                          end;
                            end;
mn:=a[1,1];mx:=a[1,1];
     MIN:=1;MAX:=1;
for i:=1 to l do
for j:=1 to l do
 begin
  if a[i,j]<mn then
   begin
    mn:=a[i,j];{находим минимальный}
    MIN:=i;{строку с ним}
   end;
  if a[i,j]>mx then
   begin
    mx:=a[i,j];{находим максимальный}
    MAX:=i;{строку с ним}
   end;
 end;
writeln('Строка с минимальным элементом=',MIN,' мин=',mn);
writeln('Строка с максимальным элементом=',MAX,' макс=',mx);
if MIN=MAX then{если мин и макс в одной строке}
 begin
  writeln('Минимальный и максимальный элемент в одной строке!');
  writeln('Матрица:');
  for i:=1 to l do
   begin
    for j:=1 to l do
    if i=MIN then
     begin
      textcolor(12);{эту строку выделим красным цветом}
      write(a[i,j]:4);
     end
    else
     begin
      textcolor(15);{остальные по умолчанию, обычно белый}
      write(a[i,j]:4);
     end;
    writeln;
   end;
  readln;
  exit;{выходим из программы, т.к. менять нечего}
 end;
writeln('Исходная матрица:');{если разные-продолжаем программу, выводим исходную матрицу}
for i:=1 to l do
 begin
  for j:=1 to l do
  if i=MIN then
   begin
    textcolor(14);{строку с мин выводим желтым цветом}
    write(a[i,j]:4);
   end
  else if i=MAX then
   begin
    textcolor(12);{с макс-красным}
    write(a[i,j]:4);
   end
  else
   begin
    textcolor(15);{остальные белым}
    write(a[i,j]:4);
   end;
  writeln;
 end;
for j:=1 to l do{обмениваем элементы строки с мин с элементами строки с макс}
 begin
  x:=a[MIN,j];
  a[MIN,j]:=a[MAX,j];
  a[MAX,j]:=x;
 end;
textcolor(15);
writeln('Перестановка строк:');
for i:=1 to l do
 begin
  for j:=1 to l do
  if i=MAX then
   begin
    textcolor(14);{сейчас строку с номером макс-желтым}
    write(a[i,j]:4);
   end
  else if i=MIN then
   begin
    textcolor(12);{а строку с мин-красным}
    write(a[i,j]:4);
   end
  else
   begin
    textcolor(15);
    write(a[i,j]:4);
   end;
  writeln;
 end;
end.
Добавлено через 32 минуты
в кейсе 3 чет попробовал , но считывает не то что нужно , ввел
2 4
6 8
11 14
выдает 6 8
11 14
и остальные нули по размерности. В чем ошибка ?
Pascal
1
2
3
4
5
6
7
8
9
                          
                     3: Begin
                        assign(F,'input.txt');
                        reset(f);
                        readln(f,r);
                        for i:=1 to r do
                        for j:=1 to r do
                        read(F,a[i,j]);
                        end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2015, 02:07
Ответы с готовыми решениями:

Поменять местами строку, содержащую минимальный элемент главной диагонали матрицы, со строкой с номером q
Ребят помогите сделать задание. Думал, думал. ничего не получается. Вот условие: Даны натуральные...

Найти максимальный элемент и строку, содержащую этот элемент, поменять с 1ой строкой
дана матрица размерности N на M. найти максимальный элемент и строку, содержащую этот элемент,...

Строку содержащую наименьший элемент массива поменять местами с последней строкой
дан вещественный массив из 5 строк и 3 столбцов. строку содержащую наименьший элемент поменять...

В матрице поменять местами строку, содержащую минималный элемент, со строкой содержащий максимальный элемент.
Помогите пожалуста:):):) вот задание В произвольной матрице A поменять местами строку, содержащую...

1
Модератор
62920 / 46944 / 32351
Регистрация: 18.05.2008
Сообщений: 113,756
10.06.2015, 07:12 2
матрица по условию видимо квадратная, а потому нужно в файле
2
6 8
11 14
и в программе

Pascal
1
2
3
4
5
3: Begin
    ..................
     read(f,r);
    .....................
    end;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2015, 07:12

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

В матрице поменять местами строку, содержащую максимум, со строкой, содержащей минимум
В данной действительной матрице размера 6х9 поменять местами строку, содержащую элемент с...

В заданной матрице поменять местами последнюю строку со строкой , содержащий минимальный элемент матрицы
1.Дан вещественный массив а1,а2,...аn. Если в этом массиве есть хотя бы один элемент, принадлежащий...

Поменять местами строку матрицы, содержащую минимальный элемент, со строкой, содержащей максимальный
всем привет!прошу помощи! В произвольной матрице i= , j= поменять местами строку, содержащую...

Поменять местами строку матрицы, содержащую максимальный элемент, со строкой, содержащей минимальный элемент
Помогите решить. Скрин матрицы во вложении лежит. Дана матрица А(nxn) (n – четное число,...


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

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

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