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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2011, 11:01   #1
PHARAoN91
 
Регистрация: 15.10.2011
Сообщений: 6
По умолчанию Подпрограмма-процедура

Заданы два одномерных массива с N элементами, упорядоченными по возрастанию, объединить элементы этих массивов в один массив так, чтобы элементы снова оказались упорядоченными по возрастанию. Реализовать программу с подпрограммой-процедурой.

Ниже приведен текст моей программы. В моем примере два массива объединяются в один, но не сортируются. Можете помощь найти ошибку.
Код:
{Объеденить два упорядоченных по убыванию массива}
Program m_concat;
 uses crt;
 type mas=array[1..1000] of real;
  var a,b,c:mas;
      i,j,n,p,k:integer;
 Procedure InputOutput(var d:mas; var x:integer);
begin
  Writeln('Введите размерность N');readln(x);
 For i:=1 to x do
begin
  write(i,' элемент=');
  readln(d[i]);
end;
Writeln('Исходный маccив');
 For i:=1 to x do write(d[i]:4:2,' ');
writeln;
end;
Procedure InputOutput2(var d:mas; x:integer);
begin
  Writeln('Введите следующий массив')
 For i:=1 to x do
begin
  write(i,' элемент=');
  readln(d[i]);
end;
Writeln('Исходный маccив');
 For i:=1 to x do write(d[i]:4:2,' ');
writeln;
end;
 Procedure Slianie( var q,w,e:mas; var x:integer);
  var p,j,l:integer;
begin 
  p := 1; j := 1; l := 1;
 while (p <= x) and (j <= x) do
begin if q[p] <= w[j]
then begin e[l]:= q[p]; p:= p+1 end
  else begin c[l]:= w[j]; j:= j+1 end;
 l := l+1
end;
  if p > n
  then repeat e[l] := w[j]; l:=l+1; j := j+1 until j > n
 else repeat e[l] := q[p]; l:=l+1; p:= p+1 until p > n
end;
 Procedure Output(var d:mas; var x:integer);
Begin
  For i:=1 to x do write(d[i]:4:2,' ');
 writeln;
end;
InputOutput (a,n);
InputOutput2 (b,n);
writeln (‘Полученный масссив’);
Slianie (a,b,c,n);
K:=2*n;
Output (c,k);
writeln;
write (Для выхода нажмите ENTER);
reset (input); readln;
end.
PHARAoN91 вне форума Ответить с цитированием
Старый 23.11.2011, 11:31   #2
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Код:
Procedure Ex2AZ (ExCol:Integer;ExMass:Massiv);
Var
   MassAZ: Massiv;
   Buffer: integer;
   I, J: Integer;
Begin
     For I:=1 To ExCol Do MassAZ[I]:=ExMass[I]; // Excol - твой (x) ну и ExMass - твой (d)
     For I:=1 To ExCol Do
         For J:=I To ExCol Do
             Begin
                  If MassAZ[I]>MassAZ[J] Then
                  Begin
                       Buffer:=MassAZ[J];
                       MassAZ[J]:=MassAZ[I];
                       MassAZ[I]:=Buffer;
                  End;
             End;
     WriteLn ('Упорядочен по возрастанию:');
     For I:=1 To ExCol Do
     Begin
          Write (MassAZ[I]:4,' ');
     End;
Вот тебе процедурка. Теперь осталось тебе орфографией позаниматься. Суть сортировки замена макс. элемента с мин. элементом.
Люблю на ты.Я человек простой

Последний раз редактировалось Leshii; 23.11.2011 в 11:43.
Leshii вне форума Ответить с цитированием
Старый 23.11.2011, 16:51   #3
PHARAoN91
 
Регистрация: 15.10.2011
Сообщений: 6
По умолчанию

спасибо...
PHARAoN91 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача подпрограмма-процедура в Delphi Ксюшка 76 Помощь студентам 0 18.05.2011 16:16
Подпрограмма serega260394 Помощь студентам 1 18.12.2010 07:26
Подпрограмма peter065 Помощь студентам 10 11.10.2010 22:51
Подпрограмма NAZE Паскаль, Turbo Pascal, PascalABC.NET 12 31.05.2010 17:04
подпрограмма-процедура в Pascal Танюсик Помощь студентам 6 21.04.2008 07:28