Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/34: Рейтинг темы: голосов - 34, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128

Перечисление чисел

03.04.2015, 18:23. Показов 6977. Ответов 59
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я не являюсь программистом, но в моём деле мне необходима помощь компьютера. И ради этого я начал изучать программирование. Я установил Visual Studio и нашёл несколько статей для новичков в С++. Пока я их изучаю, я хочу написать свою задачу вам, чтобы, мало ли, мир не без добрых людей, поможете мне.:

Есть 3 ячейки: a b c
Есть количество чисел от 1 до 5, для каждой ячейки.
Надо произвести расчёт чисел в автоматическом режиме от меньшего к большему, начиная с ячейки с.
Запись чисел должна будет идти в текстовый документ, откуда все вычисления можно будет скопировать.
После достижения комбинации 1 1 5 она должна быть записана, а далее необходимо, чтобы число ячейки с, сбросилось до 1. А число в ячейке b сменилось на 2. И так далее до комбинации 5 5 5.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2015, 18:23
Ответы с готовыми решениями:

Перечисление в BC++
В русском языке как, правило после букв Ж, Ч, Ш, Щ, пишется И, А, У, а не Ы, Я, Ю, (за исключением слов ЖЮРИ, БРОШЮРА, ПАРАШЮТ). Проверить...

перечисление месяцев
написать консольную программу на С++, которая использует перечисление для идентификации месяцев года значениями номеров месяца от 1 до 12....

Не работает перечисление
Сам код: #include <iostream> #include <string> using namespace std; #include <windows.h> #include <process.h> enum typ...

59
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
03.04.2015, 18:30
C++
1
2
3
4
5
6
for(int a=1;a<=5;++a)
    for(int b=1;b<=5;++b)
        for(int c=1;c<=5;++c)
        {
            //что-то делаем с a, b, c
        }
1
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
03.04.2015, 18:37
Лучший ответ Сообщение было отмечено yellyex как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main()
{
    for ( int a = 1; a <= 5; ++a )
    for ( int b = 1; b <= 5; ++b )
    for ( int c = 1; c <= 5; ++c )
    {
        cout << a << b << c << endl;
    }
}
1
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
03.04.2015, 18:42  [ТС]
Renji, Спасибо

rikimaru2013, а ты просто ЦАРЬ! Спасибо! Всё работает!
0
03.04.2015, 18:45

Не по теме:

0
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
03.04.2015, 18:51  [ТС]
rikimaru2013, далее мне нужно это будет оформить так, чтобы полученные комбинации записывались в текстовый документ, чтобы оттуда я мог копировать их. А потом чисел будет гораздо больше и некоторые двузначные числа должны будут заменены на буквы. Например 11 это J, а 12 - X. Я сделаю это, но, видимо, не в консольном приложении, а где-то в #. Основная проблема решена благодаря Вам! Спасибо ещё раз.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
03.04.2015, 18:52
Лучший ответ Сообщение было отмечено yellyex как решение

Решение

Цитата Сообщение от yellyex Посмотреть сообщение
rikimaru2013, далее мне нужно это будет оформить так, чтобы полученные комбинации записывались в текстовый документ, чтобы оттуда я мог копировать их.
C++
1
2
3
4
#include<fstream>
...
ofstream stream("text.txt");
stream<<"test test test"<<endl;
1
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
03.04.2015, 18:57  [ТС]
Renji, я модифицировал код с Вашим. Нашёл текстовый документ, который был создан после компиляции с названием test, и в нём было три слова test test test. Остаётся догадаться, как вместо них поставить сгенерированные комбинации. Спасибо
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
03.04.2015, 18:59
Цитата Сообщение от yellyex Посмотреть сообщение
Остаётся догадаться, как вместо них поставить сгенерированные комбинации.
stream<<a<<" "<<b<<" "<<c<<endl;
1
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
03.04.2015, 19:04  [ТС]
Renji, вот такой код у меня получился:
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
#include <iostream>
#include <string>
#include <conio.h>
#include <fstream>
 
using namespace std;
 
int main()
 
{
 
    int a = 1;
    int b = 1;
    int c = 1;
 
    for (int a = 1; a <= 3; ++a)
    for (int b = 1; b <= 3; ++b)
    for (int c = 1; c <= 3; ++c)
    {
        cout << a << b << c << endl;
    }
 
 
    ofstream stream("text.txt");
    stream << a << b << c << endl;
 
    getch();
    return 0;
}
Только в текстовом документе записано теперь "111". Извините, конечно, меня. Я не хочу показаться попрашайкой, но я с С++, да и вообще с программированием знаком всего вторые сутки
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
03.04.2015, 19:07
Лучший ответ Сообщение было отмечено yellyex как решение

Решение

Цитата Сообщение от yellyex Посмотреть сообщение
Только в текстовом документе записано теперь "111".
Две строчки переставить надо.
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
#include <iostream>
#include <string>
#include <conio.h>
#include <fstream>
 
using namespace std;
 
int main()
 
{
    ofstream stream("text.txt");
    int a = 1;
    int b = 1;
    int c = 1;
 
    for (int a = 1; a <= 3; ++a)
    for (int b = 1; b <= 3; ++b)
    for (int c = 1; c <= 3; ++c)
    {
        cout << a << b << c << endl;
        stream << a << b << c << endl;
    }
    getch();
    return 0;
}
1
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
03.04.2015, 19:14  [ТС]
Renji, Да ладно?! Да не может быть!!! Не бывает двух царюг! Но можно сделать исключение! Ты просто красавчик!!! И тебе огромное спасибо. Всё записалось как я мечтал

Добавлено через 5 минут
На это форуме исполняют мечты в течении часа! Ну и напоследок, раз такая заварушка пошла, то хотел бы узнать, если чисел больше 10, то как, например, число 10 преобразовать в букву E. И чтобы расчёты были записаны уже с буквой?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
03.04.2015, 19:20
Цитата Сообщение от yellyex Посмотреть сообщение
На это форуме исполняют мечты в течении часа! Ну и напоследок, раз такая заварушка пошла, то хотел бы узнать, если чисел больше 10, то как, например, число 10 преобразовать в букву E.
cout<<"0123456789E"[10]<<endl;
1
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
03.04.2015, 19:28
Цитата Сообщение от yellyex Посмотреть сообщение
если чисел больше 10, то как, например, число 10 преобразовать в букву E.
может стоит изучить 16ричную систему?
0 1 2 3 4 5 6 7 8 9 A B C D E F
1
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
03.04.2015, 19:30
Цитата Сообщение от ValeryS Посмотреть сообщение
может стоит изучить 16ричную систему?
Подозреваю что человеку нужна не 16-ричная система, а база паролей для брутфорса (и его ждет облом из-за экспоненциального роста числа возможных комбинаций).
1
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
03.04.2015, 19:55  [ТС]
Renji, такс, эта строчка поставила меня в тупик. Но я с этим разберусь. В данный момент почти решил вопрос о том, как сделать так, чтобы числа не повторялись. То есть начальная комбинация 123, а конечная 345. При том, что в вычислениях должны пропускаться комбинации типа 111, 112, 122, 133 и т.д. Остаются лишь комбинации без повторения. Так вот, если переменная с =! переменной b, и =! переменной а, то комбинацию записываем, иначе пропускаем. Только в коде не знаю, как это реализовать.

Добавлено через 40 секунд
Renji, нет не то, что Вы имеете ввиду. Это для личного использования!

Добавлено через 10 минут
А также, допустим, что ячеек не 3, а 7. И определённо необходимо, чтобы были одинаковые числа, но в ограниченном количестве. То есть в добавок к тому, что я написал выше, а точнее, то что я написал выше не учитывается. Достаточно того, что я сейчас пишу. То есть нужно, чтобы одинаковых чисел в семи ячейках было максимум 4. То есть 1 1 1 1 2 2 2 или 3 2 4 3 5 3 3. Просто я так далеко ещё не заходил в своих вычислениях, вот и оказался в такой неловкой ситуации. В мгновенье ока мои главные проблемы решились 29 строками кода! Я конечно же сам додумаю. Спасибо ещё раз всем, кто откликнулся помочь!!! ВСЕ ЦАРЮГИ!!!

Добавлено через 13 минут
Вопрос. Условие if, с ограничением по количеству одинаковых чисел, вставлять после циклов, до, внутри или между?
Напомню, что нужно ввести ограничение одинаковых чисел в количестве до 4 включительно. В пределах семи ячеек (буковок)
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
33
34
#include <iostream>
#include <string>
#include <conio.h>
#include <fstream>
 
using namespace std;
 
int main()
 
{
    ofstream stream("text.txt");
 
    int a = 2;
    int b = 2;
    int c = 2;
    int d = 2;
    int e = 2;
    int f = 2;
    int g = 2;
 
    for (int a = 2; a <= 14; ++a)
    for (int b = 2; b <= 14; ++b)
    for (int c = 2; c <= 14; ++c)
    for (int d = 2; d <= 14; ++d)
    for (int e = 2; e <= 14; ++e)
    for (int f = 2; f <= 14; ++f)
    for (int g = 2; g <= 14; ++g)
    {
        cout << a << " " << b << " " << c << " " << d << " " << e << " " << f << " " << g << endl;
        stream << a << " " << b << " " << c << " " << d << " " << e << " " << f << " " << g << endl;
    }
    getch();
    return 0;
}
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
03.04.2015, 20:00
Лучший ответ Сообщение было отмечено yellyex как решение

Решение

yellyex,не привыкай к плохому
Цитата Сообщение от yellyex Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    int a = 2;
    int b = 2;
    int c = 2;
    int d = 2;
    int e = 2;
    int f = 2;
    int g = 2;
 
    for (int a = 2; a <= 14; ++a)
    for (int b = 2; b <= 14; ++b)
    for (int c = 2; c <= 14; ++c)
    for (int d = 2; d <= 14; ++d)
    for (int e = 2; e <= 14; ++e)
    for (int f = 2; f <= 14; ++f)
    for (int g = 2; g <= 14; ++g)
достаточно написать

C++
1
2
3
4
5
6
7
    for (int a = 2; a <= 14; ++a)
    for (int b = 2; b <= 14; ++b)
    for (int c = 2; c <= 14; ++c)
    for (int d = 2; d <= 14; ++d)
    for (int e = 2; e <= 14; ++e)
    for (int f = 2; f <= 14; ++f)
    for (int g = 2; g <= 14; ++g)
1
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
03.04.2015, 20:02  [ТС]
ValeryS, спасибо. Действительно, работает
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
03.04.2015, 20:05
Цитата Сообщение от yellyex Посмотреть сообщение
Вопрос. Условие if, с ограничением по количеству одинаковых чисел, вставлять после циклов, до, внутри или между?
Здесь уже нужна рекурсия.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void func(ostream&stream,int*count,int level)
{
    for(int i=1;i<=14;++i)
        if(count[i-1]<4)
        {
            ++count[i-1];
            stream<<i;
            if(level==7)
                stream<<endl;
            else
                func(stream,count,level+1);
            --count[i-1];
        }
}
int main()
{
    ...
    int count[14]={0};
    func(stream,count,1);
    ...
}
1
1 / 1 / 0
Регистрация: 03.04.2015
Сообщений: 128
03.04.2015, 20:07  [ТС]
Renji, вау! И куда этот шедевр вставлять?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2015, 20:07
Помогаю со студенческими работами здесь

Перечисление переменных
int startPos = 0, endPos; Вот так записать можно? У меня вроде работает, а если с точки зрения классического &quot;правописания&quot;?

Перечисление Com портов
В общем есть такая задачка, есть девайс, который передают данные по блютузу....в комп через USB воткнут приемник, который работает с компом...

Перечисление в структуре
Здравствуйте! Я создала перечисление в структуре struct DCBSettings { enum ...

Перечисление enum
Здравствуйте. Хотелось бы узнать, возможно ли &quot;пройтись&quot; по всем значениям перечисления, увеличивая переменную этого перечисления? Вот...

Enum Перечисление
Есть номиналы монет, которые занесены в 2 перечисления (enum): рубли и монеты. Набрать определенную сумму минимальным количеством монет. ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru