Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/41: Рейтинг темы: голосов - 41, средняя оценка - 4.56
30 / 30 / 21
Регистрация: 19.02.2011
Сообщений: 171

Исправить ошибки в тесте Миллера и тесте Соловея-Штрассена

10.03.2014, 20:40. Показов 8795. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Надо написать программу, которая имеет 2 алгоритма:

Тест Миллера
http://ru.wikipedia.org/wiki/%... %B5%D0%BB)

и

Тест Соловея-Штрассена
http://ru.wikipedia.org/wiki/%... 0%BD%D0%B0



Я написал, но имеются какие-то ошибки. Не могли бы Вы посмотреть? За ранее спасибо.

Вот код [cut]
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.03.2014, 20:40
Ответы с готовыми решениями:

Ошибки в тесте
Сделал что-то типа теста. Если выбираю в ИЗМЕНЕНИЕ теста во втором вопросе, что правильный вариант первый, то потом тест ломается. С чем...

Найти ошибки в тесте
В общем седня закончил второй курс Cisco (для малых сетей, CCNA2). Финальный тест сдал средненько. Не ожидал что будет таким сложным. Хотя...

1С Профессионал по платформе. Ошибки в тесте
Добрый день. Столкнулся со следующей проблемой При сдаче на сертификат 1С Профессионал по платформе 8.3 был вопрос 11.28 Каким...

19
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
11.03.2014, 16:15
Simak63, загрузите пожалуйста архив на форум.
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,009
11.03.2014, 19:22
Лови.
Вложения
Тип файла: rar Тест.rar (335.8 Кб, 132 просмотров)
0
30 / 30 / 21
Регистрация: 19.02.2011
Сообщений: 171
11.03.2014, 21:16  [ТС]
gunslinger , спасибо что архив перезалил на форум
0
30 / 30 / 21
Регистрация: 19.02.2011
Сообщений: 171
13.03.2014, 08:36  [ТС]
Тема ещё популярная. помогите пожалуйста
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
13.03.2014, 08:57
Simak63, не знаю найдется ли кто смелый переписать за вас полностью всю программу. Так как если исправить там все ошибки, то она как раз вся и перепишется.
Вы бы сами что-нибудь поделали, переделали чуток. Глядишь, народ и потянется.

кому лениво качать
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include <math>
#include <windows.h>
#include <windef.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
 
 
//Тест  Миллера
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
 
{
 Label1->Caption="";
 long n; //n > 2, нечётное натуральное число, которое необходимо проверить на простоту;
 long k; //k — какое-то число.
 long m;
 long s=0, q, i, j;
  bool pr;
 n=StrToInt(Edit1->Text);
 k=StrToInt(Edit2->Text);
 
/////////////////////////ШАГ 1////////////////////////////////////
 while (k % n == 0)
 {
 k = k/n;
if (k == 0)
pr=true;
if(pr){Label1->Caption="Составное";break;}
if (Label1->Caption!="Составное")
Label1->Caption="Простое";
}
/////////////////////////ШАГ 2/////////////////////////////////////////
while (!((n-1)%int(pow(2,s))))
 s++;
 s--;
 q=(n-1)/pow(2,s);
  i=1;
 ////////////////////////ШАГ 3//////////////////////////////////////////
 pr=true;
 if (i<=m) {i++;}
 if(i>m){Label1->Caption="Простое"; break;}
 ////////////////////////ШАГ 4/////////////////////////////////////////
 if ( pi % n == 0)
 if(){Label1->Caption="Составное"; break;}
 pow(p,q)%n;
 ////////////////////////ШАГ 5////////////////////////////////////////
 if(((pow(p,q*pow(2,s))%n)!=1)
 {Label1->Caption="Составное"; break;}
 ////////////////////////ШАГ 6////////////////////////////////////////
 if((pow(p,q)%n)==1){pr=false; break;}
 j=max(j,pow(p,q*pow(2,j))%n)!=1);
 ////////////////////////ШАГ 7/////////////////////////////////////////
 if((pow(p,q*pow(2,j))%n)==n-1)
 {pr=false; break;}
 ////////////////////////ШАГ 8//////////////////////////////////////////
 if (pr) {Label1->Caption="Составное"; break;}
 
}
 
 
 
 
 
 
//Тест Соловея-Штрассена
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Label1->Caption="";
 long n; //n > 2, нечётное натуральное число, которое необходимо проверить на простоту;
 long k; //k — параметр, определяющий точность теста.
 long  t, x, a;
 bool pr;
 n=StrToInt(Edit3->Text);
 k=StrToInt(Edit4->Text);
 
 randomize();
 for (int i=1; i<k; i++)
  {
  pr=true;
   a=random(n-2)+2;
if (nod(a,n) > 1
{Label4->Caption="Составное"; break;}
if((pow(a,(n-1)/2))!=(a/n)%n)
{Label4->Caption="Составное"; break;}
}
 
 
long nod(long a, long n)
{
    while (a && n)
        if (a >= n)
           a %= n;
        else
           n %= a;
    return a | n;
}
//---------------------------------------------------------------------------
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
17.03.2014, 20:52
Цитата Сообщение от Simak63 Посмотреть сообщение
Не могли бы Вы посмотреть?
Посмотрел, спасибо
1
30 / 30 / 21
Регистрация: 19.02.2011
Сообщений: 171
17.03.2014, 20:57  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
Посмотрел, спасибо
А исправить ошибки?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
17.03.2014, 21:01
Цитата Сообщение от Simak63 Посмотреть сообщение
А исправить ошибки?
Например, какие?
0
30 / 30 / 21
Регистрация: 19.02.2011
Сообщений: 171
17.03.2014, 22:51  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
Например, какие?
Ну исходники есть. При компиляции всё показано.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.03.2014, 23:29
Цитата Сообщение от Simak63 Посмотреть сообщение
А исправить ошибки?
Может ты это сделаешь это за нас?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
18.03.2014, 05:32
gunslinger, добавь файл vcl60.bpl.
0
30 / 30 / 21
Регистрация: 19.02.2011
Сообщений: 171
18.03.2014, 07:12  [ТС]
Обновил исходники
Вложения
Тип файла: rar Тест.rar (300.4 Кб, 65 просмотров)
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
18.03.2014, 07:35
И что не так?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
18.03.2014, 11:22
Цитата Сообщение от Simak63 Посмотреть сообщение
Ну исходники есть. При компиляции всё показано.
Другими словами, ты считаешь, что тебе кто-то что-то должен. Я принципиально не помогаю людям, которые вообще ничего не хотят делать сами. Просьба в личку больше мне ничего не писать
2
30 / 30 / 21
Регистрация: 19.02.2011
Сообщений: 171
18.03.2014, 18:02  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
Я принципиально не помогаю людям, которые вообще ничего не хотят делать сами.
Вы не правы, так как я скидываю вам исходник, который дорабатываю и прошу помощи. Посмотреть ошибки и отредактировать их.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.03.2014, 18:49
Бесплатным учителем никто не нанимался.
Либо вы конкретны в описании проблемы и уважительно относитесь к форумчанам, либо вас просто посылают игнорируют ....
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
18.03.2014, 20:02
Цитата Сообщение от Simak63 Посмотреть сообщение
Вы не правы, так как я скидываю вам исходник, который дорабатываю и прошу помощи. Посмотреть ошибки и отредактировать их.
Прга ни о каких ошибках не сообщает.
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,009
21.03.2014, 14:19
Лучший ответ Сообщение было отмечено Simak63 как решение

Решение

Simak63, у тебя в реализации теста Миллера, честно говоря, бардак.
Написал код на основе той информации, что есть в Википедии (алгоритм показался мне избыточным, некоторые условия кажутся излишними, может быть, старею; точное математическое описание не искал). Два момента под сомнением, см. пояснительный текст в программе. Проверил на достаточно большом количестве чисел, ошибочные результаты получаются при 11-значных числах.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// нахождение остатка от деления на n числа number, возведенного в степень power
// доп. информация: http://stackoverflow.com/questions/8496182/calculating-powa-b-mod-n
// unsigned long long можно попробовать заменить на unsigned __int64
unsigned long long mod(unsigned int number, unsigned long long power, unsigned long long n)
{
  unsigned long long res = 1;
  while (power)
  {
    if (power % 2)
      res = (1ull * res * number) % n;
    number = (1ull * number * number) % n;
    power /= 2;
  }
  return res;
}
Тест Миллера:
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
  unsigned long long i, temp, n = 2971215073ull;
  bool not_prime = 0;
  const count = 58;
  // p - массив простых чисел, их (возможно) должно быть достаточно, поэтому не применяется вычисление значений каждый раз
  // pq - "коэффициенты", их кол-во невелико, можно использовать динамический массив, но для простоты взят "статический"
  unsigned int s = 0, q, m, j, k, p[count] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,\
      131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271}, pq[count];
 
// (1) проверка n на то, является ли оно степенью числа
  for (i = 3; i <= sqrt(n); i+=2)
  {
    temp = n;
    unsigned int power = 0;
    while (temp/i > 0 && temp%i == 0)
    {
      temp /= i;
      power++;
    }
    if (temp == 1 && power > 1)
    {
      ShowMessage("составное (является степенью числа)");
      not_prime = 1;
      break;
    }
  }
 
  if (!not_prime)
  {
// (2) определяем первые m простых чисел p[m]
// функция f(n) = n^0.133 определяется из того, что расширенная гипотеза Римана не доказана
// иначе можно использовать f(n) = 2*log^2(n)
// здесь и далее в коментариях ^ - возведение в степень
    for (m = 0; m < count-1; m++)
      if (p[m]<=pow(n, 0.133) && pow(n, 0.133)<=p[m+1])
      {
        m++;
        break;
      }
// находим s и q, где n-1 = q*2^s, q - нечетное
    temp = n-1;
    while (temp/2 > 0 && temp%2 == 0)
    {
      temp /= 2;
      s++;
    }
    q = (n-1)/pow(2, s);
// i=1, (4)
 
// (3) если i<=m, то i=i+1
    for (i = 1; i <= m; i++)
    {
// (4) не очень понятна запись p[i] | n
// полагаю, что означает она делимость n на p[i], т.е. является ли p[i] делителем n
      if (n % p[i-1] == 0)
      {
        ShowMessage("составное (делится на простое)");
        not_prime = 1;
        break;
      }
// вычисляем p[i]^q mod n, p[i]^(q*2) mod n, ..., p[i]^(q*2^s) mod n, обозначим их pq[i]
      for (j = 0; j <= s; j++)
        pq[j] = mod(p[i-1], q*pow(2, j), n);
// (5) проверяем условие pq[i]^(q*2^s) != 1, если да, то число составное
      if (pq[s] != 1)
      {
        ShowMessage("составное (остаток от деления на pq[s] после возведения в степень не равен 1)");
        not_prime = 1;
        break;
      }
// (6) проверяем условие pq[i]^q == 1, если да, то идем на (3)
      if (pq[0] == 1)
        continue;
// тут тоже мало понятно, предположил, что нужно найти индекс j, для которого pq[j] максимален и не равен 1
      temp = 0;
      for (j = 0; j <= s; j++)
        if (pq[j] != 1 && pq[j] > temp)
        {
          temp = pq[j];
          k = j;  // запоминаем индекс j (в переменной k)
        }
// (7) если pq[j] (j=k, см. чуть выше), то (3)
      if (pq[k] == n-1)
        continue;
 
// (8)
      ShowMessage("составное");
      not_prime = 1;
    }
// (3) случай i>m
    if (!not_prime)
      ShowMessage("простое");
  }
Добавлено через 19 часов 21 минуту
Второй тест (Соловея-Штрассена).

НОД (алгоритм Евклида):
C++
1
2
3
4
5
6
7
8
9
10
11
unsigned __int64 nod(unsigned __int64 m, unsigned __int64 n)
{
  while(m!=0 && n!=0)
  {
    if(m>=n)
      m%=n;
    else
      n%=m;
  }
  return m+n;
}
Символ Якоби:
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
int jacob_char(unsigned __int64 a, unsigned __int64 b)
{
  if (nod(a, b) != 1)
    return 0;
  else
  {
    int r = 1;
    if (a < 0)
    {
      a = -a;
      if (b%4 == 3)
        r = -r;
    }
    do
    {
      int t = 0;
      while (a%2 == 0)
      {
        t += 1;
        a /= 2;
      }
      if (t%2 == 1 && (b%8 == 3 || b%8 == 5))
          r = -r;
      if (a%4 == 3 && b%4 == 3)
        r = -r;
      unsigned __int64 c = a;
      a = b%c;
      b = c;
    }
    while (a != 0);
    return r;
  }
}
Тест Соловея-Штрассена (для указанных значений n и a считает простое число n составным, хотя a нечетное и даже простое; либо ошибка в описании алгоритма, либо я что-то не понимаю):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  unsigned __int64 n = 45212177, k = 1, i, a;
  bool not_prime = 0;
  randomize();
  for (i = 1; i <= k; i++)
  {
// a должно быть случайным, например, random(n-4)+3;
// думаю, что числа a не должны повторяться и должны быть нечетными
    a = 17;
/*  ShowMessage(a);
    ShowMessage(nod(a, n));
    ShowMessage(mod(a, (n-1)/2, n));
    ShowMessage(jacob_char(a, n));*/
    if (nod(a, n) > 1 || mod(a, 1ull*(n-1)/2, n) != jacob_char(a, n))
    {
      ShowMessage("n составное");
      not_prime = 1;
      break;
    }
  }
  if (!not_prime)
    ShowMessage("n простое с вероятностью " + String(1.-pow(2., -k*1.)));
Функция mod описана ранее.
2
 Аватар для S0l0mka
1 / 1 / 0
Регистрация: 09.04.2013
Сообщений: 5
08.03.2015, 15:48
если в условии сравнения mod с символом Якоби поставить не "!=" а "<=" то все считает правильно)
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
//---------------------------------------------------------------------------
 
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#pragma hdrstop
 
using namespace std;
//---------------------------------------------------------------------------
//пример простых чисел 13, 109, 193, 433, 769, 1201, 1453, 2029, 3469, 3889, 4801, 10093, 12289, 13873, 18253, 20173, 21169, 22189, 28813, 37633, 43201, 47629, 60493, 63949, 65713, 69313, 73009, 76801, 84673, 106033, 108301, 112909, 115249
// нахождение остатка от деления на n числа number, возведенного в степень power
 long long mod( int number,  long long power,  long long n)
{
  unsigned long long res = 1;
  while (power)
  {
    if (power % 2)
      res = (res * number) % n;
    number = (number * number) % n;
    power /= 2;
  }
  return res;
}
 
 long NOD(long m, long n)
{
  while(m!=0 && n!=0)
  {
    if(m>=n)
      m%=n;
    else
      n%=m;
  }
  return m+n;
}
 
int jacob_char(int a, int b)
{
  if (NOD(a, b) != 1)
    return 0;
  else
  {
    int r = 1;
    if (a < 0)
    {
      a = -a;
      if (b%4 == 3)
        r = -r;
    }
    do
    {
      int t = 0;
      while (a%2 == 0)
      {
        t += 1;
        a /= 2;
      }
      if (t%2 != 0 && (b%8 == 3 || b%8 == 5))
          r = -r;
      if (a%4 == 3 && b%4 == 3)
        r = -r;
      int c = a;
      a = b%c;
      b = c;
    }
    while (a != 0);
    return r;
  }
}
 
int main(int argc, char* argv[])
{
        long n;/*n>2, нечетное натуральное число, которое необходимо проверить на простоту*/
        long k;/* параметр, определяющий точность теста*/
        long a;
        double t;
        int flag = 0;
                 
 
        cin>>n;
        cin>>k;
        t=1-1/pow(2.0,k);
                    
            for (int i=1; i <= k; i++)
            {
            a=rand()%(n-2)+2;
            if (NOD(a, n) > 1)
            {
                
                flag=1;
                break;
            }
            else if ( mod(a,(n-1)/2,n) <= jacob_char(a, n))
            {
                
                flag=2;
                break;
            }
            }
        
              
  if (flag !=0)
  {
      cout<<"sostavnoe \n";
  }
  else
       cout<<"prostoe s veroyatnost'u = " << t << "\n";
     getch();                                 
   
    
                
    return 0;
}
//---------------------------------------------------------------------------
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.03.2015, 15:48
Помогаю со студенческими работами здесь

Решение ошибки при тесте
Всем привет! Решаю задачку на codeforces, не совсем понимаю почему при тестах мое решение не проходит. Если можно, то распишите...

Повторение в программе-тесте, как исправить?
Программа тест читает вопросы из текстового файла, вопросов всего 20 шт. Проблема в том что она повторяет эти вопросы Помогите...

Парни, подскажите пожалуйста нубу на ошибки в тесте
Уже третий раз пытаюсь сдать тест и окончательно сам себя запутал. Зеленым отмечены мои ответы. Судя по результатам почти треть...

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

Рандом в тесте
У меня есть код, который запускает тест, но мне надо добавить так, чтобы вопросы выпадали на рандом и без повторов, но как? Imports...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru