Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal (Паскаль)

Войти
Регистрация
Восстановить пароль
 
Katrrin
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 36
Завершенные тесты: 1
#1

В двух матрицах поменять местами строки, содержащие элемент с наибольшим и наименьшим значением - Pascal

16.11.2014, 18:15. Просмотров 568. Ответов 7
Метки нет (Все метки)

в данных действительных матрицах n*m и k*l поменять местами строку , содержащую элемент с наибольшим значением , со строкой, содержащей элемент наименьшим значением. Предпологается, что эти элементы единственны
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 18:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В двух матрицах поменять местами строки, содержащие элемент с наибольшим и наименьшим значением (Pascal):

В двух матрицах поменять местами строки, содержащие максимальные элементы - Pascal
В двух произвольно заданых двумерных массивах поменять местами строки, содержащие максимальные элементы. вывести на экран исходные и...

Поменять местами строки текста с наибольшим и наименьшим весом (вес-сумма ASCII-кодов символов) - Pascal
uses crt; var a : array of string; i,n,x, sum : integer; begin clrscr; write('введите количество строк'); writeln; ...

Поменять столбец матрицы А с наибольшим значением со столбцом матрицы В с наименьшим значением - Pascal
Даны две целочисленные матрицы A и B размером M на N, все элементы которых различны. Поменять местами столбец матрицы А где расположен...

Составить программу, содержащую подпрограмму, которая в целочисленной матрице переставляет местами строки с наименьшим и наибольшим элементами - Pascal
В программировании я полный ноль. В паскале дальше циклов не заходил да и то их не понял толком. А подпрограммы вообще не понимаю. Пробовал...

Найдите сумму элементов строки, в которой расположен элемент с наименьшим значением - Pascal
В данной вешественной квадратной матрице порядка n найдите сумму элементов строки, в которой расположен элемент с наименьшим значением....

Найти сумму элементов строки матрицы, в которой расположен элемент с наименьшим значением - Pascal
В данной действительной квадратной матрице порядка n найти сумму элементов строки, в которой расположен элемент с наименьшим значением....

7
JokeR.BY
CAPITAL OF ROCK!
1273 / 700 / 573
Регистрация: 03.03.2010
Сообщений: 2,284
Завершенные тесты: 2
17.11.2014, 14:35 #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
type
    TMass = Array Of Array Of ShortInt;
 
var
    mass : TMass;
    i, j, jMin, jMax, n, m : Byte;
    max : ShortInt = -128;
    min : ShortInt = 127;
 
procedure Swap(var a : ShortInt; var b : ShortInt);
var
    c : ShortInt;
begin
    c := a;
    a := b;
    b := c;
end;
    
begin
    Write('Input n='); ReadLn(n);
    Write('Input m='); ReadLn(m);
    SetLength(mass, n);
    for i := 0 to n-1 do
    begin
        SetLength(mass[i], m);
        for j := 0 to m-1 do
        begin
            mass[i, j] := (i + 1) * m - (j + 1) * n;
            Write(mass[i, j]:4);
            if (max < mass[i, j]) then
            begin
                jMax := j;
                max := mass[i, j];
            end;
            if (min > mass[i, j]) then
            begin
                jMin := j;
                min := mass[i, j];
            end;
        end;
        WriteLn;
    end;
    WriteLn(max, ' ', min);
    if (jMax <> jMin) then
    begin
        WriteLn; WriteLn;
        for i := 0 to n-1 do
        begin
            Swap(mass[i, jMax], mass[i, jMin]);
            for j := 0 to m-1 do
                Write(mass[i, j]:4);
            WriteLn;
        end;
    end
    else
        WriteLn('Один и тот же столбец. Перемещение нецелесообразно.');
end.
1
Katrrin
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 36
Завершенные тесты: 1
17.11.2014, 15:43  [ТС] #3
JokeR.BY,
Не сочтите за наглость, можете код с коментариями сделать?
0
JokeR.BY
CAPITAL OF ROCK!
1273 / 700 / 573
Регистрация: 03.03.2010
Сообщений: 2,284
Завершенные тесты: 2
17.11.2014, 18:42 #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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
type
    TMass = Array Of Array Of ShortInt; //объявляем свой тип "вектор векторов"
 
var
    mass : TMass;
    i, j, jMin, jMax, n, m : Byte;
    max : ShortInt = -128; //максимум с инициализацией
    min : ShortInt = 127; //аналогично
 
procedure Swap(var a : ShortInt; var b : ShortInt); //процедура обмена значений. меняет местами два числа
var
    c : ShortInt;
begin
    c := a;
    a := b;
    b := c;
end;
    
begin
    Write('Input n='); ReadLn(n);
    Write('Input m='); ReadLn(m);
    SetLength(mass, n); //устанавливаем количество строк
    for i := 0 to n-1 do
    begin
        SetLength(mass[i], m); //количество столбцов
        for j := 0 to m-1 do
        begin
            mass[i, j] := (i + 1) * m - (j + 1) * n; //пишем какое-то значение
            Write(mass[i, j]:4); //выводим
            if (max < mass[i, j]) then //если максимум в памяти меньше данного числа
            begin
                jMax := j; //запоминаем столбец
                max := mass[i, j]; //и перезапоминаем новый максимум
            end;
            if (min > mass[i, j]) then //аналогично с минимумов
            begin
                jMin := j;
                min := mass[i, j];
            end;
        end;
        WriteLn;
    end;
    WriteLn(max, ' ', min); //выводим максимум и минимум
    if (jMax <> jMin) then //если максимум и минимум не в одном столбце
    begin
        WriteLn; WriteLn;
        for i := 0 to n-1 do
        begin
            Swap(mass[i, jMax], mass[i, jMin]); //меняем столбцы
            for j := 0 to m-1 do
                Write(mass[i, j]:4); //и выводим
            WriteLn;
        end;
    end
    else
        WriteLn('Один и тот же столбец. Перемещение нецелесообразно.'); //иначе бессмысленно
end.
0
Katrrin
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 36
Завершенные тесты: 1
17.11.2014, 20:46  [ТС] #5
JokeR.BY, поменять надо строки и задавать сразу 2 рандомных матрицы(integer)
0
Katrrin
0 / 0 / 0
Регистрация: 28.10.2014
Сообщений: 36
Завершенные тесты: 1
17.11.2014, 21:03  [ТС] #6
вот задание
в данных действительных матрицах n*m и k*l поменять местами строку , содержащую элемент с наибольшим значением , со строкой, содержащей элемент наименьшим значением. Предпологается, что эти элементы единственны
( не получается задать вторую матрицу (ошибка:19Ошибка времени выполнения: System.IndexOutOfRangeException: Индекс находился вне границ массива.
Стек:
в Program1.Program.$Main() в C:\PABCWork.NET\Program1.pas:строка 83
в Program1.Program.Main())

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
type
    TMass = Array Of Array Of integer;
    
 
var
    mass,kmas : TMass;
    i,k,l,p, j,q ,iMin, iMax, n, m : Byte;
    max,min: integer;
 
procedure Swap(var a : integer; var b : integer);
var
    c : integer;
begin
    c := a;
    a := b;
    b := c;
end;
    
begin
    Write('Input n='); ReadLn(n); //строки
    Write('Input m='); ReadLn(m);//столбцы
 
    SetLength(mass, n);
   
    max:=0;
    min:=0;
    for i := 0 to n-1 do
    begin
        SetLength(mass[i], m);
        for j := 0 to m-1 do
        begin
            mass[i, j] := random(41)-20;
            Write(mass[i, j]:4);
            if (max < mass[i, j]) then
            begin
                iMax := i;
                max := mass[i, j];
            end;
            if (min > mass[i, j]) then
            begin
                iMin := i;
                min := mass[i, j];
            end;
        end;
        WriteLn;
        end;
        writeln;
        begin
           write('Input l='); Readln(l);
    write('Input k='); Readln(k);// строки 2 масива
         SetLength(mas, k);
        for p:=0 to k-1 do
         begin
        SetLength(mass[i], l);
        for j:=0 to l-1 do
        begin
          mass[i, j] := random(41)-20;
            Write(mass[i, j]:4);
            if (max < mass[i, j]) then
            begin
                iMax := i;
                max := mass[i, j];
            end;
            if (min > mass[i, j]) then
            begin
                iMin := i;
                min := mass[i, j];
        end;
        end;
        WriteLn;
        end;   
    end;
    WriteLn('max=' ,max, ' ','min=', min);
    if (iMax <> iMin) then
    begin
        WriteLn; WriteLn;
        for i := 0 to n-1 do
        begin
        writeln;
            for j := 0 to m-1 do
            begin
            Swap(mass[imax, j], mass[imin, j]);
                Write(mass[i, j]:4);
         
        end;
        end;
         
    end
    else
        WriteLn('Один и тот же столбец. Перемещение нецелесообразно.');
end.
0
JokeR.BY
CAPITAL OF ROCK!
1273 / 700 / 573
Регистрация: 03.03.2010
Сообщений: 2,284
Завершенные тесты: 2
17.11.2014, 22:35 #7
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
type
    TLine = Array Of Integer; //объявляем тип "вектор"
    TMass = Array Of TLine; //объявляем свой тип "вектор векторов"
 
var
    mass1, mass2 : TMass; //две переменные-массивы
 
procedure Swap(var a : TLine; var b : TLine); //процедура обмена значений. меняет местами две строки
var
    c : TLine;
begin
    c := a;
    a := b;
    b := c;
end;
 
procedure InitMass(var a : TMass); //процедура инициализации массива
var
    i, j, n, m : Byte;
begin
    Randomize;
    Write('Input n='); ReadLn(n); //количество строк
    Write('Input m='); ReadLn(m); //количество столбцов
    SetLength(a, n); //устанавливаем количество строк
    for i := 0 to n-1 do
    begin
        SetLength(a[i], m); //количество столбцов
        for j := 0 to m-1 do
        begin
            a[i, j] := Random(667) - 333; //пишем какое-то значение
            Write(a[i, j]:4); //выводим
        end;
        WriteLn;
    end;
end;
 
function FindMinID(a : TMass) : Byte; //нахождение номера строки с наименьшим элементов
var
    min : Integer = 32767; //инициализируем с заведомо большим значением
    i, j, Result : Byte;
begin
    for i := 0 to Length(a)-1 do
        for j := 0 to Length(a[i])-1 do
            if (min > a[i, j]) then //если хранимый минимум больше данного элемента
            begin
                min := a[i, j]; //перезаписываем
                Result := i; //запоминаем id
            end;
    FindMinID := Result; //возвращаем id
end;
 
function FindMaxID(a : TMass) : Byte; //всё аналогично
var
    max : Integer = -32768;
    i, j, Result : Byte;
begin
    for i := 0 to Length(a)-1 do
        for j := 0 to Length(a[i])-1 do
            if (max < a[i, j]) then
            begin
                max := a[i, j];
                Result := i;
            end;
    FindMaxID := Result;
end;
 
procedure ProcMass(var a : TMass; iMin, iMax : Byte); //процедура обработки и вывода
var
    i, j : Byte;
begin
    if (iMax <> iMin) then //если максимум и минимум не в одном столбце
    begin
        Swap(a[iMax], a[iMin]); //меняем местами строки
        WriteLn; WriteLn;
        for i := 0 to Length(a)-1 do
        begin
            for j := 0 to Length(a[i])-1 do
                Write(a[i, j]:4); //и выводим
            WriteLn;
        end;
    end
    else
        WriteLn('Один и тот же столбец. Перемещение нецелесообразно.'); //иначе бессмысленно
end;
 
begin
    InitMass(mass1);
    ProcMass(mass1, FindMinID(mass1), FindMaxID(mass1));
    InitMass(mass2);
    ProcMass(mass2, FindMinID(mass2), FindMaxID(mass2));
end.
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3556 / 2250 / 1152
Регистрация: 22.11.2013
Сообщений: 5,922
18.11.2014, 13:08 #8
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
const n=4; m=5; k=4; l=5; W=4;
var
  a: array [1..n,1..m] of Real;
  b: array [1..k,1..l] of Real;
  t: Real;
  i, j, imin, jmin, imax, jmax: Integer;
begin
  Randomize;
  WriteLn('A=');
  imin:=1; jmin:=1; imax:=1; jmax:=1;
  for i:=1 to n do begin
    for j:=1 to m do begin
      a[i,j]:=Random(100); Write(a[i,j]:W:0);
      if a[imin,jmin]>a[i,j] then begin imin:=i; jmin:=j; end;
      if a[imax,jmax]<a[i,j] then begin imax:=i; jmax:=j; end;
    end; WriteLn;
  end;
  if imin<>imax then
    for j:=1 to m do begin
      t:=a[imin,j]; a[imin,j]:=a[imax,j]; a[imax,j]:=t;
    end;
  WriteLn('A''(',imin,'<->',imax,')=');
  for i:=1 to n do begin
    for j:=1 to m do Write(a[i,j]:W:0); WriteLn;
  end;
  WriteLn('B=');
  imin:=1; jmin:=1; imax:=1; jmax:=1;
  for i:=1 to k do begin
    for j:=1 to l do begin
      a[i,j]:=Random(100); Write(a[i,j]:W:0);
      if a[imin,jmin]>a[i,j] then begin imin:=i; jmin:=j; end;
      if a[imax,jmax]<a[i,j] then begin imax:=i; jmax:=j; end;
    end; WriteLn;
  end;
  if imin<>imax then
    for j:=1 to l do begin
      t:=a[imin,j]; a[imin,j]:=a[imax,j]; a[imax,j]:=t;
    end;
  WriteLn('B''(',imin,'<->',imax,')=');
  for i:=1 to k do begin
    for j:=1 to l do Write(a[i,j]:W:0); WriteLn;
  end;
end.
0
18.11.2014, 13:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2014, 13:08
Привет! Вот еще темы с ответами:

Найти сумму элементов строки матрицы, в которой расположен элемент с наименьшим значением - Pascal
ПОМОГИТЬ СОСТАВИТЬ ПРОГРАММЫ НА ПАСКАЛЕ. Задача №1 В данной действительной квадратной матрице порядка n найти сумму элементов строки,в...

Найти сумму элементов строки матрицы, в которой расположен элемент наименьшим значением - Pascal
В данной действительной квадратной матрице порядка n. Найти сумму элементов строки, в которой расположен элемент наименьшим значением....

Поменять местами строки, содержащие минимальный и максимальный элементы матрицы. - Pascal
Помогите пожалуйста решить задачу!!! Не успеваю зачет сдать!!! Плиз... Дана матрица размера М х N. Поменять местами строки, содержащие...

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


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

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

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