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

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

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

 
 Ответить  Открыть новую тему 
> подпрограммы, помогите доделать
ve7er
сообщение 1.06.2007 16:44
Сообщение #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 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 1.06.2007 19:39
Сообщение #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 
 К началу страницы 
+ Ответить 
ve7er
сообщение 1.06.2007 20:01
Сообщение #3


Разведчик
*

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

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


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


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

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

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


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


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

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

 



- Текстовая версия 23.06.2025 12:46
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"