Консультация # 188501: Здравствуйте, уважаемые эксперты! Помогите, пожалуйста написать алгоритм и программу, ничего не получается. Вот задание: Написать функцию, которая вычисляет сопротивление цепи, где резисторы могут быть соединены как параллельно, так и последовательно. Количество резисторов может быть любым. Параметрами функции должны быть: тип электрич...
Здравствуйте, уважаемые эксперты! Помогите, пожалуйста написать алгоритм и программу, ничего не получается. Вот задание: Написать функцию, которая вычисляет сопротивление цепи, где резисторы могут быть соединены как параллельно, так и последовательно. Количество резисторов может быть любым. Параметрами функции должны быть: тип электрической цепи (параллельное/последовательное соединение), количество резисторов. Номинал сопротивления текущего резистора должен быть на 2 Ом больше номинала
предыдущего. Номинал первого резистора принять равным 3 Ом. Реализовать вариант программы с обычной функцией. Спасибо за помощь)
/*
Написать функцию, которая вычисляет сопротивление цепи,
где резисторы могут быть соединены как параллельно,
так и последовательно. Количество резисторов может быть любым.
Параметрами функции должны быть:
тип электрической цепи (параллельное/последовательное соединение),
количество резисторов.
Номинал сопротивления текущего резистора должен быть на 2 Ом больше
номинала предыдущего.
Номинал первого резистора принять равным 3 Ом.
Реализовать вариант программы с обычной функцией.
*/
#include <stdio.h>
#include <windows.h>
//функция расчета сопротивления группы резисторов
//параметры: количество и тип соединения (0/1 - парал/послед)
//возвращает вещественное число - сопротивление всей цепи
float res(int cnt, int type)
{
float r; //сопротивление текущего резистора
float res; //сопротивление всей цепи
int i; //индекс
for(i=0,r=3,res=0; i<cnt; i++,r+=2)
{
if (type == 0)
res += 1/r; //параллельное соединение
else
res += r; //последовательное соединение
}
if (type == 0)
res = 1/res; //для паралл соединения находим обратную величину
return res;
}
int main()
{
int iCount, iType;
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
do
{
printf("Введите число резисторов (>1): ");
scanf("%d", &iCount); //вводим с проверкой на корректность
}while(iCount<2);
do
{
printf("Введите тип соединения, параллельное(0)/последовательное(1): ");
scanf("%d", &iType); //вводим с проверкой на корректность
}while(iType!=0 && iType!=1);
printf("R = %g Ом\n", res(iCount, iType)); //считаем и выводим результат
system("pause");
return 0;
}
Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 24.12.2015, 00:15
5
нет комментария ----- Дата оценки: 24.12.2015, 19:00
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались.
Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора -
для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение.
Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал,
который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом.
Заходите - у нас интересно!