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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [pascal|алгоритм] матрица 
V
    Опции темы
bobik02
Дата 21.1.2010, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть задача:

Цитата

Дана квадратная матрица размером 5x5. Нужно найти среднее арифметическое наибольшего и наименьшего значений их элементов расположенных ниже главной диагонали.


Интересует:
 Алгоритм как пробежаться по элементах ниже диагонали ?


Просто натолкните пожалуйста на мысль smile


--------------------
Have a nice day
PM   Вверх
bobik02
Дата 21.1.2010, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



решенно сам сообразил:
если нужно строго ниже диагонали, тогда первый цикл стартует сразу со 2й строки, 
а во втором граница по значению первого минус один... как то так


--------------------
Have a nice day
PM   Вверх
Dancer
Дата 21.1.2010, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

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




int min =  0x7FFFFFFF;
int max =0x80000000;
for(int i=0; i<5; i++)
{
   for(int j=0; j<i; j++) 
   {
       int tmp = a[i][j];
       if(tmp < min) min = tmp;
       if(tmp > max) max = tmp;
   }
}
double retValue = (min+max)/2;

бежим по строчкам, от первой строки до последней
  бежим по элементам в строчке, пока индекс столбца меньше индекса строчки


for i:= 1 to 5 do
  for j:= 1 to i do
  begin
    write('element[',i);
    write(',',j);
    writeln(']: ', A[i,j]);
  end;


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
bobik02
Дата 21.1.2010, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну если уж дело до кода дошло
вотЪ:

Код

Program Lab7;

uses crt;

const n=5; {m=5;}

var
 x        : array[1..n,1..n] of integer;
 i,j      : integer;
 min, max : integer;
 ser      : real;
Begin
 clrscr;
 randomize;


   {in}
   for i:=1 to n do for j:=1 to n do
   begin
    x[i,j]:=random(10);
   end;

   {out}
   for i:=1 to n do for j:=1 to n do
   begin
      write(x[i,j],' ');
      if j=5 then writeln('');
   end;

 writeln;

   {just do it}
   min:=x[2,1];
   max:=x[2,1];

   for i:=2 to n do for j:=1 to n do
   begin
     {diagonal}

     if i>j then
      begin
      {writeln(x[i,j]);}
       if min > x[i,j] then min:=x[i,j];
       if max < x[i,j] then max:=x[i,j];
      end;

   end;

ser:= (min+max)/2;
writeln('min=',min,' max=',max);
writeln('ser=',ser:2:2);

readln
End.




--------------------
Have a nice day
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

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


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

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

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

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


 




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


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

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