Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кто поможет перенести исходник с Паскаля на С++ 
:(
    Опции темы
Fumoffu
Дата 20.5.2006, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 20.5.2006

Репутация: нет
Всего: нет



Программа печатает все перестановки чисел от 1 до n . Это неотъемлемая часть моей курсовой...которую надо скоро сдавать. Буду очень благодарен.   smile 

 program Perestanovki;
      type Pere=array [byte] of byte;
      var N,i,j:byte;
      X:Pere;
      Yes:boolean;
      procedure Next(var X:Pere;var Yes:boolean);
    var i:byte;
    procedure Swap(var a,b:byte);  {обмен переменных}
      var c:byte;
    begin c:=a;a:=b;b:=c end;
      begin
    i:=N-1;
    {поиск i}
    while (i>0)and(X[i]>X[i+1]) do dec(i);
    if i>0 then
      begin
        j:=i+1;
        {поиск j}
        while (j<N)and(X[j+1]>X[i]) do inc(j);
        Swap(X[i],X[j]);
        for j:=i+1 to (N+i) div 2 do Swap(X[j],X[N-j+i+1]);
        Yes:=true
      end
    else Yes:=false
      end;
    begin
      write('N=');readln(N);
      for i:=1 to N do X[i]:=i;
      repeat
    for i:=1 to N do write(X[i]);writeln;
    Next(X,Yes)
      until not Yes
    end.

 
PM MAIL   Вверх
Foley
Дата 20.5.2006, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: 2
Всего: 7



есть специальные проги, их можно найти через яндыкс (но все-равно они работают кривовато, хотя основа все-таки остается правильной необходимо вносить лишь небольшие измененения), а так самый простой способ это вручную перепечатать с исправлениями под си. Тем более код небольшой. 
PM MAIL ICQ   Вверх
Droll
Дата 21.5.2006, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 10.11.2004

Репутация: 1
Всего: 3



Думаю, должно получиться так:
Код

#include <cstdlib>
#include <iostream>

using namespace std;

inline void Swap(int &a, int &b)
{
    a ^= b;
    b ^= a;
    a ^= b;
}

bool Next(int *X, int N)
{
    int i, j;

    i = N - 1;
    // поиск i
    while ((i > 0) && (X[i] > X[i + 1])) i--;
    if (i > 0)
    {
        j = i + 1;
        // поиск j
        while ((j < N) && (X[j + 1] > X[i])) j++;
        Swap(X[i], X[j]);
        for (j = (i + 1); j <= (N + i)/2; j++)
        {
            Swap(X[j], X[N - j + i + 1]);
        }
        return true;
    } else return false;
}

int main(int argc, char *argv[])
{
    int N = 2;
    int *X;
    int i;
    
    cout << "N = ";
    cin >> N;
    X = new int[N + 1];
    for (i = 1; i <= N; i++) X[i] = i;
    
    do    {
        for (i = 1; i <= N; i++) cout << X[i];
        cout << endl;
    } while (Next(X, N));
    delete [] X;

   system("PAUSE");
   return EXIT_SUCCESS;
}


PS
Вообще, этот вопрос стоило задавать в разделе С++ Общие вопросы

Удачи! 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0398 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.