Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
#1

Вычисление объёма цилиндра - C++

29.09.2009, 21:51. Просмотров 1663. Ответов 10
Метки нет (Все метки)

Всем привет.Вот такую функцию взял с учебника:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
int r; // radius
int h; // visota
int v; // objem
 
cout << "Enter the data needed";
cin >> r >> h;
v = h*circle(r);
cout << "Objem Cilindra c radiousom" << r << " i visotoi" << h << "raven" << v;
getch();
}
    
double circle(double radius) {
       return M_PI*radius*radius;
       }
В итоге,не работает,хотя библа подключена...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2009, 21:51     Вычисление объёма цилиндра
Посмотрите здесь:

Цилиндр объёма единица имеет в высоту h C++
C++ Вычисление объема цилиндра - ошибки при компиляции
Вычисление объема и площади поверхности цилиндра C++
Вычисление объёма и площади поверхности цилиндра C++
Написать функцию, которая вычисляет объем цилиндра. Параметрами функции должны быть радиус и высота цилиндра. C++
Вычисление объема цилиндра C++
Написать функцию, которая вычисляет объём и площадь поверхности цилиндра. Входными данными являются радиус цилиндра и его высота C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
29.09.2009, 22:00     Вычисление объёма цилиндра #2
std::cout
std::cin
Monte-Cristo
2786 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
29.09.2009, 22:00     Вычисление объёма цилиндра #3
1. Функция circle() не объявлена
2. Лучше заменить тип переменных на double, будет правельней работать и заодно избавишься от Warning'а о несоответствии передаваемого типа в функцию.

вообщем, вот
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>
#include <cmath>
using namespace std;
 
double circle(double radius);
 
int main()
{
    double r; // radius
    double h; // visota
    double v; // objem
 
    cout << "Enter the data needed";
    cin >> r >> h;
    v = h*circle(r);
    cout << "Objem Cilindra c radiousom" << r << " i visotoi" << h << "raven" << v << endl;
    cin.get();
    return 0;
}
 
double circle(double radius) 
{
    return M_PI*radius*radius;
}


p.s: используйте теги в тулбаре редактора для подстветки синтаксиса кода.
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
29.09.2009, 22:00  [ТС]     Вычисление объёма цилиндра #4
Помимо объявления using namespace std ошибки есть ?
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
29.09.2009, 22:02     Вычисление объёма цилиндра #5
Прототип объявить до вызова...

Добавлено через 1 минуту
Welemir, кстати,еще компилятор в логе ошибки пишет.Можно их почитать..
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
29.09.2009, 22:02  [ТС]     Вычисление объёма цилиндра #6
Извиняюсь...что такое прототип? С типами согласен,поспешил.

ЗЫ: Как замутить передачу параметров от пользователя ? Что-то у меня нечистоЭто уже другая функция,просто для тренировки.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
 using namespace std;
 
 int welya(int x,int y) {
     cin >> x >> y;
     int z = x*y;
     return z;
     }
 
  int main() {
      int result;
      result = welya(x,y);
      printf("Result is: %d",result);
      getch();
      }
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
29.09.2009, 22:05     Вычисление объёма цилиндра #7
Welemir, прототип - это заголовок функции без тела. Сообщает компилятору,что такая функция есть и у нее есть такие параметры,и что реализация ее есть где-то еще.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.09.2009, 22:13     Вычисление объёма цилиндра #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Пробовал Ваш код на VC++ 6.0 и VS 2008.
В общем попробуйте так:
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
25
26
27
28
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define M_PI 3.14159265358979323846
double circle(double radius);
 
int main()
{
int r; // radius
int h; // visota
double v; // objem
cout << "Enter the data needed"<<endl;
cin >> r >> h;
v = h*circle(r);
cout << "Objem Cilindra c radiousom: " << r << " i visotoi: " << h << "  raven: " << v<<endl;
getch();
return 0;
 
 
}
 
double circle(double radius) {
 
return M_PI*radius*radius;
 
}
Monte-Cristo
2786 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
29.09.2009, 22:24     Вычисление объёма цилиндра #9
лучше так:
Цитата Сообщение от Welemir Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int welya(int x,int y) {
//cin >> x >> y;
 int z = x*y;
 return z;
}
int main() {
int result;
 int x, y; // объявляем переменные
 cin >> x >> y; // вводит пользователь
 result = welya(x,y);
 printf("Result is: %d",result);
 getch();
}
или так:
Цитата Сообщение от Welemir Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int welya() // параметры не передаем
{
int x, y;
cin >> x >> y;
 int z = x*y;
 return z;
}
int main() {
int result;
 result = welya();
 printf("Result is: %d",result);
 getch();
}
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
30.09.2009, 00:49  [ТС]     Вычисление объёма цилиндра #10
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
лучше так:


или так:
Извиняюсь,но что-то различий я не увидел.В общем,я,кажись,допёр,в чём делоНе знаю,кто такую муру придумал - объявлять все переменные всех используемых пользовательских функций в главной функции main(),но как только я объявил переменные,всё заработало:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
 using namespace std;
 
 int welya(int x,int y) {
     cin >> x >> y;
     int z = x*y;
     return z;
     }
 
  int main() {
      int result,x,y;
      result = welya(x,y);
      printf("Result is: %d",result);
      getch();
      }
Спасибо всем,что помогали разобраться!.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2009, 00:57     Вычисление объёма цилиндра
Еще ссылки по теме:

Программа вычисления объёма цилиндра C++
Нахождение объёма усечённого конуса C++
Вычисление объема цилиндра C++
C++ Функции: вычисление объема цилиндра по радиусу основания и высоте
Вычисление объема полого цилиндра C++

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

Или воспользуйтесь поиском по форуму:
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
30.09.2009, 00:57     Вычисление объёма цилиндра #11
Цитата Сообщение от Welemir Посмотреть сообщение
В общем,я,кажись,допёр,в чём делоНе знаю,кто такую муру придумал - объявлять все переменные всех используемых пользовательских функций в главной функции main(),но как только я объявил переменные,всё заработало:
Во-первых,не всех,во-вторых, это не мура. Твое мнение,конечно,подкреплено тем весомым аргументом,что ты,не прочитав про синтаксис,не смог написать простенькую программку,но я все же советую думать и разбираться,прежде чем говорить.
Yandex
Объявления
30.09.2009, 00:57     Вычисление объёма цилиндра
Ответ Создать тему
Опции темы

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