Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для Михан
9 / 9 / 3
Регистрация: 05.11.2009
Сообщений: 74

Цепь из двух резисторов

27.01.2013, 15:56. Показов 1820. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу вычисления сопротивления электрической цепи, состоящей из двух резисторов. Ре-зисторы могут быть соединены последовательно или параллельно.
Вот как я это написал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# include <stdio.h> 
# include <conio.h>
int main ( )
{
    float a,b,c,p; //1резстор , 2 резистор, сопративление, форма цепи
       printf ("Введите 1 если цепь последовательная, или 2 если цепь параллельная");
    scanf (" % f", &p);
       printf ("Введите в одной строке сопротивление обоих резисторов");
    scanf (" % f % f ", &a, &c);
    if ( c = 1)
    {
        c = a + b;
        printf (" Сопротивление цепи из двух поседовательных резисторов   " , a, b );
        printf (" равно % 5.2f ", c);
    
     }
    else {
                c = 1/a + 1/b;
        printf (" Сопротивление цепи из двух параллельных резисторов   " , a, b );
        printf (" равно % 5.2f ", c);
          }
    getch( );
}
Компилирую при помощи bloodshed dev-c++, компилируется, создается exe файл, но он не запускается. Функция "Скомпилировать и запустить" тоже ничего не дала. Подскажите новичку что делать?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.01.2013, 15:56
Ответы с готовыми решениями:

Составить из резисторов цепь соединения
Помогите с задачкой пожалуйста с написание програмгного кода Дано N резисторов различных номиналов. Необходимо выбрать несколько...

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

Написать функцию, которая вычисляет сопротивление двух резисторов
N.1.Написать функцию, которая вычисляет сопротивление двух резисторов. Входными данными в функции являются сопротивления резисторов и...

10
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.01.2013, 16:12
пробуйте так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# include <stdio.h> 
# include <conio.h>
int main ( )
{
    float a,b,p; //1резстор , 2 резистор, сопративление, форма цепи
    int c;
       printf ("Введите 1 если цепь последовательная, или 2 если цепь параллельная");
    scanf ("%d", &c);
       printf ("Введите в одной строке сопротивление обоих резисторов");
    scanf ("%f%f", &a, &b);
    if ( c == 1)
    {
        p = a + b;
        printf (" Сопротивление цепи из двух поседовательных резисторов  %f, %f " , a, b );
        printf (" равно % 5.2f\n", p);
    
     }
    else {
                p = 1/a + 1/b;
        printf (" Сопротивление цепи из двух параллельных резисторов  %f, %f " , a, b );
        printf (" равно % 5.2f\n", p);
          }
    getch( );
    return 0;
}
1
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
27.01.2013, 16:22
Михан, по моему вы не знаете где смотреть об ошибках, так как трудно не заметить ошибку о том что "c" не определенна
Цитата Сообщение от valeriikozlov Посмотреть сообщение
int c;
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
27.01.2013, 16:52
Лучший ответ Сообщение было отмечено как решение

Решение

Михан, попробуй лучше код в стандарте Си
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <stdio.h>
 
void PrintScheme(int iType);
void SolveScheme(int iType);
 
int main()
{
    int iMenu = 1;//флаг продолжения алгоритма
    char choise = 0;
    while(iMenu)
    {
        printf("Yuri Lozitski created\n");
        printf("\t***MENU***\n");
        printf("S - series connection\n");
        printf("P - parallell connect\n");
        printf("E - exit from program\n");
        printf("Your choise : ");
        scanf("%c", &choise);
        getchar();//Убираем \n от ввода
        switch(choise)
        {
        case 's':
        case 'S':
            PrintScheme(0);
            SolveScheme(0);
            break;
        case 'p':
        case 'P':
            PrintScheme(1);
            SolveScheme(1);
            break;
        case 'e':
        case 'E':
            iMenu = 0;
            break;
        default:
            printf("Unsupported key pressed\n");
            break;
        }       
    }
    return 0;
}
 
void PrintScheme(int iType)
{
    char szType1[] = 
        "   R1       R2   \n"
        "  ____     ____  \n"
        "-|____|-*-|____|-\n"
        "                 \n"
        "series connection\n"
        "                 \n"
        "   Re = R1 + R2  \n";
 
    char szType2[] =
        "       |        \n"
        "    ---*---     \n"
        "    |     |     \n"
        "   ```   ```    \n"
        "   | |   | |    \n"
        "R1 | | R2| |    \n"
        "   |_|   |_|    \n"
        "    |     |     \n"
        "    ---*---     \n"
        "       |        \n"
        "                \n"
        "parallel connect\n"
        "                \n"
        "Re=R1*R2/(R1+R2)\n";
    if(iType)
        printf("%s", szType2);
    else
        printf("%s", szType1);
}
 
void SolveScheme(int iType)
{
    double R1 = 0;
    double R2 = 0;
    double Re = 0;
    int iBad  = 0;
    if(printf("R1 = ") && !scanf("%lf", &R1) || getchar() != '\n')
        iBad = printf("Incorrect input\n");
    else
    if(printf("R2 = ") && !scanf("%lf", &R2) || getchar() != '\n')
        iBad = printf("Incorrect input\n");
    else
    if(R1 == 0 && R2 == 0)
        printf("Both resistance == 0!\n");
    else
    {
        if(iType)
            Re = R1*R2 / (R1 + R2);
        else
            Re = R1 + R2;
        printf("Re= %lf\n", Re);
    }
    //Очистка буффера в случае некорректного ввода
    char chr = 0;
    while(iBad)
    {
        chr = getchar();
        if(chr == '\n')
            iBad = 0;
    }
}
Цитата Сообщение от Михан Посмотреть сообщение
getch( );
- эта функция, как и
Цитата Сообщение от Михан Посмотреть сообщение
include <conio.h>
вне стандарта
Миниатюры
Цепь из двух резисторов  
3
27.01.2013, 16:54

Не по теме:

Цитата Сообщение от Михан Посмотреть сообщение
scanf (" %_f", &p);
- на сколько я знаю пробелы междусимволом % в спецификаторах формата printf/scanf и сходных функциях НЕДОПУСТИМЫ!

1
 Аватар для Михан
9 / 9 / 3
Регистрация: 05.11.2009
Сообщений: 74
27.01.2013, 19:04  [ТС]
Всем большое человеческое спасибо. Все заработало.
Специально для будущих поколений вопрошающих что делать... привожу последний(100% работающий вариант)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# include <stdio.h> 
# include <conio.h>
int main ( )
{
    float a,b,p; //1резстор , 2 резистор, сопративление, форма цепи
    int c;
       printf ("Vvedite 1 esli cep posledovatelnaya, ili 2 esli cep parallelnaya");
    scanf ("%d", &c);
       printf ("Vvedite v odnoi stroke soprotivlenie oboih rezistorov");
    scanf ("%f%f", &a, &b);
    if ( c == 1)
    {
        p = a + b;
        printf (" soprotivlenie cepi iz dvuh  posledovatelnyh rezistorov  %f, %f " , a, b );
        printf (" ravno % 5.2f\n", p);
    
     }
    else {
                p = 1/a + 1/b;
        printf (" soprotivlenie cepi iz dvuh  parallelnyh rezistorov   %f, %f " , a, b );
        printf (" ravno % 5.2f\n", p);
          }
    getch( );
    return 0;
}
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,304
28.01.2013, 22:38
-=ЮрА=-, а как переделать на C++???? Я начал переделавать, но запнулся:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
#include <string>
#include <iomanip>
void PrintScheme(int iType);
void SolveScheme(int iType);
using namespace std;
int main()
{
    int iMenu = 1;//флаг продолжения алгоритма
    char choise = 0;
    while(iMenu)
    {
        cout<<"Yuri Lozitski created\n";
        cout<<"\t***MENU***\n";
        cout<<"S - series connection\n";
        cout<<"P - parallell connect\n";
        cout<<"E - exit from program\n";
        cout<<"Your choise : ";
        cin>>choise;
        cin.get() != '\n';//Убираем \n от ввода
        switch(choise)
        {
        case 's':
        case 'S':
            PrintScheme(0);
            SolveScheme(0);
            break;
        case 'p':
        case 'P':
            PrintScheme(1);
            SolveScheme(1);
            break;
        case 'e':
        case 'E':
            iMenu = 0;
            break;
        default:
            cout<<"Unsupported key pressed\n";
            break;
        }       
    }
    return 0;
}
 
void PrintScheme(int iType)
{
    char szType1[] = 
        "   R1       R2   \n"
        "  ____     ____  \n"
        "-|____|-*-|____|-\n"
        "                 \n"
        "series connection\n"
        "                 \n"
        "   Re = R1 + R2  \n";
 
    char szType2[] =
        "       |        \n"
        "    ---*---     \n"
        "    |     |     \n"
        "   ```   ```    \n"
        "   | |   | |    \n"
        "R1 | | R2| |    \n"
        "   |_|   |_|    \n"
        "    |     |     \n"
        "    ---*---     \n"
        "       |        \n"
        "                \n"
        "parallel connect\n"
        "                \n"
        "Re=R1*R2/(R1+R2)\n";
    if(iType)
        cout<<szType2;
    else
        cout<<szType1;
}
 
void SolveScheme(int iType)
{
    double R1 = 0;
    double R2 = 0;
    double Re = 0;
    int iBad  = 0;
    if(cout<<"R1 = " && (!cin>>R1) || cin.get() != '\n') //Вот здесь я запнулся
        iBad = printf("Incorrect input\n");
    else
    if(printf("R2 = ") && !scanf("%lf", &R2) || getchar() != '\n')
        iBad = printf("Incorrect input\n");
    else
    if(R1 == 0 && R2 == 0)
        printf("Both resistance == 0!\n");
    else
    {
        if(iType)
            Re = R1*R2 / (R1 + R2);
        else
            Re = R1 + R2;
        printf("Re= %lf\n", Re);
    }
    //Очистка буффера в случае некорректного ввода
    char chr = 0;
    while(iBad)
    {
        chr = getchar();
        if(chr == '\n')
            iBad = 0;
    }
}
Помоги пожалуйста, заранее огромное спасибо!!!!!!
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
29.01.2013, 02:32
Цитата Сообщение от isaak Посмотреть сообщение
-=ЮрА=-, а как переделать на C++????
Вот почти ворд-ту-ворд того что вверху на плюсах
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <iostream>
using namespace std;
 
void PrintScheme(int iType);
void SolveScheme(int iType);
 
int main()
{
    int iMenu = 1;//флаг продолжения алгоритма
    char choise = 0;
    while(iMenu)
    {
        cout<<"Yuri Lozitski created\n";
        cout<<"\t***MENU***\n";
        cout<<"S - series connection\n";
        cout<<"P - parallell connect\n";
        cout<<"E - exit from program\n";
        cout<<"Your choise : ";
        cin>>choise;
        cin.sync();//Тут лучше убиарть вообще всё лишнее из буффера благо С++ позволяет
        switch(choise)
        {
        case 's':
        case 'S':
            PrintScheme(0);
            SolveScheme(0);
            break;
        case 'p':
        case 'P':
            PrintScheme(1);
            SolveScheme(1);
            break;
        case 'e':
        case 'E':
            iMenu = 0;
            break;
        default:
            cout<<"Unsupported key pressed\n";
            break;
        }   
    }
    return 0;
}
 
void PrintScheme(int iType)
{
    char szType1[] = 
        "   R1       R2   \n"
        "  ____     ____  \n"
        "-|____|-*-|____|-\n"
        "                 \n"
        "series connection\n"
        "                 \n"
        "   Re = R1 + R2  \n";
 
    char szType2[] =
        "       |        \n"
        "    ---*---     \n"
        "    |     |     \n"
        "   ```   ```    \n"
        "   | |   | |    \n"
        "R1 | |   | | R2 \n"
        "   |_|   |_|    \n"
        "    |     |     \n"
        "    ---*---     \n"
        "       |        \n"
        "                \n"
        "parallel connect\n"
        "                \n"
        "Re=R1*R2/(R1+R2)\n";
    if(iType)
        cout<<szType2;
    else
        cout<<szType1;
}
 
void SolveScheme(int iType)
{
    double R1 = 0;
    double R2 = 0;
    double Re = 0;
    bool iBad  = false;
    if(iBad = ((cout<<"R1 = ") && !(cin>>R1) || cin.get() != '\n'))//iBad надо переставить
        cout<<"Incorrect input\n";
    else
    if(iBad = ((cout<<"R2 = ") && !(cin>>R2) || cin.get() != '\n'))
        cout<<"Incorrect input\n";
    else
    if(R1 == 0 && R2 == 0)
        cout<<"Both resistance == 0!\n";
    else
    {
        if(iType)
            Re = R1*R2 / (R1 + R2);
        else
            Re = R1 + R2;
        cout<<"Re= "<<Re<<endl;
    }
    if(iBad)
    {
        cin.clear();//Сброс флагов ошибок
        cin.sync();//Очистка буффера в случае некорректного ввода
    }
}
Миниатюры
Цепь из двух резисторов  
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
29.01.2013, 02:34
PS:По поводу этого
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
bool iBad *= false;
* * if(iBad = ((cout<<"R1 = ") && !(cin>>R1) || cin.get() != '\n'))//iBad надо переставить
* * * * cout<<"Incorrect input\n";
- это всё в плюсах можно сделать через функцию-шаблон, рекомендую прочесть Безопасный ввод через функцию-шаблон
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.01.2013, 03:37
Если без шаблонов и надо по-быстрому проверить на корректность считывания int
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
    int x;
    bool correct;
    do
    {
        correct = true;
        std::cout << "Enter x: ";
        std::cin >> x;
        if (std::cin.fail())
        {
            correct = false;
            std::cin.clear();
            std::cin.sync();
            std::cout << "Incorrect, expected int\n";
        }
    } while (!correct);
}
Добавлено через 2 минуты
Есть еще вариант: считывать в массив char (или std::strng), а потом преобразовывать в int, если все элементы массива - цифры (atoi).
C
1
2
3
4
5
6
7
8
9
int isDigit(const char *str)
{
    size_t i, len = strlen(str);
    if (len == 0) return 0;
    for (i = 0; i < len; i++)
        if (!isdigit(str[i]))
            return 0;
    return 1;
}
В случае с С++ возвращаемый тип будет bool.

P.S. на первенство не претендую, как варианты.
1
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,304
29.01.2013, 22:31
-=ЮрА=- огромное спасибо, как всегда на высоте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.01.2013, 22:31
Помогаю со студенческими работами здесь

Функция: вычислить сопротивление цепи, состоящей из двух резисторов
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int resistance(float r1, float r2, float rez) ...

Написать функцию, которая вычисляет сопротивление двух резисторов
Написать функцию, которая вычисляет сопротивление двух резисторов. Входными данными в функции являются сопротивления резисторов и способ их...

Вычисление сопротивления электрической цепи, которая состоит из двух резисторов
Помогите оформить блок решения в задачи, с использовании функции, составленной ниже. &quot;Используя функцию, которая...

В чем проблема? Написать функцию, которая вычисляет сопротивление цепи, состоящей их двух резисторов
#include &lt;windows.h&gt; using namespace std; int main() { double a, b; char i; cout&lt;&lt;&quot;Ykazhite tip soedinenia 1-parallelnoe ili...

Задача по электротехнике, замкнутая цепь из резисторов
Задали задачу по электротехнике, я в ней не особо силен, смог найти только общий ток, что дальше делать не могу представить, все отшибло


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru