powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Найти значения функций
33 сообщений из 33, показаны все 2 страниц
Найти значения функций
    #38803365
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Может у студентов есть рабочая программа на С для нахождения значений функции на заданном участке. Функция пофиг какая, я сама там подгоню что нужно. Мне в итоге надо график построить и анализ сделать, но сама сделаю. Может просто есть у кого-нибудь такая рабочая программка

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
Найти значения функций
    #38803940
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
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.
#include <iostream.h>
#include <windows.h>
#include <conio.h>
#include <math.h>
char bufRus[256];
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }

float fun (float X, float Y, float Z)
{
return ((pow(X,3)-tan(Y/X)+exp(Z))*tan(Z))+(1/(X+Y+Z));
}

void calc(float* X,float* Y,float* Z,const float E,int nx,int ny,int nz)
{
float F;
for(int i=0;i<nx;i++)
{
for(int k=0;k<ny;k++)
{
for(int m=0;m<nz;m++)
{
if(fabs(X[i])>E && fabs(X[i]+Y[k]+Z[m])>E)
{
F=fun(X[i],Y[k],Z[m]);
cout<<Rus("При X=")<<X[i]<<" Y="<<Y[k];
cout<<" Z="<<Z[m]<<" f(x,y,z)="<<F<<endl;
}
else
{
cout<<Rus("При X=")<<X[i]<<" Y="<<Y[k]<<" Z=";
cout<<Z[m]<<Rus(" функция не существует(знаменатель равен нулю)")<<endl;
}
}
}
}
}

int main()
{
char quit;
int fx,fy,fz,nx,ny,nz;
float xn,xk,hx,yn,yk,hy,zn,zk,hz;
const float E=1e-4;
do
{
clrscr();
float* X; float* Y; float* Z; float* answer;
cout<<Rus("Введите способ ввода для аргументов:\n1.Диапазон\n2.Массив\nДля X: ");
cin>>fx;
cout<<Rus("Для Y: ");
cin>>fy;
cout<<Rus("Для Z: ");
cin>>fz;
switch(fx)
{
case 1:
cout<<Rus("Введите X начальное: ");
cin>>xn;
cout<<Rus("Введите X конечное: ");
cin>>xk;
cout<<Rus("Введите шаг X: ");
cin>>hx;
if (fabs(ceil((xk-xn)/hx)*hx)<fabs(xk-xn)+E)
{
nx=fabs(ceil((xk-xn)/hx))+1;
X=(float*)calloc(nx,sizeof(float));
X[0]=xn;
for(int i=1;i<nx;i++) X[i]=X[i-1]+hx;
}
else
{
nx=fabs(ceil((xk-xn)/hx));
X=(float*)calloc(nx,sizeof(float));
X[0]=xn;
for(int i=1;i<nx;i++) X[i]=X[i-1]+hx;
}
break;
case 2:
cout<<Rus("Введите количество элементов X: ");
cin>>nx;
X=(float*)calloc(nx,sizeof(float));
for(int i=0;i<nx;i++)
{
cout<<Rus("Введите X")<<i+1<<'=';
cin>>X[i];
}
break;
}
switch(fy)
{
case 1:
cout<<Rus("Введите Y начальное: ");
cin>>yn;
cout<<Rus("Введите Y конечное: ");
cin>>yk;
cout<<Rus("Введите шаг Y: ");
cin>>hy;
if (fabs(ceil((yk-yn)/hy)*hy)<fabs(yk-yn)+E)
{
ny=fabs(ceil((yk-yn)/hy))+1;
Y=(float*)calloc(ny,sizeof(float));
Y[0]=yn;
for(int i=1;i<ny;i++) Y[i]=Y[i-1]+hy;
}
else
{
ny=fabs(ceil((yk-yn)/hy));
Y=(float*)calloc(ny,sizeof(float));
Y[0]=yn;
for(int i=1;i<ny;i++) Y[i]=Y[i-1]+hy;
}
break;
case 2:
cout<<Rus("Введите количество элементов Y: ");
cin>>ny;
Y=(float*)calloc(ny,sizeof(float));
for(int i=0;i<ny;i++)
{
cout<<Rus("Введите Y")<<i+1<<'=';
cin>>Y[i];
}
break;
}
switch(fz)
{
case 1:
cout<<Rus("Введите Z начальное: ");
cin>>zn;
cout<<Rus("Введите Z конечное: ");
cin>>zk;
cout<<Rus("Введите шаг Z: ");
cin>>hz;
if (fabs(ceil((zk-zn)/hz)*hz)<fabs(zk-zn)+E)
{
nz=fabs(ceil((zk-zn)/hz))+1;
Z=(float*)calloc(nz,sizeof(float));
Z[0]=zn;
for(int i=1;i<nz;i++) Z[i]=Z[i-1]+hz;
}
else
{
nz=fabs(ceil((zk-zn)/hz));
Z=(float*)calloc(nz,sizeof(float));
Z[0]=zn;
for(int i=1;i<nz;i++) Z[i]=Z[i-1]+hz;
}
break;
case 2:
cout<<Rus("Введите количество элементов Z: ");
cin>>nz;
Z=(float*)calloc(nz,sizeof(float));
for(int i=0;i<nz;i++)
{
cout<<Rus("Введите Z")<<i+1<<'=';
cin>>Z[i];
}
break;
}
clrscr();
calc(X,Y,Z,E,nx,ny,nz);
free(X);
free(Y);
free(Z);
cout<<Rus("Для выхода нажмите Enter\nДля повтора любую другую клавишу ");
quit=cin.get();
}while(quit!=13);
return 0;
}
...
Рейтинг: 0 / 0
Найти значения функций
    #38804045
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mash6a, непонятно зачем тебе "С" ? Графики рисует Excel. Он же заполняет таблицы.

