Консультация № 188501
21.12.2015, 18:17
0.00 руб.
0 17 1
Здравствуйте, уважаемые эксперты! Помогите, пожалуйста написать алгоритм и программу, ничего не получается.
Вот задание:
Написать функцию, которая вычисляет сопротивление цепи, где резисторы могут быть соединены как параллельно, так и последовательно. Количество резисторов может быть любым. Параметрами функции должны быть: тип электрической цепи (параллельное/последовательное соединение), количество резисторов. Номинал сопротивления текущего резистора должен быть на 2 Ом больше номинала предыдущего. Номинал первого резистора принять равным 3 Ом. Реализовать вариант программы с обычной функцией.
Спасибо за помощь)

Обсуждение

давно
Посетитель
7438
7205
22.12.2015, 00:24
общий
Адресаты:
Покажите, что получается, посмотрим...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
22.12.2015, 13:37
общий
Адресаты:
Ну и как Вам помогать, если Вам это не нужно?..
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
399128
17
22.12.2015, 14:15
общий
Адресаты:
Говорю же не получается, даже показать нечего. Может хоть что то выйдет и тогда покажу. А помощь мне очень нужна
давно
Посетитель
7438
7205
22.12.2015, 14:32
общий
Адресаты:
Без помощи не оставим. Но хотелось бы, чтобы Вы тоже принимали участие ...
Выкладывайте все, даже ошибочные попытки... Это Вам же на пользу...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
23.12.2015, 01:19
общий
Адресаты:
Вы не знаете, как написать на С, или не знаете, как считать общее сопротивление резисторов при параллельном и последовательном соединении?
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
399128
17
23.12.2015, 12:42
общий
Адресаты:
Я не очень понимаю как писать программы. Не умею. Пытаюсь научится
давно
Посетитель
7438
7205
23.12.2015, 12:54
общий
Адресаты:
Лады, я понял, сегодня-завтра нарисую программку
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
399128
17
23.12.2015, 13:03
общий
Адресаты:
Спасибо Вам огромное)
давно
Посетитель
7438
7205
24.12.2015, 00:15
общий
это ответ
Здравствуйте, Посетитель - 399128!
Держите программу.
[code h=200]
/*
Написать функцию, которая вычисляет сопротивление цепи,
где резисторы могут быть соединены как параллельно,
так и последовательно. Количество резисторов может быть любым.
Параметрами функции должны быть:
тип электрической цепи (параллельное/последовательное соединение),
количество резисторов.
Номинал сопротивления текущего резистора должен быть на 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;
}
[/code]
5
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
399128
17
24.12.2015, 18:57
общий
Адресаты:
Спасибо большое за помощь) А Вы не даете уроки программирования?
давно
Посетитель
7438
7205
24.12.2015, 19:09
общий
Адресаты:
Да нет, не даю
В Инете столько ресурсов, да и книг, и печатных, и электронных... Изучай - не хочу
Это моему поколению пришлось в свое время по крупицам выискивать информацию...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
399128
17
25.12.2015, 14:37
общий
Адресаты:
Игорь Витальевич, а что написать, чтобы программа запрашивала сопротивление каждого резистора? А то она спрашивает только какое соединение и сколько проводников.
давно
Посетитель
7438
7205
25.12.2015, 14:54
общий
Адресаты:
Сделано, как сказано
Первый 3, каждый последующий +2
А исправить надо в расчете, не присваивать переменной r, сначала 3, потом +2, а вводить.
Вводить и складывать...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
25.12.2015, 14:56
общий
Адресаты:
Вечерком подправлю и дам... Сейчас занят
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
399128
17
25.12.2015, 23:38
общий
Адресаты:
Спасибо, буду ждать)
давно
Посетитель
7438
7205
25.12.2015, 23:49
общий
Где-то так
[code h=200]
/*
Написать функцию, которая вычисляет сопротивление цепи,
где резисторы могут быть соединены как параллельно,
так и последовательно. Количество резисторов может быть любым.
Параметрами функции должны быть:
тип электрической цепи (параллельное/последовательное соединение),
количество резисторов.
Реализовать вариант программы с обычной функцией.
*/
#include <stdio.h>
#include <windows.h>
//функция расчета сопротивления группы резисторов
//параметры: количество и тип соединения (0/1 - парал/послед)
//возвращает вещественное число - сопротивление всей цепи
float res(int cnt, int type)
{
float r; //сопротивление текущего резистора
float res; //сопротивление всей цепи
int i; //индекс
for(i=0,res=0; i<cnt; i++)
{
do
{
printf("Введите сопротивление резистора (>0): ");
scanf("%g", &r); //вводим с проверкой на корректность
}while(r<=0);

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;
}
[/code]
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
399128
17
26.12.2015, 00:58
общий
Адресаты:
Очень помогли)
Форма ответа