Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 05.12.2008
Сообщений: 18
1

Найти в каждой строке минимальный и максимальный элементы и поместить их на место первого и последнего элемента строки соответственно

09.03.2009, 00:19. Просмотров 1684. Ответов 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
program mn;
uses crt;
Var
i,j,n,max,min,l,b:integer;
f:array[1..20,1..10] of integer;
 
begin    clrscr;
 WRITE('Vvedite kolichestvo elementov v massive '); READLN(N);
 FOR I := 1 TO N DO
  FOR J := 1 TO N DO
  Begin
   WRITE('f[', I, ',', J, '] '); READLN(f[I, J])
  End;
   For I := 1 To N Do
         Begin
              For J := 1 To N Do
              Begin
              Write(f[I,J]:5);
              End;
              WriteLn;
         End;
 
 
 
         for i:=1 to n do begin
         max:=1;
         min:=1;
         for j:=1 to n do       begin
         if f[i,j]>max then max:=f[i,j]; l:=f[n,j]; f[n,j]:=max; f[n,j]:=l;
         if f[i,j]<min then min:=f[i,j];  b:=f[i,n]; f[i,n]:=min; f[i,n]:=b;
 
 
          end;        end;
 
            writeln;
          For I := 1 To N Do
         Begin
              For J := 1 To N Do
              Begin
              Write(f[I,J]:5);
              End;
              WriteLn;
         End;       readln;
 
 
 
 
         end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2009, 00:19
Ответы с готовыми решениями:

Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно
Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого...

Найти максимальный и минимальный элементы в каждой строке и поменять их местами с элементами первой и последней позиции соответственно
Program Proga; uses crt; var a: array of real; i,j:integer; x,y,max,min,buf:real; ...

Найти в каждой строке матрицы максимальный и минимальный элемент и поменять их с первым и последним элементом соответственно
Товарищи нужна помощь в решении задания...заранее благодарю :bravo: Дана матрица B.Найти в каждой...

Найти в каждой строке матрицы максимальный и минимальный элементы
Обработать на ЭВМ матрицу. Вывести на печать результаты и исходную матрицу в общепринятом виде....

1
Модератор
62241 / 46529 / 32077
Регистрация: 18.05.2008
Сообщений: 112,474
09.03.2009, 10:22 2
Кроме того что у Вас просто много ошибок, еще и неверный алгоритм выбран. Если бы нужно было просто поменять первый с минимальным или последний с максимальным, нет проблем.
А у нас двойной обмен в одной строке. В ситуации когда максимальный на первом месте, а минимальный на последнем, мы получим либо минимальный на обоих местах, либо максимальный. Кроме того еще есть подводные камни.
Поэтому в данном случае нужно использовать сдвиги массива влево(максимальный в конец) и вправо(минимальный в начало).
Очень некрасиво написана программа, то большие буквы(что сильно режет глаза и затрудняет восприятие), то маленькие. По нескольку действий в одной строке, лишние begin-end, Местами нет отступов и т.д. Предлагаю Вам самому привести программу в божеский вид. Если не знаете как, посмотрите на форуме например мои программы и нормально оформленные программы других авторов.
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 mn;
uses crt;
Var f:array[1..20,1..20] of integer;
    n,i,j,max,min,jmax,jmin,k,l,b:integer;
begin
clrscr;
WRITE('Vvedite razmer matricy n=');
READLN(N);
FOR I := 1 TO N DO
FOR J := 1 TO N DO
  Begin
    WRITE('f[', I, ',', J, '] ');
    READLN(f[I, J])
   End;
clrscr;{после ввода экран лучше очистить и вывести нормально матрицу}
writeln('Ishodnaya matrica:');
For I := 1 To N Do
   Begin
    For J := 1 To N Do
    Write(f[I,J]:5);
    WriteLn;
   End;
for i:=1 to n do
   begin
    min:=f[i,1];jmin:=1;
    for j:=1 to n do
    if f[i,j]<min then
        begin
         min:=f[i,j];{находим мин}
         jmin:=j;{его номер в строке}
        end;
    if jmin>1 then {если минимальный не первый}
      begin
        l:=f[i,jmin];{запоминаем его значение}
        for k:=jmin downto 2 do f[i,k]:=f[i,k-1];{сдвигаем к нему(вправо) строку, он исчезает}
        f[i,1]:=l;{записываем его на первое место}
      end;
    max:=f[i,1];jmax:=1;
    for j:=1 to n do
    if f[i,j]>max then {то же с максимальным, только сдвиг влево и запись на последнее место}
        begin
         max:=f[i,j];
         jmax:=j;
        end;
    if jmax<n then
       begin
         b:=f[i,jmax];
         for k:=jmax to n-1 do f[i,k]:=f[i,k+1];
         f[i,n]:=b;
       end;
  end;
writeln;
writeln('Rezultat:');
For I := 1 To N Do
  Begin
    For J := 1 To N Do
    Write(f[I,J]:5);
    WriteLn;
  End;
readln
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2009, 10:22

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

Найти в каждой строке матрици максимальный и минимальный элементы
Задача1: Матрица А(10,10). Найти в каждой строке матрици максимальный и минимальный элементы и...

Найти в каждой строке матрицы максимальный и минимальный элементы
Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и...

Найти в каждой строке матрицы максимальный и минимальный элементы.
Дана матрица B.Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с...

Найти в каждой строке матрицы макс. и мин. элементы и поменять их местами первым и последним элементом строки соответственно
Дана матрица B.Найти в каждой строке матрицы макс. и мин. элементы и поменять их местами первым и...


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

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

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