А если дать тебе сорс - то ты всё равно его не сдашь т.к. это палево и лажа.
...
Рейтинг: 0 / 0
Найти значения функций
    #38804190
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18, ужасный нечитабельный код
...
Рейтинг: 0 / 0
Найти значения функций
    #38804604
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, в конечном итоге мне надо распараллелить с помощью mpicc.
...
Рейтинг: 0 / 0
Найти значения функций
    #38812134
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот простенький код на С, выдает ошибку, как правильно подать данные из фаила, подскажите ?

Код: plaintext
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.
// Function.cpp: главный файл проекта.

#include "stdafx.h"
#include <stdio.h>
#include <math.h>

using namespace System;

double func(double a1) {
    return a1;
                       }
int main(void)
{	
	double larg, rarg, shag, c, x0, dx, exit;
	int i;
	FILE * fun = fopen ("line.txt", "r");
    //printf("A = ");
    //scanf("%lf", &arg);
    //scanf("%lf", &shag);
	fscanf(fun, "%lf %lf %lf", &larg, &rarg, &shag);

	printf("\n F(x)\n-------------------------\n");
    for ( i = 1; i <= 5; i++ )
	{
		        printf("%-10.3f %f\n", func(larg));
				larg=larg+shag;
    }
	fclose(fun);
	scanf("%lf", &exit);
    return 0;	
}



А ошибку дает вот такую
...
Рейтинг: 0 / 0
Найти значения функций
    #38812161
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mash6a,

fopen NULL вернула (файл не найден скорее всего, errno проверьте)


PS
printf("%-10.3f %f\n", func(larg)); - здесь аргумента не хватает
...
Рейтинг: 0 / 0
Найти значения функций
    #38812376
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mash6aВот простенький код на СНеправда, это Managed C++.
Мертвенький уродец отдаленно напоминающий C.
...
Рейтинг: 0 / 0
Найти значения функций
    #38812378
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я фигею с этих преподов. Кто им задачи ставит?
...
Рейтинг: 0 / 0
Найти значения функций
    #38812586
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlMash6aВот простенький код на СНеправда, это Managed C++.
Мертвенький уродец отдаленно напоминающий C.да там от managed только using namespace System и есть, а так - чистый С, написанный, правда, грязно ))
...
Рейтинг: 0 / 0
Найти значения функций
    #38813186
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych,

