Giter VIP home page Giter VIP logo

lab1's People

Contributors

fenix0x avatar

Watchers

 avatar

lab1's Issues

Замечания по Лабораторной работе 1 задание 2

    for (int i = 1; i < param; ++i) 
    {
        if (i % SumDigits(i) == 0)
            if (firstNumber) 
            {
                printf("%d", i);
                firstNumber = false;
            }
            else
                printf(", %d", i);
    }

Лучше в операторе if/else всегда вместо одиночной инструкции использовать блок {}

Верхняя граница диапазона должна также включаться в обработку. Т.е. при верхней границе = 1000, число 1000 тоже должно вывестись

Коэффициент 0,8. После исправления данных замечаний, поменяю на 1

Замечания по Лабораторной работе 1 задание 3

const int GetOperator(const char * str)
{
    if (*str == '+')
        return 1;
    if (*str == '-')
        return 2;
    if (*str == '*')
        return 3;
    if (*str == '/')
        return 4;

    return 0;
}
...
            switch (exprOperator)
            {
            case 1: sum = sum + param;
                break;
            case 2: sum = sum - param;
                break;
            case 3: sum = sum * param;
                break;
            case 4: if (param == 0)
                    {
                        printf("Division by zero\n", i);
                        return 5;
                    }
                    sum = sum / param;
                    break;
            }

В программе не должны использоваться магические числа. Следует либо завести перечисление для операторов, либо использовать явное символьные литералы для сравнения с операторами: '+', '*', '/', '-', т.к. они говорят сами за себя.

Также для кодов ошибок лучше предусмотреть отдельный enum. Не понятно, почему функция main возвращает 5 и что за ним стоит.

printf("Division by zero\n", i);
В функцию передается параметр i, на который нет ссылки в первом аргументе функции printf

Программа должна принимать также 1 аргумент командной строки. В этом случае результат выражения будет равен самому аргументу.

        if ((i % 2) == 0) 
        {
            exprOperator = GetOperator(argv[i]);
            if (exprOperator == 0) {
                printf("Argument #%d should be + - * or /.\n", i);
                return 2;
            }
            printf(" %s", argv[i]);
        } else
        {

else должен располагаться на отдельной строке между } и {, а не в строке с }:
Следует так писать:

if (условие)
{
   ...
}
else
{
...
}

Коэффициент 0,7.

Замечания по Лабораторной работе 1 задание 5

При вводе не числа и не exit программа должна продолжать требовать ввода числа

double EnterValue(string message, bool & finish, bool & err) 
{
    string i;
    string ex = "exit";
    finish = false;
    cout << message;
    cin >> i;
    if (i.compare(ex)==0) 
    { 
        finish = true;
        return 0;
    }
    return StringToDouble(i.c_str(), err);
}

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

if (i == "exit")
{
  finish = true;
  return 0;
}

модифицировать их содержимое, чтобы не происходило ненужного копирования:

double EnterValue(const string & message, bool & finish, bool & err) 
double CalculateDistance(double v, double angle) 
{
    if (v < 0.0)
        return 0.0;
    else
        return pow(v,2)*sin(M_PI*angle/90)/9.8;
}

Имя параметра v лучше заменить на speed.
В выражении return pow(v,2)_sin(M_PI_angle/90)/9.8; лучше использовать пробелы:

return pow(v, 2) * sin(M_PI * angle / 90) / 9.8;

перевод из градусов в радианы происходит по формуле: angle * PI / 180
Тут, понятно, что синус двойного угла в формуле фигурирует, и ты сократил дробь. Но со стороны выглядит как ошибка.
Лучше перевод из градусов в радианы выделить в отдельную функцию DegreeToRadian для наглядности
Коэффициент 0,7

Замечания по Лабораторной работе 1 задание 4

Последовательность чисел ожидается такая:
1, 1, 2, 3, 5, 8, ...
или, как вариант:
0, 1, 1, 2, 3, 5, 8, ...

У тебя она:
1, 2, 3, 5, 8, ...

Имена переменных a1, a2, t мало о чем гооврят

Для хранения чисел последовательности следует использовать тип int.
У тебя сейчас выводятся они так:

1, 2, 3, 5, 8,
13, 21, 34, 55, 89,
144, 233, 377, 610, 987,
1597, 2584, 4181, 6765, 10946,
17711, 28657, 46368, 75025, 121393,
196418, 317811, 514229, 832040, 1.34627e+006,
2.17831e+006, 3.52458e+006, 5.70289e+006, 9.22747e+006, 1.49304e+007,
2.41578e+007, 3.90882e+007, 6.3246e+007, 1.02334e+008, 1.6558e+008,
2.67914e+008, 4.33494e+008, 7.01409e+008, 1.1349e+009, 1.83631e+009,

После последнего числа запятая выводиться не должна

Коэффициент 0,7

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.