Помощь - Поиск - Пользователи - Календарь
Полная версия: Передача параметров в процедуру
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Student91
В общем задали задание написать процедуры с параметрами переменных, без параметров и параметрами значений. У меня в программе расписаны все 3 процедуры, а когда буду сдавать то буду просто мнять одну строчку (параметров) и все, но вот в чем беда, у меня исходный массив , ну как бы обьяснить , забиваеться что ли в ходе выполнения имне мол препод намекнул что исходник должен сохраниться, что бы дальше с ним в случае чего можно было работать. Я подумал что можно создать еще один масив пустой, и ему в процедуре присвоить 1 массив и так исходник всегда будет подрукой нокак только пытаюсь это сделать выходит лажа... помогите а?)
Вот моя программа:

const
sizerow = 10;
sizecol = 10;
type
trow = array[1 .. sizerow] of integer;
tmatrix = array[1 .. sizecol] of trow;
var
mx: tmatrix;
i, j: integer;
procedure swapcols(var mx: tmatrix; const i, j: integer);
var T: trow;
begin
T := mx[i]; mx[i] := mx[j]; mx[j] := T
end;

procedure print(var mx: tmatrix);
var i, j: integer;
begin
for i := 1 to sizerow do begin
for j := 1 to sizecol do
write(mx[j][i]:4);
writeln
end;
end;
procedure print1;
var i, j: integer;
begin
for i := 1 to sizerow do begin
for j := 1 to sizecol do
write(mx[j][i]:4);
writeln
end;
end;
procedure print2(mx: tmatrix);
var i, j: integer;
begin
for i := 1 to sizerow do begin
for j := 1 to sizecol do
write(mx[j][i]:4);
writeln
end;
end;



begin

for i := 1 to sizerow do
for j := 1 to sizecol do
mx[i][j] := random(100);

writeln('before:'); print(mx);

swapcols(mx, 1, 5);

writeln('after:'); print(mx);
writeln('bez parametrov:');print1;
writeln('Parametru znachenia:'); print2(mx);
end.


volvo
Не понял, что именно у тебя (и чем) забивается? Запустил программу, получил исходный массив, и три совершенно одинаковых результата. Тебе надо исходный сохранить, который до перестановки столбцов, что-ли?

type
trow = array[1 .. sizerow] of integer;
tmatrix = array[1 .. sizecol] of trow;
var
mx: tmatrix;
initial : tmatrix; // Добавляешь, куда сохранять

// ...

for i := 1 to sizerow do
for j := 1 to sizecol do
mx[i][j] := random(100);

// Сохраняешь массив mx в Initial
initial := mx;

// работаешь дальше

Student91
ну да исходник сохранить, просто я коряво обьясняю sad.gif
Lapp
М
Тема переименована.
Просьба уважать правила (правила Форума, п.4, и правила раздела Задачи, п.1)

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.