|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.02.2010, 12:42 | #1 |
Новичок
Джуниор
Регистрация: 18.02.2010
Сообщений: 1
|
Комментарии к программе "Расчёт сопротивления схемы"
Я нашел в интернете интересную программу, как я понял она может рассчитать сопротивление любой схемы. Вот ее описание: пользователь вводит вид схемы и сопротивления, параллельное соединение записывается в квадратных скобках, последовательное в круглых. Вот пример: http://ru.wikibooks.org/wiki/%D0%A4%...:PS-sample.png
Если не трудно, подпишите комментарии к каждой строке. Программа написана на языке Си. Входные данные - Строчка с описанием схемы. Значения сопротивлений — действительные числа из отрезка [0, 100000]. Размер входа не превосходит 200000 байт. Выход. Значение сопротивления схемы (с точностью до 0.1%) Пример: Вход#1 [2 2 2] Выход#1 0.6666667 Вот сама программа: #include <stdio.h> int read_S(double*); int read_A(double*); int read_B(double*); void read_space() { int c ; do { c = getchar(); } while ( c==' ' || c=='\n' || c=='\t' ); if( c != EOF ) ungetc(c, stdin); } int read_number(double *r) { return ( scanf("%lf", r) == 1 ); } int read_A(double *r) { int c; if( (c=getchar()) == '(') { double q; *r = 0; if( ! read_S(r) ) return 0; while( read_S(&q) ) { *r += q; } if( (c=getchar()) == ')') { return 1; } else { return 0; } } else { ungetc(c, stdin); return 0; } } int read_B(double *r) { int c; if( (c=getchar()) == '[' ) { double q; *r = 0; if( ! read_S(r) ) return 0; *r = 1 / *r; while( read_S(&q) ) { if(q != 0) *r += 1 / q; } *r = 1 / *r; if( (c=getchar()) == ']' ) { return 1; } else { return 0; } } else { ungetc(c, stdin); return 0; } } int read_S(double *r) { return read_A(r) || read_B(r) || read_number(r); } int main() { double r; read_S(&r); printf("%lf\n", r); return 0; } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. | Каравай | Microsoft Office Excel | 13 | 17.02.2010 09:53 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
Как написать "примочку" к программе стороннего производителя (TeamViewer)??? | >>arty<< | Помощь студентам | 4 | 07.08.2009 14:32 |
Выводит ошибку "Unclarified identifier", хотя недавно запускалась в другой программе | Alex Cones | Общие вопросы Delphi | 2 | 20.04.2009 21:31 |