Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2023, 21:44   #1
koundit
Новичок
Джуниор
 
Регистрация: 08.05.2023
Сообщений: 1
По умолчанию Нужно написать программу, применяющую метод Неймана (метод отказа) к функции на СИ

Всем привет. На третьем курсе задали написать программу на СИ, которая применяет метод Неймана к функции. У нас до этого программирования вообще не было, я почти что нуль. Тем не менее, получилось что-то вроде этого:

#include <stdio.h>
#include "math.h"
#include "stdlib.h"
#include "io.h"
#include "conio.h"



float fun(float x)
{
float q;
q = x * exp(-x * x / 2);
return q;
}

int main()
{
FILE *fp;
if ((fopen_s(&fp, "D:\camera\file.txt", "w")) != 0)
{
printf("error");
}
else
{
int i;
float a, b, v, Umax, d, a1, b1, y1, y2, y, f1, f2, x, q, h;
a = 0;
b = 3.46;
v = 0.01;
Umax = 0;
while ((b - a) > v)
{
d = (b - a) / 3.0;
a1 = a + d;
b1 = b - d;
y1 = fun(a1);
y2 = fun(b1);
if (y1 >= y2)
{
Umax = y2;
b = b1;
}
else
{
Umax = y1;
a = a1;
}
}
h = Umax * 0.01;
x = a;
y = fun(x);
while (y > h)
{
x = x + v;
y = fun(x);
}
b = x;

for (int i = 0; i <= 99; i++)
{
do
{
f1 = rand() / 65535.0;
x = a + (b - a)*f1;
y = fun(x);
f2 = rand() / 65535.0*Umax;
} while (f2 > y);
fprintf_s(fp, "%f\n", f2);
printf("%f\n", f2);

}
fclose(fp);
}
return 0;


Вроде компилируется, но в файл не выводится. Помогите, пожалуйста. И подскажите за одно учебники какие-нибудь по Си, а то в интернете в основном СИ++ все педалируют.
koundit вне форума Ответить с цитированием
Старый 08.05.2023, 22:05   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Для начала стоит взять отладчик и пройтись по программе в нем. А ещё стоит запускать программу не мышкой (двойным щелчком по исполняемому файлу), а вызывая её из консоли, чтобы она не закрывалась и оставался вывод программы на экране. Иначе вы зря сделали вывод в файл и в консоль одновременно.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java | Нужно написать метод, работающий с бинарной матрицей Прогги12345 Помощь студентам 3 13.06.2021 04:12
Помогите написать код в котором нужно заменить метод подсчёта на метод выбора и вставить ключ float[3] (файл вложен) Sasha48 Помощь студентам 0 26.02.2017 12:03
Написать программу cимплекс-метод с искусственным базисом dmitriegorovih Фриланс 2 18.10.2016 11:01
Симплекс-метод, реализация на делфи, нужно доработать программу Laptiker Помощь студентам 0 24.05.2012 01:29
Написать программу через метод (C#) corebitlol Помощь студентам 0 12.04.2012 13:25