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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 16:21   #1
Д@ш@
 
Регистрация: 28.04.2011
Сообщений: 8
По умолчанию Разбить процедуру на три

Дан двумерный массив. Вставьте первый столбец после всех столбцов, в которых есть отрицательные элементы.

Модуль 1

Код:
unit op;
interface
const MaxN=100; maxM=80;
type TMyArray=Array[1..maxN, 1..maxM] of integer;
implementation
end.
Модуль 2

Код:
unit module;

interface

uses op;

procedure Zapolnenie (v, w: integer; var X :TMyArray);
procedure Vivod (v, w: integer; X :TMyArray);
procedure vstavka (v, w:integer; var X:TMyArray);

implementation

procedure Zapolnenie (v, w: integer; var X :TMyArray);
var    i, j    : integer;
begin
        for i:=1 to v do
        For j:=1 to w do
 X[i, j]:=random(20)-10;
end;

procedure Vivod (v, w: integer; X :TMyArray);
var    i, j   : integer;
begin
	For i:=1 to v do
begin
	For j:=1 to w do  write(X[i, j]:3);
	Writeln;
	end;
end;
procedure vstavka (v, w:integer; var X:TMyArray);
var i, j, k, t, ot, l :integer;
begin
k:=v;
j:=1;
while j<=k do
 begin
  ot:=0;
  for i:=1 to v do
  if X[i,j]<0 then ot:=1;
  if ot=1 then
  begin
    for l:=1 to v do
     begin
      for t:=k+1 downto j+2 do
      X[l,t]:=X[l,t-1];
      X[l,j+1]:=X[l,1];
     end;
    k:=k+1;
    j:=j+2;
   end
  else j:=j+1;
 end;
for i:=1 to v do
 begin
  for j:=1 to k do
  write(X[i,j]:3);
  writeln;
 end;
readln
end;
end.
Модуль 3

Код:
uses op, module,crt;
var     A       : TMyArray;
        n, m    :Integer;
begin
Clrscr;
Writeln ('vvedite chislo strok <100 i chislo stolbcov <=80');
Readln (n,m);
if (n>=100) or (n>80) then
        writeln ('nepraviln vvod dannuh')
        Else begin
Writeln;
end;
Zapolnenie (n, m, A);
Vivod (n, m, A);
writeln ('Vstavka pervogo stolbca:');
vstavka (n, m, A);
writeln;
end.
Помогите пожалуйста в модуле описания (Модуль 2) разделить procedure vstavka на три процедуры: процедура поиска отрицательных элементов, проц. сдвига, проц. вставки первого столбца.

Заранее спасибо.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 17.05.2011 в 17:08.
Д@ш@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как разбить на части VBA процедуру (ту лардж)? neprofi Помощь студентам 1 29.04.2010 04:11
Как разбить процедуру (ту лардж)? Вопрос от чайника ... neprofi Microsoft Office Word 21 28.04.2010 17:25
как создать матрицу три на три в мемо (делфи) Lordigan Помощь студентам 0 15.03.2010 18:37
Как разбить число на цифрыКак разбить число на цифры: 3241 => 3,2,4,1 (Pascal) Banderas123 Помощь студентам 3 07.12.2009 18:26
черный ящик, на три входа и на три выхода Shanson Помощь студентам 7 30.01.2008 09:45