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

Замена представления даты и времени в текстовом файле

04.01.2019, 13:04. Показов 7020. Ответов 74
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа должна запускаться из командной строки с одним параметром — именем входного файла. Исходный текст состоит из слов, отделенных друг от друга пробелами. Некоторые слова представляют собой запись даты или времени. Например: 27.09.06, 09:15:00. Необходимо заменить такое представление на следующее: 27 сентябрь 2006г., 9 час 15 мин 0 сек.

Использовать структурное программирование, никаких классов и ООП. Рекомендуется выполнять через односвязные линейные списки.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.01.2019, 13:04
Ответы с готовыми решениями:

Замена слов в одном текстовом файле словами, записанными в другом текстовом файле
Кто-нибудь пожалуйста приведете пример реализации следующей программы имеются два тектовых файла - один с повторяющимися записями типа ...

Класс для представления даты и времени
Здравствуйте, знаю что уже было много тем создано с подобным вопросом. Но начал искать я уже после того, как проделал какую то работу и...

Изменение представления даты и времени в удобный вид
Добрый день! Есть список с датами и временем такого вида: 20120307 065530 Подскажите, пожалуйста, каким образом можно привести к...

74
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
12.01.2019, 20:01  [ТС]
Студворк — интернет-сервис помощи студентам
Fixer_84, да, мне лучше таким вариантом. по максимуму отказаться от готовых функций.
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
12.01.2019, 20:45
Kesha777, у меня тоже та ошибка выскакивала. Заменил везде
C++
1
!isdigit()
и все запускается.

Добавлено через 22 секунды
Kesha777, вам скинуть рабочий код?

Добавлено через 27 секунд
Цитата Сообщение от Kesha777 Посмотреть сообщение
Программа должна запускаться из командной строки с одним параметром — именем входного файла.
Исправить это?

Добавлено через 26 минут
Kesha777, вообщем процедура будет такой:

1. Вы в папке где находится .exe файл создаете еще файл input.txt и записывайте туда информацию.
2. После этого запускайте программу и вводите название файла: Enter a file name: input.txt
3. Нажимайте Enter. При этом информация в созданном файле заменится на необходимую.

Вот последний исправленный код:

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
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
#include "stdafx.h"
#include <iostream>
#include <cctype>
#include <string>
#include <fstream>  
 
    using namespace std;
 
//ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ И ПЕРЕМЕННЫЕ
 
int days_in_month[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; //Массив дней для каждого месяца (год невисокосный)
 
string month[12] = { //Массив из 12 значений месяцев
    "январь",
    "февраль",
    "март",
    "апрель",
    "май",
    "июнь",
    "июль",
    "август",
    "сентябрь",
    "отктябрь",
    "ноябрь",
    "декабрь" };
 
bool is_leap_year(int year) { //Функция проверки является ли год високосным (согласно григорианскому календарю)
    if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
        return true;
    }
    return false;
}
 
//ФУНКЦИИ ДЛЯ ОБРАБОТКИ ДАТЫ В ФОРМАТЕ DD.MM.YYYY
 
//1.
 
bool is_date_candidate(const string &date) { //Функция определения потенциальной даты (согласно заданному формату)
    if (date.length() == 10) {
        for (auto i : { 0, 1, 3, 4, 6, 7, 8, 9 }) { //Нужно подключить стандарт C++11 или выше
            if (!(date[i] >= '0' && date[i] <= '9')) {
                return false;
            }
        }
        if (date[2] != '.' || date[5] != '.') {
            return false;
        }
        return true;
    }
    return false;
}
 
//2.
 
bool is_valid_day(const string &date) { //Функция проверки валидности дня
    int day, month, year;
    day = stoi(date.substr(0, 2));
    month = stoi(date.substr(3, 2));
    year = stoi(date.substr(6, 4));
    //Проверка валидности для месяцев с 31 днем
    for (auto i : { 0, 2, 4, 6, 7, 9, 11 }) { //Нужно подключить стандарт C++11 или выше
        if (month == i + 1) {
            if (day >= 1 && day <= days_in_month[i]) {
                return true;
            }
        }
    }
    //Проверка валидности для месяцев с 30 днями
    for (auto i : { 3, 5, 8, 10 }) { //Нужно подключить стандарт C++11 или выше
        if (month == i + 1) {
            if (day >= 1 && day <= days_in_month[i]) {
                return true;
            }
        }
    }
    //Проверка валидности для месяца с 28 и 29 днями (для високосного и не високосного годов)
    if (month == 2) {
        if (is_leap_year(year)) {
            if (day >= 1 && day <= 29) {
                return true;
            }
        }
        else {
            if (day >= 1 && day <= 28) {
                return true;
            }
        }
    }
    return false;
}
 
//3.
 
bool is_valid_month(const string &date) { //Функция проверки валидности месяца
    int month = stoi(date.substr(3, 2));
    if (month >= 1 && month <= 12) {
        return true;
    }
    return false;
}
 
//4.
 
bool is_valid_year(const string &date) { //Функция проверки валидности года
    int year = stoi(date.substr(6, 4));
    if (year >= 1900 && year <= 2040) {
        return true;
    }
    return false;
}
 
//5.
 
bool is_valid_date(const string &date) { //Функция проверки потенциальной даты на валидность
    if (is_date_candidate(date)) {
        if ((is_valid_day(date)) &&
            (is_valid_month(date)) &&
            (is_valid_year(date))) {
            return true;
        }
        return false;
    }
    return false;
}
 
//ФУНКЦИИ ДЛЯ ОБРАБОТКИ ВРЕМЕНИ В ФОРМАТЕ HH:MM:SS
 
//1.
 
bool is_time_candidate(const string &time) { //Функция определения потенциального времени (согласно заданному формату)
    if (time.length() == 8) {
        for (auto i : { 0, 1, 3, 4, 6, 7 }) { //Нужно подключить стандарт C++11 или выше
            if (!(time[i] >= '0' && time[i] <= '9')) {
                return false;
            }
        }
        if (time[2] != ':' || time[5] != ':') {
            return false;
        }
        return true;
    }
    return false;
}
 
//2.
 
bool is_valid_hour(const string &time) { //Функция проверки валидности часа
    int hour = stoi(time.substr(0, 2));
    if (hour >= 0 && hour <= 23) {
        return true;
    }
    return false;
}
 
//3.
 
bool is_valid_minute(const string &time) { //Функция проверки валидности минуты
    int minute = stoi(time.substr(3, 2));
    if (minute >= 0 && minute <= 59) {
        return true;
    }
    return false;
}
 
//4.
 
bool is_valid_second(const string &time) { //Функция проверки валидности секунды
    int second = stoi(time.substr(6, 2));
    if (second >= 0 && second <= 59) {
        return true;
    }
    return false;
}
 
//5.
 
bool is_valid_time(const string &time) { //Функция проверки потенциального времени на валидность
    if (is_time_candidate(time)) {
        if ((is_valid_hour(time)) &&
            (is_valid_minute(time)) &&
            (is_valid_second(time))) {
            return true;
        }
        return false;
    }
    return false;
}
 
//ФУНКЦИИ РАБОТЫ С ОДНОСВЯЗНЫМ СПИСКОМ
 
struct node { //Узел с информацией и указателем на следующий элемент в списке
    string data; //Данные списка
    node* next; //Указатель на следующий элемент в списке
};
 
node* head = NULL; //Создаем голову списка (появился только указатель и он, пока, никуда не указывает)
 
                   //1.  
 
void add(string const &data) { //Функция добавления элементов в список
    node* tmp = new node; //Создаем переменную типа node
    tmp->data = data; //Записываем туда очередное значение (переменная типа string)
    tmp->next = NULL; //Пока переменная никуда не указывает (указатель указывает на NULL)
    if (head == NULL) { //Если голова списка равна NULL
        head = tmp; //Записываем в нее tmp
    }
    else { //Иначе
        node* tnew = head; //Создаем еще одну переменную типа node и присваиваем ей голову списка
        while (tnew->next != NULL) { //Пробегаем циклом по списку
            tnew = tnew->next;
        }
        tnew->next = tmp; //Теперь tnew указывает на tmp
    }
}
 
//2.
 
void replace() { //Функция замены узлов односвязного списка
    node* tmp = head; //Создаем переменную типа node и присваиваем ей значение head 
    string s; //Создаем строковую переменную s (вспомогательная переменная)
    while (tmp != NULL) { //Пробегаем по списку (пока не встретим NULL)
        s = tmp->data; //Записываем значение каждого узла списка в строку s
        if (is_valid_date(s)) { //Если строка является валидной датой
            tmp->data = s.substr(0, 2) + " " + month[stoi(s.substr(3, 2)) - 1] + " " + s.substr(6, 4) + "г."; //Заменяем значение узла (даты) на новое 
        }
        else if (is_valid_time(s)) {  //Если строка является валидным временем
            tmp->data = s.substr(0, 2) + " час. " + s.substr(3, 2) + " мин. " + s.substr(6, 2) + " сек."; //Заменяем значение узла (даты) на новое
        }
        else { //Иначе
            tmp->data = s; //Оставляем значение узла списка без изменений 
        }
        tmp = tmp->next; //Переход к следующему элементу в списке
    }
}
 
//3.
 
void clear() { //Функция очистки файла input.txt
    ofstream in("input.txt", ios::out | ios::trunc);
    in.close();
}
 
//4.
 
void output() { //Функция вывода узлов односвязного списка в файл input.txt
    ofstream out("input.txt"); //Открываем файл input.txt
    node* tmp = head; //Создаем переменную типа node и присваиваем ей значение head (инициализируем список)
    while (tmp != NULL) { //Пробегаем по списку (пока не встретим NULL)
        out << tmp->data << " "; //Выводим узлы списка в файл input.txt через пробел 
        tmp = tmp->next; //Переход к следующему элементу в списке
    }
    out.close(); //Закрываем файл input.txt
}
 
//ВЫПОЛНЕНИЕ ОСНОВНОЙ ПРОГРАММЫ
 
int main() {
    setlocale(LC_ALL, "Russian");
    string fname;
    cout << "Enter a file name: ";
    getline(cin, fname);
    if (fname == "input.txt") {
        ifstream in("input.txt"); //Открываем файл input.txt
        if (in) { //Если файл input.txt существует
            string word; //Объявляем строковую переменную (переменную типа string)
            while (in >> word) { //Пробегаем по файлу input.txt
                add(word); //Добавляем слова в односвязный список
            }
            replace(); //Заменяем соответствующие узлы в списке (корректные дата и время)
            clear(); //Очищаем файл input.txt
            output(); //Вывод измененных узлов списка в файл input.txt
            in.close(); //Закрываем файл input.txt
        }
        else {
            cout << "File input.txt not found!\n"; //Выводим это сообщение, если файл input.txt не найден
        }
    }
    else {
        cout << "File name should be \"input.txt\"!\n";
    }
    system("pause");
    return 0;
}
P.S. Напишите, пожалуйста, получилось или нет.

Добавлено через 6 минут
Цитата Сообщение от Kesha777 Посмотреть сообщение
по максимуму отказаться от готовых функций
Может быть, функции
C++
1
length()
и
C++
1
substr()
также нужно прописать свои? Уточните это, пожалуйста. Но мне кажется это было бы слишком.
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
12.01.2019, 22:22  [ТС]
Fixer_84, не пойму почему но ругается на "stdafx.h"

Цитата Сообщение от Fixer_84 Посмотреть сообщение
Может быть, функции
Я думаю не стоит, если смогу объяснить что они делают.

P.s Все удалил первую строчку и заработало.
Миниатюры
Замена представления даты и времени в текстовом файле  
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
12.01.2019, 22:47
Цитата Сообщение от Kesha777 Посмотреть сообщение
Я думаю не стоит, если смогу объяснить что они делают.
Функция length() определяет длину строки, а substr(i, j) - копирует строку длиной j, начиная с индекса (не номера) i. Функция stoi() переводит строку в число. С этими функциями все довольно не сложно. Если будут еще вопросы, пишите. Но я тестировал программу еще вчера. Вроде, все работает.

