Пятница, 29.03.2024, 11:03
Задачи по информатике
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ignorer, KOT_B_MEIIIKE, PASCAL26, atvrider  
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » [Pascal] Контуры в матрице (28.06.2011 Матрицы)
[Pascal] Контуры в матрице
LexonДата: Понедельник, 27.06.2011, 12:24 | Сообщение # 1
Сержант
Группа: Новичок
Сообщений: 7
[ 0 ]
Статус: Offline
Группу, содержащую наибольшее число подряд идущих отрицательных элементов, заменить на минимальный элемент этого массива.

Не могу придумать как это сделать, подскажите в процедуре (у меня в Moving) как это описать?
Procedure Moving(Var Mas : Massiv_1x; Count : Byte);

Добавлено (27.06.2011, 12:24)
---------------------------------------------
{Как переделать поиск под такой вывод контуров?????

* 5,1-5,5-9,1-5,1
* 1,8-4,11-4,5-1,8
* 3,11-7,11-7,7-3,11

строк 9 столбцов 11

Синий пересекаются
}

Function Find(i_in, j_in : byte; Name : String; i1, i2, j1, j2 : byte): Boolean;
Var
i0, j0 : byte;
Begin
Find := False;
For i0 := i1 To i2 Do
Begin
For j0 := j1 To j2 Do
If (i_in = i0) And (j_in = j0) Then
Begin
Find := True;
Break;
End;
If Name = 'A' Then Dec(j2);
If Name = 'B' Then Dec(j1);
End;
End;


Сообщение отредактировал Lexon - Понедельник, 27.06.2011, 12:26
 
KOT_B_MEIIIKEДата: Понедельник, 27.06.2011, 20:22 | Сообщение # 2
Генералиссимус
Группа: Модераторы
Сообщений: 284
[ 36 ]
Статус: Offline
эта што такое-то? нифига не понял)
 
LexonДата: Вторник, 28.06.2011, 08:36 | Сообщение # 3
Сержант
Группа: Новичок
Сообщений: 7
[ 0 ]
Статус: Offline
сам разобрался biggrin а можно помочь с процедурой обработки массивов
нужно: Группу, содержащую наибольшее число подряд идущих отрицательных элементов, заменить на минимальный элемент этого массива.

Я не знаю как это описать запутался совсем. Просто составить сам цикл обработки, остальное сам подставлю. за масив берется Mas[i] (одномерный массив)
размерность разная т. к. процедура обрабатывает 4 массива разной длины


Сообщение отредактировал Lexon - Вторник, 28.06.2011, 12:00
 
KOT_B_MEIIIKEДата: Вторник, 28.06.2011, 21:33 | Сообщение # 4
Генералиссимус
Группа: Модераторы
Сообщений: 284
[ 36 ]
Статус: Offline
Code

const n=10;
type m=array [1..n] of integer;
function minim(t:m):integer;
           var i,min:integer;
           begin
           min:=t[1];
           for i:=2 to n do
               if min>t[i] then min:=t[i];
           minim:=min;
           end;
procedure asdf(var t:m);
           var i,j,cur,icur,max,imax:integer; p:boolean;
           begin
           max:=0;
           for i:=1 to n-1 do
               if (t[i]=t[i+1]) and (t[i]<0) then
                  begin
                  if p then begin icur:=i;p:=false end;
                  cur:=cur+1
                  end
                    else
                  begin
                  if max<cur then begin max:=cur; imax:=icur end;
                  cur:=0;
                  p:=true;
                  end;
           j:=minim(t);
           for i:= imax to imax+max {mb -1 nado} do t[i]:=j
           end;

что-то как-то так=) Тока тип массива надо отдельно указать, чтобы и min и вторая проца работала... (кстати 2 неплохо бы было переименовать, а то сейчас это набор букв) не тестил целиком, ибо оставшуюся прогу писать лень...
 
LexonДата: Среда, 29.06.2011, 11:41 | Сообщение # 5
Сержант
Группа: Новичок
Сообщений: 7
[ 0 ]
Статус: Offline
Спасибо огромное работает!)
 
KOT_B_MEIIIKEДата: Среда, 29.06.2011, 20:37 | Сообщение # 6
Генералиссимус
Группа: Модераторы
Сообщений: 284
[ 36 ]
Статус: Offline
=)
 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » [Pascal] Контуры в матрице (28.06.2011 Матрицы)
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024