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

Пожалуйста, покритикуйте код

24.09.2017, 11:46. Показов 682. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Стиль, логика, реализация, все что угодно. Заранее благодарен за любые замечания или советы. Делал в VS 2015


Задача 1, вывод даты прописью

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include <locale.h>
#include <Windows.h>
 
using namespace std;
 
//23.09.2017
void Date_Short(int Day, int Month, int Year)
{
    cout << Day << '.';
    if (Month < 10)
        cout << '0';
    cout << Month << '.' << Year << endl;
}
 
//23 сентября 2017 г.
void Date_Full(int Day, int Month, int Year)
{
    //пишем день
    cout << Day;
 
    //пишем месяц
    switch (Month)
    {
    case 1:cout << " января "; break;
    case 2:cout << " февраля "; break;
    case 3:cout << " марта "; break;
    case 4:cout << " апреля "; break;
    case 5:cout << " мая "; break;
    case 6:cout << " июня "; break;
    case 7:cout << " июля "; break;
    case 8:cout << " августа "; break;
    case 9:cout << " сентября "; break;
    case 10:cout << " октября "; break;
    case 11:cout << " ноября "; break;
    case 12:cout << " декабря "; break;
    }
 
    //пишем год
    
    cout << Year << " г." << endl;
}
 
//Дата прописью
void Date_In_Words(int Day, int Month, int Year)
{
    //массивы слов для написания чисел прописью 
    //("" - просто занять нулевой элемент для удобства счета)
    char *Thousands[] = { "", "одна тысяча ","две тысячи " };
    char *Thousands_Year[] = { "","тысячного ","двухтысячного ","трехтысячного " };
    char *Hundreds[] = { "", "сто ", "двести ","триста ","четыреста ","пятьсот ",
        "шестьсот ","семьсот ","восемьсот ","девятьсот " };
    char *Hundreds_Year[] = { "", "сотого ", "двухсотого ","трехсотого ","четырехсотого ","пятисотого ",
        "шестисотого ","семисотого ","восьмисотого ","девятисотого " };
    char *Tens[] = { "","десять ","двадцать ","тридцать ","сорок ","пятьдесят ",
        "шестьдесят ","семьдесят ","восемьдесят ","девяносто " };
    char *Tens_Day[] = { "","десятое ","двадцатое ","тридцатое " };
    char *Tens_Year[] = { "","десятого ","двадцатого ","тридцатого ","сорокового ","пятидесятого ",
        "шестидесятого ","семидесятого ","восьмидесятого ","девяностого " };
    char *Units_Day[] = { "","первое ","второе ","третье ","четвертое ","пятое ",
        "шестое ","седьмое ", "восьмое ", "девятое " };
    char *Units_Year[] = { "","первого ","второго ","третьего ","четвертого ","пятого ",
        "шестого ","седьмого ", "восьмого ", "девятого " };
    char *Eleven_Day[] = { "","одиннадцатое ", "двенадцатое ","тринадцатое ","четырнадцатое ","пятнадцатое ",
        "шестнадцатое ","семнадцатое ", "восемнадцатое ","девятнадцатое " };
    char *Eleven_Year[] = { "","одиннадцатого ", "двенадцатого ","тринадцатого ","четырнадцатого ","пятнадцатого ",
        "шестнадцатого ","семнадцатого ", "восемнадцатого ","девятнадцатого " };
 
    //вычленяем цифры числа поразрядно
    int D2 = Day / 10;//десятки
    int D1 = Day % 10;//единицы
 
    //вычленяем цифры года поразрядно
    int Y4 = Year / 1000;
    int Y3 = (Year % 1000) / 100;
    int Y2 = (Year % 100) / 10;
    int Y1 = Year % 10;//единицы
 
    //пишем число
 
    if (D2)//есть десятки
    {
        if (D2 == 1 && D1) //11-19
            cout << *(Eleven_Day + D1);
        else if (!D1) // *0
            cout << *(Tens_Day + D2);
        else //есть единицы и не 11-19
            cout << *(Tens + D2);
    }
    if (D2 != 1 && D1) //есть единицы и не 11-19
        cout << *(Units_Day + D1);
 
    //пишем месяц
    switch (Month)
    {
    case 1:cout << "января "; break;
    case 2:cout << "февраля "; break;
    case 3:cout << "марта "; break;
    case 4:cout << "апреля "; break;
    case 5:cout << "мая "; break;
    case 6:cout << "июня "; break;
    case 7:cout << "июля "; break;
    case 8:cout << "августа "; break;
    case 9:cout << "сентября "; break;
    case 10:cout << "октября "; break;
    case 11:cout << "ноября "; break;
    case 12:cout << "декабря "; break;
    }
 
    //пишем год
    if (Y4)//есть тысячи
    {
        if (Y3 || Y2 || Y1) //есть сотни, десятки или единицы
            cout << *(Thousands + Y4);
        else //*000
            cout << *(Thousands_Year + Y4);
    }
    if (Y3)//есть сотни
    {
        if (Y2 || Y1) // есть десятки или единицы
            cout << *(Hundreds + Y3);
        else
            cout << *(Hundreds_Year + Y3);// **00
    }
    if (Y2)//есть десятки
    {
        if (Y2 == 1 && Y1)//**11-**19
            cout << *(Eleven_Year + Y1);
        else if (!Y1) //***0
            cout << *(Tens_Year + Y2);
        else //есть единицы и не **11 - **19
            cout << *(Tens + Y2);
    }
    if (Y2 != 1 && Y1) //есть единицы и не **11 - **19
        cout << *(Units_Year + Y1);
 
    cout << "года" << endl;
    
}
 
void main()
{
    //  while(1){
 
    setlocale(LC_ALL, "Rus");
    SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
    SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода
 
    //год
    char Year_char[256];
    int Year = 0;
 
    while (Year < 1 || Year>3000)
    {
        cout << "Введите год от 1 до 3000: ";
        gets_s(Year_char);
        Year = atoi(Year_char);
    }
 
    //високосный или нет
    bool Leap_Year = ((!(Year % 4) && Year % 100) || !(Year % 400));
        
 
    //месяц
    char Month_char[256];
    int Month = 0;
    while (!Month || Month > 12)//проверяем
    {
        cout << "Введите месяц от 1 до 12: ";
        gets_s(Month_char);
        Month = atoi(Month_char);
    }
 
    //день
    char Day_char[256];
    int Day = 0;
 
    while (Day < 1)//проверяем
    {
        cout << "Введите день: ";
        gets_s(Day_char);
        Day = atoi(Day_char);
        if (Month == 2 && Day > 29 && Leap_Year)
        {
            cout << Year << " високосный год, в феврале 29 дней. ";
            Day = 0;
        }
        if (Month == 2 && Day > 28 && !Leap_Year)
        {
            cout << Year << " не високосный год, в феврале 28 дней. ";
            Day = 0;
        }
        if ((Month == 1 || Month == 3 || Month == 5 || Month == 7 ||
            Month == 8 || Month == 10 || Month == 12) && Day > 31)
        {
            cout << "В ";
            switch (Month)
            {
            case 1:cout << "январе "; break;
            case 3:cout << "марте "; break;
            case 5:cout << "мае "; break;
            case 7:cout << "июле "; break;
            case 8:cout << "августе "; break;
            case 10:cout << "октябре "; break;
            case 12:cout << "декабре "; break;
            }
            cout << "31 день. ";
            Day = 0;
        }
        if ((Month == 4 || Month == 6 || Month == 9 || Month == 11) && Day > 30)
        {
            cout << "В ";
            switch (Month)
            {
            case 4:cout << "апреле "; break;
            case 6:cout << "июне "; break;
            case 9:cout << "сентябре "; break;
            case 11:cout << "ноябре "; break;
            }
            cout << "30 дней. ";
            Day = 0;
        }
    }
 
 
    cout << "Ваша дата:" << endl;
    Date_Short(Day, Month, Year); //23.09.2017
    Date_Full(Day, Month, Year); //23 сентября 2017 г.
    Date_In_Words(Day, Month, Year); //Дата прописью
 
    //}
}


Задача 2. Определить день недели по дате

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include <locale.h>
#include <Windows.h>
 
using namespace std;
 
 
//23 сентября 2017 г.
void Date_Full(int Day, int Month, int Year)
{
    //пишем день
    cout << Day;
 
    //пишем месяц
    switch (Month)
    {
    case 1:cout << " января "; break;
    case 2:cout << " февраля "; break;
    case 3:cout << " марта "; break;
    case 4:cout << " апреля "; break;
    case 5:cout << " мая "; break;
    case 6:cout << " июня "; break;
    case 7:cout << " июля "; break;
    case 8:cout << " августа "; break;
    case 9:cout << " сентября "; break;
    case 10:cout << " октября "; break;
    case 11:cout << " ноября "; break;
    case 12:cout << " декабря "; break;
    }
 
    //пишем год
 
    cout << Year << " г.";
}
 
void Day_of_week(int Day, int Month, int Year) 
{
    int count = 6;//1 января 1583 г. была суббота
    
    //прибавляем года
    for (int i = 1583; i < Year; i++)
    {
        count += 365;
        if ((!(i % 4) && i % 100) || !(i % 400))
            count++;
    }
 
    //прибавляем месяцы
    for (int i = 1; i < Month; i++)
    {
        if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
            count += 31;
        else if (i == 4 || i == 6 || i == 9 || i == 11)
            count += 30;
        else
        {
            count += 28;
            if ((!(Year % 4) && Year % 100) || !(Year % 400))
                count++;
        }
    }
 
    //прибавляем дни
    count += (Day - 1);
 
    switch (count%7)
    {
    case 1:cout << "понедельник"; break;
    case 2:cout << "вторник"; break;
    case 3:cout << "среда"; break;
    case 4:cout << "четверг"; break;
    case 5:cout << "пятница"; break;
    case 6:cout << "суббота"; break;
    case 0:cout << "воскресенье"; break;
    }
 
}
 
void main()
{
    //  while(1){
 
    system("cls");
 
    setlocale(LC_ALL, "Rus");
    SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
    SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода
 
                              //год
    char Year_char[256];
    int Year = 0;
 
    while (Year < 1 || Year>3000)
    {
        cout << "Введите год от 1583 до 3000: ";
        gets_s(Year_char);
        Year = atoi(Year_char);
        if (Year < 1583)
        {
            cout << "Григорианский календарь был введен в 1582 году. ";
            Year = 0;
        }
    }
 
    //високосный или нет
    bool Leap_Year = ((!(Year % 4) && Year % 100) || !(Year % 400));
 
    //месяц
    char Month_char[256];
    int Month = 0;
    while (!Month || Month > 12)//проверяем
    {
        cout << "Введите месяц от 1 до 12: ";
        gets_s(Month_char);
        Month = atoi(Month_char);
    }
 
    //день
    char Day_char[256];
    int Day = 0;
 
    while (Day < 1)//проверяем
    {
        cout << "Введите день: ";
        gets_s(Day_char);
        Day = atoi(Day_char);
 
        if (Month == 2 && Day > 29 && Leap_Year)
        {
            cout << Year << " високосный год, в феврале 29 дней. ";
            Day = 0;
        }
        if (Month == 2 && Day > 28 && !Leap_Year)
        {
            cout << Year << " не високосный год, в феврале 28 дней. ";
            Day = 0;
        }
        if ((Month == 1 || Month == 3 || Month == 5 || Month == 7 ||
            Month == 8 || Month == 10 || Month == 12) && Day > 31)
        {
            cout << "В ";
            switch (Month)
            {
            case 1:cout << "январе "; break;
            case 3:cout << "марте "; break;
            case 5:cout << "мае "; break;
            case 7:cout << "июле "; break;
            case 8:cout << "августе "; break;
            case 10:cout << "октябре "; break;
            case 12:cout << "декабре "; break;
            }
            cout << "31 день. ";
            Day = 0;
        }
        if ((Month == 4 || Month == 6 || Month == 9 || Month == 11) && Day > 30)
        {
            cout << "В ";
            switch (Month)
            {
            case 4:cout << "апреле "; break;
            case 6:cout << "июне "; break;
            case 9:cout << "сентябре "; break;
            case 11:cout << "ноябре "; break;
            }
            cout << "30 дней. ";
            Day = 0;
        }
    }
 
    Date_Full(Day, Month, Year); //23 сентября 2017 г.
    cout << " - ";
    Day_of_week(Day, Month, Year);
    cout << endl;
 
                                     //}
}
Задача 3. Вывод числа прописью

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
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include <locale.h>
#include <Windows.h>
 
using namespace std;
 
void Write(int H, int T, int U, char *Elements[])
{
    //массивы слов для написания чисел прописью 
    //("" - просто занять нулевой элемент для удобства счета)
    char *Hundreds[] = { "", "сто ", "двести ","триста ","четыреста ","пятьсот ",
        "шестьсот ","семьсот ","восемьсот ","девятьсот " };
    char *Tens[] = { "","десять ","двадцать ","тридцать ","сорок ","пятьдесят ",
        "шестьдесят ","семьдесят ","восемьдесят ","девяносто " };
    char *Units[] = { "","один ","два ","три ","четыре ","пять ","шесть ","семь ", "восемь ", "девять " };
    char *Feminine[] = { "","одна ","две " };//"... одна тысяча, "... две тысячи"
    char *Eleven[] = { "","одиннадцать ", "двенадцать ","тринадцать ","четырнадцать ","пятнадцать ",
        "шестнадцать ","семнадцать ", "восемнадцать ","девятнадцать " };
 
    if (H) //есть сотни
        cout << *(Hundreds + H);
    if (T) //есть десятки
    {
        if (T == 1 && U) //*11-*19
            cout << *(Eleven + U);
        else
            cout << *(Tens + T);
    }
    if (U && T != 1)//есть единицы, кроме *11-*19
    {
        if (!strcmp(*Elements, "тысяча ") && (U == 1 || U == 2))
            cout << *(Feminine + U);
        else
            cout << *(Units + U);
    }
 
    //"тысяч", "миллионов"...
    if (U == 1 && T != 1)
        cout << *Elements;
    else if ((U > 1 && U < 5) && T != 1)
        cout << *(Elements + 1);
    else
        cout << *(Elements + 2);
}
 
void Number_In_Words(int Num_int)
{
    //вычленяем цифры числа поразрядно
    int F9 = Num_int / 100000000;//сотни миллионов
    int F8 = (Num_int % 100000000) / 10000000;
    int F7 = (Num_int % 10000000) / 1000000;
    int F6 = (Num_int % 1000000) / 100000;
    int F5 = (Num_int % 100000) / 10000;
    int F4 = (Num_int % 10000) / 1000;
    int F3 = (Num_int % 1000) / 100;
    int F2 = (Num_int % 100) / 10;
    int F1 = Num_int % 10;//единицы
 
    if (F9 || F8 || F7)//если есть миллионы
    {
        char *Millions[] = { "миллион ","миллиона ","миллионов " };
        Write(F9, F8, F7, Millions);
    }
 
    if (F6 || F5 || F4)//если есть тысячи
    {
        char *Thousands[] = { "тысяча ","тысячи ","тысяч " };
        Write(F6, F5, F4, Thousands);
    }
 
    if (F3 || F2 || F1)//это условие нужно убрать, если Empty содержит "рубли", "штуки" и т.п.
    {
        char *Empty[] = { "","","" };//при необходимости можно использовать для "рублей", "штук" и т.п.
        Write(F3, F2, F1, Empty);
    }
 
    /* Или можно так:
 
    if (F1 == 1)
    cout << "рубль ";
    else if (F1 > 1 && F1 < 5)
    cout << "рубля ";
    else
    cout << "рублей ";
    */
 
}
 
void main()
{
    //  while(1){ - для многократной проверки на разных числах
    setlocale(LC_ALL, "Rus");
    SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
    SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода
 
 
    char Num_char[256];
    int Num_int = 0;
    while (Num_int < 1 || Num_int > 999999999)
    {
        cout << "Введите число от 1 до 999 999 999: ";
        gets_s(Num_char);
        Num_int = atoi(Num_char);
    }
 
    cout << "Ваше число - ";
    Number_In_Words(Num_int);
 
    cout << endl;
    //  }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.09.2017, 11:46
Ответы с готовыми решениями:

Покритикуйте пожалуйста программу
Student.h#ifndef _STUDENT_H #define _STUDENT_H class Student { public: Student(); void del(); ...

Шифратор пароля. Покритикуйте пожалуйста.
Это моя первая программка на С++, если кому не лень, натычте меня носом в ляпы. Чтобы не топтаться по граблям. :) #include...

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

