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

Каков принцип округления дробных чисел у компьютера/компилятора?

25.07.2018, 23:01. Показов 8802. Ответов 88
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

У меня тут такой вопрос для темы: Как именно осуществляется округление дробных чисел в компьютере? Какими правилами он пользуется?
Я пишу программу, просто как тренировочную, в целях практики, так как я только начинаю путь программирования,ее цель (программы) это тренинг по математике, различного уровня сложности и головоломки, и вот в этой программе, возникли проблемы с расхождением результатов: результат, который ввожу я, (вычисленный на калькуляторе) отличается от результата, который вычисляет компьютер. При том что используемый калькулятор - стандартный в ОС Windows. Мало того значение в переменной округляется на разных этапах компиляции, что приводит в расхождению результатов и невозможно подобрать правильный. Такое ощущение, что компьютер играет со мной в стаканчики и крутит вертит эти результаты, чтобы запутать.

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

В общем вопрос очень тонкий, надеюсь есть решения, которые можно осуществить на уровне начальных знаний о С++, или же надо подключать сложные и громоздкие математические библиотеки, с которыми я еще не знаком?

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


P.S. Пытался загрузить проект (правда он не закончен), но не получается пока... буду пытаться еще грузить, может кому интересно будет на него взглянуть.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.07.2018, 23:01
Ответы с готовыми решениями:

Как избежать округления дробных чисел
как сделать что бы не округляло ??? float t; float z,m; using namespace std; void main(void) { m=-pow(5,2)/2;

Как избежать округления дробных чисел
не виводит дробь а только целие числа. где проблема ? #include <iostream.h> #include <math.h> int mat(double x,double...

Каков принцип работы атрибутов
Всем доброго времени суток. Объясните пожалуйста принцип работы атрибутов. То есть я написал атрибут и теперь я могу сериализовать...

88
-2 / 1 / 0
Регистрация: 18.07.2018
Сообщений: 84
27.07.2018, 10:47  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Evg Посмотреть сообщение
0.333
0.333333
0.333333343267
0.3333333432674407959
0.3333333432674407958984375
0.333
0.333333
0.333333333333
0.33333333333333331483
0.333333333333333314829616256247
0.333
0.333333
0.333333333333
0.33333333333333333334
0.333333333333333333342368351437
На примере ↑↑ как раз применимо правило ↓↓
Чем больше бит у типа, тем более точно можно представить число (т.е. тем меньше значение этого числа будет отличаться от оригинала)
Принцип представления числа в виде "числомусор" (0.333333333333333333342368351437) (конечно же это не мусор, а труды кропотливых вычислений процессора, но в моем случае, они излишни и мешают.) в этих числах тоже понятно, но как сделать так чтоб этот "мусор" не мешал работать с подобными числами и не искажал результаты и программа работала корректно. Желательно малой кровью, потому что мои знания на данном этапе в программировании не обширны (это еще мягко сказано, я обучаюсь самостоятельно и только дошел до изучения класса и объектов класса), поэтому если есть возможность решить данную проблему малой кровью, то подскажите литературу или принцип как это сделать, если таких решений нет, то я пока оставлю данный проект, которой как мне показалось очень легкий в исполнении и дальше буду более интенсивно изучать программирование и математику, конечно же.

Более точная суть моего вопроса такова: Как заставить/попросить компилятор игнорировать "мусор", чтоб он не мешал сравнению результата, потому что именно этот "мусор" мешает работе.

P.S. Вот так будет конкретно поставлена цель моего вопроса, хотя я сам чувствую ее не корректность.

Добавлено через 10 минут
Цитата Сообщение от Renji Посмотреть сообщение
В этом месте вы должны побить большие числитель и знаменатель на отдельные разряды и умножать/складывать их столбиком. Это собственно длинная арифметика и есть.
Понял в чем суть, видел такое в одном из постов, но просто реализовать это в программе я точно не смогу, слишком сложно, в моем случае будет на много хуже. Если только самому не высчитывать таким образом результат, когда пользуешься программой, но в таком случае пользователей(которых у этой программы и так не будет) не будет совсем))), из-за неудобства использования. А так это конечно поможет понять какое представление записано в переменной "ResultLDN" и точно такое же представление ввести в пользовательскую переменную.
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
27.07.2018, 11:19
txtbit, хотел бы внести некоторое уточнение по поводу:
Цитата Сообщение от Renji Посмотреть сообщение
Впрочем, если вы о преобразовании double->int, то там просто обрубается дробная часть.
Не совсем так. У сопроцессора, в котором происходят все вычисления и преобразования, есть три режима округления: к меньшему, к ближайшему и к большему. По-умолчанию используется "к меньшему", при котором и происходит "обрубание дробной части".
Как поменять режим сразу не скажу,т.к. не пользуюсь. Обхожусь округлением к меньшему. Например, когда надо округлить до ближайшего, я перед преобразованием в целое добавляю 0.5
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
27.07.2018, 11:42
Цитата Сообщение от txtbit Посмотреть сообщение
А так это конечно поможет понять какое представление записано в переменной "ResultLDN" и точно такое же представление ввести в пользовательскую переменную.
Ну возьми например double (https://ru.wikipedia.org/wiki/... й_точности) с его представлением в виде

±знак · (1+ (мантисса/252)) × 2порядок − 1023
1
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
27.07.2018, 11:52
есть старый способ округления, использовался еще до сопроцессоров
например нужно округлить до сотых
делаем так
C++
1
2
3
4
double a=1.23456789;
double b=a*100+0.5;
int c=(int)b;
double d=(double)c/100.0
1
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
27.07.2018, 12:55
Общий порядок определять, взяв логарифм числа по основанию 2 и округлив до меньшего целого. Для мантиссы нужно поделить исходное число на 2 в степени, полученной из логарифма. Вычтя после этого 1 и умножив остаток на 2^52 и округлив до целого получишь мантису.

На примере 0.1 :

log2 0.1 = -3.32..., степень -4 (т.е. поделить на 2^-4 или умножить на 16), итого получаем 1.6, 1 вычитаем, и 0.6 умножаем на 2^52 = 4503599627370496 . Получаем число 2702159776422297.6, с дробной частью которая будет процессором округляться. И именно на эту дробную часть и будет отличаться записанное в double число от 0.1 . Суммарно запишется

(1 + 2702159776422298/252)*21019-1023

Добавлено через 51 минуту
Цитата Сообщение от txtbit Посмотреть сообщение
Как заставить/попросить компилятор игнорировать "мусор"
Компилятор не сможет за тебя рассчитать, какая была накоплена ошибка вычислений в процессе производства действий. В примере выше я указал, что при попытке записи в double 0.1 фактически записанное число будет отличаться от 0.1 на 4/72057594037927936 (1/18014398509481984) . При сложении таких двух таких чисел, поскольку число будет нормироваться к единице и лишние знаки мантиссы отбросятся, величина ошибки станет ещё больше. При умножении - тем более.

В общем всё будет сложно. Но обычно (если речь не идёт о деньгах и прочих высчитываемых "абсолютно" вещах) просто пренебрегают этими ошибками и говорят "это у нас double, у него примерно 16-17 десятичных знаков, которые будут повторены точно при введении, за столько-то действий у нас ошибка вычислений не должна превысить 2-3 знака в мантисе, значит будем пользоваться только первыми 13 знаками".
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21287 / 8312 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
27.07.2018, 12:59
Цитата Сообщение от txtbit Посмотреть сообщение
Принцип представления числа в виде "числомусор"
Это не мусор. Это печать в десятичном виде того числа, которое хранится в машине в двоичном виде. А число, хранимое в двоичном виде, отличается от точного значения 1/3. Потому что точное значение 1/3 нельзя записать точно в двоичном представлении

Цитата Сообщение от txtbit Посмотреть сообщение
но как сделать так чтоб этот "мусор" не мешал работать с подобными числами и не искажал результаты
Начать с того, что научиться внятно ставить вопрос. Если тебе нужно точное представление чисел в десятичной записи - используй специальные библиотеки. Больше никак

Цитата Сообщение от ValeryS Посмотреть сообщение
есть старый способ округления, использовался еще до сопроцессоров
например нужно округлить до сотых
Он точно так же не работает, как и не работают прочие эрзац-методы
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
27.07.2018, 13:19
txtbit, кроме формата (см. например стандарт IEEE 754 https://ru.wikipedia.org/wiki/IEEE_754-2008) есть ещё проблема сохранения значимости. Тут и близко нельзя говорить о "малой крови" в реализации. Но что бы понять предмет может пригодиться:
https://www.cyberforum.ru/blog... g3523.html
смотрите внизу, начиная со слов:
Цитата Сообщение от мутота всякая
Теперь о таких вещах как точность, надёжность и сочетательность (ассоциативность).
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
27.07.2018, 14:12
Цитата Сообщение от Evg Посмотреть сообщение
Он точно так же не работает,
что есть "не работает"?
не представляет точно число из компьютера в число на дисплей, сиречь из двоичного в десятичное представление?
Разумеется нет ибо системы счисления разные
я могу так же привести в пример задачи которые на АВМ решались точно, а на ЭВМ с определенной долей погрешности
или что то другое имелось в виду?
В прочем мы с тобой это уже обсуждали несколько лет тому назад
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
27.07.2018, 15:42
Цитата Сообщение от ValeryS Посмотреть сообщение
ибо системы счисления разные
Не системы счисления, а системы отображения порядка числа. 16 в десятичной всегда однозначно переводятся в 0b10000 двоичной. А вот 105 перевести в 2x, чтоб x был целым, нельзя никак, т.к. log102 есть трансцендентное число.

Добавлено через 8 минут
В общем по сумме всего - автору искать или делать библиотеку или которая работает с обыкновенными дробями, или библиотеку которая работает с числами с десятичным основанием степени (тогда ошибки вычисления будут более прозрачными для понимания).
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21287 / 8312 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
27.07.2018, 16:37
Цитата Сообщение от ValeryS Посмотреть сообщение
В прочем мы с тобой это уже обсуждали несколько лет тому назад
Мы-то с тобой оба это понимаем. А вот начинающие, прочтя твой пост, могут сделать для себя неверные выводы. Поэтому дальнейшее пояснение не для тебя, а для этих самых начинающих (ну и для ТС'а):

Цитата Сообщение от ValeryS Посмотреть сообщение
что есть "не работает"?
Берём тест из поста #24 и добавляем печать с большим количеством знаков после запятой

C
#include <stdio.h>
 
int main (void)
{
  double a=1.23456789;
  double b=a*100+0.5;
  int c=(int)b;
  double d=(double)c/100.0;
  printf ("%.20f\n", d);
}
Code
$ gcc t.c
$ ./a.out
1.22999999999999998224
Т.е. сей способ НЕ округляет число. Значение по прежнему отличается от ожидаемого (т.е. от результата округления на бумаге). Всё "округление" сводится лишь к тому, что в печати с дефолтным значением точности создаётся видимость того, что округление реально отработало

К тому же у ТС, если я правильно понял, другая задача. Ему нужно работать с точным значением числа, а вовсе не напечатать на экране видимость того, что число точное. А для работы с точными значениями есть только один способ - программная эмуляция. Т.е. через специальные библиотеки
1
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
27.07.2018, 16:43
Цитата Сообщение от TRam_ Посмотреть сообщение
Не системы счисления, а системы отображения порядка числа.
двоичная и десятичная это не системы счисления?
Цитата Сообщение от TRam_ Посмотреть сообщение
А вот 105 перевести в 2x, чтоб x был целым, нельзя никак
серьезно?
105=100000=0b1100001101010000=216+215+210+29+27+25

а вот здесь
Цитата Сообщение от TRam_ Посмотреть сообщение
16 в десятичной всегда однозначно переводятся в 0b10000 двоичной.
16 это десять в какой степени?
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
27.07.2018, 16:48
Цитата Сообщение от ValeryS Посмотреть сообщение
серьезно?
Тут 7 слагаемых с разной степенью, а мне нужно одно. Причём можно даже с коэффициентом (но не равным 105 и целочисленным). Ешё раз - я говорю о той степени, которая называется порядком числа. И в которое возводится основание, определяющее положение плавающей точки.

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
16 это десять в какой степени?
В степени 1.2041199826559247808549...
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
27.07.2018, 16:53
Цитата Сообщение от Evg Посмотреть сообщение
К тому же у ТС, если я правильно понял, другая задача.
насколько я понял у ТС непонимание что числа хранятся в машине не так как пишет человек на бумаге, и к тому же болезнь " немогуостановится"
почему он не меряет расстояние до Луны с точностью до микронов,ангстремов....
После первых измерений ему показалось, что картина распределения получится слишком грубой. Он решил уточнить методику. Перебрал несколько сортов нитей подвески. Поставил сверхчувствительный гальванометр. Затем ему пришло в голову автоматически стабилизировать температуру прибора. Учесть искажающее влияние трансформатора…

— Почему вы не учитываете полярных сияний? Заряды кота у сторожихи? — спросил его Аникеев. — Вы больны. Болезнь называется «немогуостановиться». Научитесь себя ограничивать. Получили примерную величину и двигайте дальше. Искать истину в последней инстанции — зряшный труд. И существует ли она, эта последняя инстанция?
(с) Д. Гранин "Иду на грозу"

Добавлено через 2 минуты
Цитата Сообщение от TRam_ Посмотреть сообщение
Тут 7 слагаемых с разной степенью, а мне нужно одно.
значит десятичное будет не в целой степени
Цитата Сообщение от TRam_ Посмотреть сообщение
В степени 1,2041199826559247808549...
что сии точки означают, уж не бесконечную дробь ли?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21287 / 8312 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
27.07.2018, 16:55
Цитата Сообщение от ValeryS Посмотреть сообщение
насколько я понял у ТС непонимание что числа хранятся в машине не так как пишет человек на бумаге
Это не только у ТС. Думается, это как минимум у половины форума. К сожалению, по простому такие вещи донести не получается. А если уходить в конкретику, то получится слишком сложно

Цитата Сообщение от ValeryS Посмотреть сообщение
и к тому же болезнь "немогуостановится"
Для начала болезнь "не могу внятно сформулировать хотелку". А потому никто не понимает, чего в точности он хочет. А понимали бы - давно бы дали совет, как поступить

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
(с) Д. Гранин "Иду на грозу"
Взял на заметку для прочтения

1
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
27.07.2018, 17:11
C++
1
что сии точки означают, уж не бесконечную дробь ли?
Именно её и означают. Не была бы она бесконечной - тогда можно было бы скомбинировать превращение 10 в 16 с помощью корней и степеней, а так всё ещё хуже :
Цитата Сообщение от ValeryS Посмотреть сообщение
значит десятичное будет не в целой степени
т.е. основание 10 будет в степени бесконечной дроби. И поэтому одно в другое в целых величинах не переводится. И даже (т.к. дробь бесконечная) даже в целых корнях не переводится.

Добавлено через 3 минуты
Цитата Сообщение от Evg Посмотреть сообщение
А понимали бы - давно бы дали совет, как поступить
Автор просто хочет проверить точность математики, не зная математики, но с помощью же математики . Те примеры, которые он дал в посте #6 показывают, что скорее всего не знаком с обыкновенными дробями и не слышал о нахождении наибольшего общего делителя.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
27.07.2018, 17:42
Цитата Сообщение от TRam_ Посмотреть сообщение
.е. основание 10 будет в степени бесконечной дроби. И поэтому одно в другое в целых величинах не переводится.
так об том и речь
0
0 / 0 / 0
Регистрация: 27.11.2017
Сообщений: 22
27.07.2018, 17:49
Стоит ли вам так округлять для сравнения до n знаков не вижу смысла, ведь это можно считать ошибкой.
ведь одно дело когда 5,0005 == 5, другое когда 0,001==0,0015
Но может это вам поможет, когда мне нужно было выводить фиксированной длины знаков после зпт, то я либо в процессе расчета, либо перед выводом, округлял их с помощью round или других функций округления

обычно до 3 знаков требовалось
round(znachenie * 1000) / 1000

или мб вам стоит перед началом умножить значения переменных на 100000 , провести расчеты,а перед сравнением снова разделить на 100000 и вывести результаты.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
27.07.2018, 18:45
Цитата Сообщение от SemenTVS Посмотреть сообщение
то я либо в процессе расчета, либо перед выводом, округлял их с помощью round или других функций округления
это очень страшная фраза. SemenTVS, покажите-ка пример того, как Вы
Цитата Сообщение от SemenTVS Посмотреть сообщение
в процессе расчета
Цитата Сообщение от SemenTVS Посмотреть сообщение
округлял их с помощью round или других функций округления
0
-2 / 1 / 0
Регистрация: 18.07.2018
Сообщений: 84
27.07.2018, 23:52  [ТС]
Никто не понимает, чего в точности он хочет. А понимали бы - давно бы дали совет, как поступить
Для конкретики вопроса, скомпилируйте этот участок кода, и вы поймете о чем я говорю. Вот это и есть суть моего вопроса.

Вписать распознание кириллицы придется самим, потому что я не знаю пока как именно ее распознавать, меня пока так все устраивает...

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
// Наглядный пример.cpp: определяет точку входа для консольного приложения
// То что хочет сказать автор, приведено тут. Это не выдуманные значения,
// это пример из реальной практики, вот почему и появилась эта тема.
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
float Number1;
float Number2;
float Number3;
float Result;
float UserResult;
 
void Calc(float& Number1, float& Number2, float& Number3, float& Result)
{
    Number1 = -74731;
    Number2 = -91589;
    Number3 = -97027;
    Result = Number1 / Number2 / Number3;
 
    cout << "Результат, который вичислил копилятор и поместил в переменную Result." << Result << endl;
    cout << "Вот так:-8.40939720e-06 выглядит результат в переменной Result когда видишь его через отлдачик." << endl;
    cout << "Попробуйте вычислить это на калькуляторе, и посмотрите разницу в представлении результата..." << endl;
 
    cin >> UserResult;
 
    if (UserResult == Result)
    {
        cout << "Ответы совпадают. Вы гений!! Вы смогли вычислить и поместить в переменную UserResult такие же каракули как и у меня (компилятора)." << endl;
        cout << "По вам Нобелевская премия плачет." << endl;
    }
    else
    {
        cout << "Аааа, не получается просто переписать результат указанный выше? Надо стараться, мой друг, учи математику." << endl;
    };
 
};
 
int main()
{
 
    Calc(Number1, Number2, Number3, Result);
 
    return 0;
}
Добавлено через 6 минут
Эти примеры решаются методами описанными вами выше, уважаемые форумчане, но просто задумка этой программы, чтоб человек, который не в курсе всех этих премудростей математики, мог просто потренироваться в вычислении подобных примеров (не знаю зачем ему это, но просто такой кайф у него в свободное время), и чтоб просто порешав на бумаге, он мог ввести свои результаты и они совпадали с тем, что "на решал" компьютер.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
27.07.2018, 23:56
Цитата Сообщение от "txtbit;
Вот так:-8.40939720e-06 выглядит результат в переменной Result когда видишь его через отлдачик.
Число хранится в форме мантисса*2^экспонента. У вас запись в форме мантисса*10^экспонента. То есть, экспонента меньше в log2(10) раз. А так как точного значения логарифма десяти по основанию два отладчик не знает, при пересчете мантиссы получаем ошибки округления.
Цитата Сообщение от "txtbit Посмотреть сообщение
cin >> UserResult;
Попытка ввести 0.что-то там, это попытка ввести десятичную дробь. Еще раз получаем ошибки округления.
Цитата Сообщение от "txtbit Посмотреть сообщение
if (UserResult == Result)
И конечно же, итоговое число с исходным уже не совпадает.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.07.2018, 23:56

Каков принцип работы парсера?
Здравствуйте! Можете какой нибудь парсер объяснить? Именно как он работает, можно даже продемонстрировать код с комментариями, буду очень...

Aspnet_regsql: каков принцип работы
Вопрос такого плана - пытаюсь добавить таблички с пользователями с помощью этой утилиты - если добавляю в БД на сервере то добавляется, но...

GZipstream - каков принцип многопоточного сжатия/распаковки?
Добрый день! Интересует тема сходная с https://www.cyberforum.ru/csharp-beginners/thread921121.html. Организовал многопоточное сжатие,...

Каков принцип работы клиент-серверного приложения
Структура прилажения такая: Клиент весит и ждет пока сервер пришлет текст, сервер отсылает клиенту текст, клиент записывает текст в...

Каков принцип работы самого простого web crawler?
Здравствуйте! Каков принцип работы самого простого web crawler? В Интернете нашел несколько вариантов: нужно сохранить все ссылки сайта,...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru