0 / 0 / 0
Регистрация: 11.12.2010
Сообщений: 29
1

есть ошибки в программе, может что то с компилятором у меня, подскажите пожалуйста.

27.11.2011, 12:44. Показов 1649. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа для решения обычных уравнений методом адамса, не работает.... 3 ошибки здесь:
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
#include <math.h>
#include <stdio.h>
const float a=0,b=2;             // bounds of the interval
const int num_points=10,         // number of points to solve
          num_starting_points=4; // number of points to solve with Runge-Kutta method
float x0=0,y0=1;                 // starting conditions
float f(float x, float y)
{
  return x+y;  // y'=x+y
}
// this function realises Runge-Kutta method for n starting points
void calculate(float *y)
{
  float k1,k2,k3,k4,x,yi,h;
  h=(b-a)/num_points;  // step
  yi=y0; x=x0;
  for (int i=0;i<num_starting_points;i++)
  {
    k1=h*f(x,yi);
    k2=h*f(x+h/2,yi+k1/2);
    k3=h*f(x+h/2,yi+k2/2);
    k4=h*f(x+h,yi+k3);
    yi+=(k1+2*k2+2*k3+k4)/6;
    x+=h;
    *(y+i+1)=yi;
  }
}
void main(void)
{
  float y[num_points+1],h;
  y[0]=y0;
  // apply Runge-Kutta method
  calculate(y);
  h=(b-a)/num_points;
  // extrapolating
  for (int i=num_starting_points;i<num_points;i++)
    y[i] = y[i-1]+h/24*(55*f(x0+(i-1)*h,y[i-1])-
             59*f(x0+(i-2)*h,y[i-2])+
             37*f(x0+(i-3)*h,y[i-3])-
             9*f(x0+(i-4)*h,y[i-4]));
  printf("X\t\tY\t\tExact solution\n");
  for (i=0;i<num_points;i++)
    printf("%f\t%f\t%f\n",(x0+i*h),y[i],(2*exp(x0+i*h)-(x0+i*h)-1));
}
вот ошибки:
c:\program files\microsoft visual studio\myprojects\8834\98.cpp(6) : error C2373: 'y0' : redefinition; different type modifiers
c:\program files\microsoft visual studio\vc98\include\math.h(434) : see declaration of 'y0'
c:\program files\microsoft visual studio\myprojects\8834\98.cpp(16) : error C2440: '=' : cannot convert from 'double (__cdecl *)(double)' to 'float'
There is no context in which this conversion is possible
c:\program files\microsoft visual studio\myprojects\8834\98.cpp(31) : error C2440: '=' : cannot convert from 'double (__cdecl *)(double)' to 'float'
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2011, 12:44
Ответы с готовыми решениями:

Что за устройство похожее на флешку(а может это она и есть)? Подскажите пожалуйста
Всех приветствую. Мне тут подогнали интересную коробочку, а в ней неизвестное мне устройство...

Подскажите пожалуйста какие ошибки здесь есть - или что не соблюдено.
Доброе утро! Я начинаю только осваивать программирование.Читаю - решаю задачи - пытаюсь...

Подскажите кто может и найдите ошибки в программе))
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #define ROWS 3 #define COLS 3 void Changenrow(int, int ,...

Найти ошибки в данной программе (известно что есть только 2 ошибки)
У меня в модуле с програмирования задание: Найти ошибки в данной программе (известно что есть...

9
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
27.11.2011, 12:52 2
yangicher, теперь компилируется
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
#include <math.h>
#include <stdio.h>
const float a=0,b=2;             // bounds of the interval
const int num_points=10,         // number of points to solve
          num_starting_points=4; // number of points to solve with Runge-Kutta method
float x0=0,y0=1;                 // starting conditions
float f(float x, float y)
{
  return x+y;  // y'=x+y
}
// this function realises Runge-Kutta method for n starting points
void calculate(float *y)
{
  float k1,k2,k3,k4,x,yi,h;
  h=(b-a)/num_points;  // step
  yi=y0; x=x0;
  for (int i=0;i<num_starting_points;i++)
  {
    k1=h*f(x,yi);
    k2=h*f(x+h/2,yi+k1/2);
    k3=h*f(x+h/2,yi+k2/2);
    k4=h*f(x+h,yi+k3);
    yi+=(k1+2*k2+2*k3+k4)/6;
    x+=h;
    *(y+i+1)=yi;
  }
}
void main(void)
{
  float y[num_points+1],h;
  y[0]=y0;
  // apply Runge-Kutta method
  calculate(y);
  h=(b-a)/num_points;
  // extrapolating
  for (int i=num_starting_points;i<num_points;i++)
    y[i] = y[i-1]+h/24*(55*f(x0+(i-1)*h,y[i-1])-
             59*f(x0+(i-2)*h,y[i-2])+
             37*f(x0+(i-3)*h,y[i-3])-
             9*f(x0+(i-4)*h,y[i-4]));
  printf("X\t\tY\t\tExact solution\n");
  for (int i=0;i<num_points;i++)
    printf("%f\t%f\t%f\n",(x0+i*h),y[i],(2*exp(x0+i*h)-(x0+i*h)-1));
}
1
1080 / 1007 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
27.11.2011, 13:02 3
y0 уже был объявлен в math.h. Переименуйте название переменной.
Если численно решаете задачу, то используйте double. Результаты точнее будут.

Не по теме:

Странно немного. У меня также y0 объявлен как функция в /usr/include/i386-linux-gnu/bits/mathcalls.h



Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
теперь компилируется
Bash
1
2
3
4
5
6
7
8
9.cpp:6:12: ошибка: «float y0» redeclared as different kind of symbol
/usr/include/i386-linux-gnu/bits/mathcalls.h:241:1: ошибка: previous declaration of «double y0(double)»
9.cpp: В функции «void calculate(float*)»:
9.cpp:16:6: ошибка: cannot convert «double(double)throw ()» to «float» in assignment
9.cpp: At global scope:
9.cpp:28:15: ошибка: «::main» должна возвращать «int»
9.cpp: В функции «int main()»:
9.cpp:31:8: ошибка: cannot convert «double(double)throw ()» to «float» in assignment
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
27.11.2011, 13:15 4
Евгений М.,
Миниатюры
есть ошибки в программе, может что то с компилятором у меня, подскажите пожалуйста.  
1
0 / 0 / 0
Регистрация: 11.12.2010
Сообщений: 29
27.11.2011, 13:34  [ТС] 5
Цитата Сообщение от go Посмотреть сообщение
Евгений М.,
напиши код что у тебя там, со скрином.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
27.11.2011, 13:37 6
yangicher, https://www.cyberforum.ru/post2217923.html
1
0 / 0 / 0
Регистрация: 11.12.2010
Сообщений: 29
27.11.2011, 14:11  [ТС] 7
у меня все также((
есть ошибки в программе, может что то с компилятором у меня, подскажите пожалуйста.
0
1080 / 1007 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
27.11.2011, 14:21 8
yangicher,
Цитата Сообщение от Евгений М. Посмотреть сообщение
y0 уже был объявлен в math.h. Переименуйте название переменной.
- это пробовали?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
27.11.2011, 14:35 9
yangicher, а сразу нельзя было сказать?
вообще это проблемы студии
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
#include <math.h>
#include <stdio.h>
const float a=0,b=2;             // bounds of the interval
const int num_points=10,         // number of points to solve
                  num_starting_points=4; // number of points to solve with Runge-Kutta method
//float x0=0,y0=1;                 // starting conditions
float f(float x, float y)
{
  return x+y;  // y'=x+y
}
// this function realises Runge-Kutta method for n starting points
void calculate(float *y)
{
  float k1,k2,k3,k4,x,yi,h;
  h=(b-a)/num_points;  // step
  yi=1; x=0;
  for (int i=0;i<num_starting_points;i++)
  {
        k1=h*f(x,yi);
    k2=h*f(x+h/2,yi+k1/2);
        k3=h*f(x+h/2,yi+k2/2);
    k4=h*f(x+h,yi+k3);
        yi+=(k1+2*k2+2*k3+k4)/6;
        x+=h;
        *(y+i+1)=yi;
  }
}
void main(void)
{
  float y[num_points+1],h;
  y[0]=1;
  float x0=0;
  // apply Runge-Kutta method
  calculate(y);
  h=(b-a)/num_points;
  // extrapolating
  for (int i=num_starting_points;i<num_points;i++)
        y[i] = y[i-1]+h/24*(55*f(x0+(i-1)*h,y[i-1])-
                         59*f(x0+(i-2)*h,y[i-2])+
                         37*f(x0+(i-3)*h,y[i-3])-
                         9*f(x0+(i-4)*h,y[i-4]));
  printf("X\t\tY\t\tExact solution\n");
  for (int i=0;i<num_points;i++)
        printf("%f\t%f\t%f\n",(x0+i*h),y[i],(2*exp(x0+i*h)-(x0+i*h)-1));
  getchar ();
}
Добавлено через 7 минут
А вообще вот
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
#include <math.h>
#include <stdio.h>
const float a=0,b=2;             // bounds of the interval
const int num_points=10,         // number of points to solve
                  num_starting_points=4; // number of points to solve with Runge-Kutta method
float x0=0,yy=1;                 // starting conditions
float f(float x, float y)
{
  return x+y;  // y'=x+y
}
// this function realises Runge-Kutta method for n starting points
void calculate(float *y)
{
  float k1,k2,k3,k4,x,yi,h;
  h=(b-a)/num_points;  // step
  yi=yy; x=x0;
  for (int i=0;i<num_starting_points;i++)
  {
        k1=h*f(x,yi);
    k2=h*f(x+h/2,yi+k1/2);
        k3=h*f(x+h/2,yi+k2/2);
    k4=h*f(x+h,yi+k3);
        yi+=(k1+2*k2+2*k3+k4)/6;
        x+=h;
        *(y+i+1)=yi;
  }
}
void main(void)
{
  float y[num_points+1],h;
  y[0]=yy;
  // apply Runge-Kutta method
  calculate(y);
  h=(b-a)/num_points;
  // extrapolating
  for (int i=num_starting_points;i<num_points;i++)
        y[i] = y[i-1]+h/24*(55*f(x0+(i-1)*h,y[i-1])-
                         59*f(x0+(i-2)*h,y[i-2])+
                         37*f(x0+(i-3)*h,y[i-3])-
                         9*f(x0+(i-4)*h,y[i-4]));
  printf("X\t\tY\t\tExact solution\n");
  for (int i=0;i<num_points;i++)
        printf("%f\t%f\t%f\n",(x0+i*h),y[i],(2*exp(x0+i*h)-(x0+i*h)-1));
}
1
0 / 0 / 0
Регистрация: 11.12.2010
Сообщений: 29
27.11.2011, 14:47  [ТС] 10
спасибо!)
0
27.11.2011, 14:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2011, 14:47
Помогаю со студенческими работами здесь

У меня проблеми с видеокартой! Подскажите что ето может быть!
Помагите пожайлусто чё такое у меня с свидео картоййй..............я играю в игра любую...

Пожалуйста подскажите есть ли серьезные ошибки
Доброго времени. Студент-айтишник, вэб у меня непрофильное. Знакомый попросил сделать небольшой...

Здравствуйте у меня возник вопрос..Возможно ли сделать что бы при ошибки в программе выбивалось моё окно??
Здравствуйте у меня возник вопрос..Возможно ли сделать что бы при ошибки в программе выбивалось...

помогите пожалуйста.прога на java)ну никак у меня не получается!все что есть принимается
Разработать калькулятор, вычисляющий выражения типа: 3+2-1*7=?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru