Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объём игрушки, 17 у меня экзамен 
:(
    Опции темы
Гость_Илья
Дата 13.1.2006, 22:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Определить объём симметричной игрушки состоящей из N дисков, нанизанных в порядке убывания их внешнего диаметра на колышек радиуса R, объём которого зада. Внешний диаметр диска определяется выражением D=2R+KH, где H-толщина диска(для всех одинакова), K-номер диска, считая от верхнего. Зазором между диском и колышком пренебречь.

з.ы.
Заранее спасибо. Через 4 дня экзамен. Если буду программировать все сутки, смогу сдать
Код



  Вверх
Guest
Дата 14.1.2006, 17:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

#include <iostream.h>
#include <math.h>
#include <stdio.h>
void main()
{
    int N,R,H,D;
    cout << "Vvedite kolichestvo diskov";
    cin>>N;
    cout << "Vvedite radius kolyshka";
    cin>>R;
    cout << "Vvedite tolshinu diska";
    cin>>H;
    int *a = new int[N];
    

    
        [color=red]for(N=0;N==N;N++)
        {
            a[N]=2*R+N*H;
        }[/color]}



Вобщем неверный здесь цикл. Мне нужно провести n раз вычисление диаметра дисков и загнать их все в массив a[N].
Как это сделать правильно?
  Вверх
Bose
Дата 14.1.2006, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: нет
Всего: 51



объём диска равен площади диска, помноженной на высоту.
площадь диска равняется площади круга с радиусом диска минус площадь круга с радиусом колышка.
площадь диска=((R диска)^2*Pi-(R колышка)^2*Pi)
обьём диска=((R диска)^2*Pi-(R колышка)^2*Pi)*(H диска)

уже забыл, как на Си функции наызваются, пишу то, что помню.
Код

int V;
V=0;
for (i=1;i<=N;i++)    
        {    
            V=V+обьём диска;    // накапливаем суммарный обьём в переменной V
        }

PM MAIL WWW Skype   Вверх
ДобренькийПапаша
Дата 15.1.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Это неправильно. Можете не решать до конца, помогите мне написать цикл, в котором мне нужно вычислить диаметры всех дисков и загнать в массив. Как это синтаксически выглядит?


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
ДобренькийПапаша
Дата 15.1.2006, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Код


#include <math.h>
#include <stdlib.h>
#include <stdio.h>

void main()
{
int N,R,H,K;
cout << "Vvedite kolichestvo diskov=";
cin>>N;
cout << "Vvedite radius kolyshka=";
cin>>R;
cout << "Vvedite tolshinu diska=";
cin>>H;
int i=N;
int *a=new int[i];
for (K=1,i=0;i<N,K<N+1;i++,K++)
{
 a[i]=2*R+K*H;
 cout<<a[i];
 getchar();
}
getchar();

}

Чё здесь в цикле неправильно?


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Бегемот
Дата 15.1.2006, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: 2
Всего: 3



ДобренькийПапаша, для чего тебе загонять диаметры дисков в массив??? Условие задачи этого не требует! Вот так вот устроит?!
Код

#include<stdio.h>
#include<conio.h>
#include<math.h>
int ColDisk;
float RadiusCol;
float HightDisk;
float DiametrDisk;
float VDisk;
float VCol;
float VResult;

void main()
{
   printf("Введите количество дисков :\t\t");
   scanf("%i", &ColDisk);
   printf("Введите толщину диска :\t\t\t");
   scanf("%f", &HightDisk);
   printf("Введите радиус колышка :\t\t");
   scanf("%f", &RadiusCol);

   for(int i=1; i<=ColDisk; i++)
   {
      DiametrDisk = 2 * RadiusCol + i * HightDisk;
      VDisk += M_PI * pow(DiametrDisk,2)/4 * HightDisk;
   }
   VCol = M_PI * pow(RadiusCol,2) * HightDisk * ColDisk;
   VResult = VDisk - VCol;
   printf("\n\nОбъём диска :\t\t\t\t%5.2f", VResult);
   getch();
}


PM MAIL   Вверх
ДобренькийПапаша
Дата 16.1.2006, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



А зачем в 24-й строке мы делим на 4?
Добавлено @ 10:12
И разве нам нужно по такой формуле вычислять объём колышка? По-моему он по условию пользователем задаётся.


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Бегемот
Дата 16.1.2006, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: 2
Всего: 3



Цитата

А зачем в 24-й строке мы делим на 4?


В 24-ой строке считаем объём диска! Объём диска равен произведению площади диска на его высоту:
V = S * H
Площадь можно посчитать как через радиус диска:
S = pi * R^2
…так и через его диаметр:
S = pi * D^2 / 4
Нам дана формула для подсчёта диаметра, соответственно и площадь я вычислил через него!

Цитата

И разве нам нужно по такой формуле вычислять объём колышка? По-моему он по условию пользователем задаётся.


Ага! Я сначала-то подумал, что это баг в условии задачи, потому как пользователем задаётся радиус колышка, отсюда мы находим его площадь; задаётся высота диска и их количество, отсюда мы находим высоту колышка! Если мы ещё и объём колышка вводили , то необходимо было бы считать его в уме, основываясь на других исходных данных! А сейчас я чего подумал-то!!! Мы с тобой с какого перепугу-то начали вводить толщину диска с клавиатуры??? В условии задачи про это ничего не сказано! Вот так я думаю правильно!
Код

#include<stdio.h>
#include<conio.h>
#include<math.h>

int ColDisk;
float RadiusCol;
float HightDisk;
float HightCol;
float DiametrDisk;
float VDisk;
float VCol;

void main()
{
   printf("Введите количество дисков :\t\t");
   scanf("%i", &ColDisk);
   printf("Введите объём колышка :\t\t\t");
   scanf("%f", &VCol);
   printf("Введите радиус колышка :\t\t");
   scanf("%f", &RadiusCol);

   HightCol = VCol / (M_PI * pow(RadiusCol,2));
   HightDisk = HightCol / ColDisk;

   for(int i=1; i<=ColDisk; i++)
   {
      DiametrDisk = 2 * RadiusCol + i * HightDisk;
      VDisk += M_PI * pow(DiametrDisk,2)/4 * HightDisk;
   }
   VDisk -= VCol;
   printf("\n\nОбъём диска :\t\t\t\t%5.2f", VDisk);
   getch();
}



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0533 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.