Arrumar um programa de arranjo pra ele rode apenas o arranjo de 1,2,3,4
Opa pessoal, estou com um problema que quero que esse programa de arranjo em pascal apenas rode os arranjos de: 1234 ,sendo digitado 1 o 2 e assim sucessivamente, porém mesmo se eu digitar outro número eu quero que apenas o arranjo do 1234 seja feito e não outro. Alguém tem uma ideia de como fazer isso ? Virei e revirei o código e não consigo encontrar.
program mistureba;
type placa = array [1..4] of integer;
expr = record
texto : string;
valor : real;
end;
a4expr = array [1..4] of expr;
const MAXDIG = 4;
var a4num : array [1..24] of placa; // a4num : array [1..24,1..4] of integer
linha : integer;
procedure mistura(input : placa; index : integer);
// input tem a série de digitos da placa
// index indica a posição que inicia o arranjo
var output : placa;
p, i : integer;
begin
if index=MAXDIG then
begin // mostra / insere a sequencia que está em input
//for i := 1 to MAXDIG do
//write(input[i]);
//writeln;
a4num[linha] := input;
linha := linha + 1;
end
else
begin
output := input;
for p := index to MAXDIG do
begin
output[index] := input[p];
for i := index to p - 1 do
output[i + 1] := input[i];
for i := p + 1 to MAXDIG do
output[i] := input[i];
mistura(output,index + 1);
end;
end;
end;
var //a4num : placa;
p, i : integer;
begin
linha := 1;
for i := 1 to MAXDIG do
readln(a4num[linha,i]);
mistura(a4num[linha],1);
// vou mostrar o conteúdo do mei conjunto de placas
for linha := 1 to 24 do
begin
for i := 1 to MAXDIG do
write(a4num[linha,i]);
writeln;
end;
end.
program mistureba;
type placa = array [1..4] of integer;
expr = record
texto : string;
valor : real;
end;
a4expr = array [1..4] of expr;
const MAXDIG = 4;
var a4num : array [1..24] of placa; // a4num : array [1..24,1..4] of integer
linha : integer;
procedure mistura(input : placa; index : integer);
// input tem a série de digitos da placa
// index indica a posição que inicia o arranjo
var output : placa;
p, i : integer;
begin
if index=MAXDIG then
begin // mostra / insere a sequencia que está em input
//for i := 1 to MAXDIG do
//write(input[i]);
//writeln;
a4num[linha] := input;
linha := linha + 1;
end
else
begin
output := input;
for p := index to MAXDIG do
begin
output[index] := input[p];
for i := index to p - 1 do
output[i + 1] := input[i];
for i := p + 1 to MAXDIG do
output[i] := input[i];
mistura(output,index + 1);
end;
end;
end;
var //a4num : placa;
p, i : integer;
begin
linha := 1;
for i := 1 to MAXDIG do
readln(a4num[linha,i]);
mistura(a4num[linha],1);
// vou mostrar o conteúdo do mei conjunto de placas
for linha := 1 to 24 do
begin
for i := 1 to MAXDIG do
write(a4num[linha,i]);
writeln;
end;
end.
Matheus Vi
Curtidas 0