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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Галочка Громова
1 / 1 / 0
Регистрация: 10.02.2010
Сообщений: 36
#1

опять комбинаторика (с одного языка на другой) - C++

09.10.2010, 21:37. Просмотров 1445. Ответов 6
Метки нет (Все метки)

Привет всем. Нужна помощь!!!
Перевести эту программу на СИ (это, наверно, pascal), мало что понимаю

(выводит число размещений с повторениями)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
N, M: Integer;
 
procedure ArrangementRep(Nabor: string; Place: Integer);
var
i: Integer;
begin
if Place > M then
Memo1.Lines.Add(Nabor)
else
for i := 1 to N do
ArrangementRep(Nabor + IntToStr(i) + ' ', Place + 1);
end;
 
begin
N := 5;
M := 3;
ArrangementRep('', 1);
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2010, 21:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос опять комбинаторика (с одного языка на другой) (C++):

перевод из одного языка в другой - C++
Здравствуйте всем!помогите пожалуйста из С++ перевести на обычный С,заранее всем спасибо! 1)#include <iostream> #include...

перевести с одного языка программирования на другой - C++
условие задачи Вариант 1. Получить квадратную матрицу A размером NN (N – случайное число от 4 до 10) вида: . Заменить на (-1)...

Из одного вектора в другой - C++
Есть у меня вектор уникальных указателей std::vector<std::unique_ptr<Polygon>> ObjList; Так же имеется класс, в котором тоже...

из одного файла в другой - C++
подскажите пожалуйста, как скопировать полностью бит в бит из одного exe в другой exe? Чтото не получается :) int main() { ...

Из одного формата в другой - C++
Здравствуйте. мне нужно написать программу которая открывает файл с расширением .cpp извлекает от туда все строки и сохраняет в файле с...

Переписать из одного массива в другой - C++
Дан массив целых чисел из n элементов. Известно, что в массиве все элементы по модулю меньше 100. Переписать в другой массив из данного...

6
murderer
3202 / 1426 / 75
Регистрация: 06.10.2010
Сообщений: 3,147
09.10.2010, 22:10 #2
C++
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
26
27
28
29
30
31
32
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
int N, M;
 
void ArrangementRep(char Nabor[255], int Place){
int i;
char s[255];
lstrcpyA(s,Nabor);
if (Place > M)
{
    printf(s);
    printf("\n");
}
else
    for(i=1;i<=N;i++)
    {
        _itoa(i,&s[lstrlenA(s)],10);
        lstrcatA(s," ");
        ArrangementRep(s,Place+1);
    }
}
 
int main(array<System::String ^> ^args)
{
   N=5;
   M=3;
   ArrangementRep(" ", 1);
   getchar();
}
0
Галочка Громова
1 / 1 / 0
Регистрация: 10.02.2010
Сообщений: 36
09.10.2010, 22:38  [ТС] #3
к сожалению, она считает совсем не так(((
надо: например из (1 2 3 4 5) пяти элементов выбрать три размещения
111
211
311
411
511
121
131
141
151
....
455
555

а у вас получилось
111
1112
11123
1112345
...

Добавлено через 2 минуты
НУ ИЛИ ВООБЩЕ, КАК РЕШИТЬ ТАКУЮ ЗАДАЧУ???

Добавлено через 48 секунд
НЕ СМОТРЯ НА КОД PASCAL.

Добавлено через 14 минут
Цитата Сообщение от Галочка Громова Посмотреть сообщение
к сожалению, она считает совсем не так(((
надо: например из (1 2 3 4 5) пяти элементов выбрать три размещения
111
211
311
411
511
121
221
321
421
521
131 <--- такая правильная последовательность
....
455
555

а у вас получилось
111
1112
11123
1112345
...

Добавлено через 2 минуты
НУ ИЛИ ВООБЩЕ, КАК РЕШИТЬ ТАКУЮ ЗАДАЧУ???

Добавлено через 48 секунд
НЕ СМОТРЯ НА КОД PASCAL.
подскажите что-нибудь.
0
murderer
3202 / 1426 / 75
Регистрация: 06.10.2010
Сообщений: 3,147
10.10.2010, 10:13 #4
Я плохо знаю C. Вот кажется получилось
C++
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
26
27
int main(array<System::String ^> ^args)
{
#define N 5
#define M 3
    int i;
    char s[M+1];
    char a[M+1];
    for(i=0;i<M;i++)
        a[i]=1;
    a[i]=0;
    do
    {
        a[0]++;
        for(i=0;i<M;i++)
        {
            if(a[i]>N)
            {
                a[i]=1;
                a[i+1]++;
            }
            s[i]=a[i]+48;
        }
        printf(s);
        printf("\n");
    }while(a[M]!=1);
    getchar();
}
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
10.10.2010, 15:23 #5
murderer, Это не Си...
array<System::String ^> ^args - в Си никогда не было и быть не может.
C++/CLI насколько я понима.
0
murderer
3202 / 1426 / 75
Регистрация: 06.10.2010
Сообщений: 3,147
10.10.2010, 15:42 #6
Я в Visual Studio проверял
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
10.10.2010, 15:49 #7
murderer, С++/CLI - разработка майкрософта. Логично что поддерживается студией
0
10.10.2010, 15:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2010, 15:49
Привет! Вот еще темы с ответами:

Копирование одного массива в другой - C++
Всем добрый день. Насколько мне известно использование имени массива без индекса образует указатель на первый элемент массива. В программе...

Замена одного символа на другой - C++
Продолжаю познания работы с текстовыми файлами. Пытаюсь заменить один символ на другой и вывести результат на экран. информация берется из...

Перепись из одного файла в другой - C++
помогите сделать программку которая будет из одного файла брать числа любого(имеется ввиду 0-100) значения и записывать в другой файл их в...

Из одного массива сформировать другой - C++
Дан целочисленный массив А. Сформировать массив В, поместив в него значения индексов тех элементов массива А, которые являются простыми...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.