Друзья, изучаю самостоятельно с ++.Только вначале пути . Сделал простую программу, которая по значению радиуса окружности определяет ее площадь, длину и диаметр . Нужно мнение специалистов, возможно ли написать код лаконичнее и не набыдлокодил ли я ?) Прошу проявить понимание, так как я новичок :) Замечания приветствуются . Всем спасибо за ответы заранее :) Вот исходный код программы, не знаю, можно ли тут его иначе размещать, тем не менее :
#include
int main()
{
int r;
double p = 3.14;
double s;
double l;
double d;
std::cout << " Enter value of radius ";
std::cin >> r;
s = (p*r*r);
std::cout << " S == " << s<< " ";
l = (2 * p*r);
std::cout << " L == " << l << " ";
d = (l / p);
std::cout << " D == " << d << " ";
system("pause");
}
Другие языки программирования и технологии
Можно ли более лаконично написать код этой маленькой программы ?
Нормальный код для новичка. Мелкие замечания:
- переменные обычно лучше называть длиннее; но в этом случае используются общепринятые математические обозначения, так что сойдет.
- если программа не использует ничего, кроме STL, принято добавлять using namespace std и опускать std:: дальше по коду; но в больших проектах это наоборот считается признаком быдлокода. Так что нейтрально.
- в cmath есть константа M_PI, представляющая Пи с максимально доступной точностью. 3.14 вместо Пи - это плохо. Тем более плохо держать это в переменной, а не в константе.
- s = (p*r*r); - скобки явно не нужны. Как и в других выражениях.
- бессмысленно сначала умножать на Пи, а потом делить.
- system("pause") - это точно быдлокод: для простой паузы вызывать другую программу, с чтением, проверкой прав, созданием отдельного пространства адресов и т. д. Если нужна пауза - читай строку; если нужно задержать программу на экране после работы - запускай ее в соответствующем окружении.
- переменные обычно лучше называть длиннее; но в этом случае используются общепринятые математические обозначения, так что сойдет.
- если программа не использует ничего, кроме STL, принято добавлять using namespace std и опускать std:: дальше по коду; но в больших проектах это наоборот считается признаком быдлокода. Так что нейтрально.
- в cmath есть константа M_PI, представляющая Пи с максимально доступной точностью. 3.14 вместо Пи - это плохо. Тем более плохо держать это в переменной, а не в константе.
- s = (p*r*r); - скобки явно не нужны. Как и в других выражениях.
- бессмысленно сначала умножать на Пи, а потом делить.
- system("pause") - это точно быдлокод: для простой паузы вызывать другую программу, с чтением, проверкой прав, созданием отдельного пространства адресов и т. д. Если нужна пауза - читай строку; если нужно задержать программу на экране после работы - запускай ее в соответствующем окружении.
Необязательно все переменные описывать в начале, это не Паскаль.
Можно прямо по ходу дела:
double s = (p*r*r);
Тогда будет ощутимо лаконичнее.
Можно прямо по ходу дела:
double s = (p*r*r);
Тогда будет ощутимо лаконичнее.
#include "iostream"
using namespace std;
int main(){
const float pi=3.14159265; float r; cout<<"R: "; cin>>r;
cout<<"S="<< pi*r*r<<", L="<<2*pi*r<<", D="<<2*r<< endl;
cin.get(); cin.get();}
using namespace std;
int main(){
const float pi=3.14159265; float r; cout<<"R: "; cin>>r;
cout<<"S="<< pi*r*r<<", L="<<2*pi*r<<", D="<<2*r<< endl;
cin.get(); cin.get();}
Алексей Гарькин
тип float лучше не использовать (на x86, как на других платформах -- не знаю), если нет необходимости хранить гигантское количество чисел.
немного можно сократить.
double s = p*r*r; // рекомендуется объявлять переменную там, где она нужна, и сразу инициализировать. Не нужны скобки (p*r*r).
Аналогично переменные l и d.
double s = p*r*r; // рекомендуется объявлять переменную там, где она нужна, и сразу инициализировать. Не нужны скобки (p*r*r).
Аналогично переменные l и d.
Игорь Горбачев
Благодарю за дельный совет, я думал так нельзя делать :)
Дмитрий Кижаев
system("pause"); // это кошмар. Запуск внешней программы чтобы сделать ожидание нажатия кнопки
работать будет.
один вопрос. почему радиус типа int?
один вопрос. почему радиус типа int?
Игорь Горбачев
Я собирался вводить только целые числа, без запятой, поэтому . Она работает, мне интересно, можно ли еще лучше написать ?)
1. диаметр проще посчитать из радиуса, чем из длины окружности.
2. если результаты вычислений используются только для вывода, использовать переменные ни к чему.
3. в вычислениях скобки лишние. ошибки в этом нет, но с толку может сбить при беглом взгляде - приходится останавливаться и смотреть подробнее, в общем, снижает читаемость кода.
4. По дизайну - лучше выводить в разные строки.
5. Ну и по математике - процессору все равно, что считать, число пи можно и поточней определить.
2. если результаты вычислений используются только для вывода, использовать переменные ни к чему.
3. в вычислениях скобки лишние. ошибки в этом нет, но с толку может сбить при беглом взгляде - приходится останавливаться и смотреть подробнее, в общем, снижает читаемость кода.
4. По дизайну - лучше выводить в разные строки.
5. Ну и по математике - процессору все равно, что считать, число пи можно и поточней определить.
Похожие вопросы
- напишите самую маленькую программу
- Ассемблер. Написать маленькую программу вычисления арифметического выражения. Подробности внутри.
- Помогите пожалуйста напишите код программы
- Помогите написать код для программы...
- кто напишет код. программа на с++
- Как на паскале написать код программы,которая при вводе числа,выводит его словами?
- HTML! помогите пожалуйста написать код для сайта простого сайта!
- надо написать код программы на языке си. помогите кто знает как!
- Надо написать код в программе делфи
- Помогите написать код на C++