Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Лексикографический порядок доделать паскаль pascal
По заданной перестановке из N элементов выдать 5 следующих перестановок в лексикографическом порядке.вот задание,помоги доделать плиз, она полность работает но там её надо чуть доделать,надо сделать цикл в программе и в цикле сделать сравнение чисел с предыдущим если получается что левые числа больше правых то конец программы(break) там выдаёт ошибку если например ввести три числа 3 2 1, а надо чтобы программа прекращала работать
uses crt;
var n,i,j,min,minj,tmp,a,k,c,p:integer;
x:array[1..10]of integer;
begin
writeln('vvedite n');
readln(n);
writeln('vvedite perestanovky x');
for i:=1 to n do
read(x[i]);
i:=n-1;
repeat
while(x[i]>=x[i+1])and(i>=0) do
i:=i-1;
min:=x[i+1];
minj:=i+1;
for j:=i+1 to n do
if (x[j]>x[i]) and (x[j] < min) then
begin
min:=x[j];
minj:=j;
end;
tmp:=x[i];
x[i]:=x[minj];
x[minj]:=tmp;
for i:=i+1 to n do
begin
min:=x[i];
k:=i;
for j:=i to n do
if x[j]<min then begin min:=x[j];k:=j;end;
x[k]:=x[i];
x[i]:=min;
end;
writeln;
for i:=1 to n do
write (x[i]);
c:=c+1;
until c=6;
end.
1 | Автор: Санчезян | 2013-01-04, 16:16   |  Репутация: [ + 0 ]
Ничего не понял :D

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
2 | Автор: Berestovskiy | 2013-01-04, 20:02   |  Репутация: [ + 211 ]
надо сделать цикл, а в цикле перебор чисел, так что если левые числа будут больше правых то конец перебора(break), например если ввести 4 числа 4 3 2 1, то программа должна прекращаться, а она выводит последовательность с ошибкой
3 | Автор: Санчезян | 2013-01-06, 12:48   |  Репутация: [ + 0 ]
ответил в личку

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
4 | Автор: Berestovskiy | 2013-01-06, 13:07   |  Репутация: [ + 211 ]
  • Страница 1 из 1
  • 1
Поиск: