Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Scanf_s и printf http://www.cyberforum.ru/c-beginners/thread2107357.html
Доброго времени суток. Я плохо знаю этот язык и у меня вечные проблемы с этими операторами. Вот мой код: #include <stdio.h> int main() { char n1; int a; char f;
C (СИ) Быстрая сортировка структуры по одному полю Задача такова: Составить программу, в которой будет таблица, которая будет выводится после сортировки ее по значениям в первом столбце. Так вот, у меня есть программа, которая выполняет все... http://www.cyberforum.ru/c-beginners/thread2107260.html
Не понимаю представление шестнадцатеричных цифр соответствующим целым C (СИ)
Добрый вечер, я диспетчер, как поется в одной забавной песне, но мне не до шуток. Товарищи, столкнулся с одним неприятным заданием по книге Брайана Кернигана "Язык программирования Си". Собственно...
C (СИ) Обработка массивов данных. Указатели. Динамическое распределение памяти
Помогите написать коды на си 1.Найти максимальный по модулю элемент массива. 2. Найти сумму элементов массива, расположенных между первым и вто- рым положительными элементами. 3. Преобразовать...
C (СИ) Как исключить повторение цифр в rand() http://www.cyberforum.ru/c-beginners/thread2107124.html
Здравствуйте! Пишу игру, есть функция isRandom, которая заполняет массив случайными числами, как сделать, чтобы они не повторялись? // функция заполняет массив колоды карточек, случайными...
C (СИ) Двумерный массив Укажите на ошибку #include <stdio.h> #include <stdlib.h> int main() { int i, k; int array = { подробнее
Kotopold_3000
0 / 0 / 0
Регистрация: 13.10.2017
Сообщений: 17
0

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

20.10.2017, 14:49. Просмотров 770. Ответов 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)
Similar
Эксперт
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
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru