Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/56: Рейтинг темы: голосов - 56, средняя оценка - 4.98
Старичок :)
 Аватар для Uinslou
728 / 315 / 5
Регистрация: 03.04.2011
Сообщений: 1,430

Программа, которая переводит числа в слова

30.07.2011, 12:39. Показов 10665. Ответов 13
Метки нет (Все метки)

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

Есть код:

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
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
 
string NumericToString(int n)
{
    string ret;
    int i, index, ir;
    for(i = n % 10, n = (int)n / 10, index = 1; true; i = n % 10, n = (int)n / 10, index++)
    {
        switch(index)
        {
        case 1: switch(i)
                {
        case 0: ret = "ноль" + ret;
            break;
        case 1: ret = "один" + ret;
            break;
        case 2: ret = "два" + ret;
            break;
        case 3: ret = "три" + ret;
            break;
        case 4: ret = "четире" + ret;
            break;
        case 5: ret = "пять" + ret;
            break;
        case 6: ret = "шесть" + ret;
            break;
        case 7: ret = "семь" + ret;
            break;
        case 8: ret = "восемь" + ret;
            break;
        case 9: ret = "девять" + ret;
            break;
                }
                break;
        case 2:
            switch(i)
            {
            case 1:
                {
                    switch (ir)
                    {
                    case 0: ret = "десять";
                        break;
                    case 1: ret = "одиннадцать";
                        break;
                    case 2: ret = "двенадцать";
                        break;
                    case 3: ret = "тринадцать";
                        break;
                    case 4: ret = "четырнадцать";
                        break;
                    case 5:
                        ret = "пятнадцать";
                        break;
                    case 6: ret  = "шестнадцать";
                        break;
                    case 7: ret = "семнадцать";
                        break;
                    case 8: ret = "восемнадцать";
                        break;
                    case 9: ret = "девятнадцать";
                        break;
                    }
                    break;
                }
            case 2: ret = "двадцать";
                break;
            case 3: ret = "тридцать";
                break;
            case 4: ret = "сорок";
                break;
            case 5: ret = "пятьдесят";
                break;
            case 6: ret = "шестьдесят";
                break;
            case 7: ret = "семьдесят";
                break;
            case 8: ret = "восемьдесят";
                break;
            case 9: ret = "девяносто";
                break;
            case 0: ret = "";
                break;
            }
            break;
        }
        ir = i;
        if ( n == 0 )
        { 
            break;
        }
    }
    if(!ret.empty())
    {
        ret[0] = _toupper(ret[0]);
    }
    return ret;
}
Подскажите пожалуйста почему не работает. Это программа, которая переводит числа в слова (1=один). Спасибо заранее.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.07.2011, 12:39
Ответы с готовыми решениями:

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

Программа которая переводит из 2ой системы в 10ую
Создать программу которая переводит из двоичной системы в десятичную. P.S вообще то я знаю как переводить 2ую в 10ую, ну например -...

Программа, которая переводит число из 2-й системы счисления в 16-ую
Программа, которая переводит число из 2-й системы счисления в 16-ую.

13
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
30.07.2011, 12:41
C++
1
for(i = n % 10, n = (int)n / 10, index = 1; true; i = n % 10, n = (int)n / 10, index++)
блин, зачем так быдлокодить то? сложно очень разобрать, что вы хотели сделать.
0
Старичок :)
 Аватар для Uinslou
728 / 315 / 5
Регистрация: 03.04.2011
Сообщений: 1,430
30.07.2011, 13:02  [ТС]
Так в чём же проблема ?

З.Ы. Код не мой.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
30.07.2011, 13:18
Цитата Сообщение от Uinslou Посмотреть сообщение
Так в чём же проблема ?
это нам у вас надо спросить, почему не разберетесь в чужем коде? если разобрались бы то и нашли бы ошибку
1
Старичок :)
 Аватар для Uinslou
728 / 315 / 5
Регистрация: 03.04.2011
Сообщений: 1,430
30.07.2011, 16:00  [ТС]
Цитата Сообщение от Maxwe11 Посмотреть сообщение
это нам у вас надо спросить, почему не разберетесь в чужем коде? если разобрались бы то и нашли бы ошибку
Я сюда за помощью пришёл, а не за нравоучениями. Давай не будем оффтопить и вернёмся к теме.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
30.07.2011, 16:08
Цитата Сообщение от Uinslou Посмотреть сообщение
Я сюда за помощью пришёл, а не за нравоучениями. Давай не будем оффтопить и вернёмся к теме.
ок, начнем с самого начала тобишь 1-го поста этой темы)

Цитата Сообщение от Uinslou Посмотреть сообщение
Подскажите пожалуйста почему не работает.
Вы написали не работает, и даже неудосужились уточнить как не работает - ошибки компиляции или ошибки линковки или неправильная логика и как следствие неправильный результат на выходе.
Обратились за помощью, так имейте уважение и опишите проблему полностью. К тому же вы выложили в 1-м посте не программу, а лишь ее часть.
1
5 / 5 / 1
Регистрация: 30.07.2011
Сообщений: 257
30.07.2011, 16:29
Цитата Сообщение от Uinslou Посмотреть сообщение
Так в чём же проблема ?

З.Ы. Код не мой.
Ну не в своей программе разобраться гораздо сложнее.

Значит так, можно просто задать массив слов.
Например массив со словами ноль, ... , девять (надеюсь это то вы делать умеете).
Вначале надо как-то обработать исключания. Например десять, одиннадцать, сорок, сто, двести и.т.п
Потом найти общее: (дваДЦАТЬ, триДЦАТЬ), (пятьДЕСЯТ, шестьДЕСЯТ).
После ста уже всё сходится к обычному динамическому программированию. Вычисляем первые два разряда и по динамике.

Надеюсь помог
0
Старичок :)
 Аватар для Uinslou
728 / 315 / 5
Регистрация: 03.04.2011
Сообщений: 1,430
30.07.2011, 16:31  [ТС]

Не по теме:

Цитата Сообщение от Maxwe11 Посмотреть сообщение
Вы написали не работает, и даже неудосужились уточнить как не работает - ошибки компиляции или ошибки линковки или неправильная логика и как следствие неправильный результат на выходе.
Обратились за помощью, так имейте уважение и опишите проблему полностью. К тому же вы выложили в 1-м посте не программу, а лишь ее часть.
Я с железом работаю, на программера только учусь. Человек просто попросил скинуть код, чтобы ребята с форума помогли, а не писали какой я плохой, не изучил код. Я понимаю что Вы "гуру" в это деле и надо это показать, но довольно слов, перейдём к делу.



Значит так, можно просто задать массив слов.
Например массив со словами ноль, ... , девять (надеюсь это то вы делать умеете).
Вначале надо как-то обработать исключания. Например десять, одиннадцать, сорок, сто, двести и.т.п
Потом найти общее: (дваДЦАТЬ, триДЦАТЬ), (пятьДЕСЯТ, шестьДЕСЯТ).
После ста уже всё сходится к обычному динамическому программированию. Вычисляем первые два разряда и по динамике.
Спасибо Вам большое, сейчас буду пробывать
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
30.07.2011, 16:36
Uinslou, ну раз уж "человек попросил", то
в начале using namespace std;
+ #include <string>
0
30.07.2011, 17:24

Не по теме:

Цитата Сообщение от Uinslou Посмотреть сообщение
Я с железом работаю, на программера только учусь. Человек просто попросил скинуть код, чтобы ребята с форума помогли, а не писали какой я плохой, не изучил код. Я понимаю что Вы "гуру" в это деле и надо это показать, но довольно слов, перейдём к делу.
ну насчет меня вы ошибаетесь, я тоже не "гуру", я тоже студент, вот только учусь я не на программера, а на программиста

0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
31.07.2011, 02:27
C++
1
for(i = n % 10, n = (int)n / 10, index = 1; true; i = n % 10, n = (int)n / 10, index++)
Это что-то страшное и ползучее)) никогда не выходящее из цикла. А попросту черти что.
вот код, конечно тяжело заставить машину "соображать", а вдруг выстрелит мозг гения)), но это точно не мой. Вот код, просто и понятный
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
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string _1 = " один";
    string _2 = " два";
    string _3 = " три";
    string _4 = " четыре";
    string _5 = " пять";
    string _6 = " шесть";
    string _7 = " семь";
    string _8 = " восемь";
    string _9 = " девять";
    string _0 = "ноль";
    string _10 = "десять";
    string _11 = "одиннадцать";
    string _12 = "двенадцать";
    string _13 = "тринадцать";
    string _14 = "четырнадцать";
    string _15 = "пятнадцать";
    string _16 = "шестнадцать";
    string _17 = "семнадцать";
    string _18 = "восемнадцать";
    string _19 = "девятнадцать";
    string _20 = "двадцать";
    string _30 = "тридцать";
    string _40 = "сорок";
    string _50 = "пятьдесят";
    string _60 = "шестьдесят";
    string _70 = "семьдесят";
    string _80 = "восемьдесят";
    string _90 = "девяносто";
    string tmp;
    int x, y;
    //по умолчанию работаем число меньше ста
    cin >> x;
    y = x%10;
    if (x < 100 && x >= 0){
        switch (y){
            case 1: tmp = _1; break;
            case 2: tmp = _2; break;
            case 3: tmp = _3; break;
            case 4: tmp = _4; break;
            case 5: tmp = _5; break;
            case 6: tmp = _6; break;
            case 7: tmp = _7; break;
            case 8: tmp = _8; break;
            case 9: tmp = _9; break;
        }
 
        if (x<10){
            if (x==0) cout << _0;
            if (x==1) cout << _1;
            if (x==2) cout << _2;
            if (x==3) cout << _3;
            if (x==4) cout << _4;
            if (x==5) cout << _5;
            if (x==6) cout << _6;
            if (x==7) cout << _7;
            if (x==8) cout << _8;
            if (x==9) cout << _9;
        }
        else if (x < 20){
            if (x==10) cout << _10;
            if (x==11) cout << _11;
            if (x==12) cout << _12;
            if (x==13) cout << _13;
            if (x==14) cout << _14;
            if (x==15) cout << _15;
            if (x==16) cout << _16;
            if (x==17) cout << _17;
            if (x==18) cout << _18;
            if (x==19) cout << _19;
        }
        else if (x < 30){
            if (y == 0) cout << _20;
            else cout << _20 + tmp;
        }
        else if (x < 40){
            if (y == 0) cout << _30;
            else cout << _30 + tmp;
        }
        else if (x < 50){
            if (y == 0) cout << _40;
            else cout << _40 + tmp;
        }
        else if (x < 60){
            if (y == 0) cout << _50;
            else cout << _50 + tmp;
        }
        else if (x < 70){
            if (y == 0) cout << _60;
            else cout << _60 + tmp;
        }
        else if (x < 80){
            if (y == 0) cout << _70;
            else cout << _70 + tmp;
        }
        else if (x < 90){
            if (y == 0) cout << _80;
            else cout << _80 + tmp;
        }
        else if (y == 0) cout << _90;
        else cout << _20 + tmp;
    }
    return 0;
}
1
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
31.07.2011, 10:55
Читайте правильные книжки... Вот из моей С++.Экспресс-курс:
Здесь только руссификацию надо заменить на что-нить более подходящее. А то написано было еще в 2002 году для VC++6.

Числа — прописью
Напишем программу, которая чрезвычайно востребована в реальной жизни: вывод числа прописью. Мы не будем писать совсем уж универсальный вариант, так как наша цель — просто поучиться использовать тип string в реальной программе. Ограничим наши числа положительными целыми в диапазоне от 1 до 999 999 999 — такие числа целиком помещаются в целую переменную типа int.

Замечание
Если требуются большие числа, то в системе Visual C++ мы можем использовать нестандартный целый тип __int64. Стандартное решение — использовать структуру с двумя полями типа long.

Мы не зря написали число 999 999 999 с пробелами между тройками чисел — числительные от 1 до 999 пишутся одинаково, независимо от местоположения. Вся разница — в слове после очередной тройки: старшая — это миллионы, средняя — это тысячи, а младшая — непосредственно рубли. Поэтому естественно написать функцию, которая получает число от 1 до 999, и выдает результат типа string. В этом случае мы сможем инкапсулировать все массивы числительных в этой процедуре. Однако миллионы и рубли у нас мужского рода, а тысячи — женского. Поэтому вместо «один» и «два» надо писать «одна» и «две». В остальном числительные полностью совпадают. Поэтому мы должны прописать второй параметр типа bool, который всегда будет false, а для тысяч — true (листинг 5.6).
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
Листинг 5.6. Функция toNumeral — трехзначное число прописью
 //--обрабатывает только 3-хзначное число
string toNumeral(unsigned long Number, bool Thousands)
{ string units    [] = 
  {"один","два","три","четыре","пять","шесть", "семь","восемь","девять"}; 
  string tens     [] = 
  {"десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят",
   "семьдесят", "восемьдесят","девяносто"}; 
  string hundreds [] =
  {"сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот",
   "восемьсот","девятьсот"}; 
  string secondten[] = 
  {"одиннадцать","двенадцать","тринадцать","четырнадцать","пятнадцать",
   "шестнадцать","семнадцать","восемнадцать","девятнадцать"}; 
  string Women    [2]= {"одна","две"};    
  string result("");                                // пустая строка-результат
  typedef unsigned char byte;   
  byte digits[3] = {0};                 // - цифры числа
  unsigned long n = Number;
  digits[0] = n % 10;               //--младшая цифра
  digits[1] = (n / 10) % 10;            //--средняя цифра
  digits[2] = n / 100;                  //--старшая цифра
  if (digits[2]>0) result +=(hundreds[digits[2]-1]+" "); 
  if (digits[1]>0)
  { if ((digits[1]==1)&&(digits[0]!=0)) 
    { result +=(secondten[digits[0]-1]+" "); return result; }
    else result +=(tens[digits[1]-1]+" ");
  }
  if (digits[0]>0) 
  { if (((digits[0]>2)&&(digits[1]!=1))||(!Thousands)) 
      result +=(units[digits[0]-1]+" ");
    else result +=(Women[digits[0]-1]+" ");
  }
  return result;
}
Вначале объявляются и инициализируются массивы числительных: в каждом массиве ровно 9 элементов. Затем объявляется и заполняется массив для трех цифр числа: младшая цифра — по меньшему индексу. Наконец, начинаются проверки цифр и получение строки-результата. Первоначально строка-результат пустая. Если очередная цифра не равна нулю, то к строке-результату прицепляется очередное числительное. Особый случай составляет вторая цифра: если она равна 1, то мы тут же проверяем третью. Если она не равна нулю, то мы прицепляем числительное из массива secondten и выходим. При определении единиц для 1 или 2 используется массив Women для числительного женского рода.
Обратите также внимание на то, как вычисляется индекс числительного — это довольно распространенный прием. Протестируем нашу функцию (листинг 5.7).
C++
1
2
3
4
5
6
7
8
9
10
Листинг 5.7. Тестовая программа для функции toNumeral
int main()
{ unsigned long Number[] = 
  {1,2,9,10,11,19,20,21,22,45,100,101,102,109,110,118,150,870,912,999};
  int k = sizeof(Number)/sizeof(unsigned long);
  char s[200]={0}; 
  for (int i = 0; i < k; ++i)
  { CharToOem(toNumeral(Number[i],true).c_str(),s); cout<<s<<endl;  }
  return 0;
}
В этой программе мы объявили тестовый массив Number, и вычислили его длину. Затем в цикле выполняется непосредственное обращение к функции перекодировки. Мы не стали использовать написанные нами ранее функции Rus (см. листинги 4.9 и 5.4). Первый операнд написан несколько необычно. Поскольку мы не записали результата в переменную, система создает анонимный временный объект. Наша функция toNumeral возвращает string, поэтому у результата (временного объекта) есть метод c_str(). Использование временных объектов — полезный прием, которым мы еще не раз будем применять.

Теперь напишем функцию, которая будет формировать наше число прописью. Очевидно, эта функция должна трижды вызвать функцию toNumeral, прицепляя после каждого вызова соответствующее слово (листинг 5.8).
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
Листинг 5.8. Сумма — прописью  
string Numeral(unsigned int Number)
{   string what_[3][3] = {{"миллион", "миллиона", "миллионов" },
                {"тысяча",  "тысячи",   "тысяч"     },
                {"рубль","рубля","рублей"}};
    unsigned int t = Number;
    unsigned int treads[3];     //--вычисление троек числа
    treads[0]=t%1000; treads[1]=t/1000%1000; treads[2]=t/1000000;
    string result = "";
    if (treads[2] > 0) { result +=toNumeral(treads[2], false);
    if (treads[2]/10 % 10==1) result += what_[0][2];                    //-1-
    else 
        switch (treads[2] % 10)
    { case 0: case 5: case 6: case 7: case 8: case 9: 
                                           result += what_[0][2]; break;
      case 2: case 3: case 4: result += what_[0][1]; break;
      case 1:                  result += what_[0][0]; break;
    }
    result+=' ';
    }
    if (treads[1] > 0) { result +=toNumeral(treads[1], true);
    if (treads[1]/10 % 10==1) result += what_[1][2];                      //-2-
    else switch (treads[1] % 10)
    { case 0: case 5: case 6: 
          case 7: case 8: case 9: result += what_[1][2]; break;
      case 2: case 3: case 4: result += what_[1][1];break;
      case 1:                  result += what_[1][0];break;
    }
    result+=' ';
    }
       result +=toNumeral(treads[0], false);
    if (treads[0]/10 % 10==1) result += what_[2][2];                      //-3-
    else switch (treads[0] % 10)
    { case 0: case 5: case 6: 
         case 7: case 8: case 9: result += what_[2][2];break;
      case 2: case 3: case 4: result += what_[2][1];break;
      case 1:            result += what_[2][0];break;
    }
    result+=' ';
    return result;
}
Как видите, получилась довольно простая программа. Единственное, на что надо обратить внимание — это помеченные цифрам строки: если у нас вторая цифра в тройке равна 1, то можно сразу прицеплять нужное слово. В стальных случаях мы должны анализировать последнюю цифру. Можно еще больше упростить функцию, если выделить в отдельную функцию совершенно однотипные действия в операторе switch, но оставим это на упражнения.
Протестировать нашу программу очень просто: надо в листинге 5.7 увеличить тестовый массив, задав уже и тысячи, и миллионы, и заменить первый параметр в вызове функции CharToOem
C++
1
CharToOem(Numeral(Number[i]).c_str(), s);
2
31.07.2011, 16:43

Не по теме:

[quote=Uinslou;1876321]case, case, case, case, case, case, case ... CASE CASE CASE CASE/quote]
ааааа, не давайте ему программировать, ну пожалуйста.

0
Старичок :)
 Аватар для Uinslou
728 / 315 / 5
Регистрация: 03.04.2011
Сообщений: 1,430
31.07.2011, 18:50  [ТС]
Спасибо огромное за помощь всем, ребят

Не по теме:

З.Ы.

я не на программера, а на программиста
Ну простите меня не грамотного.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.07.2011, 18:50
Помогаю со студенческими работами здесь

Не компилится программа, которая переводит градусы Цельсия по Фарангейту и наоборот
Это 2 моя прога, первая была простая которая выводила Hello World так что не судите если код плохой,еще учусь. Нужно написать...

Написать программу, которая переводит числа с шестнадцатеричной системы в десятичную
С использованием функции hex, а также без неё.

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

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

Программа на C++, которая переводит цветовую модель RGB в модель HSV
Всем привет! Я - начинающий программист. Мне нужна ваша помощь. Мне нужно сделать программу на C++, которая переводит цветовую модель RGB в...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru