Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] НАйменьший елемент области матрицы


Автор: MOPEDE 2.10.2007, 21:58
У меня такое условие.
Дано дійсну матрицю  A(n x n), де n << 9, непарне. Знайти найменший елемент в заштрихованій області матриці. 



    ____________
   |                       |
   |       _____aji   |
   |      |\\\\\\\|      |
   |      |\\\\\\\|      |
   |      |\\\\\\\|      |
   |     aij               |
   |____________| 

Прога не ищет етот елемент. Например матрица такая
    1    1     1    1    1     
    3    4     5    3    4
    2    4     5    4    9 
    1    4     2    4    3
    7    8     8    9    2

Здесь найменьший елемент 2. Область квадратная.

    4    5    3
    4    5    4
    4    2    4

Моя прога. Где ощибка???


Код

Program Minimalniy;
 Uses Crt;
 Type
 Masiv=array [1..5,1..5] of real;
 var
 A :masiv;
 I, J: integer;
 Min: real;


Procedure Max (X:masiv; Var min:real);
     Var
     k,p:byte;
     begin
     min:=x[j,j];
     for p:=j to i do
     if x[k,p]<min then min:=A[k,p];
     end;

     begin
     textcolor (white);
     Clrscr;
     for i:=1 to 5 do
     for j:=1 to 5 do
     begin
     writeln ('Vvedite elementu A[',i,',',j,']=  ');
     readln (A[i,j]);
     end;
     clrscr;
    Max (A,Min);

    TextColor (yellow);
   Writeln ('Minimalniy ', Min:6:2);
  Repeat until KeyPressed;
 End.

Автор: volvo877 2.10.2007, 23:16
Цитата(MOPEDE @  2.10.2007,  20:58 Найти цитируемый пост)
Где ощибка???

Код

Procedure Max (X:masiv; Var min:real);
     Var
     k,p:byte;
     begin
     min:=x[j,j];
     for k := j to i do { <--- Эту строку забыл }
         for p:=j to i do
             if x[k,p]<min then min:=A[k,p];
     end;

У тебя матрица, значит цикл должен быть вложенный...

Добавлено через 1 минуту и 57 секунд
P.S. Зачем передаешь X в процедуру, а используешь глобальную матрицу - не понимаю... Почему вообще используешь процедуру, а не функцию - тем более не понимаю...

Автор: MOPEDE 3.10.2007, 06:56
Не работает правильно. Я ввожу матрицу.
    
    3    3     3    3     3     
    3    3     1    3     3
    3    3     4    3     3  
    3    3     3    3     3
    3    3     3    3     3 

В квадратной области найменший должен быть 1. А он пишет что 3 найменший.

Автор: volvo877 3.10.2007, 09:07
А ты что, i и j в программе (перед циклом) уже задал? Откуда программа-то знает, ГДЕ тебе надо искать? Скажи спасибо, что не вылетает вообще...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)