IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> процедуры и функции.Упорядоченная пос-ть при переборе змейкой.
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


условие: для заданной вещественной матрицы определить, образуют ли её элементы упорядоченную последовательность при их переборе змейкой (начиная с 1 строки двигаясь по часовой стрелки).Для определения факта упорядоченности части строки(столбца) используйте функцию.

вот скудные наброски-->

Код
const n=10;
                 m=10;  
         type  Temem=real;
               Tvector=array [1..n,1..m] of Telem;  
var  a: Tvector;  
     i,j: integer;  
left,right: integer;  
      flag:boolean;  
begin  
i:=left;  
result:=true;  
  while (i<right) and result do
    for i:=j+1 to n do  
      if not flag (a[j+1,i],a[j+1,i+1]) then  
         not flag for ...;  
     ...


-идея в том, что бы проверять упорядоченность с левой части строк до правой, тоже самое со столбцами.Подскажите пожалуйста как правильно написать циклы для проверки нижней строки и левого столбца.Их же надо в обратном порядке считать как бы.И дальше, когда проверили 1 круг, при следуующей строке надо изменить в цикле только до n-1, потом до n-2 и т..д.?
P.S. если не сложно, то можно ответы давать в развёрнутом виде? У меня совсем нету опыта по написанию программ.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Код
const
  arr: mx = (
    ( 1, 2, 3, 0, 5, -6, 7),
    (20,21,22,23,24,25, 8),
    (19,32,33,44,45,26, 23),
    (18,31,30,29,28,27,10),
    (17,16,15,14,53,12,11)
  );
   SizeX = 7;
   SizeY = 5;
type
  mx = array[1 .. SizeY, 1 .. SizeX] of Integer;
  function is_sorted(const arr: mx): boolean; // в этой ф-ии будет идти проверка упорядоченности матрицы по спирали (вопрос: она проверяет только по спирали?)
var
  X: integer;
  prev, next: integer;
  T: mx;
  function f(i, j: shortint): boolean; // почему сразу не сравнивать выходят ли i,j за границы массива нового?
begin
   prev := get_val(1, 1, 0); // ...
    if (i < 1) or (i > SizeY) or (j < 1) or (j > SizeX) then
      f := false
    else f := (T[i,j] = -1); // т.е. если за границы не выходим то заполняю пустую ячейку матрицы? почему -1??
is_sorted := false; // пусть матрица изначально неупорядочена.проверяем, так ли это.
  for i := 1 to SizeY do
    for j := 1 to SizeX do T[i, j] := -1;
for X := 1 to pred(SizeX * SizeY) do // в цикле заполняем матрицу единицами.
  begin
    if f(i-1, j) and not f(i, j-1) then next := get_val(i-1, j, X) else
    if f(i,j+1) then next := get_val(i, j+1, X) else
    if f(i+1,j) then next := get_val(i+1, j, X) else
    if f(i,j-1) then next := get_val(i, j-1, X); // вот здесь не очень понятно, у нас получается (0,1,1) , (1,2,1) , (2,1,1) или (1,0,1) ?

    if prev > next then exit; // если предыдущее значение больше последующего, обрываем всё и выходим из цикла, в противном случае в ф-ии  is_sorted проверка прошла успешно и пос-ть упорядочена.
    prev := next;
  end;
  is_sorted := true;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.09.2025 15:42
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name