Добавлено через 2 минуты
Цитата Сообщение от Kesha777 Посмотреть сообщение
Fixer_84, не пойму почему но ругается на "stdafx.h"
Не знаю. У меня без этой библиотеки не работает. Может быть, у нас разные сборки.
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
12.01.2019, 22:50  [ТС]
Fixer_84, а #include <cctype> теперь ведь тоже не нужна? можно убрать что бы не спрашивали для чего?
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
12.01.2019, 23:03
Kesha777, да, не нужна, так как мы убрали функцию isdigit().
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
12.01.2019, 23:11  [ТС]
Fixer_84, что вот тут
C++
1
2
ofstream in("input.txt", ios::out | ios::trunc);
    in.close();
out и trunc и почему так написано? не понимаю
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
12.01.2019, 23:11
Kesha777, там, выше, в посте #42 исправьте, пожалуйста, строку 23. Я вместо "октябрь", написал "отктябрь."
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
12.01.2019, 23:19  [ТС]
Fixer_84, это я уже исправил
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
12.01.2019, 23:22
Цитата Сообщение от Kesha777 Посмотреть сообщение
Fixer_84, что вот тут
Здесь все просто. Мы в основной программе вызываем три функции:

C++
1
2
3
replace(); 
clear();
output();
Но еще перед этим добавляем слова из файла input.txt в список. Получается, что после считывания файла, все что в нем было хранится в односвязном списке (для этого вас и просили его использовать). Далее, мы вызываем функцию replace(), которая проходит по списку и заменяет там даты и время. В этот момент файл input.txt все еще содержит старую информацию. Поэтому мы вызываем функцию clear():

C++
1
2
3
4
void clear() { //Функция очистки файла input.txt
    ofstream in("input.txt", ios::out | ios::trunc);
    in.close();
}
Она очищает все, что было в файле до этого (исходную информацию). Ну и в самом конце мы записываем уже измененный список в этот же файл input.txt с помощью функции output(). Получается, что мы заменяем старую информацию на новую. Для этого обычно и используют контейнеры. Просто этот мы реализовали сами, а есть уже готовые, типа vector и ему подобных. Обычно односвязные списки используют, чтобы оптимизировать процедуры вставки и удаления элементов. С ними это происходит значительно быстрее (за константное время).
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
12.01.2019, 23:28  [ТС]
Fixer_84, можно ли вместо
C++
1
for (auto i : { 0, 2, 4, 6, 7, 9, 11 })
использовать
C++
1
for (int i : { 0, 2, 4, 6, 7, 9, 11 })

Добавлено через 1 минуту
Цитата Сообщение от Fixer_84 Посмотреть сообщение
файла input.txt
а как сделать чтобы файл мог быть любым, не обязательно input.txt. А то иначе для чего мы даем пользователю ввести имя файла где доступен лишь один вариант.

Добавлено через 2 минуты
Цитата Сообщение от Fixer_84 Посмотреть сообщение
ios::out | ios::trunc
Я так и не увидел ответа именно про это
0
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,161
12.01.2019, 23:33
Цитата Сообщение от Kesha777 Посмотреть сообщение
Я так и не увидел ответа именно про это
В гугле бан? Первая ссылка дает вот что: "ios::out | ios::trunc удаляется существующий файл и (или) создается для записи; "


Цитата Сообщение от Kesha777 Посмотреть сообщение
Я просто хочу максимально упростить что бы вопросов не было
Range-based for - сложно? Создайте массив со значениями 0, 2, 4, 6, 7, 9, 11 и пробегитесь по нему

Добавлено через 1 минуту
Цитата Сообщение от Kesha777 Посмотреть сообщение
а как сделать чтобы файл мог быть любым, не обязательно input.txt. А то иначе для чего мы даем пользователю ввести имя файла где доступен лишь один вариант.
Ну создайте файловый поток под именем кастомной переменной и все:

C++
1
2
3
string file_name;
cin >> file_name;
ifstream inp(file_name);
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
12.01.2019, 23:34  [ТС]
Цитата Сообщение от ReDoX Посмотреть сообщение
Ну создайте файловый поток под именем кастомной переменной и все:
делал. не получалось. Пишет что не объявлена.
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
12.01.2019, 23:34
Цитата Сообщение от Kesha777 Посмотреть сообщение
for (auto i : { 0, 2, 4, 6, 7, 9, 11 })
Здесь ничего менять нельзя. Так как я пробегаю не по всем, а только по конкретным индексам. Не все месяца содержат 31 день.
Цитата Сообщение от Fixer_84 Посмотреть сообщение
ofstream in("input.txt", ios::out | ios::trunc);
Здесь мы открываем файл на запись с флагом trunc(), который его и очищает.
Цитата Сообщение от Kesha777 Посмотреть сообщение
а как сделать чтобы файл мог быть любым, не обязательно input.txt. А то иначе для чего мы даем пользователю ввести имя файла где доступен лишь один вариант.
Это можно изменить, но тогда придется сначала создавать файл вручную, а потом вводить его название из консоли. Обычно создают один файл и туда записывают информацию. У вас в задании сказано, что из консоли вводится только название файла. Наверное, имеется ввиду название уже созданного файла. Я не рекомендую вам вносить изменения в программу, если вы не уверены. Лучше спрашивайте
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
12.01.2019, 23:39  [ТС]
Fixer_84, ну вроде бы все понял.
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
12.01.2019, 23:43
Цитата Сообщение от Kesha777 Посмотреть сообщение
Fixer_84, ну вроде бы все понял.
Хорошо. Я рад, что получилось что-то объяснить.
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
12.01.2019, 23:43  [ТС]
Цитата Сообщение от Fixer_84 Посмотреть сообщение
У вас в задании сказано, что из консоли вводится только название файла. Наверное, имеется ввиду название уже созданного файла.
Ну да правильно. Мы его не создаем. Но ведь не сказано что он именно input.txt. Мы просто ищем файл, название которого ввел пользователь и пытаемся открыть вот и все, если не получилось тогда сообщение об ошибке.
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
12.01.2019, 23:58
Цитата Сообщение от Kesha777 Посмотреть сообщение
Мы его не создаем
В этой программе мы как раз создаем файл input.txt с помощью правой копки мыши и помещаем его в папку с .exe файлом. Затем записываем туда информацию вручную. Вы хотите, чтобы программа сама создавала файл, а вы записывали туда информацию с помощью мыши или вы будете вводить слова из консоли, где запускается программа?

Добавлено через 9 минут
Kesha777, уже поздно и у меня болит голова. Давайте отложим этот вопрос до завтра. У вас ведь есть еще время? Лучше протестируйте программу на возможные ошибки. Я слышал, что тестирование занимает до 90% времени программиста.
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
13.01.2019, 00:02  [ТС]
Fixer_84, рядом с .exe файлом лежит файл с входным текстом (имеет любое имя .txt)
В консоли пользователь вводит имя этого файла и программа его открывает и работает с ним.
Ну или например в папке с .exe будет несколько файлов .txt и так вот с помощью программы можно будет поменять форматы даты времени во многих файлах в теории. Я понятно написал?
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,361
13.01.2019, 00:05
Цитата Сообщение от Fixer_84 Посмотреть сообщение
Здесь ничего менять нельзя
auto на int заменить можно(об этом спрашивал TC).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2019, 00:05

Замена значения в текстовом файле
Добрый день! Есть конфигурационный файл в нём содержится строчка NewLine=1000. Как заменить число получилось, но в самом файле...

Замена слов в текстовом файле
Нужна помощь, как в текстовом файле изменить слово, например, &quot;Black&quot; на &quot;White&quot;?

Замена текста в текстовом файле
Здравствуйте! Может кто подскажет как можно заменить текст в текстовом файле? Буду благодарен. p.s пробовал...

Замена символов в текстовом файле
Добрый день , есть батник в котором пробелы меняются на , Необходимо чтобы пробелы менялись на | (но если ставлю | выполнения...

Поиск и замена в текстовом файле
Здравствуйте! Очень нуждаюсь в Вашей помощи. Перепробовала все найденные мною варианты решения подобных задач и все равно никак не могу...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru