IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> подпрограммы, помогите доделать
сообщение
Сообщение #1


Разведчик
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: Диман

Репутация: -  0  +




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

В 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.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


   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;

ты же массиву не даешь возможности меняться... то есть ПОСЛЕ выполнения подпрограммы в массиве будет ровно то же, что было.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Разведчик
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: Диман

Репутация: -  0  +


Че то я не догнал. Почему будет то же? Все меняется и работает. Я в консоле Делфи делаю. Фраза непонятная "в которой выходной переменной будет новый массив. " Эч че значит?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Это значит, что на входе один массив, на выходе - изменненый.
У тебя он не меняется. Меняется только локальная копия. Надо написать var x:mas


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 22.10.2021 16:39
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name