Помощь - Поиск - Пользователи - Календарь
Полная версия: подпрограммы
Форум «Всё о Паскале» > 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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.