|
Разработка алгоритма и программы для вычисления коэффициента оперативной готовности системы
Разработка алгоритма и программы для вычисления коэффициента оперативной готовности системы
Министерство образования Республики Беларусь Белорусский национальный технический университет Международный институт дистанционного образования Кафедра: «Информационные системы и технологии» КУРСОВАЯ РАБОТА по дисциплине «Объектно-ориентировочное программирование» тема работы: Разработка алгоритма и программы для вычисления коэффициента оперативной готовности системы. МИНСК 2010 Содержание - Введение
- 1. Постановка задачи
- 2. Схема алгоритма программы
- 3. Разработка СИ-программы
- 4. Исходный текст СИ-программы
- 5. Исходный текст СИ++-программы
- 6. Результаты вычислений
- Заключение
- Список использованной литературы
ВведениеОдной из основных задач электроники является расчет электрических схем, то есть получение детальной количественной информации о процессах, происходящих в этой схеме. Однако рассчитать произвольную схему, состоящую из реальных электронных компонент, практически невозможно. Мешает расчету то обстоятельство, что попросту не существует методик математического описания поведения реальных электронных компонент (например, транзистора) как единого целого. Имеются значения отдельных параметров и экспериментально снятые зависимости, но связать их в единую точную формулу, полностью описывающую поведение компоненты, в большинстве случаев не представляется возможным.С другой стороны, исключительно простым математическим аппаратом описываются идеализированные базовые элементы электронных схем (например, идеальный резистор). Однако они не существуют в реальном мире. Так, любой резистор имеет множество паразитных параметров: индуктивность, емкость, температурные зависимости и т.п.Введение понятия эквивалентная схема позволяет «связать» мир реальных компонент и мир их идеальных приближений. Эквивалентная схема представляет собой цепь только из идеальных компонент, которая функционирует примерно также, как и исходная схема. В эквивалентной схеме могут быть отражены, при необходимости, различные паразитные эффекты: утечки, внутренние сопротивления и т.д. Эквивалентная схема может составляться как для одного элемента, так и для сложной цепи.1. Постановка задачиДля цепи эквивалентные сопротивления между зажимами 1 - 11 (r11), 2 - 21(r22), 2 - 3 (r23) определяются по формулам:;;;Составить программу расчёта и печати значений зависимостей эквивалентных сопротивлений r11, r22, r23 от сопротивлений r4 и r5.2. Схема алгоритма программы2. Разработка СИ-программыДля расчёта значений зависимостей эквивалентных сопротивлений r11, r22 и r23 от сопротивлений r4 и r5 используем оператор цикла for.Вычисление значений r11, r22, r23 выполним в виде подпрограмм.Программа будет содержать следующие переменные:1. тип int:i, k - переменные цикла, для хранения значения текущей итерации2. тип float:r1, r2, r3, r4[3], r5[3] - для хранения значений сопротивлений.4. Исходный текст СИ-программы#include <stdio.h>#include <conio.h>float r11(float r1, float r2, float r3, float r4, float r5){float r11_;r11_ = r1 + (r2 * (r3 + (r4 * r5)/(r4 + r5)))/(r2 + (r3 + (r4 * r5)/(r4 + r5)));return r11_;}float r22(float r2, float r3, float r4, float r5){float r22_;r22_ = ((r2 + r3) * (r4 * r5)/(r4 + r5))/(r2 + r3 + (r4 * r5)/(r4 + r5));return r22_;}float r23(float r2, float r3, float r4, float r5){float r23_;r23_ = (r3 * (r2 + (r4 * r5)/(r4 + r5)))/(r3 + (r2 + (r4 * r5)/(r4 + r5)));return r23_;}int main(){float r1 = 60, r2 = 180, r3 = 10.5;float r4[3] = {6.3, 7.5, 8.7};float r5[3] = {50, 100, 150};int i, k;for (i = 0; i < 3; i++){for (k = 0; k < 3; k++){pritnf("Исходные данные: R1=%.3f, R2=%.3f, R3=%.3f, R4=%.3f, R5=%.3f \n", r1, r2, r3, r4[i], r5[k]);printf("Результаты: R11=%.3f, R22=%.3f, R23=%.3f\n\n", r11(r1,r2,r3,r4[i],r5[k]),r22(r2,r3,r4[i],r5[k]),r23(r2,r3,r4[i],r5[k]));}}printf("Вычисления окончены. Нажмите любую клавишу.");while(!kbhit());return 0;}5. Исходный текст на языке С++#include <iostream.h> //Библиотека потокового ввода-вывода#include <conio.h> //Библиотека консольного ввода-выводаclass resist{private:float r1;float r2;float r3;float r4[3];float r5[3];public:resist(){r1 = 60;r2 = 180;r3 = 10.5;r4[0] = 6.3;r4[1] = 7.5;r4[2] = 8.7;r5[0] = 50;r5[1] = 100;r5[2] = 150;};~resist(){};float r11(int i, int k){float r11_;//Объявляем переменнуюr11_ = r1 + (r2 * (r3 + (r4[i] * r5[k])/(r4[i] + r5[k])))/(r2 + (r3 + (r4[i] * r5[k])/(r4[i] + r5[k]))); // Производим расчёт по формулеreturn r11_;};float r22(int i, int k){float r22_;//Объявляем переменнуюr22_ = ((r2 + r3) * (r4[i] * r5[k])/(r4[i] + r5[k]))/(r2 + r3 + (r4[i] * r5[k])/(r4[i] + r5[k])); // Производим расчёт по формулеreturn r22_;//Возвращаем результат};float r23(int i, int k){float r23_;//Объявляем переменнуюr23_ = (r3 * (r2 + (r4[i] * r5[k])/(r4[i] + r5[k])))/(r3 + (r2 + (r4[i] * r5[k])/(r4[i] + r5[k]))); // Производим расчёт по формулеreturn r23_;};void show(int i, int k){cout << "Исходные данные: R1=" << r1 << ", R2=" << r2 << ", R3=" << r3 << ", R4=" << r4[i] << ", R5=" << r5[k] << endl;cout << "Результаты: R11=" << r11(i,k) << ", R22=" << r22(i,k) << ", R23=" << r23(i,k) << endl;}};6. Результаты вычисленийПосле запуска программы на экране появляются результаты расчёта зависимостей эквивалентных сопротивлений:Исходные данные: R1=60.000, R2=180.000, R3=10.500, R4=6.300, R5=50.000Результаты: R11=74.774, R22=5.435, R23=9.938Исходные данные: R1=60.000, R2=180.000, R3=10.500, R4=6.300, R5=100.000Результаты: R11=75.053, R22=5.748, R23=9.939Исходные данные: R1=60.000, R2=180.000, R3=10.500, R4=6.300, R5=150.000Результаты: R11=75.153, R22=5.860, R23=9.939Исходные данные: R1=60.000, R2=180.000, R3=10.500, R4=7.500, R5=50.000Результаты: R11=75.551, R22=6.306, R23=9.940Исходные данные: R1=60.000, R2=180.000, R3=10.500, R4=7.500, R5=100.000Результаты: R11=75.930, R22=6.730, R23=9.942Исходные данные: R1=60.000, R2=180.000, R3=10.500, R4=7.500, R5=150.000Результаты: R11=76.068, R22=6.885, R23=9.942Исходные данные: R1=60.000, R2=180.000, R3=10.500, R4=8.700, R5=50.000Результаты: R11=76.290, R22=7.133, R23=9.943Исходные данные: R1=60.000, R2=180.000, R3=10.500, R4=8.700, R5=100.000Результаты: R11=76.779, R22=7.681, R23=9.945Исходные данные: R1=60.000, R2=180.000, R3=10.500, R4=8.700, R5=150.000Результаты: R11=76.959, R22=7.883, R23=9.945Вычисления окончены. Нажмите любую клавишу.ЗаключениеВ ходе выполнения курсовой работы были выполнены расчёты эквивалентных сопротивлений для электрической цепи. Эти расчёты крайне важны, так как позволяют вычислить физические параметры реальной электрической цепи посредством преобразования её к эквивалентной, упрощённой, "пригодной" для расчёта.Две созданные программы на языках программирования Си и С++ идентичны по общему смыслу между собой, различия сводятся к следующим:1. Подключаемые библиотеки для работы с отображением данных на дисплей компьютера в Си это stdio.h в С++ iostream.h.2. Использование функций printf в Си и cout в С++ для вывода информации на консоль.3. Добавление классов в С++.Список использованной литературы1. М. Эллис, Б. Строуструп. Справочное руководство по языку C++ с комментариями: Пер. с англ. - Москва: Мир, 1992. 445с.2. Стенли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 1992, 304-345сс.3. Бруно Бабэ. Просто и ясно о Borland C++: Пер. с англ. - Москва: БИНОМ, 1994. 400с.4. В.В. Подбельский. Язык C++: Учебное пособие. - Москва: Финансы и статистика, 1995. 560с.5. Ирэ Пол. Объектно-ориентированное программирование с использованием C++: Пер. с англ. - Киев: НИИПФ ДиаСофт Лтд, 1995. 480с.6. Т. Фейсон. Объектно-ориентированное программирование на Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с.7. Т. Сван. Освоение Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с.8. Г. Шилдт. Самоучитель C++: Пер. с англ. - Санкт-Петербург: BHV-Санкт-Петербург, 1998. 620с.9. У. Сэвитч. C++ в примерах: Пер. с англ. - Москва: ЭКОМ, 1997. 736с.10. К. Джамса. Учимся программировать на языке C++: Пер. с англ. - Москва: Мир, 1997. 320с.11. В.А. Скляров. Язык C++ и объектно-ориентированное программирование: Справочное издание. - Минск: Вышэйшая школа, 1997. 480с.12. Х. Дейтел, П. Дейтел. Как программировать на C++: Пер. с англ. - Москва: ЗАО "Издательство БИНОМ", 1998. 1024с.
|
|