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

Оцените и посоветуйте как можно улучшить код Крестики-нолики

05.03.2023, 19:56. Показов 17264. Ответов 284
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я учусь в 10 классе и для индивидуального проекта мне нужно чтобы вы оценили и как-то посоветовали улучшить код программы крестики нолики на 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
#include <iostream>
#include <stdio.h>
#include <cstdlib>
#include <windows.h>
using namespace std;
 
void output(char** field) {
    cout << "  1 2 3" << endl;
    for (int i = 0; i < 3; i++) {
        cout << i + 1 << " ";
        for (int j = 0; j < 3; j++) {
            cout << field[i][j] << " ";
        }
        cout << endl;
    }
}
void input(char** field, bool& gamer, string& Name1, string& Name2) {
 
    int answer;
    while (true) {
 
        if (gamer) {
            cout << Name1;
        }
        else {
            cout << Name2;
        }
        cout << ", введите номер строки и столбца: ";
 
 
        cin >> answer;
        if (answer > 10 && answer < 34) {
            int i = answer / 10;
            int j = answer % 10;
 
            if (0 < j && j < 4) {
                if (field[i - 1][j - 1] != 'X' && field[i - 1][j - 1] != 'O') {
                    if (gamer) {
                        field[i - 1][j - 1] = 'X';
                    }
                    else {
                        field[i - 1][j - 1] = 'O';
                    }
                    gamer = !gamer;
                    break;
                }
            }
        }
        cout << "Вы ввели неверную ячейку" << endl;
    }
}
char** fieldCreate(char c = '_') {
    int const n = 3;
    char** field = new char* [n];
    for (int i = 0; i < n; i++) {
        field[i] = new char[n];
        field[i][0] = c;
        field[i][1] = c;
        field[i][2] = c;
    }
    return field;
}
bool chekWin(char** field, string& Name1, string& Name2) {
    bool chekWin = false, gamer = false;
 
    if (field[0][0] == field[1][1] && field[0][0] == field[2][2] && (field[0][0] == 'X' || field[0][0] == 'O') || field[2][0] == field[1][1] && field[2][0] == field[0][2] && (field[2][0] == 'X' || field[2][0] == 'O')) {
        chekWin = true;
        if (field[1][1] == 'X') {
            gamer = true;
        }
    }
    else {
        for (int i = 0; i < 3; i++) {
            if (field[i][0] == field[i][1] && field[i][0] == field[i][2] && (field[i][0] == 'X' || field[i][0] == 'O') || field[0][i] == field[1][i] && field[0][i] == field[2][i] && (field[0][i] == 'X' || field[0][i] == 'O')) {
                chekWin = true;
                if (field[i][i] == 'X') {
                    gamer = true;
                }
                break;
            }
        }
    }
 
    if (chekWin) {
        if (gamer) {
            cout << "победил !" << Name1 << endl;
        }
        else {
            cout << "победил  !" << Name2 << endl;
        }
        return true;
    }
    else {
        bool draw = true;
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                if (field[i][j] != 'X' && field[i][j] != 'O') {
                    draw = false;
                }
            }
        }
 
        if (draw) {
            cout << "ничья";
            return true;
        }
    }
 
    return false;
}
void defoultMassive(char** field, char c = '_') {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            field[i][j] = c;
        }
    }
}
bool continueGame() {
    bool flag = true;
    while (true) {
        string answer;
        cout << "Хотите ли вы продолжить игру?(Да/Нет)" << endl << "Введите ответ: "; //<< answer;
        cin >> answer;
        if (answer == "Да") {
            break;
        }
        else if (answer == "Нет") {
            flag = false;
            break;
        }
        else {
            cout << "Такого ответа не существует!";
        }
    }
    return flag;
}
void deleteMassive(char** field) {
    for (int i = 0; i < 3; i++) {
        delete[] field[i];
    }
    delete[] field;
}
void randomPlayer(string& Name1, string& Name2) {
    srand(time(0));
    int num = rand() % 2;
    cout << "Введите имя первого игрока: ";
    cin >> Name1;
    cout << "Введите имя второго игрока: ";
    cin >> Name2;
    if (num) {
        string tmp = Name1;
        Name1 = Name2;
        Name2 = tmp;
    }
    cout << "Первым ходит: " << Name1 << endl;
}
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    bool gamer = true;
    char** field = fieldCreate();
    string Name1, Name2;
    randomPlayer(Name1, Name2);
    while (true) {
        defoultMassive(field);
        while (true) {
            system("Cls");
            output(field);
            if (chekWin(field, Name1, Name2))
                break;
            input(field, gamer, Name1, Name2);
 
        }
        if (!continueGame())
            break;
    }
    deleteMassive(field);
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.03.2023, 19:56
Ответы с готовыми решениями:

Крестики-нолики, улучшить программу
Здравствуйте, нужна помощь в улучшении программы. Игра &quot;крестики-нолики&quot;. Суть заключается в проверке на число от 1 до 9 если введено не от...

Как оптимизировать данный код игры крестики нолики?
Привет всем! Я написал консольную игру &quot;Крестики нолики&quot;. Хочу посоветоваться как можно оптимизировать игру. Вот исходный код: ...

Оцените игру крестики нолики (Player vs Bot easy)
Отцените игру. Уровень : легкий

284
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
13.03.2023, 21:36
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от SmallEvil Посмотреть сообщение
Пока набросал
ок

Цитата Сообщение от SmallEvil Посмотреть сообщение
DLLEXP void step(int* x, int* y, int op_x, int op_y){
чо это?(ниже)
Цитата Сообщение от SmallEvil Посмотреть сообщение
int* x, int* y
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
13.03.2023, 21:38
Цитата Сообщение от SmallEvil Посмотреть сообщение
И отпадет надобность в init и release.
Да и сейчас они не нужны.

Добавлено через 36 секунд
Цитата Сообщение от XLAT Посмотреть сообщение
чо это?(ниже)
Сообщение от SmallEvil
nt* x, int* y
Это ход который надумал сделать ИИ.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
13.03.2023, 21:48
SmallEvil,
в сишке же есть структуры.

не хочешь С++, но сишные структуры то можно же использовать?

кто или что запрещает???


и return в сишном стандарте тоже есть.

Добавлено через 4 минуты

Не по теме:

Цитата Сообщение от SmallEvil Посмотреть сообщение
auto p = ai->step({op_x, op_y});
*x = p.x;
*y = p.y;
кстати это UB
после выхода из функции содержание p неопределенно.

надо по значению предавать.

или указателями на статические переменные.

0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
13.03.2023, 21:51
Цитата Сообщение от XLAT Посмотреть сообщение
в сишке же есть структуры.
Цитата Сообщение от XLAT Посмотреть сообщение
и return в сишном стандарте тоже есть.
Но зачем ? Что они привнесут ? Чувство выполненного долга ?
Можно и структуру. Это не принципиально. Она же будет только в этом "интерфейсе" и использоваться.
Так зачем что-то городить ?

Добавлено через 1 минуту
Цитата Сообщение от XLAT Посмотреть сообщение
надо по значению предавать.
Так по значению же, указатели разименовали - присвоили другое значение, все оно там, уже в раю.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
13.03.2023, 22:15
Цитата Сообщение от SmallEvil Посмотреть сообщение
Так по значению же, указатели разименовали - присвоили другое значение, все оно там, уже в раю.
ок.

кого то от крестов воротит,
а меня вот от сишкокода)


Добавлено через 5 минут
Цитата Сообщение от SmallEvil Посмотреть сообщение
Так зачем что-то городить ?
тут наоборот - упрощать.
а также нагляднее - точка это точка - ОДНА переменная на входе.
ну, может и по другому надо её назвать, например, как в виндозе COORD

входные переменные это входные,
а что возвращается видно - тоже видно за три версты.

а так нужно ещё догадаться, для чего это использовать.

не мною это придумано!

уже 50 лет как все джедаи так прогают.

я не беру тех свреходаренныз физиков с машкодами...
чей код никто никогда не читает.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
13.03.2023, 22:48
1. Освоить GUI и написать красивые крестики-нолики, комп может ходить хоть рэндомом.
2. Заменить рэндом на ИИ.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
13.03.2023, 23:15
Цитата Сообщение от alexu_007 Посмотреть сообщение
Освоить GUI и написать красивые крестики-нолики
гуи уже Royal_X написал прямо тут в этой теме.
осталось ИИ написать.

Добавлено через 3 минуты
Royal_X, SmallEvil,
добавил твой стандарт:
https://github.com/BDOTimer/cf... _SmallEvil

чуть позже прикручу.
там надо вот с нуля написать:
void set_point(int x, int y, bool color){
где что брать.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
13.03.2023, 23:27
Цитата Сообщение от XLAT Посмотреть сообщение
там надо вот с нуля написать:
void set_point(int x, int y, bool color){
где что брать.
Арбитр может брать из файла, так как было.
По дефолту Рендзю начинается с черной фишки в центре поля.
Ход дается Игроку играющему белыми.

Добавлено через 3 минуты
Цитата Сообщение от alexu_007 Посмотреть сообщение
1. Освоить GUI и написать красивые крестики-нолики, комп может ходить хоть рэндомом.
GUI нужен только что бы поиграть самому.
От Royal вроде, бы и норм все, но плохо поддается модернизации. WinAPi колода еще та.
Придется тест делать либо в консоли, либо таки на Qt запилю.
Хотя консоль ближе. С виджетами опять, либо дешево и деревьяненько, либо долго и не интересно.

Добавлено через 3 минуты
Цитата Сообщение от alexu_007 Посмотреть сообщение
1. Освоить GUI
Суть в том, что так предполагаемый GUI, также будет должен иметь фнкции арбитра.
То есть не освоит GUI, а лишь взять другую версию арбитра, и прицепить к нему GUI.

Добавлено через 1 минуту
Цитата Сообщение от SmallEvil Посмотреть сообщение
а лишь взять другую версию арбитра
Или тот же, настроенный немного по другому.
1
14.03.2023, 00:05

Не по теме:

Цитата Сообщение от SmallEvil Посмотреть сообщение
По дефолту Рендзю начинается с черной фишки в центре поля.
охереть куда я вляпался:
https://ru.wikipedia.org/wiki/Рэндзю
всего лишь крестонолики хотел сделать))

а там аш международка проходит ...

студентом в го я играл,
пока проигрывал все со мной охотно играли,
а когда перестал проигрывать все забили на го)

0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
14.03.2023, 00:11
Цитата Сообщение от SmallEvil
По дефолту Рендзю начинается с черной фишки в центре поля.
Давайте оставим рендзю и прочие похожие игры в покое. Да, соглашусь, что крестики-нолики очень похожи на рендзю, но там свои специфичные правила. Например, для черных существуют фолы - им запрещено строить некоторые вилки. Есть и дебютные регламенты. Например, один из них:
- первый игрок ставит 2 черных и 1 белый камешек
- потом второй игрок решает, играть белыми или черными
- когда цвета определились, белые ставят один белый камешек
- черные ставят 2 черных камешка
- белые убирают один из двух черных камешек, установленных во время предыдущего хода
- белые ставят белый камешек
И дальше игра идёт как обычно, каждая сторона по камню за ход.
И таких странностей в рендзю очень много.

Что я прилагаю? Облегчить жизнь!
1) Заранее выбрать один размер доски (например, 15х15, но не тривиальные 3х3) и количество камней для победы (например, 5, но ни в коем случае 3 для большой доски). Также предлагаю заранее выбрать максимальное время на ход (например, 5 с).
2) не усложнить игру лишними правилами. По сути, правила должны состоять в том, что игроки просто по очереди делают ходы, пока кто-то не победит или не будет ничья. Разумеется, что первый игрок имеет преимущество, но этот недостаток может решаться сменой цветов. Т.е. каждый движок играет с другим движком не менее 2 игр или любое четное количество игр.
3) Обоим движкам дать одинаковое количество оперативной памяти. Запрещать движку использовать ponder (предварительное обдумывание во время хода противника).
2
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
14.03.2023, 00:13
Цитата Сообщение от Royal_X Посмотреть сообщение
Например, для черных существуют фолы - им запрещено строить некоторые вилки
и это неспроста,

очевидно, что без фолов черные будут ВСЕГДА выигрывать!

ну, с умным аи конешъ.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
14.03.2023, 01:03
Цитата Сообщение от Royal_X Посмотреть сообщение
И таких странностей в рендзю очень много.
Когда играл в школьные годы (Го, Рендзю, Отелло), нас таким не нагружали.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
14.03.2023, 21:58
XLAT
Вообщем допилил сегодня свой интерфейс и своего тестировщика.
Код, самый примитивный и безмозглый, который у меня тогда никак не пришился к твоему проекту, работает точно так как я ожидал.
И никаких чудо-юдо телодвижений.

Провел тест, поле 9*9 , 5 в ряд, сам с собой отыгривает на ничию, так как пока ходы выбираются без рандома, то партия уже стабильно устоявшаяся - НИЧЬЯ.
Code
1
2
3
4
5
6
7
8
9
  9 | OXOXXOOXO
  8 | OXXXOOOOX
  7 | XOOOXXOXX
  6 | OOOXXXXOX
  5 | OXOXXXOXO
  4 | OOXOOOXXO
  3 | XOXXXOXXX
  2 | OXXOOXXOO
  1 | XXOOOXOOX
Сейчас сделаю интерфейсный Класс ИИ, создам Рандомича.
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
15.03.2023, 00:44
SmallEvil, а я уже заменил Рандомича своим примитивным движком, который всё ещё нужно оптимизировать. Но мой движок вообще не готов к соревнованию, т.к. пишется не под проект XLAT, а под мой гуй. Думаю, несложно будет потом преобразовать движок для турнира, если я увижу, что это движок, с которым не стыдно соревноваться. Мне просто для тестирования удобно с гуем. Кстати, в ближайшее время приостановлю работу над движком и, наверное, займусь улучшением гуя. В планах реализовать многопоточность, чтобы интерфейс не зависал при работе движка.
Самое интересное, что осознал при написании движка это то, что тот же самый код можно использовать для шахматного движка или для другого движка для игры двух лиц с нулевой суммой) По сути, нужно только менять проверки и эвристическую функцию. Алгоритмы поиска и оптимизаций вообще не меняются.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
15.03.2023, 01:11
Цитата Сообщение от Royal_X Посмотреть сообщение
Мне просто для тестирования удобно с гуем.
Согласен.
Можно сразу видеть как он ведет себя при определенных условиях.
И эти условия сразу создавать.
Сделаешь гуй приятный глазу, я бы своего запросто прикрутил бы.
Раз уж я сам жалкое подобие арбитра уже написал для консоли.

Держи красивые камушки )
https://www.kindpng.com/picc/b... le-png.png
https://www.kindpng.com/picc/b... le-png.png

Добавлено через 1 минуту
Цитата Сообщение от Royal_X Посмотреть сообщение
а я уже заменил Рандомича своим примитивным движком
Прибедняешься.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
15.03.2023, 10:29
Цитата Сообщение от SmallEvil
Сделаешь гуй приятный глазу
Цитата Сообщение от SmallEvil
Держи красивые камушки )
У меня и не было цели создать гуй с приятным интерфейсом, который будет работать с разными движками. Мой гуй это инструмент разработки, который я активно использую вместе с отладчиком. Сейчас, когда мой движок корректно заработал, постепенно исчезает необходимость в его активном использовании.
Да и ранее я уже говорил, как надо создавать нормальный гуй. Сперва нужно описать протокол взаимодействия движка и оболочки. Потом строго по этому протоколу создать оболочку и движок. Движок должен быть нормальным *.exe файлом, который загружается через приятный интерфейс. В таком случае, можно будет опубликовать оболочку и протокол, чтобы желающие разработали свои собственные движки.
Что касается красоты, то XLAT вроде бы уже упоминал, что красивый гуй можно быстро сделать в любом игровом движке, которые к тому же кроссплатформенные. Но, если не ошибаюсь, цель вашей с ним затеи это устроить соревнование движков, а не сравнивать у кого в гуе графика ультра-реалистичная и оптимизированная.
1
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
15.03.2023, 10:42
Цитата Сообщение от Royal_X Посмотреть сообщение
создать гуй
хорошо вам.

а вот у мя щас в дебаге всё работает, а в релизе вылетает.

2 часа тупо по коду промедитировал - рез == 0
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
15.03.2023, 11:07
Цитата Сообщение от Royal_X Посмотреть сообщение
что красивый гуй можно быстро сделать в любом игровом движке
Все так говорят
Но красивые ГУИ на пальцах считаются.
Видно придется самому. Хотя особо желания нету.

Цитата Сообщение от XLAT Посмотреть сообщение
а вот у мя щас в дебаге всё работает, а в релизе вылетает.
Сочувствую. Но будешь знать как писать то-что "по правилу, сам бог велел", а не то как оно естественно должно быть.

Добавлено через 1 минуту
XLAT, и кстати, наследоваться от std::vector , это тоже бог велел ?
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
15.03.2023, 12:50
Да что вы так боитесь этого Гуя? Вот, пжалста, пара десятков строчек кода. Для работы программы достаточно 2-х мерного массива, в котором будет находиться 0, 1 и 2 - пусто, синий и красный кружочек в таблице. Для хода человека кликаешь в таблицу. Для хода компа передаёшь массив в ИИ, он шевелит мозгами и делает гениальный ход:
Миниатюры
Оцените и посоветуйте как можно улучшить код Крестики-нолики  
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
15.03.2023, 14:19
alexu_007, нечто похожее я ещё давно создал и выложил в этой теме. Кстати, мой гуй более продвинутый, чем твой, и тоже был написан за очень короткое время.
Тут речь шла о полноценном и приятном на глаз гуе с кучей настроек, с возможностью подключать и отключать движки, проводить турнир движков и т.д. Вот, загугли Arena Chess GUI. Что-то в этом роде.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.03.2023, 14:19

Оцените сборку в днс , как можно улучшить ? Бюджет 50 к
Вот http://www.dns-shop.ru/conf/b6dc324d86718ee2/ ссылка на днс , хотел бы узнать как вам моя сборка , делаю это в первый раз Бюджет 55 к

Посоветуйте как улучшить код
@Autowired private ClothFabricRepository clothFabricRepository; @Autowired private CurtainRepository curtainRepository; ...

Посоветуйте, как улучшить код?
Здравствуйте! Вот такую форму написал. Посоветуйте как улучшить код? &lt;html&gt; &lt;head&gt; &lt;title&gt;&lt;/title&gt; ...

Крестики-нолики: как написать код для того, чтобы программа могла объявить победителя?
И да, поле 5 на 5. Сам код: #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;Windows.h&gt; using namespace std; void...

Подскажите какую игру можно написать в Делфи, не сильно сложную, не такую, как змейка, крестики-нолики, пинг-понг и т.д?
Мне нужно написать какую-нибудь программу в делфи, но как говорит мой препод &quot;не такую, что можно написать за 5 минут&quot;, но мне...


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

Или воспользуйтесь поиском по форуму:
160
Ответ Создать тему
Новые блоги и статьи
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости. Решение: Создан документ со следующими. . .
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово. Решение: Создан документ с единственным. . .
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить сумму и количество положительных элементов массива, расположенных в четных строках. Решение: Создан документ с. . .
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности. . . .
Обработка трёх чисел: утроение и возведение в степень
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Даны три действительных числа. Утроить те из них, значения которых неотрицательны, и возвести в четвертую степень отрицательные. . . .
Расчёт стоимости яблок по весу
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Написать программу вычисления стоимости некоторого количества (по весу) яблок. Решение: Создан документ, с табличной частью. . .
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru