Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2011, 20:45   #1
Biggie Smalls
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 31
По умолчанию Многофункциональная программа с выделением процедур pascal

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

мне бы блок схему, а там я бы сам разобрался.
спасибо за внимание!
Biggie Smalls вне форума Ответить с цитированием
Старый 25.02.2011, 08:45   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

как именно надо разбить на процедуры ? я могу выделить такие : чтение матрицы (ввод с консоли данных/ввод с консоли имени файла и его прочтение) и величины для проверки. процедура всплытия - вложенный цикл for по строкам-по столбцам, в нём поиск максимального значения в столбце, примерно так:
Код:
procedure ...
var i, j, max, maxid, tmp : integer;
begin
max := 0;
for i:= 0 to matrixwidth // cols
  do begin
  for j := 0 to matrixheight // rows
    do begin
    if matrix[j,i]> max 
      then begin
      max := matrix[j,i];
      maxid := j;
      end;
    end;
  tmp:= matrix[0,i];
  matrix[0,i] := matrix[maxid,i];
  matrix[maxid,i] := tmp;
  max := 0 ;
  end;
end;
потом процедура дележки, тоже циклы , но 2 разных и оба только по столбцам, первый - проверяешь условие вроде такого boolean_condition := boolean_condition or (abs(matrix[i,0]) < value) изначально boolean_condition = false; в процессе цика при нахождении в матрице значения по модулю меньше величины , то ей присваивается true, и уже не меняется (из-за OR), можно даже break поставить.
Второй цикл - сама дележка, если boolean_condition ложь, то начать цикл дележки, где для каждого столбца разделить последний элемент на первый (в данном месте надо понять, что в итоге получается число <=1, значит матрица должна быть объявлена с типом real )

Ну и осталось только по порядку вызвать эти функции из главной программы

Пиши код и скидывай сюда ) поразмыслим, может где улучшить можно )
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[B]Разработка программы из использованием процедур (Pascal)[/B] bot0 Помощь студентам 0 18.01.2011 22:37
Разработка программы из использованием процедур (Pascal) bot0 Помощь студентам 0 16.01.2011 20:11
[Pascal]Двусвязный кольцевой список, несколько процедур Fuaran8989 Фриланс 1 25.05.2008 20:22
Организация программ с использованием процедур....Pascal flexo_77 Помощь студентам 1 19.12.2007 14:06