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

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

03.04.2015, 18:23. Показов 6955. Ответов 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,857
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,857
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru