lab1's People
lab1's Issues
Замечания по Лабораторной работе 1 задание 1
for (i = 100; i > 0; i = i - 2)
{
Вместо i = i - 2 идиоматичнее писать i -= 2
В остальном замечаний нет
Замечания по Лабораторной работе 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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.