Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163

Не работает DELETE для "повторяющихся" строк

19.02.2024, 20:51. Показов 5343. Ответов 134

Студворк — интернет-сервис помощи студентам
Здравствуйте, добрые люди!
Долго колупался с ускорением заполнения базы и доколупался до хорошей для меня скорости наполнения, однако без граблей не обошлось, когда я опустил проверки на точность параметров при замене данных получил дублирование для одного набора ключей записей с разной точностью. Исходная тема (Импорт данных из файла в БД) короткая, да и проблема видна когда пытаюсь отладить макрос в самой БД.
Как видно из запроса есть 5 ключевых параметров и пара значимых полей в записи - это значение и его точность.

Чтобы было понятно, чем больше число тем ниже точность.

Итак нашел я замечательный пример и попробовал состряпать свой запрос на удаление повторяющейся записи с меньшей точностью. Для начала изобразил выборку, абы проверить правильно ли выбирает, оставил в последствии только те записи, что подлежат удалению:

SQL
1
2
3
SELECT a.* FROM Weather a,
(SELECT * FROM Weather) b
WHERE a.ID_MD = b.ID_MD AND a.DT = b.DT AND a.LAT = b.LAT AND a.LON = b.LON AND a.SOURCE = b.SOURCE AND a.QUAL > b.QUAL AND NOT ISNULL(a.ZNCH) AND NOT ISNULL(b.ZNCH)
Эта штуковина работает, однако по замыслу авторов для удаления этих записей замена SELECT a.* на DELETE a.* приводит к ошибке "Не возможно удаление записей из указанных таблиц", а справка говорит, что недостаточно прав в пяти вариациях... С чего бы? В свойствах запроса разрешения на удаление есть
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2024, 20:51
Ответы с готовыми решениями:

Клавиша delete не работает,а вот shift + delete работает
Ни ничего не могу удалить как обычно клавишей delete работает только при сочетании shift + delete W7 64 bit Добавлено через 2 часа...

1. Реализовать функции для вставки и удаления строк аналогичные процедурам Insert и Delete в Турбо-Паскале.
Реализовать функции для вставки и удаления строк аналогичные процедурам Insert и Delete в Турбо-Паскале. Помогите,пожалуйста,завтра нужно...

Не работает функция для удаления повторяющихся символов в строке
Вместо удаления остается часть, например из EEEEEEE делается не E, а EEE к примеру, как исправить? string removeSymbols(string input) {...

134
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
22.02.2024, 11:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от POJIBOX Посмотреть сообщение
по скольким полям проиндексировать таблицу?
Я так сделал:
Миниатюры
Не работает DELETE для "повторяющихся" строк  
0
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
22.02.2024, 11:56  [ТС]
Цитата Сообщение от Jamaica Посмотреть сообщение
А там метрик то пока всего ничего.
Ну на самом деле информации будет не намного больше, если сейчас можно считать хранится за 5 дней, то мне нужно по минимуму хранить 5-6 дней назад + 5-6 дней вперед от даты прогноза, т.е. будет скажем 3 млн записей, что мне кажется не потолок для ACCESS.

Добавлено через 2 минуты
Цитата Сообщение от Jamaica Посмотреть сообщение
Я так сделал:
И еще отдельно поля проиндексированы, это тоже поможет?
0
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
22.02.2024, 12:02
Цитата Сообщение от POJIBOX Посмотреть сообщение
будет скажем 3 млн записей
Ранее вроде видел 10-20М записей только метрик?
Цитата Сообщение от POJIBOX Посмотреть сообщение
И еще отдельно поля проиндексированы
Поля, участвующие в связях, Access сам индексирует, но не показывает.
Я предпочитаю явно описывать индексы, чтобы их было видно.
В данном случае без разницы, как хотите.
0
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
22.02.2024, 12:26  [ТС]
Цитата Сообщение от Jamaica Посмотреть сообщение
Ранее вроде видел 10-20М записей только метрик?
тут видимо сказывается несовершенство декартовой системы, некоторые параметры не существуют для некоторых источников, плюс пропуски данных, с чем мне тоже придется бороться в виде автоматического отслеживания новых файлов, до того как их снесло ПО по каким-то своим неведомым правилам в итоге с 2 пакетов 775 тыс. записей - пусть их даже половина от потенциала умножаем на 2 получаем 3 млн.

Добавлено через 2 минуты
Сделал индексы, размер базы вырос на треть, загрузка второго пакета в полтора раза...
Пожалуй несколько улучшилась скорость расчетов, но к сожалению не засек без индексации
0
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 818
22.02.2024, 13:14
Новая стратегия родилась, которая позволит уменьшить объем обновляемых данных (в теории). Создаем следующий индекс (см картинку). Данные пишем сразу в Weather. Но перед наполнением очередной пачки делаем запись в дополнительную таблицу Weather_Update с полями (ID_MD,DT,Source). После того как все пачки загружены (или только часть) запускаем запрос на вычистку данных из Weather.

SQL
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
DELETE Weather.*
FROM Weather 
WHERE id IN (SELECT 
  Weather.id
FROM
  (SELECT Weather.ID_MD,--Соберем крайние значения 
          Weather.DT,
          Weather.LAT,
          Weather.LON,
          Weather.SOURCE,
          MIN(Weather.QUAL) AS minQUAL,
          MAX(Weather.UDT) AS maxUDT,
          COUNT(*) AS nCount
   FROM
     (SELECT ID_MD, --Данные которые поменяли
             SOURCE,
             DT
      FROM Weather_Update
      GROUP BY ID_MD,
               SOURCE,
               DT) AS qUpdate
   INNER JOIN Weather ON 
     qUpdate.ID_MD = Weather.ID_MD
     AND qUpdate.Source = Weather.Source
     AND qUpdate.dt = Weather.dt
   WHERE Weather.ZNCH IS NOT NULL
   GROUP BY Weather.ID_MD,
            Weather.DT,
            Weather.LAT,
            Weather.LON,
            Weather.SOURCE
   HAVING COUNT(*) > 1) AS qAgg
INNER JOIN Weather ON --Отберем значения которые больше не нужны
 
  (qAgg.SOURCE = Weather.SOURCE)
AND (qAgg.LON = Weather.LON)
AND (qAgg.LAT = Weather.LAT)
AND (qAgg.DT = Weather.DT)
AND (qAgg.ID_MD = Weather.ID_MD)
WHERE (((Weather.QUAL)>[qAgg].[minQUAL]) --Имеют худшее качесвто
       AND ((Weather.ZNCH) IS NOT NULL))
  OR (((Weather.QUAL)=[qAgg].[minQUAL]) --Имеют то же качество, но загружены раньше. (Оставляем свежие)
      AND ((Weather.ZNCH) IS NOT NULL)
      AND ((Weather.UDT)<[qAgg].[maxUDT])));
Затем чистим таблицу Weather_Update.

SQL
1
DELETE * FROM Weather_Update;
Выигрыш будет только в случае если обновляются не все данные сразу
Миниатюры
Не работает DELETE для "повторяющихся" строк  
0
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 818
22.02.2024, 13:48
Индексировать можно после загрузки разово. т.е. перед загрузкой выполняем команду удалить индекс

SQL
1
DROP INDEX IX ON Weather;
После того как данные загружены, но до выполнения удаления запроса создать его обратно

SQL
1
CREATE INDEX IX ON Weather (ID_MD,DT,SOURCE,LAT,LON);
А насколько критичен именно Access? В качестве альтернативы могу предложить SQLite, У него есть хитрые команды вставки, думаю Вам должно подойти upsert.

Плюс есть неплохие расширения для работы с географическими координатами, в том числе пространственные индексы
0
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
22.02.2024, 15:12  [ТС]
Цитата Сообщение от Swa111 Посмотреть сообщение
А насколько критичен именно Access?
Здесь принципиальных ограничений нет от слова совсем... хоть на Оракле
Есть организационные ограничения: у меня скажем так еще 3 направления работы, 1 из которых требует программирования, но связанное с моделированием, а окромя самой программы, надо провести моделирование, оценку результатов, выработку рекомендаций, ах да не забыть про еще 2 направления... и так по кругу...
Учитывая, что я никогда не работал с SQLite, как впрочем и пару лет назад с ACCESS...
Я не уверен, что успею, а когда я не уверен - просто не берусь делать

Добавлено через 6 минут
Цитата Сообщение от Swa111 Посмотреть сообщение
думаю Вам должно подойти upsert.
Эту вещь можно также реализовать тупо на программном уровне, блок TRY ... CATCH в первом пытаемся вставить, не получилось апдейтим
Я видел, что такое применяется, но что-то мне подсказывает, что прыжки с инициализацией запросов как бы не оказались по времени соизмеримыми с предварительной проверкой данных из базы

Добавлено через 5 минут
Цитата Сообщение от Swa111 Посмотреть сообщение
Индексировать можно после загрузки разово. т.е. перед загрузкой выполняем команду удалить индекс

После того как данные загружены, но до выполнения удаления запроса создать его обратно
понимаете разница между 4 минутами и 6 минутами меня не напрягает, причем эти 6 минут образовались, уж я не пойму почему, в самом конце загрузки около 90% вдруг она пошла очень медленно, как будто кто-то параллельно дергал диск, возможно это ГЛЮК системный и в следующий раз такого не будет.

Добавлено через 23 минуты
Цитата Сообщение от Swa111 Посмотреть сообщение
думаю Вам должно подойти upsert
Нужно быть сильно уверенным в том, что UPDATE допустим, т.е. нужно знать какие данные мы АПДЕЙТим, а как узнать?
Лучше все же вариант с записью и последующей фильтрацией мусора

Тем более что фильтровать нужно данные только с текущей даты обновления - 1 условие в блоки СЕЛЕКТ и работа будет всегда с текущим пакетом обновления! Исторические данные считаем чистыми - ибо они не обновляются и уже очищены
0
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 818
22.02.2024, 15:14
Итак результаты тестов на SQLite.

Исходные данные таблица Weather из поста Meteo602Форум.mdb сохранена в формате CSV. Всего 616746 строк.

Далее игрался через консоль sqlite-tools-win-x64-3450100.zip.

Создаем новую БД

SQL
1
.open Weather.db
Создаем структуру таблиц и представление для автоматической обработки вставляемых данных. Поддержка типа дата условная поэтому заменил на float.

SQL
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
--Таблица с данными
CREATE TABLE Weather (ID_MD INTEGER, DT FLOAT, LAT INTEGER, LAN INTEGER, SOURCE INTEGER, ZNCH FLOAT, UDT FLOAT, QUAL INTEGER, PDT INTEGER);
 
--Индекс для отслеживания дублей
CREATE UNIQUE INDEX Weather_UIDX ON Weather(ID_MD, DT, LAT, LAN, SOURCE);
 
--Представления для вставки данных по нашим правилам
CREATE VIEW weather_import AS SELECT * FROM weather;
 
--Вся магия творится тут. При обнаружении конфликта обновляем данные только в случае если качество выше или пришли более свежие данные
CREATE TRIGGER IF NOT EXISTS weather_insert instead OF INSERT ON weather_import FOR each ROW 
BEGIN
  INSERT INTO Weather(ID_MD, DT, LAT, LAN, SOURCE, ZNCH, UDT, QUAL, PDT)
  VALUES(NEW.ID_MD, NEW.DT, NEW.LAT, NEW.LAN, NEW.SOURCE, NEW.ZNCH, NEW.UDT, NEW.QUAL, NEW.PDT)
  ON CONFLICT DO UPDATE SET
    ZNCH=excluded.ZNCH,
    UDT=excluded.UDT,
    QUAL=excluded.QUAL,
    PDT=excluded.PDT
  WHERE 
    Weather.ID_MD = excluded.ID_MD AND
    Weather.DT = excluded.DT AND
    Weather.LAT = excluded.LAT AND
    Weather.LAN = excluded.LAN AND
    Weather.SOURCE = excluded.SOURCE AND
    (excluded.Qual < Weather.Qual OR
     (
       excluded.Qual = Weather.Qual AND 
       excluded.UDT > Weather.UDT
     )
    );
END;
Далее выполняем импорт данных из файла CSV.

SQL
1
2
3
4
.mode csv weather_import
.separator ;
.import c:\Users\USER\Documents\Weather.csv weather_import
.mode TABLE
Итого в таблице weather содержится 597780 записей. Выполнялось менее 5 секунд.
0
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
22.02.2024, 15:20  [ТС]
Цитата Сообщение от Swa111 Посмотреть сообщение
Новая стратегия родилась, которая позволит уменьшить объем обновляемых данных (в теории)
А что можно сказать за условное выполнение команды INSERT или UPDATE, такое возможно внутри IF или CASE?
0
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 818
22.02.2024, 15:25
А что можно сказать за условное выполнение команды INSERT или UPDATE, такое возможно внутри IF или CASE?
насчет insert не уверен, а в Update что угодно можно делать.

Эту вещь можно также реализовать тупо на программном уровне, блок TRY ... CATCH в первом пытаемся вставить, не получилось апдейтим
тоже вариант, какие индексы и как обновлять см в предыдущем посте про SQLite
0
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
22.02.2024, 15:38  [ТС]
Цитата Сообщение от Swa111 Посмотреть сообщение
Выполнялось менее 5 секунд
Это не показатель, поймите, данные я беру не из готовой таблицы или файла, вы работаете с таблицей которая получилась после обработки пакета из 21500 файлов из которых только около 2000 файлов оказываются с нужными данными (плюс к тому же большая часть данных низкого разрешения уже затерта в силу алгоритма)
Но открыть-прочитать-отфильтровать-закрыть нужно все равно 21500 файлов + 2000 файлов декодировать, а если качество низкое еще и интерполировать (хорошо что линейно, а лучше бы квадратично) и это никак не исключить из процесса.

Поэтому борьба за секунды она только для красоты.

Я сократил время на загрузку в 10-20 раз (30-60 минут) приняв допустимым кидать в БД мусор, а потом его скопом отфильтровать и из этого родилась сама ТЕМА.

Сейчас мы пытаемся нарушить правило: "лучшее - ВРАГ хорошего"

Добавлено через 2 минуты
Цитата Сообщение от Swa111 Посмотреть сообщение
насчет insert не уверен, а в Update что угодно можно делать.
Вы меня не поняли, как только ИНСЕРТ отвалился UPDATE уже не нужен - к сожалению работа в связке

Я спрашивал можно ли эти ОПЕРАЦИИ обернуть в условия?

Добавлено через 1 минуту
Цитата Сообщение от Swa111 Посмотреть сообщение
тоже вариант,
Но не совсем
Цитата Сообщение от POJIBOX Посмотреть сообщение
Нужно быть сильно уверенным в том, что UPDATE допустим, т.е. нужно знать какие данные мы АПДЕЙТим, а как узнать?
0
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 818
22.02.2024, 15:46
Я спрашивал можно ли эти ОПЕРАЦИИ обернуть в условия?
Insert - нет. Update - да

Вы меня не поняли, как только ИНСЕРТ отвалился UPDATE уже не нужен - к сожалению работа в связке
Возможно я действительно не понял. я исходил из следующего. На картеж (ID_MD, DT, LAT, LAN, SOURCE) должна быть только одна запись. При этом там могут храниться либо устаревшие данные. Либо данные с более низким разрешением.

Поэтому и предложил что если при вставке данных будет нарушение по уникальному индексу (ID_MD, DT, LAT, LAN, SOURCE). нужно обновить эту строку, но только в том случае если у вставляемого значения (excluded) качество выше (excluded.Qual < Weather.Qual) или же в случае, если качество то же самое (excluded.Qual = Weather.Qual) данные более свежие (excluded.UDT > Weather.UDT).

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

Еще хотелось бы уточнить, перед началом обновления БД Вы начинаете явно транзакцию?
0
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
22.02.2024, 15:50  [ТС]
Скажу еще когда я пробовал забить таблицу без фильтрации (удаления областей с устаревшими данными или низким разрешением) - 2 минуты с фильтрацией 4 минуты при индексировании 6 минут (и то по невнятным причинам) итого мы пытаемся биться в самом лучшем случае за 4 минуты, а вообще уйти от дополнительных 2 минут.

Сама идея с дополнительной таблицей хороша по принципу накопления изменений и быстрого их применения - внешние триггеры для этого имеются, в то время как основная таблица может использоваться пользователями... НО все равно но - база 1 а значит будет узкое горлышко

Добавлено через 1 минуту
Цитата Сообщение от Swa111 Посмотреть сообщение
На картеж (ID_MD, DT, LAT, LAN, SOURCE) должна быть только одна запись.
Да и еще раз ДА
Только в этом случае невозможно без предварительной проверки пихнуть туда новые данные
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,959
Записей в блоге: 4
22.02.2024, 15:51
Цитата Сообщение от POJIBOX Посмотреть сообщение
после обработки пакета из 21500 файлов из которых только около 2000 файлов оказываются с нужными данными
что же из себя представляет хотя бы 1 файл из 21500, в чем критерий отбора, какой размер 1 файла в записях/байтах
пока одни загадки, но решить задачу, не поняв ее - невозможно

время не самый важный критерий решения
0
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
22.02.2024, 15:51  [ТС]
Цитата Сообщение от Swa111 Посмотреть сообщение
если у вставляемого значения (excluded) качество выше (excluded.Qual < Weather.Qual) или же в случае, если качество то же самое (excluded.Qual = Weather.Qual) данные более свежие (excluded.UDT > Weather.UDT)
по сути наоборот, преимущество имеет НОВИЗНА, потом качество
0
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 818
22.02.2024, 15:55
Только в этом случае невозможно без предварительной проверки пихнуть туда новые данные
Поэтому инсерт делаем без каких либо проверок, за нас их сделает СУБД по уникальному индексу (сгенерит исключение если будет пытаться вставить дубль).

В исключении мы уже точно знаем что для данного картеже есть данные. поэтому делаем его апдейт но с дополнительным условием на актуальность. Посмотрите запрос. т.е. если данные которые уже лежат в таблице актуальные, то будет обновлено 0 строк. Если новые данные лучше чем были, то будет обновлена 1 строка.

по сути наоборот, преимущество имеет НОВИЗНА, потом качество
Ок. тут вышло недопонимание. это все решается условием в update

SQL
1
2
3
(excluded.UDT > Weather.UDT OR
 (excluded.UDT = Weather.UDT AND excluded.Qual < Weather.Qual)
)
0
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
22.02.2024, 15:56  [ТС]
Цитата Сообщение от shanemac51 Посмотреть сообщение
что же из себя представляет хотя бы 1 файл из 21500
Ну раз на слово не верите, посмотрите, не знаю что вам может сказать двоичный формат, в описании формата так и сказано, что он предназначен для машинной обработки

При том что данные пакуются нестандартной длиной битов
Вложения
Тип файла: zip GRIB_05.02.24.ZIP (18.9 Кб, 10 просмотров)
0
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
22.02.2024, 16:13  [ТС]
Цитата Сообщение от Swa111 Посмотреть сообщение
В исключении мы уже точно знаем что
Т.е. Вы считаете, что порождать исключения допустимо, раз нет другого "правильного" механизма быстрой проверки?

На самом деле тогда нужно переворачивать, ибо замена данных встречается чаще чем вставка

Я почему и хотел использовать внешнее условие но там будет бред с количеством передаваемых параметров

Добавлено через 12 минут
Цитата Сообщение от shanemac51 Посмотреть сообщение
в чем критерий отбора
очень просто тип данных в файле должен попасть ID_MD (Таблица MD), диапазон широты и долготы в мой диапазон (таблицу не могу показать там режимные данные) это LAT и LON, источник данных SOURCE (не все источники интересны), ну и время формирования сводки UDT а также качество данных QUAL участвуют в отборе, старые данные и данные с худшим разрешением (по отношению к имеющимся) не нужны.

Вот теперь мне кажется, что DT - дата на которую прогноз необоснованно воспринимается выше UDT, хотя это просто координата данных как LAT и LON
0
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 818
22.02.2024, 16:14
На самом деле тогда нужно переворачивать, ибо замена данных встречается чаще чем вставка
Тут так не получится. Даже если анализировать потом свойство количество затронутых строк, то число 0 вовсе не будет означать что нужно сделать insert.

Хотя, если ловить исключение на инсерте, по которому ни чего не делать, то жизнеспособное решение.
0
 Аватар для POJIBOX
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
22.02.2024, 16:16  [ТС]
Цитата Сообщение от Swa111 Посмотреть сообщение
Тут так не получится
UPDATE пустого значения - это исключение такое же как у ИНСЕРТ в заполненную ячейку - проходили
преимущество вообще АПДЕЙТ в том что ключ не будет затронут, но он и не нужен будет, вот только скорость...
я в начале пути читал из таблицы и если было пусто ИНСЕРТил, а вместо значения АПДЕЙТил если условия выполнялись
итого 30 - 60 минут...
неужели через исключение будет в 20 раз быстрее?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2024, 16:16

Для линейного вещественного массива найти произведение всех повторяющихся и не повторяющихся элементов
Для линейного вещественного массива Х найти произведение всех: а) повторяющихся элементов б) не повторяющихся элементов Добавлено...

Как вызвать "Delete" для строк?
with lst1.Items do for i:=1to TextEnd do begin s:=Strings; if Pos('(compInst',s)&gt;0then begin ...

Стандартная функция delete в Eclipse работает а в AndroidStudio не работает
case R.id.btnDelete: {//Кнопка удаление последнего символа ...

Почему не работает Update, но работает аналогичный Delete?
В xmal есть datagrid в него подтянута из базы информация. Название и количество. Надо сделать во viewmodel кнопки delete и update. Delete ...

Использование строк: Функция Delete(s1, s2)
Здравствуйте! В общем, мне нужно было создать функцию DELETE(s1, s2), которая удаляет из строки s1 все символы, встречающиеся в строке...


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

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru