С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 28.11.2018
Сообщений: 33

Перенос данных из одного стека в другой для удаления записи

23.01.2019, 22:10. Показов 3007. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть следующее задание :
1. Создать запись для хранения следующей информации:
– код владельца,
– номер автомобиля,
– марка автомобиля,
– дата выпуска,
– дата регистрации.
2. Предусмотреть возможность добавления, изменения и удаление записи и отображения
данных на экран. Для хранения данных использовать стек.
3. Получить список номеров и марок автомобилей, зарегистрированных в ноябре и декабре
прошлого года.
4. Найти средний возраст по каждой из встречающихся марок автомобилей.
5. Найти "возраст" с точностью до года каждого из автомобилей, зарегистрированных в
феврале и марте текущего года.

Нужно сделать так, чтобы удалялась и изменялась указанная мною запись (в моем случае удаляется верхняя)
Нашел пример того , как это сделать . Насколько я понимаю , здесь удаляется один элемент, а мне нужно удалить запись(структуру)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void s_delete_key(comp **top, int N) {//функция которая принимает вершину top и число которое нужно удалить 
 comp *q = *top; //создаем указатель типа comp и приравниваем(ставим) его на вершину стека 
 comp *prev = NULL;//создаем указатель на предыдуший элемент, с начала он будет пустым 
 while (q != NULL) {//пока указатель q не путой, мы его будем проверять, если он все же пусть цикл заканчивается 
  if (q->Data == N) {//если Data элемента равна числу, которое нам нужно удалить 
   if (q == *top) {//если такой указатель равен вершине, то есть элемент, который нам нужно удалить - вершина 
    *top = q->next;//передвигаем вершину на следующий элемент 
    free(q);//очищаем ячейку 
    q->Data = NULL; //Далее во избежание ошибок мы обнуляем переменные в удаленной ячейке, так как в некоторых компиляторах удаленная ячейка имеет переменные не NULL значения, а дословно "Чение памяти невозможно" или числа "-2738568384" или других, в зависимости от компилятора. 
    q->next = NULL; 
   } 
   else//если элемент последний или находится между двумя другими элементами 
   { 
    prev->next = q->next;//Проводим связь от предыдущего элемента к следующему 
    free(q);//очищаем ячейку 
    q->Data = NULL;//обнуляем переменные 
    q->next = NULL; 
   } 
  }// если Data элемента НЕ равна числу, которое нам нужно удалить 
  prev = q; //запоминаем текущую ячейку как предыдущую 
  q = q->next;//перемещаем указатель q на следующий элемент 
 } 
}
Вот моя программа :
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
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
#include <iostream>
#include <string>
 
using namespace std;
 
struct DATE
{
    int number;
    int month;
    int year;
};
struct informations
{
    char code[10];//код владельца
    char number_car[10];//номер автомобиля
    char mark[10];//марка автомобиля
    DATE release;//дата выпуска
    DATE registration;//дата регистрации
    informations* next;  // указатель на след. элемент
 
} typedef Informations;
 
Informations* top = nullptr;    //nullptr=NULL=0. Прим: но nullptr лучше передавать вместо 0/NULL в функцию если нужен указатель
 
void push() //ввод
{
    Informations* ptr = new Informations;  // выделение свободной памяти под объект(динамический каталог информации)
 
    cin.get();
    cout << "Enter the code owner: ";
    cin.getline(ptr->code, 10); //обращение через указатель к полю code
    cout << "Enter the number of the car: ";
    cin.getline(ptr->number_car, 10);
    cout << "Enter the mark of the car: ";
    cin.getline(ptr->mark, 10);
 
    cout << "Enter the date of release: " << endl;
    do {
        cout << "number: ";
        cin >> ptr->release.number;
    } while ((ptr->release.number > 31) || (ptr->release.number <= 0));   //писать дату, пока она не будет в пределах от 1 до 31
    do {
        cout << "month: ";
        cin >> ptr->release.month;
    } while ((ptr->release.month > 12) || (ptr->release.month <= 0));   //писать месяц, пока он не будет в пределах от 1 до 12
    do {
        cout << "year: ";
        cin >> ptr->release.year;
    } while ((ptr->release.year > 2019) || (ptr->release.year <= 1980));       //писать год, пока он не будет в пределах от 1980 до 2019
 
    cout << "Enter the date of registration: " << endl;
    do {
        cout << "number: ";
        cin >> ptr->registration.number;
    } while ((ptr->registration.number > 31) || (ptr->registration.number <= 0)); //писать дату, пока она не будет в пределах от 1 до 31
    do {
        cout << "month: ";
        cin >> ptr->registration.month;
    } while ((ptr->registration.month > 12) || (ptr->registration.month <= 0)); //писать месяц, пока он не будет в пределах от 1 до 12
    do {
        cout << "year: ";
        cin >> ptr->registration.year;
    } while ((ptr->registration.year > 2019) || (ptr->registration.year <= 1980)); //писать год, пока он не будет в пределах от 1980 до 201
    cout << endl;
 
    ptr->next = top; // достаем указатель на следующий элемент *next и заменяем его на указатель, который указывает на вершину стека *top
    top = ptr;  // указатель того, что новый элемент вершиной стека
}
 
void change()//изменение
{
    cin.get();
    cout << "Enter the code owner: ";
    cin.getline(top->code, 10);
    cout << "Enter the number of the car: ";
    cin.getline(top->number_car, 10);
    cout << "Enter the mark of the car: ";
    cin.getline(top->mark, 10);
 
    cout << "Enter the date of release:" << endl;
    do {
        cout << "number: ";
        cin >> top->release.number;
    } while ((top->release.number > 31) || (top->release.number <= 0));
    do {
        cout << "month: ";
        cin >> top->release.month;
    } while ((top->release.month > 12) || (top->release.month <= 0));
    do {
        cout << "year: ";
        cin >> top->release.year;
    } while ((top->release.year > 2019) || (top->release.year <= 1980));
 
    cout << "Enter the date of registration: " << endl;
    do {
        cout << "number: ";
        cin >> top->registration.number;
    } while ((top->registration.number > 31) || (top->registration.number <= 0));
    do {
        cout << "month: ";
        cin >> top->registration.month;
    } while ((top->registration.month > 12) || (top->registration.month <= 0));
    do {
        cout << "year: ";
        cin >> top->registration.year;
    } while ((top->registration.year > 2019) || (top->registration.year <= 1980));
    cout << endl;
}
 
 
void pop() //удаление
{
    auto bad = top;  //автоматическое определение типа переменной
    top = top->next; //назначение следующего элемента верхним
    delete bad; //удаление верхнего элемента       
}
 
void show_stack() //просмотр элем стека
{
    int i = 0;
    cout << endl;
    Informations* ptr = top;
    while (ptr != NULL)  //пока указатель не пустой
    {
        i++;
        cout << "           " << i << endl;
        cout << "The code owner: " << ptr->code << endl;
        cout << "The number of the car: " << ptr->number_car << endl;
        cout << "The mark of the car: " << ptr->mark << endl;
        cout << "The date of release:\nnumber:\t\t\t\t" << ptr->release.number << endl;
        cout << "month:\t\t\t\t" << ptr->release.month << endl;                       // /t-отступ 
        cout << "year:\t\t\t\t" << ptr->release.year << endl;
        cout << endl;
        cout << "The date of registration:\nnumber:\t\t\t\t" << ptr->registration.number << endl;
        cout << "month:\t\t\t\t" << ptr->registration.month << endl;
        cout << "year:\t\t\t\t" << ptr->registration.year << endl;
        cout << endl;
        ptr = ptr->next;
    }
}
 
void November_and_December()  //ноябрь и декабрь
{
    Informations* ptr = top;
    while (ptr != NULL) //пока указатель не пустой
    {
        if ((ptr->registration.month == 11) || (ptr->registration.month == 12))
        {
            if (ptr->registration.year == 2018)
            {
                cout << "The number of the car: " << ptr->number_car << endl;
                cout << "The mark of the car: " << ptr->mark << endl;
                cout << endl;
                ptr = ptr->next;
            }
        }
        else cout << endl;
    }
}
 
void Average_age()
{
    Informations* ptr = top;
    int i = 0;
    int averageyear = 0;
    while (ptr != NULL) //пока указатель не пустой
    {
        i++;
        averageyear += ptr->release.year;
        ptr = ptr->next;
    }
    double average = averageyear / i;
    cout << average << endl;
 
}
 
void February_and_March()   // февраль и март
{
    int vozrast;
    Informations* ptr = top;
    while (ptr != NULL) //пока указатель не пустой
 
    {
        if (((ptr->registration.month == 2) || (ptr->registration.month == 3)) && (ptr->registration.year == 2019)) //проверка на март или февраль 2019 года
        {
            vozrast = (ptr->registration.year) - (ptr->release.year); // найти возраст автомобиля, не считая месяцы и числа месяца
 
            if ((ptr->registration.month) < (ptr->release.month)) //если месяц выпуска > мсеяца регистрации 
            {
                vozrast = vozrast - 1;
                cout << "Age of car: " << vozrast << endl;
                cout << "The mark of the car: " << ptr->mark << endl;
                cout << endl;
                ptr = ptr->next;
            }
 
 
            else if ((ptr->registration.month) == (ptr->release.month))
            {
                if ((ptr->registration.number) < (ptr->release.number))
                {
                    vozrast = vozrast - 1;
                    cout << "Age of car: " << vozrast << endl;
                    cout << "The mark of the car: " << ptr->mark << endl;
                    cout << endl;
                    ptr = ptr->next;
                }
                else
                {
                    cout << "Age of car: " << vozrast << endl;
                    cout << "The mark of the car: " << ptr->mark << endl;
                    cout << endl;
                    ptr = ptr->next;
                }
            }
 
        }
        else {
            cout << "Age of car: " << vozrast << endl;
            cout << "The mark of the car: " << ptr->mark << endl;
            cout << endl;
            ptr = ptr->next;
        }
    }
}
 
 
int main()
{
    //enum qwerty{push, change, pop, show_stack, November_and_December, Average_age, February_and_March};
    int l;
    do
    {
        cout << "--------------------------------------";
        cout << endl;
        cout << " 1)Enter " << endl << " 2)Change " << endl << " 3)Delete " << endl << " 4)Show " << endl << " 5)November and December " << endl << " 6)Average age" << endl << " 7)February and March" << endl << " 8)Exit " << endl;
        cin >> l;
        switch (l)
        {
        case 1:push(); break;
        case 2: {
            if (top != NULL) change(); break; //если указатель не пустой
        }
        case 3:
        {
            if (top != NULL) pop(); break;
        }
        case 4:   show_stack(); break;
        case 5:
        {
            if (top != NULL) November_and_December(); break;
        }
 
        case 6: if (top != NULL) Average_age(); break;
 
        case 7:
        {
            if (top != NULL) February_and_March(); break;
        }
 
        default:break; //если проверяемое значение равно 8, то выйти из функции
        }
    } while (l != 8);
}
Нужно , получается, изменить функции pop() и change(). Помогите пожалуйста все это дело реализовать, было бы отлично если с конкретным примером. Просто не могу найти как это сделать , хоть ты тресни

Добавлено через 3 часа 58 минут
Срочно нужно сделать, помогите пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2019, 22:10
Ответы с готовыми решениями:

Перенос данных из одного файла в другой
День добрый! Помогите решить задачу! Условие: &quot;Сформировать файл, содержащий записи по результатам сдачи очередного экзамена...

Перенос данных с одного списка в другой
Здравствуйте. Появилась проблема с заданием: сначала нужно задать один циклический список с числами, затем создать второй список, где...

Перенос данных из одного списка в другой
/*Поместить в список все числа кратные 5- это написал 4 последних числа, которые делятся на 3 поместить в новый список вставить в новом...

7
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
23.01.2019, 23:08
У стека есть две основные операции: push и pop. С их помощью можно решить вашу задачу без каких-либо премудростей. Вот пример, как это сделать. Разберитесь с идеей и попробуйте для своей задачи адаптировать самостоятельно.

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
void removeByColor(std::stack<Inform> &st, Color color) {
    std::stack<Inform> temp;
 
    // Перебираем элементы в стеке.
    while(!st.empty()) {
        // Копируем в новый стек только те, которые не попадают под удаление.
        if (st.top().color != color) {
            temp.push(st.top());
        }
 
        // Удаляем элемент из основного стека.
        st.pop();
    }
 
    // Перекидываем всё обратно, чтобы сохранить порядок.
    while(!temp.empty()) {
        st.push(temp.top());
        temp.pop();
    }
 
    // Можно и так сделать, если порядок не важен.
    // У стека должен быть конструктор перемещения.
//    st = std::move(temp);
}
 
void changeColorByName(std::stack<Inform> &st, std::string name, Color color) {
    std::stack<Inform> temp;
 
    // Перебираем элементы в стеке.
    while(!st.empty()) {
        // Перекрашиваем все авто определенной марки.
        if (st.top().name == name) {
            st.top().color = color;
        }
 
        // Копируем элемент в новый стек.
        temp.push(st.top());
 
        // Удаляем элемент из основного стека.
        st.pop();
    }
 
    // Перекидываем всё обратно, чтобы сохранить порядок.
    while(!temp.empty()) {
        st.push(temp.top());
        temp.pop();
    }
 
    // Можно и так сделать, если порядок не важен.
    // У стека должен быть конструктор перемещения.
//    st = std::move(temp);
}
Полый текст программы-примера
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
#include <iostream>
#include <stack>
#include <map>
 
enum class Color {
    red,
    green,
    black,
    undefined
};
 
static std::map<Color, std::string> ColorToString = {
    {Color::black, "black"},
    {Color::green, "green"},
    {Color::red, "red"},
    {Color::undefined, "-"}
};
 
struct Inform {
    Inform():
        id(counter++)
    { }
 
    Inform(std::string name, Color color):
        name(name),
        color(color),
        id(counter++)
    { }
 
    friend std::ostream &operator<<(std::ostream &out, Inform &obj);
 
    std::string name = "noname";
    Color color = Color::undefined;
 
private:
    static unsigned counter;
    unsigned id;
};
 
unsigned Inform::counter = 0;
 
std::ostream &operator<<(std::ostream &out, Inform &obj) {
    out << "[" << obj.id << "] " << obj.name << ", color: " << ColorToString[obj.color];
    return out;
}
 
void print(std::stack<Inform> &st) {
    std::stack<Inform> temp;
 
    while(!st.empty()) {
        temp.push(st.top());
        st.pop();
    }
 
    while(!temp.empty()) {
        std::cout << temp.top() << std::endl;
        st.push(temp.top());
        temp.pop();
    }
}
 
void removeByColor(std::stack<Inform> &st, Color color) {
    std::stack<Inform> temp;
 
    // Перебираем элементы в стеке.
    while(!st.empty()) {
        // Копируем в новый стек только те, которые не попадают под удаление.
        if (st.top().color != color) {
            temp.push(st.top());
        }
 
        // Удаляем элемент из основного стека.
        st.pop();
    }
 
    // Перекидываем всё обратно, чтобы сохранить порядок.
    while(!temp.empty()) {
        st.push(temp.top());
        temp.pop();
    }
 
    // Можно и так сделать, если порядок не важен.
    // У стека должен быть конструктор перемещения.
//    st = std::move(temp);
}
 
void changeColorByName(std::stack<Inform> &st, std::string name, Color color) {
    std::stack<Inform> temp;
 
    // Перебираем элементы в стеке.
    while(!st.empty()) {
        // Перекрашиваем все авто определенной марки.
        if (st.top().name == name) {
            st.top().color = color;
        }
 
        // Копируем элемент в новый стек.
        temp.push(st.top());
 
        // Удаляем элемент из основного стека.
        st.pop();
    }
 
    // Перекидываем всё обратно, чтобы сохранить порядок.
    while(!temp.empty()) {
        st.push(temp.top());
        temp.pop();
    }
 
    // Можно и так сделать, если порядок не важен.
    // У стека должен быть конструктор перемещения.
//    st = std::move(temp);
}
 
using namespace std;
 
int main() {
    stack<Inform> st;
    st.push({"Audi", Color::red});
    st.push({"Audi", Color::black});
    st.push({"Toyota", Color::red});
    st.push({"Toyota", Color::red});
    st.push({"Toyota", Color::green});
    st.push({"BMW", Color::black});
    st.push({"BMW", Color::green});
    st.push({"BMW", Color::green});
 
    // Показать стек.
    print(st);
 
    // Удалить все красные авто.
    cout << endl << "Remove by color: red" << endl << endl;
    removeByColor(st, Color::red);
    print(st);
 
    cout << endl << "Repaint all BMW red" << endl << endl;
    changeColorByName(st, "BMW", Color::red);
    print(st);
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 28.11.2018
Сообщений: 33
24.01.2019, 10:22  [ТС]
Так и не могу понять как это реализовать в моем случае. Можете показать, как все это сделать в моем случае ?

Добавлено через 7 минут
И вот еще один вопрос возник по 4) пункту из моего задания. Я в проррамме считаю средний возраст всех о всем автомобилям. Как мне извлечь средний возраст по каждой марке ?
0
0 / 0 / 0
Регистрация: 16.01.2019
Сообщений: 20
24.01.2019, 16:49
Ребят, помогите пожалуйста доделать. Никак не пойму как это реализовать. Никак до меня не допрет как удалить и изменить нужную запись
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
24.01.2019, 17:09
ПаровозикТЫР, вы пример смотрели?

Изменить:
Code
1
2
3
4
1. Достать из стека запись;
2. Проверить условие;
3. Если подходит, внести изменения;
4. Переложить извлеченную запись во временный стек.
Удалить:
Code
1
2
3
4
1. Достать из стека запись;
2. Проверить условие;
3. Если подходит, перейти к шагу 1;
4. Переложить извлеченную запись во временный стек.
0
0 / 0 / 0
Регистрация: 28.11.2018
Сообщений: 33
24.01.2019, 17:57  [ТС]
Смотреть то смотрел, но в голове тупик, просто ужин упак ступор с этим заданием. Никак не дойдет как это под себя адаптировать

Добавлено через 5 минут
Не могу понять как целую запись извлечь , а не элемент
0
0 / 0 / 0
Регистрация: 16.01.2019
Сообщений: 20
24.01.2019, 18:32
И с чем именно нужно сравнить, чтобы удалить запись
0
0 / 0 / 0
Регистрация: 28.11.2018
Сообщений: 33
24.01.2019, 22:04  [ТС]
Например, здесь сравнивают элементы из стека с элементом , который нужно удалить(насколько я понимаю). Я не могу понять, как сделать сравнение со всей записью
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void s_delete_key(comp **top, int N) {//функция которая принимает вершину top и число которое нужно удалить 
 comp *q = *top; //создаем указатель типа comp и приравниваем(ставим) его на вершину стека 
 comp *prev = NULL;//создаем указатель на предыдуший элемент, с начала он будет пустым 
 while (q != NULL) {//пока указатель q не путой, мы его будем проверять, если он все же пусть цикл заканчивается 
  if (q->Data == N) {//если Data элемента равна числу, которое нам нужно удалить 
   if (q == *top) {//если такой указатель равен вершине, то есть элемент, который нам нужно удалить - вершина 
    *top = q->next;//передвигаем вершину на следующий элемент 
    free(q);//очищаем ячейку 
    q->Data = NULL; //Далее во избежание ошибок мы обнуляем переменные в удаленной ячейке, так как в некоторых компиляторах удаленная ячейка имеет переменные не NULL значения, а дословно "Чение памяти невозможно" или числа "-2738568384" или других, в зависимости от компилятора. 
    q->next = NULL; 
   } 
   else//если элемент последний или находится между двумя другими элементами 
   { 
    prev->next = q->next;//Проводим связь от предыдущего элемента к следующему 
    free(q);//очищаем ячейку 
    q->Data = NULL;//обнуляем переменные 
    q->next = NULL; 
   } 
  }// если Data элемента НЕ равна числу, которое нам нужно удалить 
  prev = q; //запоминаем текущую ячейку как предыдущую 
  q = q->next;//перемещаем указатель q на следующий элемент 
 } 
}
Добавлено через 1 минуту
Ребят, реально как будто заклинило в голове. Может кто-нибудь помочь с реализацией изменения и удаления ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.01.2019, 22:04
Помогаю со студенческими работами здесь

Перенос данных матриц из одного файла в другой
В текстовом файле содержится некоторое количество квадратных матриц. В начале файла оказывается: Количество матриц и размерность. Даны...

Копирование одного стека в другой
Написать программу копирования одного стека в другой

Перенос записи из одного DBGrida в другой DBGrid
И ещё раз всем доброго времени суток! Я сегодня уже создавал тему на этот вопрос, но продублирую на всякий случай,т.к. ответов я не...

Перенос данных из одного cpp в другой
Здравствуйте. Допустим, есть два cpp файла, в первом прописано событие &quot;щелчок по кнопке&quot; void Window::on_pushButton_clicked() //...

Перенос данных с одного листа на другой
Такая проблема, на одном листе записаны автомобили и их гос.номера. нужно, чтобы на другом листе, при вводе автомобиля, в соседней ячейке...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru