Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal] НАйменьший елемент области матрицы, не то ищет 
:(
    Опции темы
MOPEDE
Дата 2.10.2007, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.1.2007

Репутация: нет
Всего: нет



У меня такое условие.
Дано дійсну матрицю  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.


Это сообщение отредактировал(а) MOPEDE - 2.10.2007, 22:01
PM MAIL   Вверх
volvo877
Дата 2.10.2007, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 34
Всего: 116



Цитата(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 в процедуру, а используешь глобальную матрицу - не понимаю... Почему вообще используешь процедуру, а не функцию - тем более не понимаю...
PM MAIL   Вверх
MOPEDE
Дата 3.10.2007, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.1.2007

Репутация: нет
Всего: нет



Не работает правильно. Я ввожу матрицу.
    
    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 найменший.

Это сообщение отредактировал(а) MOPEDE - 3.10.2007, 07:10
PM MAIL   Вверх
volvo877
Дата 3.10.2007, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 34
Всего: 116



А ты что, i и j в программе (перед циклом) уже задал? Откуда программа-то знает, ГДЕ тебе надо искать? Скажи спасибо, что не вылетает вообще...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.1739 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.