Форум программистов, компьютерный форум, киберфорум
Наши страницы

Перевод с Pascal в С++ (Генерирование перестановок) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ основу программу на замену элементов http://www.cyberforum.ru/cpp-beginners/thread573956.html
группу рядом стоящих четных чисел +1,а к группе рядом стоящих нечетных -1.
C++ Разбиение слов в строке по слогам. Помогите решить задачу плиз!!:wall: ---> Разбиение слов в строке по слогам. http://www.cyberforum.ru/cpp-beginners/thread573952.html
C++ Классы списки
Хотелось бы узнать каким способом в данном случае лучше производить запись в файл и чтение из него. Собственно само задание 1. Разработайте класс, реализующий линейный односвязный список. Методы...
Генератор случайных чисел, закон распределения задан C++
Генерация случайных чисел заданным законом распределения. Разработать алгоритм генерации случайных чисел заданным законом распределения. Представить алгоритм в виде стуктурограммы в компас 3D....
C++ Упорядочить строки матрицы по неубыванию наибольших элементов строк http://www.cyberforum.ru/cpp-beginners/thread573928.html
Прошу помочь с программой: Дана вещественная матрица размером n на m. Упорядочить ее строки по неубыванию наибольших элементов строк. Использовать метод обменами (пузырька) как метод сортировки.
C++ Динамическая матрица как член класса Доброго времени суток, не так давно отзывчивые люди научили меня тому, что я хочу старая тема Путём ручное выделения памяти под нужный массив вот так вот values.h .... int** a; ....... подробнее

Показать сообщение отдельно
Frequencies
0 / 0 / 2
Регистрация: 25.09.2011
Сообщений: 49

Перевод с Pascal в С++ (Генерирование перестановок) - C++

14.05.2012, 12:34. Просмотров 436. Ответов 0
Метки (Все метки)

Помогите плз с переводом на плюсы
Требуется "Генерирование перестановок с минимальным числом транспозиций соседних элементов", поиском не удалось найти

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var p,pc:array[1..100] of integer;
    pr:array[1..100] of boolean;
    n:integer;
 
procedure perm;
var i,x,k,d:integer;
begin
  for i:=1 to n do begin p[i]:=i;pc[i]:=1;pr[i]:=true end;
  pc[n]:=0;i:=1;
  act;
  while i < n do begin
    i:=1;x:=0;
    while pc[i]=n-i+1 do begin
      pr[i]:=not pr[i];pc[i]:=1;
      if pr[i] then inc(x);inc(i)
    end;
    if i < n then begin
      if pr[i] then k:=pc[i]+x
      else k:=n-i+1-pc[i]+x;
      d:=p[k];p[k]:=p[k+1];p[k+1]:=d;
      act;
      inc(pc[i])
    end;
  end;
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru