Нужно Обьяснить Код Программы.

Тема в разделе "C/C++/C#", создана пользователем mccartney, 1 июн 2012.

Статус темы:
Закрыта.
  1. mccartney

    mccartney Гость

    Здравствуйте, проблему следующая:
    Есть код двух программ, который нужно обьяснить корректным русским языком максимально подробно, каждую строку, в идеале даже каждую скобку
    Программы рабочие, но возможно не корректно или не правильно написан код.. по сути дела никакого значения это не имеет, главное обьяснить действия которые выполняются в этом коде

    Первая программа: (язык С)
    консольное приложение, эмитирующее работу простого калькулятора.

    требования к программе:
    - приложение должно позволять производить бинарные операции: сложение, вычитание, умножение, деление;
    - при запуске приложения должен производиться ввод первого числа, затем - знака операции или управляющей команды, затем, в первом случае, второго числа, после чего должен производиться вывод результата и ввод следующей операции или управляющей команды (одно-символьные);
    - по одной из управляющих команд (“сброс”) должен производиться возврат на ввод первого числа, по другой (“конец”)– закрытие приложения;
    - произведенные операции должны накапливаться в файле текстового формата в папке программы;
    - для ввода и вывода использовать только стандартные функции C.

    краткая инструкция по работе с программой:
    Ввести первое значение
    Ввести символ операции +, -, *, /.
    Ввести второе значение
    Получаем результат
    Ввести символ операции +, -, *, /.
    Ввести третье значение
    Получаем результат
    Опрерацию можно выполнять несколько раз
    Посде вычислений результата можно сбросить введя букву «c»
    И проделать предыдущие шаги заного
    Чтобы выйти из программы нужно ввести кнопку «q»

    код программы:

    int main(int argc, char *argv[])
    {

    double a,b;
    char oper, isoper;

    FILE*f;
    f=fopen("asd.txt", "w");

    fprintf(f, "Begin\n");
    m1:;
    printf("Vvedite 1 chislo: ");
    scanf("%lf", &a);
    m2:;
    printf("Vvedite deistvie: ");
    scanf("%c", &oper);
    scanf("%c", &oper);

    isoper=((oper=='+') || (oper=='-') || (oper=='/') || (oper=='*') || (oper=='c') || (oper=='q'));

    if (!isoper)
    {
    printf("Unncorrect\n");
    fprintf(f, "Unncorrect\n");
    goto m2;
    }
    if (oper=='c')
    {
    fprintf(f, "Reset\n");
    goto m1;
    }
    if (oper=='q')
    {
    fprintf(f, "End");
    goto m3;
    }
    printf("Vvedite 2 chislo: ");
    scanf("%lf", &:);

    if (oper=='+')
    {
    fprintf(f, "%.2lf", a); fprintf(f, "%c", oper);
    fprintf(f, "%.2lf", B); fprintf(f, "=");
    a=a+b;
    printf("Otvet=%.2lf\n", a);
    fprintf(f, "%.2lf", a); fprintf(f, "\n");
    goto m2;
    }
    if (oper=='-')
    {
    fprintf(f, "%.2lf", a); fprintf(f, "%c", oper);
    fprintf(f, "%.2lf", B); fprintf(f, "=");
    a=a-b;
    printf("Otvet=%.2lf\n", a);
    fprintf(f, "%.2lf", a); fprintf(f, "\n");
    goto m2;
    }

    if (oper=='/')
    {
    fprintf(f, "%.2lf", a); fprintf(f, "%c", oper);
    fprintf(f, "%.2lf", B); fprintf(f, "=");
    a=a/b;
    printf("Otvet=%.2lf\n", a);
    fprintf(f, "%.2lf", a); fprintf(f, "\n");
    goto m2;
    }
    if (oper=='*')
    {
    fprintf(f, "%.2lf", a); fprintf(f, "%c", oper);
    fprintf(f, "%.2lf", B); fprintf(f, "=");
    a=a*b;
    printf("Otvet=%.2lf\n", a);
    fprintf(f, "%.2lf", a); fprintf(f, "\n");
    goto m2;
    }
    m3:;
    fprintf(f, "\n");
    fclose(f);

    system ("PAUSE");
    return 0;
    }

    вторая программа: (язык С++)
    консольное приложение, производящее табулирование заданной функции и определение максимального и минимального значения функции в таблице.

    Требования к программе:
    Вводится: начало диапазона табулирования, конец диапазона табулирования, число шагов табулирования.
    Выводится: столбцы соответствующих значений аргумента и функции, минимальное и максимальное значения функции.
    Таблица значений аргумента и функции должна, кроме того, сохраняться в файле текстового формата в папке программы. Для ввода и вывода использовать стандартные объекты и классы C++;

    Краткая инструкция по пользованию программой
    1 ввести начало диапазона
    2 ввести конец диапазона
    3 ввести количество шагов
    4 смотреть результат

    код программы:

    int main(int argc, char *argv[])
    {
    FILE*file1;
    file1=fopen("save1.txt","a");

    double y, i, xmin, xmax, xshag, ymin,ymax;
    printf("Vvedite nachalo diapazona\n");
    scanf("%lf", &xmin);
    printf("Vvedite konec diapazona\n");
    scanf("%lf", &xmax);
    printf("Vvedite kolichestvo shagov\n");
    scanf("%lf", &xshag);
    xshag = (xmax-xmin)/xshag;
    printf("|----------------------|\n");
    fprintf(file1,"|----------------------|\n");
    printf("| X Y |\n");
    fprintf(file1,"| X Y |\n");
    printf("|----------------------|\n");
    fprintf(file1,"|----------------------|\n");
    y = ((xmin+log(xmin*xmin*xmin+1))/(xmin*xmin+pow(2.3,xmin)))*(xmin-sin(xmin));
    ymin = y;
    ymax = y;
    while (xmin <= xmax)
    {
    y = ((xmin+pow(3.2,2*xmin)) / (xmin*xmin+log(xmin*xmin+1)))*(xmin-sin(xmin));
    printf("|%.5le ",xmin);
    fprintf(file1,"|%.5le ",xmin);
    printf("%.5le |",y);
    fprintf(file1,"%.5le |",y);
    printf("\n");
    fprintf(file1,"\n");
    xmin=xmin+xshag;
    if (ymin>y) (ymin=y);
    if (ymax<y) (ymax=y);
    }
    printf("|----------------------|\n");
    fprintf(file1,"|----------------------|\n");
    printf("ymin=%.5le ",ymin);
    fprintf(file1,"ymin=%.5le ",ymin);
    printf("\n");
    fprintf(file1,"\n");
    printf("ymax=%.5le ",ymax);
    fprintf(file1,"ymax=%.5le ",ymax);
    printf("\n");
    fprintf(file1,"\n");
    fclose(file1);



    system("PAUSE");
    return EXIT_SUCCESS;
    }


    я конечно могу ошибаться, но думаю обьяснить код намного легче чем написать его) Заранее выражаю благодарность всем кто поможет! очень нужна ваша помощь!
     
Загрузка...
Статус темы:
Закрыта.

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