Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/146: Рейтинг темы: голосов - 146, средняя оценка - 4.50
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784

Объявить константу числа Пи

28.12.2014, 18:13. Показов 29112. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Читаю Дейтелов. Дано задание :
Напишите программу, которая считывает радиус круга и печатает диаметр круга, длину окружности и площадь.
Используйте значение константы 3.14159 для числа ?. Выполните все эти вычисления в операторе вывода. "замечание: в этой главе мы обсудили только целые константы и переменные(переменные - да, констант я вообще не помню, в программах, которые писал в первой главе их точно не было). В главе 3 мы обсудим то то и то то."

Что конкретно я не так понял? Я не знаю как объявить константу числа Пи, максимум я объявлял переменные типа int, пример:
C++
1
2
int x;
       int y;
Как я понимаю, использовать нужно только iostream, но как объявить константу я не пойму. Очень маловероятно, что я пропустил этот момент, хотя, всякое может быть.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.12.2014, 18:13
Ответы с готовыми решениями:

Как объявить текстовую константу в классе?
Добрый вечер. Нужно объявить текстовую константу в классе. Как это сделать? static const QString FAQ = "faq.txt";Можно также...

Не объявить константу
Доброго времени суток ! Написал скрипт. Проверил что работает и решил использователь в коде константу. Объявил её но при выполнении...

Объявить массив как константу.
собственно, вопрос в теме - как задать значение элементов массива прямо при его объявлении? до меня дошли слухи, что это можно сделать в...

22
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
28.12.2014, 18:15
C++
1
2
3
4
5
const float Pi = 3.14;
float Pi2 = 3.14;
 
Pi = 13.1; // ошибка компиляции нельзя менять значение константы
Pi2 = 13.1; // всё ок
1
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
28.12.2014, 18:16
kalonord, можно как макроподстановку
C++
1
#define PI 3.14159
можно как константу
C++
1
const double PI = 3.14159;
1
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
28.12.2014, 18:20  [ТС]
Kerry_Jr, если я объявляю
C++
1
const double PI = 3.14159;
То, допустим, площадь считать так?
C++
1
S = PI * r*r;
То есть "PI" - это наша константа?
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
28.12.2014, 18:33
Цитата Сообщение от kalonord Посмотреть сообщение
То есть "PI" - это наша константа?
Так и есть

Добавлено через 56 секунд
Цитата Сообщение от kalonord Посмотреть сообщение
считать так?
и это тоже верно
1
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
28.12.2014, 18:41  [ТС]
Оказалось, что объявлять константу было не нужно, то есть можно было просто вписать:
C++
1
cout << "Площадь круга: " << 3.14159 * r * r << endl;
Просто раньше я думал, что любое число в коде, должно быть значением какой-нибудь переменной или константы(как в данном случае).
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
28.12.2014, 19:03
Цитата Сообщение от kalonord Посмотреть сообщение
любое число в коде, должно быть значением какой-нибудь переменной или константы
так и есть. Погуглите "магическое число в с++"
0
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
28.12.2014, 19:16  [ТС]
rikimaru2013, "...Иногда магические числа вредят кроссплатформенности кода..". То есть, то, как я написал - допустимо, но лучше использовать константу числа Пи ?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
28.12.2014, 19:30
Цитата Сообщение от kalonord Посмотреть сообщение
Используйте значение константы 3.14159 для числа ?. Выполните все эти вычисления в операторе вывода. "замечание: в этой главе мы обсудили только целые константы и переменные(переменные - да, констант я вообще не помню, в программах, которые писал в первой главе их точно не было).
Под константами здесь имеются ввиду числовые литералы (числа в коде, которые сами по себе являются константами), те самые "магические числа".
1
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
28.12.2014, 19:30
Цитата Сообщение от kalonord Посмотреть сообщение
То есть, то, как я написал - допустимо, но лучше использовать константу числа Пи ?
Да. Всё зависит от угла прямой-касательной проведеной от прямой изгиба локтя и клавиатуре. В простонароде "криворукость". Не юзайте магические числа через неделю вы с трудом вспомните что делает ваш код, а через год спросите "это мой код" ?)
1
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
28.12.2014, 20:03  [ТС]
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Не юзайте магические числа
Я вас понял, учту, но задание в учебнике было дано, как объявить константу - не прошел такого, соответственно нужно было заюзать это "магическое число"

Добавлено через 8 минут
У меня вопрос: как запустить программу по новой? То есть, после выполнения программу нужно перезапускать, а как можно зациклить её? Допустим, программа всё подсчитала, пользователь жмет какую-нибудь кнопку и всё по новой, пользователь опять вписывает числа, программа вычисляет.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
28.12.2014, 20:17
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Не юзайте магические числа через неделю вы с трудом вспомните что делает ваш код, а через год спросите "это мой код" ?
Ну с числом Пи такая интерпретация проблемы вряд ли возможна. Но возможна другая проблема: когда в разных местах будут использоваться числа разной точности, где-то 3.14, где-то 3.1415 и т.д. Можно потратить достаточно времени, чтобы понять причину различных результатов вроде бы одинаковых формул.
Цитата Сообщение от kalonord Посмотреть сообщение
Допустим, программа всё подсчитала, пользователь жмет какую-нибудь кнопку и всё по новой,
Почитайте всё же учебник ещё. Дойдете до циклов и условий и вопросы отпадут сами собой. Выносить такие элементарные вещи на форум, имхо, не целесообразно.
1
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
28.12.2014, 20:18
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
#include <iostream>
using namespace std;
 
int main()
{
    const float Pi = 3.14;
    int radius = 0;
    char answer = 0;
 
    do
    {
        cout << "Enter radius: " << endl;
        cin >> radius;
 
        cout << "Square is " << radius*radius*Pi << endl;
 
        cout << "One more?" << endl;
 
        cin >> answer;      
        system("cls");
        
    } while (answer != 'n');
 
}
2
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
28.12.2014, 20:25
rikimaru2013, о, чувак, спасибо тебе! Я все никак не мог вспомнить как создал программу, которая не закрывалась сразу после вывода ответа, а могла еще несколько примеров прорешать без перезапуска проги. Надо же такое забыть
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
28.12.2014, 20:30
Цитата Сообщение от kalonord Посмотреть сообщение
но задание в учебнике было дано, как объявить константу - не прошел такого,
Там не сказано было ообъявлять константу:
"Используйте значение константы 3.14159 для числа PI..."
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
28.12.2014, 20:42
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
const float Pi = 3.14;
float константу имеет смысл объявлять с префиксом f:
C++
1
const float Pi = 3.14f;
Но в большинстве случаев имеет смысл использовать double.
0
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
28.12.2014, 22:07  [ТС]
Цитата Сообщение от lss Посмотреть сообщение
Там не сказано было ообъявлять константу
Да, я потом это понял, я вот только не понял, зачем вы процитировали мое сообщение, урезав его
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
28.12.2014, 22:13
Цитата Сообщение от kalonord Посмотреть сообщение
зачем вы процитировали мое сообщение, урезав его
Это не твоё сообщение, а цитата из книги.
0
 Аватар для kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
28.12.2014, 22:17  [ТС]
lss,
Цитата Сообщение от lss Посмотреть сообщение
но задание в учебнике было дано, как объявить константу - не прошел такого,
Я про это.
Вы всё объяснили в своем первом посте в этой теме и потом опять пишите про константу.
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
28.12.2014, 23:21
Цитата Сообщение от kalonord Посмотреть сообщение
Вы всё объяснили в своем первом посте в этой теме и потом опять пишите про константу.
Первый мой пост в теме (9-й) - это ответ на первый твой пост, а 15 мой пост - это ответ на твой 11 пост. Из 11 поста можно подумать, что в учебнике, в задании, сказано объявить константу, а там этого нет, что я и подтвердил цитатой из задания.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2014, 23:21
Помогаю со студенческими работами здесь

Как объявить глобальную константу?
Пример из хелпа не работает: ' Declare Public constant. Public Const MyString = 'HELP'

Объявить константу на весь класс
Здравствуйте, допустим мне нужно объявить одно финальное статик поле на весь класс, ну например: public static final int FRAME_WIDTH =...

Где и как объявить константу в программе
Здравствуйте. Появилась проблема. Написана программа, но не может скомпилировать, т.к. выдаёт ошибку. Её я прописал ниже. Ошибка в 16...

Можно ли в qBasic объявить константу-массив?
здравствуйте. появилась необходимость сесть за бейсик. вопрос: можно ли объвить как константу массив?(просто в паскале, си это можно...

Как правильно объявить цветовую константу
На Private Const clr_background As Color = Color.Red компилятор ругается. Что не так-то?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru