Помощь - Поиск - Пользователи - Календарь
Полная версия: подпрограммы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ve7er


Такая задача:

В 4-х массивах x[1]..x[n] одной длины. Не используя других массивов, переставьте элементы массива в обратном порядке. В основной программе организуйте подпрограммы для ввода элементов массива и подпрограмму для перестановки элементов, в которой выходной переменной будет новый массив.

Я её не доделал, потому что не получается для 4-х массивов, какой то бред выводит, поэтому я это убрал и меня напрягает последнее предложение в задании, а точнее последняя фраза? Помогите доделать и проверьте ошибки, если что не так я начал делать.


 const
  n=5;
  type
  mas=array[1..n] of integer;
   var
   a:mas;
   vod:integer;
   procedure vvod(var x:mas);
   var
   i:integer;
   begin
   writeln('vvedite elementy');
   for i:=1 to n do
   begin
   writeln('a[',i,']=');
   readln(a[i]);
   end;
   end;
   procedure vvod_rand(var x:mas);
   var
   i:integer;
 begin
Randomize;
  For i:=1 to n do x[i]:=random(20)-10;
  for i:=1 to n do
  write(x[i],' ');
  end;
  procedure per(x:mas);
  var
  b:integer;
  i:integer;
  begin
  for i:=1 to n div 2 do begin
  b:=x[i];
  x[i]:=x[n-i+1];
  x[n-i+1]:=b;
  end;
  writeln('new');
  for i:=1 to n do
  write(' ',x[i]);
  end;
  begin
  writeln('vyberite dejstvie');
  writeln('1- ruchnoj vvod');
  writeln('2- avtomaticheskij vvod');
  readln(vod);
  if vod=1 then begin
  vvod(a);
  per(a) end
  else
  if vod=2 then begin
  vvod_rand(a);
  per(a);
  end;

  readln;
  end.

мисс_граффити
   procedure vvod(var 

x

:mas);
   var
   i:integer;
   begin
   writeln('vvedite elementy');
   for i:=1 to n do
   begin
   writeln('

a

[',i,']=');
   readln(

a

[i]);
   end;
   end;

Это - нормально?

  procedure per(

x:mas

);
  var
  b:integer;
  i:integer;
  begin
  for i:=1 to n div 2 do begin
  b:=x[i];
  x[i]:=x[n-i+1];
  x[n-i+1]:=b;
  end;
  writeln('new');
  for i:=1 to n do
  write(' ',x[i]);
  end;

ты же массиву не даешь возможности меняться... то есть ПОСЛЕ выполнения подпрограммы в массиве будет ровно то же, что было.
ve7er
Че то я не догнал. Почему будет то же? Все меняется и работает. Я в консоле Делфи делаю. Фраза непонятная "в которой выходной переменной будет новый массив. " Эч че значит?
мисс_граффити
Это значит, что на входе один массив, на выходе - изменненый.
У тебя он не меняется. Меняется только локальная копия. Надо написать var x:mas
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.