буду подчищать косячки :-)
...
Рейтинг: 0 / 0
Найти значения функций
    #38813204
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

спасибо, промахнулась фаилом, не в корень положила.
...
Рейтинг: 0 / 0
Найти значения функций
    #38813213
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
#include "stdafx.h"
#include <stdio.h>
#include <math.h>

using namespace System;

double func(double a1) {
    return log(a1);
                       }
int main(void)
{	
	double larg, rarg, shag, c, x0, dx, exit;
	int i;
	FILE * fun = fopen ("line.txt", "r");
    //printf("A = ");
    //scanf("%lf", &arg);
    //scanf("%lf", &shag);
	fscanf(fun, "%lf %lf %lf", &larg, &rarg, &shag);

	printf("\n F(x)\n-------------------------\n");
    for ( i = 1; i <= rarg-larg; i++ )
	{
		        printf("%-10.3f", func(larg));
				larg=larg+shag;
    }
	fclose(fun);
	scanf("%lf", &exit);
    return 0;	
}



Помогите теперь распаралелить с помощью MPI. Как разбить вычисления по ядрам ?
...
Рейтинг: 0 / 0
Найти значения функций
    #38813231
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mash6a, кто-ж тебе задание-то даёт? Надо сначала выяснить принципиальную возможность
(ш)кодить на МПИ с твоим стрёмным компиллятором.

Попробуй сделать хоть
Код: plaintext
1.
#include <mpi.h>.



Взлетело? Не?
...
Рейтинг: 0 / 0
Найти значения функций
    #38813270
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

да, это то понятно отвалилось, дабы нет подходящей библиотеки - это я разобралась. Сейчас поищу может можно ее где-нибудь скачать и поставить, но даже если и не найду, то в универе проверю что не так. Вот читаю про функции:
Код: plaintext
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.
// Function.cpp: главный файл проекта.

#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include "mpi.h"

using namespace System;

double func(double a1) {
    return log(a1);
                       }
int main(void)
{	int proc, rank;

	MPI_Init(NULL,NULL);
    MPI_Comm_size(MPI_COMM_WORLD, &proc);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);

	double arg, larg, rarg, shag, c, x0, dx, exit;
	int i;
	FILE * fun = fopen ("line.txt", "r");
    //printf("A = ");
    //scanf("%lf", &arg);
    //scanf("%lf", &shag);
	fscanf(fun, "%lf %lf %lf", &larg, &rarg, &shag);



	printf("\n F(x)\n-------------------------\n");
    for ( i = 1; i <= rarg-larg; i++ )
	{
		        printf("%-10.3f", func(larg));
				arg = f(larg);
				MPI_Gather(&arg, 1, MPI_DOUBLE,1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
				larg=larg+shag;
    }
	fclose(fun);
	MPI_Finalize();
	scanf("%lf", &exit);
    return 0;	
}



Проверить смогу только в понедельник :-( Посмотрите нормально получается ?
...
Рейтинг: 0 / 0
Найти значения функций
    #38813283
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выглядит красиво. Но я не умею компилировать в уме.

Может коллеги по форуму помогут.
...
Рейтинг: 0 / 0
Найти значения функций
    #38813296
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНо я не умею компилировать в уме.


Я тоже, ладно будем ждать след. недели
...
Рейтинг: 0 / 0
Найти значения функций
    #38813337
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mash6a
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
	FILE * fun = fopen ("line.txt", "r");
	if( fun == NULL ) {
		printf( "Ошибка открытия файла line.txt" );
		return 0;
	}
...

Пушкин не будет проверять за вас ошибки, он умер давно, и вообще - поэт, а не программист ;-))
...
Рейтинг: 0 / 0
Найти значения функций
    #38813340
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych, Спасибо Превеликий !!!:-) Сейчас добавлю такую проверку. Ну и так что проверять, если код работает, вроде даже правильный результат дает :-)
...
Рейтинг: 0 / 0
Найти значения функций
    #38813345
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Шекспир был - программист. Он писал латиницей довольно строгие
англо-саксонские слово-формы.
...
Рейтинг: 0 / 0
Найти значения функций
    #38813346
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mash6a,
а что за функция
Код: plaintext
1.
arg = f(larg);


?
...
Рейтинг: 0 / 0
Найти значения функций
    #38813351
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychПушкин не будет проверять за вас ошибки
Нострадамус тоже умер, так что предрекать какая именно ошибка произошла - некому. Поэтому
программистам и приходится выводить в сообщении не только "shit happened", но также как
минимум errno, а как максимум - _sys_errlist[errno].
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Найти значения функций
    #38813362
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Найти значения функций
    #38813370
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

чуть выше описана

Код: plaintext
1.
2.
3.
4.
double func(double a1) 
                       {
    return log(a1);
                       }
...
Рейтинг: 0 / 0
Найти значения функций
    #38813381
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как связаны функции func и f ?
...
Рейтинг: 0 / 0
Найти значения функций
    #38813382
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovegorychПушкин не будет проверять за вас ошибки
Нострадамус тоже умер, так что предрекать какая именно ошибка произошла - некому. Поэтому
программистам и приходится выводить в сообщении не только "shit happened", но также как
минимум errno, а как максимум - _sys_errlist[errno].
Дима, ну что я юным падаванам полный код проверки буду писать? Дальше уж пусть сами развлекаются ))
...
Рейтинг: 0 / 0
Найти значения функций
    #38813385
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, что за рисунок ?)) Доброго времени суток ?
...
Рейтинг: 0 / 0
Найти значения функций
    #38822008
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, последний код который я кидала, почти правильный, я дописала еще 5 строчек и разобралась и распаралелила. Спасибо!
...
Рейтинг: 0 / 0
Найти значения функций
    #38823908
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
double f(double x) {
	    return log(x*x);
}

int main() {
    int i, j, proc, larg, rarg, rank;
    double kill, arg,  shag;

    MPI_Init(NULL,NULL);
    MPI_Comm_size(MPI_COMM_WORLD, &proc);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);


    double *d = (double *)calloc(proc, sizeof(double));

	

    FILE * fun = fopen ("line.txt", "r");
	fscanf(fun, "%lf %lf %lf", &larg, &rarg, &shag);
    
//	printf("%dQQ\n" ,rank);

	for ( i = 1; i <= rarg-larg; i++ )
	{					
				printf("\n");
	       		printf("%-10.3n", f(larg));
		  		arg = f(larg);
				//MPI_Gather(&arg, 1, MPI_DOUBLE,1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
				larg=larg+shag;
    }

//kill = f(rank * M_PI / proc);
    MPI_Gather(&kill, 1, MPI_DOUBLE, d, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);

	printf("\n");
    
   /* if(rank==0) {   
        printf("\n");
        for(j=0;j < proc;j++) {
            printf("[%d]=%f\n",j, d[j]);
        }
    }*/

    MPI_Finalize();

    return 0;

}



Ребят, почему выводит пустые строчки помогите пожалуйста
...
Рейтинг: 0 / 0
Найти значения функций
    #38824049
Фотография Mash6a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят а как сделать запись значения в фаил ???
...
Рейтинг: 0 / 0
Найти значения функций
    #38824053
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercurymayton, что за рисунок ?)) Доброго времени суток ?
Нет в тебе романтики . Это стих.
...
Рейтинг: 0 / 0
Найти значения функций
    #38824398
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mash6aРебят а как сделать запись значения в фаил ??? http://www.cplusplus.com/reference/fstream/fstream/
или
http://www.cplusplus.com/reference/cstdio/fopen/
...
Рейтинг: 0 / 0
Найти значения функций
    #38824952
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_SlaMash6aРебят а как сделать запись значения в фаил ??? http://www.cplusplus.com/reference/fstream/fstream/
или
http://www.cplusplus.com/reference/cstdio/fopen/

Код: plaintext
1.
2.
3.
4.
std::ostream &out = get_out_stream();
value_type value = get_value();

out << value;
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Найти значения функций
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]