Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Raikerian
9 / 9 / 1
Регистрация: 10.05.2011
Сообщений: 101
#1

Совершенствование кода - C++

11.02.2012, 15:11. Просмотров 478. Ответов 3
Метки нет (Все метки)

Всем доброго времени суток На C++ я новичок, но эта тема создана не для проверки математического решения задач в моих кодах и не для решения этих же задач. Здесь я хочу спросить как правильнее оформить код чтобы он выглядел более совершенным (красивым). Все таки если учиться писать программы используя C++ то учиться писать их красиво нужно с самого начала (как я считаю).

Сама задача была по площади квадрата найти остальные значения:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 1-1.cpp: По площади квадрата найти необходимые значения
//
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
int main()
{
        // Русский язык
    setlocale(LC_ALL, "");
    cout << "Введите площадь квадрата: S = ";
    double S;
    cin >> S;
    // a - сторона, d - диагональ, S1 - площадь описанного около квадрата круга
    double a = sqrt(S), d = sqrt(2*S), S1 = 3.14*0.5*a*a;
    // Округление всех чисел до двух знаков после запятой (если требуется)
    a = int(a * 100) / 100.0;
    d = int(d * 100) / 100.0;
    S1 = int(S1 * 100) / 100.0;
    // Вывод данных на экран
    cout << "\nОтветы:" << "\na = " << a << "\nd = " << d << "\nS1 = " << S1 << "\n";
    getch();
    return 0;
}
Собственно вопросы по коду:
1.
C++
1
float a = sqrt(S), d = sqrt(2*S), S1 = 3.14*0.5*a*a;
Адекватно ли сразу при объявлении переменных присваивать им формулы для рассчетов? Или всеже стоит просто объявить переменные, а ниже построчно уже присваивать формулы/значения?

2.
C++
1
2
3
a = int(a * 100) / 100.0;
d = int(d * 100) / 100.0;
S1 = int(S1 * 100) / 100.0;
Стоит ли для этой части округления создавать отдельную функцию/процедуру?

3.
C++
1
cout << "\nОтветы:" << "\na = " << a << "\nd = " << d << "\nS1 = " << S1 << "\n";
Так правильно или вывод каждой переменной стоит оформить cout'ом отдельными строками?

4. Насколько знаю тип float занимает меньше объема памяти чем double, не экономней ли его было использовать здесь?

5. Пожалуй технический вопрос. cin.get() не хочет задерживать экран после выполнения программы, поэтому приходиться использовать getch() подключая отдельную библиотеку. Быть может есть варианты почему cin.get() не работает?

Спасибо за внимание
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2012, 15:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Совершенствование кода (C++):

Вынести основную часть кода кода в отдельную функцию - C++
помогите пожалуйста переделать это на функцию... #include &lt;locale.h&gt; #include &lt;conio.h&gt; int main() { setlocale(0,&quot;&quot;); float...

Участок B кода выполняется позже, чем участок A кода, но почему-то B влияет на работоспособность A! Почему? - C++
Друзья! То есть суть такая, создаю объект и в конструктор передаю имя процесса и хэндл снимка системы. А в конструкторе начинается...

Создание кода программы с нуля!! создание кода C++ - C++
ВОТ УСЛОВИЕ : Для данного вещественного x,a,b,c найти значение следующей функции f,принимающей вещественное задания: ...

Совершенствование программы - Delphi
Здравствуйте, помогите пожалуйста: мне нужно было написать программу:&quot;В одномерном массиве целых чисел вычислить и вывести на экран ...

Совершенствование шаблона Вдрузях - HTML, CSS
Здраствуйте я скачал шаблон Вдрузях мне нужна помощ в его досконаленни. Мне нужно для Ucoz я его по ставил когда я вожу логин и пароль...

Совершенствование процессов планирования за использованием материально-технических ресурсов путём разработки.. - Экономика
Добрый вечер, беспокоит такой вопрос: Пишу дипломную работу на тему: Совершенствование процессов планирования за использованием...

3
vladislavchick
35 / 35 / 1
Регистрация: 22.05.2010
Сообщений: 107
11.02.2012, 15:30 #2
По-моему, все ОК. Если не устраивают длинные строчки, то пишете так:
C++
1
2
3
double a = sqrt(S), 
       d = sqrt(2*S),
       S1 = 3.14*0.5*a*a;
Добавлено через 1 минуту
для задержки перед cin.get() ставьте cin.sync().

Добавлено через 5 минут
cin.get() не работает, потому что, если уже производился ввод, то в буфере потока cin остается несчитанный символ новой строки, который и дочитывает cin.get(). cin.sync() очищает буфер, поэтому cin.get() брать из потока уже нечего, и он ждет ввода какого-нибудь символа.
1
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
11.02.2012, 16:21 #3
1. да, мало того это хорошая идея - инициализировать сразу после объявления. только лучше каждую переменную на своей строке. более читаемо.

2. опять же из соображений читаемости и очевидности кода - да. что-то вродe a=round(a) гораздо яснее передает суть, чем строка a = int(a * 100) / 100.0; Но программа маленькая и это не критично.

3. если все умещается в пределах экрана, то можно. Иначе либо просто перенести строку с правильным выравниванием, либо сделать еще один cout<<...

4. исходить нужно из соображений требуемой точности, а не экономить память на глупостях.
1
Raikerian
9 / 9 / 1
Регистрация: 10.05.2011
Сообщений: 101
12.02.2012, 17:30  [ТС] #4
Спасибо за советы вроде со всем разобрался)
0
12.02.2012, 17:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2012, 17:30
Привет! Вот еще темы с ответами:

Напишите фрагмент кода для определения кода нажатой клавиши (расширенного кода в том числе) - Turbo Pascal
Напишите фрагмент кода для определения кода нажатой клавиши (расширенного кода в том числе). Найдите коды клавиш Esc, Enter, BackSpace,...

Почему после изменения кода продолжает выполняться сценарий старого кода? - C#
ВОПРОС Почему после изменения кода продолжает выполняться сценарий старого кода? ИМЕЕТСЯ Проект 1, который выполняет СЦЕНАРИЙ 1 . ...

Замена програмно куска кода в файле .php другим куском кода - PHP
Мне необходимо програмно заменить кусок кода в файле .php Есть файл .php, в котором надо заменить кусок кода другим куском кода. Для...

Исполнение кода, написанного в текстовом файле (динамическая компиляция кода) - C#
к примеру есть у меня форма а на ней кнопка, можно ли присваивать код кнопке с текстового файла? пример в текстовике: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru