Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Kotopold_3000
0 / 0 / 0
Регистрация: 13.10.2017
Сообщений: 17
1

Необработанное исключение, нарушение права доступа записи

20.10.2017, 14:49. Просмотров 816. Ответов 7
Метки нет (Все метки)

Добрый день! Пытаюсь сделать, вот эту лабораторную работу:
Даны вещественные числа a и b, x изменяется от а до b с шагом h=(b-a)/N, N=100.
Значения функции (согласно вариантам) записать в массив Arr. Вычислить значение интеграла, используя:
1) Формула трапеций
I1=h*(a[0]/2+a[1]+a[2]+…+a[N-1]+a[N]/2)
2) Формула Симпсона
I2=h/3*( a[0]+a[N] + 4*(a[1]+a[3]+…+a[N-1]) + 2*(a[2]+a[4]+…+a[N-2]))
Написал функции: F_F1,F_F2,F_F3...F_Fn - для формул функций .
Написал функции: F_Tramp(Arr, N, h) - для формулы трапеций и F_Sims(Arr, N, h) - для Симпсона.
Через switch case сделал выбор задачи. Всего 10 задач. И один раз вроде отрабатывает. Правда не уверен в верности вычислений, но сейчас это и не самое важное. Дело в том, что при выборе задачи чарез switch, то программа отрабатывает 1 раз, и когда я выбираю еще одну задачу то у меня происходит ошибка:" Необработанное исключение в "0x77c615ee" в "Лабораторная 2.exe": 0xC0000005: Нарушение прав доступа при записи "0xfd43c1dc"."
Если я выбираю 11 задачу в которой есть только printf, то она отрабатывает нормально. Ну или например ввожу другое значение не из интервала 1-11, то программа просит ввести другое значение. Как понимаю я , что то нахимичил с памятью. Вопрос, что такого я нахимичил и где можно поразбираться с этой темой? Гугл особо не помог. Скриншот ошибки в вложениях.
P.S.: "В СИ новичок, строго не судите)"

Вот, мой код:
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
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
#define _CRT_SECURE_NO_WARNINGS // для  использования scanf без ошибок
 
#include <stdio.h>
#include <stdlib.h>
 
#include <locale.h>
#include <time.h>
#include <math.h>
 
#define N 100
 
 
float F_F1(float x)
{
    return x * 2 / (10 + x * 3);
}
float F_F2(float x)
{
    return (2.5 * x * 2 - 0.1)/(tan(x) + sin(x));
}
float F_F3(float x)
{
    return (x + 1) * 2 * sqrt(log10(x));
}
float F_F4(float x)
{
    return x * 2 * log(x) / (1 + x) * 2;
}
float F_F5(float x)
{
    return 1 / ((0.5 + 0.1 * x * 3) * sqrt(x));
}
float F_F6(float x)
{
    return x * 2 * sqrt((2 + 3 * x) * 3);
}
float F_F7(float x)
{
    return 1 / sqrt((0.02 + 0.01 * x));
}
float F_F8(float x)
{
    return (1 + 2 * x  + x * 2)/(5 + 2 * x + 2);
}
float F_F9(float x)
{
    return (2 * x + log10(x)) / (1 + log10(x));
}
float F_F10(float x)
{
    return sqrt((2 + x) * 3 / x * 2);
}
 
 
float F_Sims(float *F_Arr, int Size, float F_h){//Формула Симпсона
    float F_Res = 0, F_Res1, F_Nchet = 0, F_Chet = 0;
    int j;
    F_Res1 = F_Arr[0] + F_Arr[Size];
    //F_Res = 0;
     for(j = 2; j <= Size - 2; j += 2){
           
        F_Chet += F_Arr[j];
    }
    for(j = 1; j <= Size - 1; j += 2){
        F_Nchet += F_Arr[j];
    }
    F_Res1 += 4 * F_Nchet;
    F_Res1 += 2 * F_Chet;
    F_Res = (F_h / 3) * F_Res1; 
    return F_Res;
}
float F_Tramp(float *F_Arr, int Size, float F_h){//Форсула Трапеций
    int j;
    float F_Res = 0; 
    for(j = 0; j <= Size; j++){
          
         if((j == 0) || (j == Size)){
               
              F_Res += F_Arr[j] / 2;
             
         } else {
                
           F_Res += F_Arr[j];
         }
    }
    F_Res *= F_h;
    return F_Res;
}
 
int main (){    
    
 
    float i ;
    int j = 0;
    float Arr[N+1];
    float res = 0; float res1 = 0;
    float chet = 0;
    float nchet = 0;
    float h = 0;
 
    char Otvet;
 
    int c;
 
    // интервал значений а и b  в зависимости от задачи.
    float a1 = -2, a2 = 4, a3 = 2,  a4 = 1,  a5 = 0.1, a6 = 0.5, a7 = 1,  a8 = -2, a9 = 1,  a10 = 0.2;  
    float b1 = 5,  b2 = 6, b3 = 10, b4 = 20, b5 = 2.1, b6 = 2.5, b7 = 30, b8 = 2,  b9 = 10, b10 = 10;
    
    
    srand(time(NULL));
    setlocale(LC_ALL,"Rus");
 
    
 
 
    do{
        system("cls");
        printf("1 - Задача\n");
        printf("2 - Задача\n");
        printf("3 - Задача\n");
        printf("4 - Задача\n");
        printf("5 - Задача\n");
        printf("6 - Задача\n");
        printf("7 - Задача\n");
        printf("8 - Задача\n");
        printf("9 - Задача\n");
        printf("10 - Задача\n");
        printf("11 - Трололо\n");
        printf("Выбирите номер задачи:\n");
        scanf("%d",&c);
        getchar();
        switch(c){
            case 1 :system("cls");
                h = (b1 - a1) / N;
                for(i = a1 ; i <= b1; i += h){
                     Arr[j] = F_F1(i); 
                     j++;
                }
                printf("Формулой трапеций:\n");
                printf("%.3f \n", F_Tramp(Arr, N, h));
                printf("Формулой Симпсона:\n");
                printf("%.3f \n", F_Sims(Arr, N, h));
                break;
            case 2 :system("cls");
                h = (b2 - a2) / N;
                for(i = a2 ; i <= b2; i += h){
                     Arr[j] = F_F2(i); 
                     j++;
                }
                printf("Формулой трапеций:\n");
                printf("%.3f \n", F_Tramp(Arr, N, h));
                printf("Формулой Симпсона:\n");
                printf("%.3f \n", F_Sims(Arr, N, h));
                break;
            case 3 :system("cls");
                h = (b3 - a3) / N;
                for(i = a3 ; i <= b3; i += h){
                     Arr[j] = F_F3(i); 
                     j++;
                }
                printf("Формулой трапеций:\n");
                printf("%.3f \n", F_Tramp(Arr, N, h));
                printf("Формулой Симпсона:\n");
                printf("%.3f \n", F_Sims(Arr, N, h));
                break;
            case 4 :system("cls");
                h = (b4 - a4) / N;
                for(i = a4 ; i <= b4; i += h){
                     Arr[j] = F_F4(i); 
                     j++;
                }
                printf("Формулой трапеций:\n");
                printf("%.3f \n", F_Tramp(Arr, N, h));
                printf("Формулой Симпсона:\n");
                printf("%.3f \n", F_Sims(Arr, N, h));
                break;
            case 5 :system("cls");
                h = (b5 - a5) / N;
                for(i = a5 ; i <= b5; i += h){
                     Arr[j] = F_F5(i); 
                     j++;
                }
                printf("Формулой трапеций:\n");
                printf("%.3f \n", F_Tramp(Arr, N, h));
                printf("Формулой Симпсона:\n");
                printf("%.3f \n", F_Sims(Arr, N, h));
                break;
            case 6 :system("cls");
                h = (b6 - a6) / N;
                for(i = a6 ; i <= b6; i += h){
                     Arr[j] = F_F6(i); 
                     j++;
                }
                printf("Формулой трапеций:\n");
                printf("%.3f \n", F_Tramp(Arr, N, h));
                printf("Формулой Симпсона:\n");
                printf("%.3f \n", F_Sims(Arr, N, h));
                break;
            case 7 :system("cls");
                h = (b7 - a7) / N;
                for(i = a7 ; i <= b7; i += h){
                     Arr[j] = F_F7(i); 
                     j++;
                }
                printf("Формулой трапеций:\n");
                printf("%.3f \n", F_Tramp(Arr, N, h));
                printf("Формулой Симпсона:\n");
                printf("%.3f \n", F_Sims(Arr, N, h));
                break;
            case 8 :system("cls");
                h = (b8 - a8) / N;
                for(i = a8 ; i <= b8; i += h){
                     Arr[j] = F_F8(i); 
                     j++;
                }
                printf("Формулой трапеций:\n");
                printf("%.3f \n", F_Tramp(Arr, N, h));
                printf("Формулой Симпсона:\n");
                printf("%.3f \n", F_Sims(Arr, N, h));
                break;
            case 9 :system("cls");
                h = (b9 - a9) / N;
                for(i = a9 ; i <= b9; i += h){
                     Arr[j] = F_F9(i); 
                     j++;
                }
                printf("Формулой трапеций:\n");
                printf("%.3f \n", F_Tramp(Arr, N, h));
                printf("Формулой Симпсона:\n");
                printf("%.3f \n", F_Sims(Arr, N, h));
                break;
            case 10 :system("cls");
                h = (b10 - a10) / N;
                for(i = a10 ; i <= b10; i += h){
                     Arr[j] = F_F10(i); 
                     j++;
                }
                printf("Формулой трапеций:\n");
                printf("%.3f \n", F_Tramp(Arr, N, h));
                printf("Формулой Симпсона:\n");
                printf("%.3f \n", F_Sims(Arr, N, h));
                break;
            case 11:    printf("11 - Трололо\n"); break;
 
            default: printf("Неверное значение, введите заново:\n"); break;
        }
        printf("\nВыбрать другую задачу? y/n:\n");
    }// Конец do
    while((Otvet = getchar()) == 'y');
    getchar();
 
    system("pause");
    return 0;
}
0
Миниатюры
Необработанное исключение, нарушение права доступа записи  
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2017, 14:49
Ответы с готовыми решениями:

Вызвано необработанное исключение: нарушение доступа для записи
// Str.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include...

Вызвано исключение по адресу 0x75DD9845 (ucrtbase.dll) в LABA4.exe: 0xC0000005: нарушение прав доступа при записи по адр
Объясните пожалуйста, почему не работает программа? ( Выдает &quot;вызвано исключение...&quot; По идее она...

Нарушение прав доступа при записи
подскажите почему возникает ошибка void ChangeBrightness(HDC hdc, RECT In, RECT Out, DWORD Mode,...

Нарушение прав доступа при записи
Подскажите, пожалуйста, почему при запуске такой программы(она должна в файле подсчитывать...

Нарушение прав доступа при записи
Здравствуйте! Я новичок на вашем форуме, буду рад различного рода советам, относящимся к нему. ...

7
_SayHello
788 / 474 / 156
Регистрация: 30.07.2015
Сообщений: 1,579
20.10.2017, 15:04 2
Лучший ответ Сообщение было отмечено Kotopold_3000 как решение

Решение

Kotopold_3000, а ты итераторы j и i обнуляешь на каждом ццикле? а то вдруг у тебя за рамки массива лезет ..
0
Kotopold_3000
0 / 0 / 0
Регистрация: 13.10.2017
Сообщений: 17
20.10.2017, 16:12  [ТС] 3
Спасибо, в этом и была ошибка. А я уже испугался)

Добавлено через 58 минут
А можешь еще подсказать?)
Стал тестировать и обнаружил, что если сначала вызвать 1 задачу, потом например 8 (или другую) и после снова вызвать 1 задачу, то в ней измениться ответ. Такое только с первой задачей происходит. Что может быть? Итераторы i и j стал обнулять, массив по идее должен сам переобъявлятся исходя из интервала а и b . Но его я ради интереса стал тоже заполнять 0 перед циклом и после. Но результат то же, ответ в первой задаче все время скачет. Что может быть?
0
_SayHello
788 / 474 / 156
Регистрация: 30.07.2015
Сообщений: 1,579
20.10.2017, 16:35 4
Kotopold_3000, проверь, вроде одинаково выводит
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
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
#define _CRT_SECURE_NO_WARNINGS // для  использования scanf без ошибок
 
#include <stdio.h>
#include <stdlib.h>
 
#include <locale.h>
#include <time.h>
#include <math.h>
 
#define N 100
 
 
float F_F1(float x)
{
    return x * 2.0 / (10.0 + x * 3.0);
}
float F_F2(float x)
{
    return (2.5 * x * 2.0 - 0.1) / (tan(x) + sin(x));
}
float F_F3(float x)
{
    return (x + 1.0) * 2.0 * sqrt(log10(x));
}
float F_F4(float x)
{
    return x * 2. * log(x) / (1.0+ x) * 2.0;
}
float F_F5(float x)
{
    return 1 / ((0.5 + 0.1 * x * 3.0) * sqrt(x));
}
float F_F6(float x)
{
    return x * 2.0 * sqrt((2.0 + 3.0 * x) * 3);
}
float F_F7(float x)
{
    return 1 / sqrt((0.02 + 0.01 * x));
}
float F_F8(float x)
{
    return (1.0 + 2.0 * x + x * 2.0) / (5.0 + 2.0 * x + 2.0);
}
float F_F9(float x)
{
    return (2.0 * x + log10(x)) / (1.0 + log10(x));
}
float F_F10(float x)
{
    return sqrt((2.0 + x) * 3.0 / x * 2.0);
}
 
 
float F_Sims(float *F_Arr, int Size, float F_h) {//Формула Симпсона
    float F_Res = 0, F_Res1, F_Nchet = 0, F_Chet = 0;
    int j;
    F_Res1 = F_Arr[0] + F_Arr[Size];
    //F_Res = 0;
    for (j = 2; j <= Size - 2; j += 2) {
 
        F_Chet += F_Arr[j];
    }
    for (j = 1; j <= Size - 1; j += 2) {
        F_Nchet += F_Arr[j];
    }
    F_Res1 += 4 * F_Nchet;
    F_Res1 += 2 * F_Chet;
    F_Res = (F_h / 3) * F_Res1;
    return F_Res;
}
float F_Tramp(float *F_Arr, int Size, float F_h) {//Форсула Трапеций
    int j;
    float F_Res = 0;
    for (j = 0; j <= Size; j++) {
 
        if ((j == 0) || (j == Size)) {
 
            F_Res += F_Arr[j] / 2;
 
        }
        else {
 
            F_Res += F_Arr[j];
        }
    }
    F_Res *= F_h;
    return F_Res;
}
 
int main() {
 
 
    float i;
    int j = 0;
    float Arr[N + 1] = {0};
 
    float h = 0;
 
    char Otvet;
 
    int c;
 
    // интервал значений а и b  в зависимости от задачи.
    float a1 = -2, a2 = 4, a3 = 2, a4 = 1, a5 = 0.1, a6 = 0.5, a7 = 1, a8 = -2, a9 = 1, a10 = 0.2;
    float b1 = 5, b2 = 6, b3 = 10, b4 = 20, b5 = 2.1, b6 = 2.5, b7 = 30, b8 = 2, b9 = 10, b10 = 10;
 
 
    srand(time(NULL));
    setlocale(LC_ALL, "Rus");
 
 
 
 
    do {
        for (int i = 0; i < N + 1; i++)
        {
            Arr[i] = 0;
        }
        j = 0;
        i = 0;
        system("cls");
        printf("1 - Задача\n");
        printf("2 - Задача\n");
        printf("3 - Задача\n");
        printf("4 - Задача\n");
        printf("5 - Задача\n");
        printf("6 - Задача\n");
        printf("7 - Задача\n");
        printf("8 - Задача\n");
        printf("9 - Задача\n");
        printf("10 - Задача\n");
        printf("11 - Трололо\n");
        printf("Выбирите номер задачи:\n");
        scanf("%d", &c);
        getchar();
        switch (c) {
        case 1:system("cls");
            h = (b1 - a1) / N;
            for (i = a1; i <= b1; i += h) {
                Arr[j] = F_F1(i);
                j++;
            }
            printf("Формулой трапеций:\n");
            printf("%.3f \n", F_Tramp(Arr, N, h));
            printf("Формулой Симпсона:\n");
            printf("%.3f \n", F_Sims(Arr, N, h));
            break;
        case 2:system("cls");
            h = (b2 - a2) / N;
            for (i = a2; i <= b2; i += h) {
                Arr[j] = F_F2(i);
                j++;
            }
            printf("Формулой трапеций:\n");
            printf("%.3f \n", F_Tramp(Arr, N, h));
            printf("Формулой Симпсона:\n");
            printf("%.3f \n", F_Sims(Arr, N, h));
            break;
        case 3:system("cls");
            h = (b3 - a3) / N;
            for (i = a3; i <= b3; i += h) {
                Arr[j] = F_F3(i);
                j++;
            }
            printf("Формулой трапеций:\n");
            printf("%.3f \n", F_Tramp(Arr, N, h));
            printf("Формулой Симпсона:\n");
            printf("%.3f \n", F_Sims(Arr, N, h));
            break;
        case 4:system("cls");
            h = (b4 - a4) / N;
            for (i = a4; i <= b4; i += h) {
                Arr[j] = F_F4(i);
                j++;
            }
            printf("Формулой трапеций:\n");
            printf("%.3f \n", F_Tramp(Arr, N, h));
            printf("Формулой Симпсона:\n");
            printf("%.3f \n", F_Sims(Arr, N, h));
            break;
        case 5:system("cls");
            h = (b5 - a5) / N;
            for (i = a5; i <= b5; i += h) {
                Arr[j] = F_F5(i);
                j++;
            }
            printf("Формулой трапеций:\n");
            printf("%.3f \n", F_Tramp(Arr, N, h));
            printf("Формулой Симпсона:\n");
            printf("%.3f \n", F_Sims(Arr, N, h));
            break;
        case 6:system("cls");
            h = (b6 - a6) / N;
            for (i = a6; i <= b6; i += h) {
                Arr[j] = F_F6(i);
                j++;
            }
            printf("Формулой трапеций:\n");
            printf("%.3f \n", F_Tramp(Arr, N, h));
            printf("Формулой Симпсона:\n");
            printf("%.3f \n", F_Sims(Arr, N, h));
            break;
        case 7:system("cls");
            h = (b7 - a7) / N;
            for (i = a7; i <= b7; i += h) {
                Arr[j] = F_F7(i);
                j++;
            }
            printf("Формулой трапеций:\n");
            printf("%.3f \n", F_Tramp(Arr, N, h));
            printf("Формулой Симпсона:\n");
            printf("%.3f \n", F_Sims(Arr, N, h));
            break;
        case 8:system("cls");
            h = (b8 - a8) / N;
            for (i = a8; i <= b8; i += h) {
                Arr[j] = F_F8(i);
                j++;
            }
            printf("Формулой трапеций:\n");
            printf("%.3f \n", F_Tramp(Arr, N, h));
            printf("Формулой Симпсона:\n");
            printf("%.3f \n", F_Sims(Arr, N, h));
            break;
        case 9:system("cls");
            h = (b9 - a9) / N;
            for (i = a9; i <= b9; i += h) {
                Arr[j] = F_F9(i);
                j++;
            }
            printf("Формулой трапеций:\n");
            printf("%.3f \n", F_Tramp(Arr, N, h));
            printf("Формулой Симпсона:\n");
            printf("%.3f \n", F_Sims(Arr, N, h));
            break;
        case 10:system("cls");
            h = (b10 - a10) / N;
            for (i = a10; i <= b10; i += h) {
                Arr[j] = F_F10(i);
                j++;
            }
            printf("Формулой трапеций:\n");
            printf("%.3f \n", F_Tramp(Arr, N, h));
            printf("Формулой Симпсона:\n");
            printf("%.3f \n", F_Sims(Arr, N, h));
            break;
        case 11:    printf("11 - Трололо\n"); break;
 
        default: printf("Неверное значение, введите заново:\n"); break;
        }
        printf("\nВыбрать другую задачу? y/n:\n");
    }// Конец do
    while ((Otvet = getchar()) == 'y');
    getchar();
 
    system("pause");
    return 0;
}
1
20.10.2017, 16:35
Kotopold_3000
0 / 0 / 0
Регистрация: 13.10.2017
Сообщений: 17
20.10.2017, 16:40  [ТС] 5
Да, все работает. Только это добавил?
for (int i = 0; i < N + 1; i++)
{
Arr[i] = 0;
}
j = 0;
i = 0;
0
_SayHello
788 / 474 / 156
Регистрация: 30.07.2015
Сообщений: 1,579
20.10.2017, 16:43 6
ну да, еще заменил во все инты на даблы
C++
1
return 1 / ((0.5 + 0.1 * x * 3.0) * sqrt(x));
на всякий пожарный
0
Kotopold_3000
0 / 0 / 0
Регистрация: 13.10.2017
Сообщений: 17
20.10.2017, 16:47  [ТС] 7
Понял, большое спасибо. Сейчас буду изучать работу с динамическим выделением памяти и списками?
Не посоветуешь литературу хорошую?
0
_SayHello
788 / 474 / 156
Регистрация: 30.07.2015
Сообщений: 1,579
22.10.2017, 01:13 8
Kotopold_3000, хз по си керниган и ритчи стандартная книга
0
22.10.2017, 01:13
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2017, 01:13

Нарушение прав доступа при записи по адресу 0x00007430
Подскажите, пожалуйста, почему при выполнении программы появляется Вызвано исключение по адресу...

Ошибка: нарушение прав доступа при записи по адресу
Надо написать следующую программу: дан символьный массив из 101 элемента. По спецификации %s...

Нарушение прав доступа при записи (работа с файлами)
вообщем такая проблема (на скринах),если я правильно понял то что то с переменной не так. прощу...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.