14
 Аватар для axela002
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
24.09.2017, 11:54
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char *Thousands[] = { "", "одна тысяча ","две тысячи " };
* * char *Thousands_Year[] = { "","тысячного ","двухтысячного ","трехтысячного " };
* * char *Hundreds[] = { "", "сто ", "двести ","триста ","четыреста ","пятьсот ",
* * * * "шестьсот ","семьсот ","восемьсот ","девятьсот " };
* * char *Hundreds_Year[] = { "", "сотого ", "двухсотого ","трехсотого ","четырехсотого ","пятисотого ",
* * * * "шестисотого ","семисотого ","восьмисотого ","девятисотого " };
* * char *Tens[] = { "","десять ","двадцать ","тридцать ","сорок ","пятьдесят ",
* * * * "шестьдесят ","семьдесят ","восемьдесят ","девяносто " };
* * char *Tens_Day[] = { "","десятое ","двадцатое ","тридцатое " };
* * char *Tens_Year[] = { "","десятого ","двадцатого ","тридцатого ","сорокового ","пятидесятого ",
* * * * "шестидесятого ","семидесятого ","восьмидесятого ","девяностого " };
* * char *Units_Day[] = { "","первое ","второе ","третье ","четвертое ","пятое ",
* * * * "шестое ","седьмое ", "восьмое ", "девятое " };
* * char *Units_Year[] = { "","первого ","второго ","третьего ","четвертого ","пятого ",
* * * * "шестого ","седьмого ", "восьмого ", "девятого " };
* * char *Eleven_Day[] = { "","одиннадцатое ", "двенадцатое ","тринадцатое ","четырнадцатое ","пятнадцатое ",
* * * * "шестнадцатое ","семнадцатое ", "восемнадцатое ","девятнадцатое " };
* * char *Eleven_Year[] = { "","одиннадцатого ", "двенадцатого ","тринадцатого ","четырнадцатого ","пятнадцатого ",
* * * * "шестнадцатого ","семнадцатого ", "восемнадцатого ","девятнадцатого " }
Скажу на счет этого своё мнение , я бы просто записал это всё в один ассоциативный массив. Возни было бы меньше.
В 3-й задаче также.
И да, редко вижу использование switch case , так что молодец что не стал писать 100 if`ов )
0
1 / 1 / 0
Регистрация: 18.05.2017
Сообщений: 12
24.09.2017, 12:09  [ТС]
Цитата Сообщение от axela002 Посмотреть сообщение
я бы просто записал это всё в один ассоциативный массив. Возни было бы меньше
Не могли бы пояснить, как вы это видите? Я пока ассоциативные массивы не изучал.

Цитата Сообщение от axela002 Посмотреть сообщение
И да, редко вижу использование switch case , так что молодец что не стал писать 100 if`ов )
свич недолюбливаю, если честно, почему-то от него один дискомфорт)) Но для простейших переборов удобно, и код выглядит читабельнее, кмк
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
24.09.2017, 12:13
Цитата Сообщение от mps298 Посмотреть сообщение
Но для простейших переборов удобно, и код выглядит читабельнее, кмк
А почему не сделали через массив?

C++
1
2
3
4
5
6
char const *strs = {
   " января ",
   /*...*/
};
//...
std::cout << strs[Month - 1];
0
 Аватар для axela002
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
24.09.2017, 12:20
Цитата Сообщение от mps298 Посмотреть сообщение
Не могли бы пояснить, как вы это видите? Я пока ассоциативные массивы не изучал.
Тут можно и не ассоциативный массив , а обычный , просто проще брать все данные из 1-го массива, чем из 10-тки массивов.
А ассоциативный массив - это когда у элемента массива есть ключ. И по этому ключу ищете значение в массиве.
А лучше всего используйте библиотеку STL для массивов, там уже всё продумано до мелочей в том числе и ассоциативные массивы и выделение и освобождение памяти.
0
1 / 1 / 0
Регистрация: 18.05.2017
Сообщений: 12
24.09.2017, 12:55  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
А почему не сделали через массив?
В данном случае мне нужно просто вывести месяц на экран, сохранять его в виде строки не требуется, поэтому создание ненужного массива показалось избыточным

Добавлено через 12 минут
Цитата Сообщение от axela002 Посмотреть сообщение
Тут можно и не ассоциативный массив , а обычный , просто проще брать все данные из 1-го массива, чем из 10-тки массивов.
Ну можно и так было, я думал об этом, но потом решил, что вид *(Разряд+количество) нагляднее.

Цитата Сообщение от axela002 Посмотреть сообщение
А лучше всего используйте библиотеку STL для массивов, там уже всё продумано до мелочей
Это я тоже пока не изучал.

Строго говоря, С++ я вообще еще не изучал, только С (да и то, как я потом понял, не С, а адскую смесь С и С++)
0
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
24.09.2017, 13:02
C++
1
2
3
4
5
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include <locale.h>
#include <Windows.h>
Не мешайте хедеры в стиле C++ и С. С WinApi понятно, а для остальных есть же альтернативы с префиксом "c" (например, cstring).
Эккель писал, что это может привести к некоторым проблемам. Да и эстетически же так будет получше.
C++
1
char *Hundreds[]
Если уж вы решили бахнуть такой огромный массив как локальную переменную в функции, не забывайте о static. Также пишите
C++
1
const char * const hundreds [] = ...
, сами подумайте, зачем это нужно. Также, как и static.
В свитч, в соответствии с хорошим стилем, должен быть default.
C++
1
using namespace std;
Это очень плохо. Уже если так лень писать каждый раз расширение области видимости, напишите, что используете определенные вещи.
C++
1
2
using std :: cout;
using std :: cin;...
В общем, по мелочам у вас много проблем. Просто возьмите компилятор g++, поставьте ему флаги в максимальном количестве по своему усмотрению и увидите, с какого раза ваш код скомпилируется.
2
1 / 1 / 0
Регистрация: 18.05.2017
Сообщений: 12
24.09.2017, 13:42  [ТС]
Цитата Сообщение от Notoriously Посмотреть сообщение
[using namespace std;] Это очень плохо. Уже если так лень...
Поясните, пожалуйста, в чем смысл каждый раз писать "std::", если можно сослаться на пространство 1 раз и забыть? В книжках пишут, что можно и так и так, почему это очень плохо?

Добавлено через 19 минут
Цитата Сообщение от Notoriously Посмотреть сообщение
Если уж вы решили бахнуть такой огромный массив как локальную переменную в функции, не забывайте о static. Также пишите

const char * const hundreds [] = ..., сами подумайте, зачем это нужно. Также, как и static.
К сожалению, я не вижу, в чем тут проблема. Как я это себе представляю - вызвали функцию, что-то объявили, применили, закрыли, забыли это что-то, оно больше нам не нужно и вообще не существует. Поясните, пожалуйста, в чем тут важность const и static, если я эти массивы не собираюсь сохранять для других целей?

Добавлено через 8 минут
Странно, про g++ не знаю, а VS вообще ни одного замечания при сборке не сделал
0
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
24.09.2017, 14:03
Цитата Сообщение от mps298 Посмотреть сообщение
почему это очень плохо?
нет тут ничего плохого, в учебных задачах только так и нужно писать
0
1 / 1 / 0
Регистрация: 18.05.2017
Сообщений: 12
24.09.2017, 14:10  [ТС]
Цитата Сообщение от afront Посмотреть сообщение
в учебных задачах только так и нужно писать
Нас по-другому и не учили пока, но я уже на всякий случай написал
C++
1
2
3
using std :: cout;
using std :: cin;
using std :: endl;
Все равно больше и правда ничего из std не используется, может, на будущее пригодится

И дефолтов в switch-case добавил. С const и static повременю, ибо пока не вкурил, в чем глубокий смысл.
0
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
24.09.2017, 15:37
Цитата Сообщение от mps298 Посмотреть сообщение
Поясните, пожалуйста, в чем тут важность const и static, если я эти массивы не собираюсь сохранять для других целей
Благо что вы Write используете всего один раз за время выполнение программы. Представьте, что ее приходится вызывать часто. Каждый раз на стеке создается весь этот массив. Несколько строк, это, конечно, немного, но пусть их будет пара десятков тысяч и они почему-то лежат внутри функции в локальной переменной. Как думаете, быстро ли их каждый раз создавать? Объявив переменную с квалификатором static вы уточняете, что переменная будет создана один раз, а при повторных вызовов она снова создаваться не будет. То есть между вызовами она не будет удаляться, вы не будете каждый раз ее создавать. У вас функция вызывается один раз, это не критично, но знать принцип работы static хотя бы на уровне внеклассовых переменных нужно.
Цитата Сообщение от mps298 Посмотреть сообщение
в чем смысл каждый раз писать "std::", если можно сослаться на пространство 1 раз и забыть
А вам нужно все пространство? Все сотни функций и классов, там определенных? На форуме это не раз обсуждалось, если не найдете сами по ключевым словам, дам ссылки на тему.
В хороших книгах обычно оговаривается, что в примерах книги именно так и будут делать, а вот в ваших программах такого надо избегать. Понятное дело, что у вас программа учебная, это не имеет значения. Но так вы начнете привыкать к плохому стилю, от чего потом не так быстро получиться отучиться.
Цитата Сообщение от mps298 Посмотреть сообщение
const
У вас массив именно константных строк. Вы сами задаете им значение, оно более не поменяется. Компилятор будет его знать еще на этапе компиляции. Правда, хорошо? А как ему помочь это понять? Использовать модификатор const, причем два раза - константный указатель на константную строку. Какой впоследствии будет от этого выигрыш, зависит от конкретного случая и компилятора. Но в общем случае, как советуют авторы как раз-таки хороших книг - если можем сказать, что переменная константная, делаем это. А еще лучше, если можем указать constexpr, но это пока лишняя информация.
Я повторюсь, или поставьте в настройках VS уровень предупреждений повыше или же проверяйте ваш код на g++.
(Если нет возможности использовать чистый g++, поставив Ubuntu, можно поставить Code::Blocks или QtCreator, которые используют компилятор MinGw - аналог g++ под Windows.) Указав нужные флаги, которые есть в документации, вы сможете получать больше ошибок компиляции, но меньше ошибок исполнения.
1
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
24.09.2017, 16:00
Цитата Сообщение от Notoriously Посмотреть сообщение
А вам нужно все пространство? Все сотни функций и классов, там определенных?
это совершенно ни при чем, использование std:: связано лишь с возможным конфликтом имен при использовании разных библиотек. А так линкер подгрузит вам лишь то, что вам нужно в данный момент
1
1 / 1 / 0
Регистрация: 18.05.2017
Сообщений: 12
24.09.2017, 18:57  [ТС]
Notoriously, спасибо, очень полезное разъяснение. В принципе, я понимаю, для чего объявляется static и const, просто ввиду отсутствия опыта практического программирования мне трудно оценить, насколько это важно в данном конкретном случае, как отразится на работе всамделишной пограммы и т.д.. Хотя как раз функция вывода числа или даты прописью какой-нибудь бухгалтерии или текстовом редакторе будет очевидно вызываться постоянно.

Так что, так и писать?
C++
1
static const char * const hundreds [] = ...
Добавлено через 7 минут
П.С. Программа, кстати, не учебная, это я просто в одной книжке листинг увидел с примером таких функций, они мне совершенно не понравились, там из чисел делали стринги, потом вычитывали поэлементно, как-то так, в итоге я запутался и решил лучше свои состряпать для тренировки, ну и в копилочку, а вдруг пригодится.

Добавлено через 12 минут
Цитата Сообщение от Notoriously Посмотреть сообщение
Я повторюсь, или поставьте в настройках VS уровень предупреждений повыше
Уровень4 (/W4) никаких замечаний не делает.

Выше только Включить все предупреждения (/Wall), но тогда вываливается 100500 сообщений типа "
C++
1
warning C4820: _DISK_INT13_INFO: "2"-байтовые поля добавлены после данные-член "_DISK_INT13_INFO::DriveSelect"
, я их вообще не понимаю, просто белый шум )) Но компилироваться не перестало.
0
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
24.09.2017, 20:47
mps298,
Вот итог компиляции вашей первой программы на g++ :
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
5.cpp: In function ‘void Date_Full(int, int, int):
5.cpp:24:12: error: switch missing default case [-Werror=switch-default]
     switch (Month)
            ^
5.cpp: In function ‘void Date_In_Words(int, int, int):
5.cpp:50:79: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
     char *Thousands[] = { "", "одна тысяча ","две тысячи " };
                                                                               ^
5.cpp:50:79: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:50:79: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:51:117: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
     char *Thousands_Year[] = { "","тысячного ","двухтысячного ","трехтысячного " };
                                                                                                                     ^
5.cpp:51:117: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:51:117: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:51:117: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:53:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
         "шестьсот ","семьсот ","восемьсот ","девятьсот " };
                                                                                           ^
5.cpp:53:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:53:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:53:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:53:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:53:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:53:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:53:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:53:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:53:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:55:115: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
         "шестисотого ","семисотого ","восьмисотого ","девятисотого " };
                                                                                                                   ^
5.cpp:55:115: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:55:115: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:55:115: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:55:115: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:55:115: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:55:115: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:55:115: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:55:115: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:55:115: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:57:103: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
         "шестьдесят ","семьдесят ","восемьдесят ","девяносто " };
                                                                                                       ^
5.cpp:57:103: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:57:103: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:57:103: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:57:103: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:57:103: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:57:103: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:57:103: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:57:103: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:57:103: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:58:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
     char *Tens_Day[] = { "","десятое ","двадцатое ","тридцатое " };
                                                                                           ^
5.cpp:58:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:58:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:58:91: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:60:125: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
         "шестидесятого ","семидесятого ","восьмидесятого ","девяностого " };
                                                                                                                             ^
5.cpp:60:125: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:60:125: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:60:125: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:60:125: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:60:125: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:60:125: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:60:125: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:60:125: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:60:125: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:62:81: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
         "шестое ","седьмое ", "восьмое ", "девятое " };
                                                                                 ^
5.cpp:62:81: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:62:81: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:62:81: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:62:81: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:62:81: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:62:81: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:62:81: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:62:81: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:62:81: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:64:89: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
         "шестого ","седьмого ", "восьмого ", "девятого " };
                                                                                         ^
5.cpp:64:89: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:64:89: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:64:89: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:64:89: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:64:89: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:64:89: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:64:89: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:64:89: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:64:89: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:66:124: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
         "шестнадцатое ","семнадцатое ", "восемнадцатое ","девятнадцатое " };
                                                                                                                            ^
5.cpp:66:124: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:66:124: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:66:124: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:66:124: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:66:124: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:66:124: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:66:124: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:66:124: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:66:124: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:68:132: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
         "шестнадцатого ","семнадцатого ", "восемнадцатого ","девятнадцатого " };
                                                                                                                                    ^
5.cpp:68:132: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:68:132: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:68:132: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:68:132: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:68:132: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:68:132: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:68:132: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:68:132: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:68:132: error: ISO C++ forbids converting a string constant to ‘char*[-Werror=write-strings]
5.cpp:95:12: error: switch missing default case [-Werror=switch-default]
     switch (Month)
            ^
5.cpp: At global scope:
5.cpp:142:11: error:::main’ must returnint’
 void main()
0
1 / 1 / 0
Регистрация: 18.05.2017
Сообщений: 12
24.09.2017, 22:10  [ТС]
Я правильно понимаю, что он ругается (кроме отсутствия дефолта и что main у меня пустая) как раз что я инициализирую неконстантные массивы константными строками? Т.е. как раз о чем выше говорилось?

Добавлено через 7 минут
Век живи... оказывается, в С++ строковой литерал это массив const char, а не char, как в Си.

C2440 can be caused if you attempt to initialize a non-const char* (or wchar_t*) by using a string literal in C++ code, when the compiler conformance option /Zc:strictStrings is set. In C, the type of a string literal is array of char, but in C++, it is array of const``char.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.09.2017, 22:10
Помогаю со студенческими работами здесь

Покритикуйте код
Есть класс Студенты (реализован через односвязный список), хотел бы услышать критику по поводу его улучшения, если кому не лень разбираться...

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

Покритикуйте код финкции нахождения интеграла
typedef double(*tfunc)(double); double integral(double start, end, func f, double dx) { double left, right, result; for (x=start,...

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

Покритикуйте, пожалуйста, код
Вот написал, но что-то не работает: using System; using System.Collections.Generic; using System.Linq; using System.Text; using...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru