Ошибка В Объявлении Функции

Тема в разделе "Общие вопросы по С и С++", создана пользователем vamp, 15 дек 2011.

  1. vamp

    vamp Гость

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


    Код (C++):
    {
    float x, y;
    };
    DataType* Data;
    int RecNum=0;
    float f(int func, float x)
    {
    switch (func)
    {
    case 1:
    return 0.348*x*x+0.696*x-8.348;
    break;
    case 2:
    return 8*sin(x/2+3.14/8);
    break;
    case 3:
    return 0.21*x*x*x+0.85*x*x-2.34*x-0.4;
    break;
    }
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Какие ошибки?
     
  3. vamp

    vamp Гость

    unreachable code in funkction f(int,float)
     
  4. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Если это весь код который есть, то проще будет указать на те места где ошибок нет. Где ты его взял?
     
  5. vamp

    vamp Гость

    только не взял, а взяла))) Это кусок из моей курсовой работы, решения нелинейных уравнений методом Ньютона.

    Прога "ругается" на float f(int func, float x) и на float f1(int func, float x)
    она выбивает даже не как ошибку, а как предупреждение и не хочет компилировать(
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Показывай весь код! У тебя проблема с блоками.
     
  7. vamp

    vamp Гость

    я пробовала закинуть сюда он становится нечитабельным(

    если только на вашу почту сбросить, была бы очень блогодарна

    Код (C++):
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    #include <process.h>
    #define PathToDriver "C:\\bc_\\"
    struct DataType
    {
    float x, y;
    };
    DataType* Data;
    int RecNum=0;
    float f(int func, float x)
    {
    switch (func)
    {
    case 1:
    return 0.348*x*x+0.696*x-8.348;
    break;
    case 2:
    return 8*sin(x/2+3.14/8);
    break;
    case 3:
    return 0.21*x*x*x+0.85*x*x-2.34*x-0.4;
    break;
    }

    return 0;
    }
    float f1(int func, float x)
    {
    switch (func)
    {
    case 1:
    return 0.696*x+0.696;
    break;
    case 2:
    return 4*cos(x/2+3.14/8);
    break;
    case 3:
    return 0.63*x*x+1.7*x-2.34;
    break;
    }
    return 0;
    }
    void DrawLogo()
    {
    gotoxy(20, 8);
    printf("-------------------------------------------");
    gotoxy(20, 9);
    printf("!                                        !");
    gotoxy(20, 10);
    printf("!        This program is created         !");
    gotoxy(20, 11);
    printf("! for demonstrating the Newton's method !");
    gotoxy(20, 12);
    printf("! of solving equations                !");
    gotoxy(20, 13);
    printf("!                                        !");
    gotoxy(20, 14);
    printf("!                                         . !");
    gotoxy(20, 15);
    printf("!                                        !");
    gotoxy(20, 16);
    printf("-------------------------------------------");
    }
    void DrawMainMenu()
    {
    printf("! Exit !");
    printf(" File !");
    printf("          Solve       !\n");
    printf("-----------------------------------------------\n");
    }


    [b]Добавлено: [/b]void Save()
    {
    FILE *stream;
    stream=fopen("Result.txt", "w+");

    fprintf(stream, "This file contains the results\n\nIteration     x        y\n");
    fprintf(stream, "----------------------------------\n");

    for (int i=0; i<RecNum-1; i++)
    fprintf(stream, "  %d        %f  %f\n", i+1, Data[i].x, Data[i].y);


    fclose(stream);

    clrscr();
    DrawMainMenu();
    gotoxy(20, 9);
    printf("------------------------------------------");
    gotoxy(20, 10);
    printf("! File Result.txt is succesfully saved !");
    gotoxy(20, 11);
    printf("!                                       !");
    gotoxy(20, 12);
    printf("!        Press any key to EXIT       !");
    gotoxy(20, 13);
    printf("------------------------------------------");
    getch();
    }
    void Open()
    {
    FILE *stream;
    char *str;
    str=new char[255];
    clrscr();

    stream=fopen("Result.txt", "o");

    fscanf(stream, str);
    printf(str);

    delete str;
    fclose(stream);

    printf("\n\n---------------------");
    printf("\nPress any key to EXIT");
    getch();
    }

    void FileMenu()
    {
    char ch;

    clrscr();
    DrawMainMenu();
    printf("         ! Save !\n");
    printf("         ! Open !\n");
    printf("         ----------\n");

    ch=getch();

    switch (ch)
    {
    case 's':
    Save();
    break;

    case 'o':
    Open();
    break;

    default:
    break;
    }
    }



    void Newton(int func, double a)
    {
    RecNum=0;

    double x0, y0;
    int x, y;
    int i=0;
    x0=a;



    Data[i].x=x0;
    Data[i].y=f(func, x0);
    i++;
    printf("%f  ", x0);
    printf("%f \n", f(func, x0));

    x=x0*20+440;
    y=-f(func, x0)*20+280;


    while (fabs(f(func, x0))>0.000001)
    {
    x0=x0-f(func, x0)/f1(func, x0);
    Data[i].x=x0;
    Data[i].y=f(func, x0);
    i++;
    printf("%f  ", x0);
    printf("%f \n", f(func, x0));
    x=x0*20+440;
    y=-f(func, x0)*20+280;

    }

    RecNum=i;



    printf("\n---------------------");
    printf("\nPress any key to EXIT");
    }
    void SolveMenu()
    {
    char ch;

    clrscr();
    DrawMainMenu();
    printf("                 ! 1: ax^2+bx+c  [1, 8] !\n");
    printf("                 ! 2: ax^3+bx^2+cx+d [-7, 1] !\n");
    printf("                 ! 3: sin(x/k-w)     [-2, 5] !\n");
    printf("                 -----------------------------\n");

    ch=getch();

    switch (ch)
    {
    case '1':
    clrscr();
    DrawMainMenu();
    Newton(1, 1);
    getch();

    break;

    case '2':
    clrscr();
    DrawMainMenu();
    Newton(3, -7);
    getch();

    break;

    case '3':
    clrscr();
    DrawMainMenu();
    Newton(2, -2);
    getch();

    break;

    default:
    break;
    }
    }
     
  8. tig1818c

    tig1818c Гость

    Можно попробовать написать функу по классической схеме:

    Код (C++):
    float f(int func, float x)
    {
    float result;
    switch (func)
    {
    case 1:
    result = 0.348*x*x+0.696*x-8.348;
    break;
    case 2:
    result = 8*sin(x/2+3.14/8);
    break;
    case 3:
    result = 0.21*x*x*x+0.85*x*x-2.34*x-0.4;
    break;
    default : result = 0;
    }
    return result;
    }
     
  9. vamp

    vamp Гость

    сейчас попробую

    Добавлено: спасибо)
    но сработало только для f, а для f1 нет(
     
  10. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    А нечитабельный он становится, потому что вы его в тэг С++ не ставите.

    Добавлено: vamp, не, на почту кидать не надо, кидай сюда.
    Можешь написать в ICQ: 373706950
     
  11. vamp

    vamp Гость

    у меня еще выбивает в конце что типа присваиваются значения x, y которые никогда не используются
     
  12. vamp

    vamp Гость

    я объявила переменные для массива, но в ходе компиляции выдало ошибку, что присваиваемые значения x и y нигде не используются, помогите исправить, пожалуйста

    вот код

    Код (C++):
    void Newton(int func, double a)
    {    
    RecNum=0;
    int x, y;
    double x0, y0;

    int i=0;
    x0=a;



    Data[i].x=x0;
    Data[i].y=f(func, x0);
    i++;
    printf("%f  ", x0);
    printf("%f \n", f(func, x0));

    x=x0*20+440;
    y=-f(func, x0)*20+280;


    while (fabs(f(func, x0))>0.000001)
    {
    x0=x0-f(func, x0)/f1(func, x0);
    Data[i].x=x0;
    Data[i].y=f(func, x0);
    i++;
    printf("%f  ", x0);
    printf("%f \n", f(func, x0));
    x=x0*20+440;
    y=-f(func, x0)*20+280;

    }

    RecNum=i;



    printf("\n---------------------");
    printf("\nPress any key to EXIT");
    }

    lazybiz: Давай ты уже научишься пользоваться тэгами!
     
  13. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    То что "что присваиваемые значения x и y нигде не используются" это предупреждение, а не ошибка.
     
  14. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Удали из функции Newton декларацию:
    Код (C++):
    int x, y;
     
Загрузка...
Похожие Темы - Ошибка Объявлении Функции
  1. Lamerman
    Ответов:
    0
    Просмотров:
    26
  2. Enima
    Ответов:
    0
    Просмотров:
    52
  3. Baindt
    Ответов:
    1
    Просмотров:
    74
  4. anna
    Ответов:
    2
    Просмотров:
    81
  5. gramzer
    Ответов:
    1
    Просмотров:
    120

Поделиться этой страницей