Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++|Pascal] Перестановки, в лексическом порядке 
:(
    Опции темы
Acrobat
Дата 4.12.2007, 05:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет, мне нужно найти все перестановки в лексическом порядке. На Паскале сделал, а на C++ не могу:( А мне надо именно на C++
Вот код:
Паскаль:
Код

Uses WinCrt;
Type Mass=Array[0..10] Of Integer;
Type Mass2=Array[0..10] Of char;
Var I,J,H,N,K: Integer;
    A:      Mass;
    M:      Mass2;
Procedure OutputPer;
Var I: Integer;
Begin
   For I:=1 To N Do Write(A[I], ' ');
   WriteLn;
end;
BEGIN
   Write('Количество элементов перестановки: ');
   Readln(N);
   For I:=1 To N Do A[I]:=I;
   WriteLn('Перестановки: ');
   Repeat
      OutputPer; { вывод текущей перестановки }
      I:=N;
      While A[I-1]>A[I] Do Dec(I); { поиск скачка }
      J:=I-1;
      H:=A[J];
      While A[I+1]>H Do Inc(I); { поиск первого меньшего элемента }
      A[J]:=A[I];
      A[I]:=H;
      I:=J+1; K:=N;
      H:=A[I]; A[I]:=A[K]; A[K]:=H;
      Inc(I); Dec(K);
   Until J=0;
END.


И то, что получилось на С++.net
Код

#include "stdafx.h"
using namespace System;
int getint(String^ str)
{
    return Convert::ToInt32(str);
} 
void OutputP(int Count)
{
    int *M;
    int P[3][6];
    int i,j,h,k,d;
    M = new int [Count];
    for(i=0;i<Count;i++)
        M[i]=i+1;
     
    d=0;
    do
    {
        for(i=0;i<Count;i++)
            P[i][d]=M[i];
        i=Count;
        while(M[i-1]>M[i]) i--;
        j=i-1;
        h=M[j];
        while(M[i+1]>h) i++;
        M[j]=M[i];
        M[i]=h;
        i=j+1;
        k=Count;
        h=M[i];
        M[i]=M[k];
        M[k]=h;
        i++;
        k--;
        d++;
    }
    while(j=0);
    for(j=0;j<6;j++)
    {
        for(i=0;i<Count;i++)
        {
            Console::Write(P[i][j]);
            Console::Write("  ");
        }
        Console::WriteLine();
    }
    Console::WriteLine();        
}

int main(array<System::String ^> ^args)
{
    String^ Count;
    Console::Write("Количество элементов: ");
    Count = Console::ReadLine();
    OutputP(getint(Count));
    return 0;
}

 буду благодарен за любую помощь.

Это сообщение отредактировал(а) Acrobat - 4.12.2007, 05:51
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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