Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Программирование _ написание расчетов

Автор: zeroku Понедельник, 01 Ноября 2004, 19:08

Уважаемые, извиняюсь, что тревожу своим постом, но проблема подкралась незаметно:
нужно написать программу, считающую объем куба, из которого вырезан шар, диаметр которого, преположим равен A.

при этом знаю, что V(объем куба)=a в кубе
а V шара= 4/3 p(пи)r в кубе
не мог бы кто в данной задаче мне помочь? заранее спасибо

Автор: yozh Понедельник, 01 Ноября 2004, 20:16

Код
#include <stdio.h>

int main(int argc, char* argv[])
{
double a=10;
double r=5;
double pi=3.1415926;
double V;

V=a*a*a-4/3*pi*r*r*r;
printf("The volume of the cube (a=%5.3f) with the ball-cut (r=%5.3f) is %5.3f\n",a,r,V);
return 0;
}

Ты это хотел?

Автор: zeroku Понедельник, 01 Ноября 2004, 20:20

>Ты это хотел?

возможно.... спасибо!
а вот только значение пи мне кажется без библиотеки <math.h> не получится определить.... или затрудняюсь?

Автор: yozh Понедельник, 01 Ноября 2004, 21:51

Цитата
а вот только значение пи мне кажется без библиотеки <math.h> не получится определить.... или затрудняюсь?


либо делай include <math.h>, либо, как я: double pi=3.1415926;
Просто я привык не подключать библиотеки без крайней нужды.
Я, кстати, не помню, определено pi в math.h или нет. Надо посмотреть.

Автор: zeroku Вторник, 02 Ноября 2004, 17:14

принцип написанного понимаю.. но вот при компиляции выводится

Код
параметр argc никогда не используется
и параметр argv тоже никогда не используется в данной программе


unsure.gif

Автор: yozh Вторник, 02 Ноября 2004, 20:13

ну сделай
int main()
или
int main(void)
, если у тебя компилятор такой занудный.
Насколько я понимаю, это всё-таки warning, а не error, так что компилиться должно успешно.

Автор: zeroku Суббота, 06 Ноября 2004, 15:46

yozh, спасибо тебе огромное,что откликнулся! Все сделал... не помню с какой попытки:)

Код
#include <iostream.h>
#include <math.h>

int main()

{
int a,
v_shar,
v_cube,
v_main;

cout << "\n Vvedite storonu kuba:";
cin  >> a;


v_shar=(4/3*M_PI)*(a/2);
v_cube=a*a*a;
v_main=v_cube-v_shar;
cout << "\n";

cout << "\n Ob'em kuba:\t\t" << v_cube;
cout << "\n Ob'em shara:\t\t" << v_shar;
cout << "\n Ob'em kuba - Ob'em shara:\t" << v_main;
cin >> a;
return 0;

}


вот так вот получилось:)

Автор: yozh Суббота, 06 Ноября 2004, 16:10

А ведь ты, строго говоря, неправ. Это программа на C++, но отнюдь не C. Компилятор C её собирать НЕ БУДЕТ. Так что ты с этим поосторожнее.
Я свою программу тестировал под линуксом, собирал через
gcc -o test test.c
Всё работало без проблем. А у тебя какой компилятор?

Автор: zeroku Воскресенье, 07 Ноября 2004, 18:10

то что она на C++ это знаю... сначала, когда ты дал первый код, я пробовал его в Turbo C (старенький компилятор, которым я очень и очень доволен даже в двадцатом веке smile.gif )
а второй код (который сам писал) уже собирал в Borland C++ 5.0 и там все пошло с первого раза
и тут же недавно понял, что C есть подмножество C++, значит компилятор работающий
с С++ с простым C всегда справится...

кстати, а ты не посоветуешь какой-нибудь компилятор C, или напримерп тот, которым ты пользуешься

Автор: yozh Воскресенье, 07 Ноября 2004, 19:10

C++ не везде приемлемо. Если тебе придётся работать в проекте, где всё пишется ТОЛЬКО на C (а под линукс таких много - само ядро, GTK и пр.), то тебе быстро объяснят, в чём ты неправ smile.gif
Кроме того, для расчётных задач C++ не то что бесполезен - он там вреден, ибо скорость расчётов падает очень заметно, много раз убеждался.
Насчёт подмножества. НЕТ. C++ - это не только наличие новых операторов и ООП. Это ещё и несколько иные требования к объявлению переменных. Можно легко написать программу на C, которая не будет корректной C++-программой.
Так что ещё раз - АККУРАТНЕЕ.
Что касается компилятора: смотря для каких целей. И смотря что за программы будут. Сейчас наметился переход на C# , не забывай. Я лично использую gcc под линукс и VC под win. Впрочем, Borland тоже неплох.

Автор: zeroku Понедельник, 08 Ноября 2004, 0:38

понял... спасибо за ценную информацию, и всякие поводы для размышлений! Надеюсь, что если что,то можно обращаться по этому адресу:)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)