Вот решил прогать под Линь, ну значца как пологается читанул книгусу всё опробовал работает
Довольный начал нормальный проджект. И тут как обычно.. в общем сабж при попытке передать функции параметры возникают проблемы компиляции. Ну и исходники, для наглядности:
Laba1.c
Код:
#include <stdio.h>
#include <math.h>
#include "laba1.h"
double F(double x) //Исходная функция
{
const double a=1.1, b=1.3, c=0.7;
return log(a)-(x-b)*(x-b)+c;
}
int main (void)
{
printf("V.Math labwork1, please wait....\n");
//Исходные данные
const double e=0.001;
int flag;
//Результативные данные
int kint; //Количество интераций
double xk, xkold; //Соответственно последнее и предпоследнее значение х
//Ввод данных
double Xmin, Xmax, step, i;
vvod:
printf("Please input Xmin:\n");
scanf("%lf",&Xmin);
printf("Please input Xmax:\n");
scanf("%lf",&Xmax);
if (Xmax<Xmin)
{ printf("Xmax<Xmin repair it automatic? 1/0 \n");
if(flag=1)
{
step=Xmin; Xmin=Xmax; Xmax=step;
}else if(flag=0)
{goto vvod;
}else {printf("ERROR!!!\n"); goto vvod;}
}
st:
printf("Please input step for bad functions, if we have good function input '0' :\n");
scanf("%lf",&step);
if (step < 0)
{printf("ERROR!!! step<0\n");
goto st;
}
if (step = 0) //Если мы имеем дело с правильнй функцией
{
if( F(Xmin)*F(Xmax) > 0) //Если на данном промежутке функция не меняет знак, то..
{
printf("Sorry, it's incorrect interval, please input correct interval");
goto vvod;
}else method1(Xmin,Xmax,e); //Ну а если всё в порядке, вычесляем корень
}else for(i=Xmin;i<Xmax;i=i+step) //Делим плохую функцию на хорошие промежутки
{
if( F(i)*F(Xmax) < 0) //Если на данном промежутке функция меняет знак, то..
{method1(Xmin,Xmax,e); //То выяесляем её всеми методами
}
}
return 0;
}Laba1.h
Код: Выделить всё
/* Заголовочный файл */
void method1(double Xmi, Xma, ee);Makefile
Код: Выделить всё
#Laba1 make
laba1: laba1.o method1.o
gcc -o laba1 laba1.o method1.0
laba1.o:laba1.c
gcc -c laba1.c
method1.o:method1.c
gcc -c method1.c
clean:
rm -f *.o laba1method1.c
Код: Выделить всё
/* Метод №1 Метод хорд */
#include<stdio.h>
#include<math.h>
void method1(double Xmi, Xma, ee)
{
int i;
i=Xmi+Xma;
printf("now works method1....\n");
return 0;
}и собственно, для чего я и выложил исходники ошибки компилятоа:
Код: Выделить всё
asmaster@user886:~/Документы/Math$ make
gcc -c laba1.c
In file included from laba1.c:3:
laba1.h:2: error: expected declaration specifiers or ‘...’ before ‘Xma’
laba1.h:2: error: expected declaration specifiers or ‘...’ before ‘ee’
laba1.c: In function ‘main’:
laba1.c:49: error: too many arguments to function ‘method1’
laba1.c:54: error: too many arguments to function ‘method1’
make: *** [laba1.o] Error 1Жду советов. Надеюсь таки почувствовать себя комфортно прогая под Линем..