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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2015, 11:31   #1
Stay_punk
 
Регистрация: 18.12.2015
Сообщений: 5
По умолчанию Вычислить сопротивление

Начну с того что я знаком с С всего то неделю и разбираюсь слабовато.

Задача такова.
Заданы три сопротивлении R1, R2, R3 . Вычислить значение сопротивления R0 по формуле: 1/R0 = 1/R1+1/R2+1/R3.
Контрольный пример: R1=2, R2=4, R3=8 R0 = 1.142857


Или я не понял задания, или я не верно прописал.
В R0 должно получиться то что указано в задании? (R0 = 1.142857)
но у меня в приведенном ниже вычислении получается 0.

в чем тут моя ошибка?

Код:
#include <iostream>
using namespace std;
void main()
{
	int R1 = 2, R2 = 4, R3 = 8;
	double R0;
	R0 = (1 / R1) + (1 / R2) + (1 / R3);
	cout << R0;
}
Stay_punk вне форума Ответить с цитированием
Старый 18.12.2015, 11:41   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Замените тип переменных R1, R2 и R3 с int на float.
При делении int на int результат тоже int.
1 / 2 == 0
waleri вне форума Ответить с цитированием
Старый 18.12.2015, 11:46   #3
Stay_punk
 
Регистрация: 18.12.2015
Сообщений: 5
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Замените тип переменных R1, R2 и R3 с int на float.
При делении int на int результат тоже int.
1 / 2 == 0
действительно
помогло
ответ 0.875

но как то не совпадает с контрольным примером

Последний раз редактировалось Stay_punk; 18.12.2015 в 11:48.
Stay_punk вне форума Ответить с цитированием
Старый 18.12.2015, 11:58   #4
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
как то не совпадает с контрольным примером
При параллельном подключении складываются не сопротивления, а проводимости, т.е. 1/R, и получаем мы тоже проводимость в Сименсах, а не сопротивление в Омах. Следовательно нужно из проводимости получить сопротивление, т.е. R в омах = 1/Сименсы.
У Вас же формула
1/R0 = 1/R1+1/R2+1/R3
а не
R0 = 1/R1+1/R2+1/R3
Считаем:
1/2 = 0,5
1/4 = 0,25
1/8 = 0,125
0,5 + 0,25 + 0,125 = 0,875 Сименсов (это Вы и получаете)
Находим сопротивление:
R в омах = 1 / 0,875 = 1,142857 (ну и еще циферки)

Вот и ответ.
Croessmah вне форума Ответить с цитированием
Старый 18.12.2015, 11:58   #5
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Сообщение дублировалось... ох уж эта долбанная, сверхскоростная 3G-сеть...
Croessmah вне форума Ответить с цитированием
Старый 18.12.2015, 12:04   #6
Stay_punk
 
Регистрация: 18.12.2015
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
При параллельном подключении складываются не сопротивления, а проводимости, т.е. 1/R, и получаем мы тоже проводимость в Сименсах, а не сопротивление в Омах. Следовательно нужно из проводимости получить сопротивление, т.е. R в омах = 1/Сименсы.
У Вас же формула
1/R0 = 1/R1+1/R2+1/R3
а не
R0 = 1/R1+1/R2+1/R3
Считаем:
1/2 = 0,5
1/4 = 0,25
1/8 = 0,125
0,5 + 0,25 + 0,125 = 0,875 Сименсов (это Вы и получаете)
Находим сопротивление:
R в омах = 1 / 0,875 = 1,142857 (ну и еще циферки)

Вот и ответ.
Если я в код пропишу
1/R = (1 / R1) + (1 / R2) + (1 / R3);
cout << R<<"\n"
то у меня ошибку выдаст
поэтому я писал без "1/"
Stay_punk вне форума Ответить с цитированием
Старый 18.12.2015, 12:09   #7
Stay_punk
 
Регистрация: 18.12.2015
Сообщений: 5
По умолчанию

Короче решил вопрос так
совпадает с контрольным ответом
спасибо за подсказки

Код:
#include <iostream>
using namespace std;
void main()
{
	double R1 = 2, R2 = 4, R3 = 8;
	double R0;
	R0 = (1 / R1) + (1 / R2) + (1 / R3);
		R0=1/R0;
	cout << R0<<"\n";
}
Stay_punk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ток протекает по резистору 10 Ом, сопротивление задано с точностью 10%. Найти относительную и абсолютную погрешность вычислений. l2saken Помощь студентам 1 29.09.2013 16:07
вычислять омическое сопротивление двух параллельно соединенных резисторов Joicey Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 30.01.2012 09:20
Написать программу, которая вычисляет сопротивление электрической цепи, Геля007 Помощь студентам 1 10.01.2011 22:36