Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2016, 13:27   #1
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию Объем конуса

Здравствуйте.
Задача:
Цитата:
Нахождение объема конуса. Написать программу, которая запрашивает у пользователя высоту и радиус основания конуса, рассчитывает объем и выводит результат вычисления на экран. При составлении программы учесть, что высота и радиус основания конуса – положительные величины.

Примечание: Все операции производятся в функции main(). Если в задании не указан явно тип операндов, предполагается использование вещественных чисел. В данном блоке заданий приведены условия, которые программа должна проверять при вводе пользовательских данных. Программа должна также выявлять и корректно реагировать на другие исключительные ситуации (например, деление на ноль и ситуацию переполнения). В последующих блоках заданий студентам предлагается определять эти условия самостоятельно, исходя из постановки задачи.
Код:
Цитата:
#include <iostream>
using namespace std;

#define Pi 3.14

int main()
{
double h, r, V;
cout << "Vvedite visotu:" << endl;
cin >> h;
if (h > 0)
{
cout << "Vvedite radius:" << endl;
cin >> r;
if (r > 0)
{
V = Pi * r^2 * h / 3;
cout << "Ob'em konusa raven:" << V << endl;
}
else cout << "Oshibka! Visota ne mozhet bit' otricatel'noi" << endl;
}
else cout << "Oshibka! Visota ne mozhet bit' otricatel'noi" << endl;
return 0;
}
Выдает ошибку: вложенный файл (выражение должно относиться к целочисленному типу). Как исправить?
Есть ли какие-нибудь возможные недочеты программы и её возможные улучшения?
Изображения
Тип файла: jpg пр1.jpg (13.1 Кб, 131 просмотров)
Narsky вне форума Ответить с цитированием
Старый 27.06.2016, 13:30   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

^ - это не степень, для степени есть функция pow
p51x вне форума Ответить с цитированием
Старый 27.06.2016, 13:36   #3
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

Хорошо, а что с числом pi?
И небольшой вопрос не в тему: пользователю нужно ввести шестизначное целое число, как сделать так, чтобы при вводе не шестизначного числа (пятизначного или семизначного например) выводилась ошибка?
Narsky вне форума Ответить с цитированием
Старый 27.06.2016, 13:45   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

1) Попробуй написать просто const double Pi=3.14;

2) Любое шестизначное число находится в интервале 99 999 - 1 000 000.
Ну вот, и организуй проверку.
ura_111 вне форума Ответить с цитированием
Старый 27.06.2016, 13:48   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Хорошо, а что с числом pi?
https://msdn.microsoft.com/ru-ru/library/4hwaceh6.aspx

Цитата:
пользователю нужно ввести шестизначное целое число, как сделать так, чтобы при вводе не шестизначного числа (пятизначного или семизначного например) выводилась ошибка?
В лоб проверить длину полученной строки или перевести эту строку в число и сравнить диапазон.
p51x вне форума Ответить с цитированием
Старый 27.06.2016, 14:16   #6
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

Решил проблему с pi, но что делать тут?
Цитата:
{
double r2 = pow ( r, 2 ) / 3;
V = M_PI* r2*h;
cout << "Ob'em konusa raven:" << V << endl;
}
Ошибка: операнд * должен быть указателем.
Narsky вне форума Ответить с цитированием
Старый 27.06.2016, 14:37   #7
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
https://msdn.microsoft.com/ru-ru/library/4hwaceh6.aspx


В лоб проверить длину полученной строки или перевести эту строку в число и сравнить диапазон.
Можно вопрос: чему не должно быть равно С? 12 не подходит
Цитата:
#include <iostream>
using namespace std;

int main(){
setlocale(LC_ALL, "Russian");
unsigned short int C, c1, c2, c3, c4, c5, c6;
cout << "Введите номер билета из 6 цифр" << endl;
cin >> C;
if (sizeof(C) != 12) {
cout << "Ошибка! Введено число не из 6 цифр" << endl;
system ("pause");
}
else {
c1 = C / 100000;
c2 = C % 100000 / 10000;
c3 = C % 10000 / 1000;
c4 = C % 1000 / 100;
c5 = C % 100 / 10;
c6 = C % 10;
if (c1 + c2 + c3 == c4 + c5 + c6) {
cout << "Поздравляем, это счастливый билет!" << endl;
}
else cout << "Увы, этот билет не счастливый." << endl;
}
return 0;
}
Narsky вне форума Ответить с цитированием
Старый 27.06.2016, 14:38   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Дайте скрин с кодом и сообщением компилятора.

Цитата:
чему не должно быть равно С? 12 не подходит
Не, так не пойдет. Вы же уже ввели число, а не строку... Сравнивайте на диапазон.
p51x вне форума Ответить с цитированием
Старый 27.06.2016, 14:42   #9
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

Вот.
Изображения
Тип файла: jpg пр1.jpg (17.0 Кб, 134 просмотров)
Тип файла: jpg пр2.jpg (11.1 Кб, 137 просмотров)
Narsky вне форума Ответить с цитированием
Старый 27.06.2016, 14:44   #10
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Дайте скрин с кодом и сообщением компилятора.


Не, так не пойдет. Вы же уже ввели число, а не строку... Сравнивайте на диапазон.
Не подскажете как?
Narsky вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL Основание конуса перетекает в вершину lnKod C++ Builder 0 03.06.2016 18:26
составить программу для вычисления обьема конуса arai uzbekova Паскаль, Turbo Pascal, PascalABC.NET 1 03.03.2013 21:57
Вычислить объём цилиндра и конуса shablakov Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2012 12:46
Рассчитать площадь поверхности конуса: Не найду ошибку в ассемблере Skender Помощь студентам 2 24.09.2011 12:08
Рисование тени конуса bill Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 12.12.2010 17:43