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

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

Войти
Регистрация
Восстановить пароль
 
Анастасия Ан
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 14
#1

Нужно доработать или предложите свои варианты - C++

03.07.2012, 12:05. Просмотров 647. Ответов 13
Метки нет (Все метки)

Вывести таблицу значений для графика зависимости расстояния от водной поверхности до верхней тички плавающего на воде тела от плотности материала данного тела, если это шар диаметра А.


S - расстояние от водной поверхности до верхней тички плавающего на воде тела
p - плотность тела
По закону Архимеда, вес плавающего шара уравновешивается выталкивающей силой, равной весу вытесненной воды. Т.е.,
F архимеда = вес шара
исходя из этого равенства пришла к уравнению p=(A/2+S)*(A-S)^2*(2/A^3)

Вроде все мои рассуждения были правильные, но таблица значений противоречив всем законам физики.
Т.е. получается, что чем больше р, тем больше S.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include<clocale>
#include <math.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{  
    double A,S,p;
    setlocale(LC_ALL, "Russian");
    cout <<"Введите диаметр шара";
    cin>> A;
for(S=-10;S<10;S++)
{
  p=(A/2+S)*(A-S)^2*(2/A^3);
  cout<<"\n p="<<p<<endl;
  cout<<"\n S="<<S<<endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2012, 12:05     Нужно доработать или предложите свои варианты
Посмотрите здесь:

Нужно не много доработать - C++
а как сделать, так чтобы при выводе массива z элементы которые повторяются не выводились, то есть если массив а массив b массив z как то...

Нужно немного доработать код - C++
#include &lt;iostream&gt; using namespace std; int main() { int n ; cin &gt;&gt; n; int M = (n-1) + (n-2); ...

Нужно доработать задачку на двумерные массивы. - C++
Шахматная доска.На ней расположены 10 черных коней и белый слон.Проверить сколько коней под ударом.Но еще надо сделать так,чтобы если к...

Работа с структурой в С++ (код есть, нужно немного доработать) - C++
Приветствую. Есть задание: Создать структуру STUDENT, которая имеет поля: 1. NAME. ФИО. 2. GROUP - номер группы. 3. SES -...

Предложите упражнения по С++ мне - C++
Предложите задачи по С++ мне,хотел бы услышать задачи,заданные вами.

предложите свой алгоритм решения - C++
Множество попарно различных плоскостей в трехмерном пространстве задано перечислением троек точек, через которые проходит каждая из...

Иерархия классов: предложите примеры - C++
здраствуйте вот задание Найти в жизни и реализовать иерархию классов, требующую использования абстрактных классов и полиморфного...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
[NovicheK]
19 / 19 / 2
Регистрация: 09.03.2012
Сообщений: 91
03.07.2012, 12:09     Нужно доработать или предложите свои варианты #2
знак ^ d c++ это не степень
Возводи умножением, либо подключи math.h и используй функцию pow()
Анастасия Ан
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 14
03.07.2012, 12:23  [ТС]     Нужно доработать или предложите свои варианты #3
А так можно?
p=(A/2+S)*(A-S)*(A-S)*(2/(A*A*A))
Vaiz
104 / 98 / 30
Регистрация: 01.07.2012
Сообщений: 277
Завершенные тесты: 1
03.07.2012, 12:29     Нужно доработать или предложите свои варианты #4
Цитата Сообщение от Анастасия Ан Посмотреть сообщение
А так можно?
p=(A/2+S)*(A-S)*(A-S)*(2/(A*A*A))
Можно
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 656
03.07.2012, 12:58     Нужно доработать или предложите свои варианты #5
По чему то выводит отрицательные значения p - плотности тела и S - расстояние от водной поверхности до верхней точки плавающего на воде тела????
Миниатюры
Нужно доработать или предложите свои варианты  
ValeryS
Модератор
6540 / 5006 / 461
Регистрация: 14.02.2011
Сообщений: 16,649
03.07.2012, 13:23     Нужно доработать или предложите свои варианты #6
Цитата Сообщение от isaak Посмотреть сообщение
По чему то выводит отрицательные значения p - плотности тела и S
потому что цикл не работает
Цитата Сообщение от Анастасия Ан Посмотреть сообщение
for(S=-10;S<10;S++)
{
p=(A/2+S)*(A-S)^2*(2/A^3);
cout<<"\n p="<<p<<endl;
cout<<"\n S="<<S<<endl;
return 0;
^^^^^^^^
}
на первом же проходе выходим из программы
вынеси
return 0; за цикл
C++
1
2
3
4
5
6
7
for(S=-10;S<10;S++)
{
  p=(A/2+S)*(A-S)^2*(2/A^3);
  cout<<"\n p="<<p<<endl;
  cout<<"\n S="<<S<<endl;
}
    return 0;
Добавлено через 4 минуты
вообще то логичней вычислять расстояние от плотности а не наоборот
т.е в цикле увеличиваем плотность от 0 до того значения пока расстояние будет меньше нуля (утонули)
Анастасия Ан
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 14
03.07.2012, 13:26  [ТС]     Нужно доработать или предложите свои варианты #7
Значит все-таки формула неправильная.

Добавлено через 2 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
вообще то логичней вычислять расстояние от плотности а не наоборот
т.е в цикле увеличиваем плотность от 0 до того значения пока расстояние будет меньше нуля (утонули)
Согласна, так логичнее. Но тогда нужно как-то выразить S из p=(A/2+S)*(A-S)*(A-S)*(2/(A*A*A))
ValeryS
Модератор
6540 / 5006 / 461
Регистрация: 14.02.2011
Сообщений: 16,649
03.07.2012, 15:22     Нужно доработать или предложите свои варианты #8
Цитата Сообщение от Анастасия Ан Посмотреть сообщение
Но тогда нужно как-то выразить S из p=(A/2+S)*(A-S)*(A-S)*(2/(A*A*A))
давай по шагам как пришла к этой формуле????
во первых я не вижу Пи
вес шара это объем шара на плотность материала
вес воды это объем погруженной части шара на плотность воды
они должны быть равны
чему равна плотность воды(или приняли за 1)
как считала объем сектора??
Анастасия Ан
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 14
03.07.2012, 20:35  [ТС]     Нужно доработать или предложите свои варианты #9
пи сократилось
да, плотность воды приняла за 1
объем сегмента считала по формуле: пи*h2*(R-h/3)
где R – радиус шара, а h – высота шарового сегмента.
все получилось у меня.
всем спасибо.
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 656
04.07.2012, 14:02     Нужно доработать или предложите свои варианты #10
Вот выразил S - расстояние через p - плотность тела и А - диаметр шара:

S= sqrt(A^3(1 - p)/(3A-1)):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include<clocale>
#include <iostream>
using namespace std;
int main()
{  
    double A,S,p;
    setlocale(LC_ALL, "Russian");
    cout <<"Введите диаметр шара";
    cin>> A;
for(p > 0; p = 1; p++);
{
  S = pow((A*A*A*(1-p)/(3*A-1)), 0.5);
  cout<<"\n p="<<p<<endl;
  cout<<"\n S="<<S<<endl;
   }
system("pause");
 return 0;
}
Подскажите пожалуйста как правильно записать условие для p - плотности шара, она должна принимать значение от 0 до 1?????? Подскажите пожалуйста в чем ошибка заранее огромное спасибо!!!!!
ЛетающийЕнот
88 / 67 / 12
Регистрация: 28.06.2012
Сообщений: 161
04.07.2012, 14:08     Нужно доработать или предложите свои варианты #11
isaak, очевидно, что некоторый шаг плотности здесь необходим.

C++
1
2
3
#define step 0.05
//...
for (p=step; p<1; p+=step)
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 656
04.07.2012, 14:49     Нужно доработать или предложите свои варианты #12
Спасибо все работаетА шаг можно задавать любой? Не обязательно 0.05?

Добавлено через 38 минут
Подскажите пожалуйста как сделать для любого вещества у которого p может быть и меньше и больше 1???? Заранее огромное спасибо!!!!
ЛетающийЕнот
88 / 67 / 12
Регистрация: 28.06.2012
Сообщений: 161
04.07.2012, 16:04     Нужно доработать или предложите свои варианты #13
isaak, если p>1, то тело утонет. Смысла в подобном не вижу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2012, 16:25     Нужно доработать или предложите свои варианты
Еще ссылки по теме:

Предложите исходный текст функции DoubleToString - C++
Функция должна преобразовывать double в std::string.

Предложите примеры деклараций классов с protected и private членами - C++
Только декларации. Как пишутся спецификаторы, я знаю. Просто надо сделать примеры деклараций классов со спецификаторами - и #, а я что то...

Нужно найти библиотеку или готовое решение - C++
Доброе время суток. Подскажите, пожалуйста, библиотеку под C/C++, которая умеет работать с математическими выражениями и преобразовывать...

Нужно перевести из C# в C++, или написать код на c++ с нуля - C++
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { ...

Нужно удалить элемент или элементы из середины дека - C++
Помогите плиз. Нужно удалить элемент или элементы из середины дека. как можно это сделать? #include «stdafx.h» #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 656
04.07.2012, 16:25     Нужно доработать или предложите свои варианты #14
Спасибо понял.
Yandex
Объявления
04.07.2012, 16:25     Нужно доработать или предложите свои варианты
Ответ Создать тему
Опции темы

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