Чтение онлайн

на главную - закладки

Жанры

Интернет-журнал "Домашняя лаборатория", 2007 №6
Шрифт:

На рис. 1 даны схемы простых стабилизаторов напряжения. Схемы а)…е) используют внутренний делитель в цепи усилителя рассогласования, а на схемах ж) из) показано, как изменить выходное напряжение в небольших пределах при помощи резистора, шунтирующего одно из плеч делителя.

Рис. 1. Стабилизаторы с фиксированным выходным напряжением.

На рис. 2 дана схема стабилизатора с регулировкой выходного напряжения

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

Рис. 2. Стабилизатор с регулировкой выходного напряжения и дополнительной термокомпенсацией.

На рис. 3 приведена схема лабораторного блока питания с защитой от перегрузки. Подбором резистора R3 устанавливается ток ограничения при коротком замыкании на выходе стабилизатора (1…1,5 А).

Рис. 3. Схема лабораторного блока питания на основе ИМС К157ХП2.

ПРОГРАММИРОВАНИЕ

Технологии компонентного программирования

Добрынин В.

Процедурное, объектно-ориентированное и компонентное программирование

Процедурное программирование

Цель данного раздела состоит в демонстрации некоторых недостатков технологии процедурного программирования.

Рассмотрим программу на C++, в которой используется технология процедурного программирования. Пользователь вводит информацию о некотором множестве книг и журналов. Для книги это автор, название, год издания. Дня журнала — название, год и номер. Далее эти данные могут как-то обрабатываться. Например, информация о каждом издании может быть представлена в стиле, принятом в определенном издательстве и определяющем порядок полей, шрифты, разделители и т. п. В данном случае никакой обработки введенных данных не производится, и они просто выводятся на терминал по окончании ввода всех данных.

// Книги и журналы (процедурное программирование)

#include <iostream.h>

#include <string.h>

#define MAX LENGTH 100 // максимальное число символов в имени

// автора или в названии издания

#define MAX ID 100 // максимальное число изданий

// Книга

typedef struct {

char szAuthor[MAX_LENGTH]; // автор

char szTitle[MAX_LENGTH]; //

название

int nYear; // год издания

} Book;

// Журнал

typedef struct {

char szTitle[MAX LENGTH]; // название

int nYear; // год выпуска

int nNumber// номер;

} Journal;

// Массив изданий

typedef struct {

int nPubldx; // индекс издания (1 — книга, 2 — журнал)

void* pPub; // указатель на издание

} Pub;

Pub aPub[MAX ID];

int nNewID = 0; // индекс нового издания

// Прототипы глобальных функций

void DisplayBook(Book &book); // вывод описания книги

void DisplayJournal(Journal Sjournal); // вывод описания журнала

void NewBook; // ввод данных о новой книге

void NewJournal; // ввод данных о новом журнале

// Главная функция

void main {

Book *pBook;

Journal *pJournal;

int nMenu, flag = 1;

while(nNewID < MAX_ID && flag)

{

// Вывод пунктов меню

cout << "Новое издание. Введите: " << endl;

cout << "1 для книги,\n 2 для журнала\n 3 — выход" << endl;

// Выбор пункта меню

сin >> nMenu;

switch (nMenu)

{ case 1: NewBook; break;

case 2: NewJournal; break;

default: flag = 0; break;

}

}

// Вывод описаний изданий

for (int id = 0; id < nNewID; id++)

{

switch (aPub[id].nPubldx)

{ case 1: pBook = (Book*) aPub[id].pPub;

DisplayBook(*pBook);

delete pBook;

break;

case 2: pJournal = (Journal*) aPub[id].pPub;

DisplayJournal(*pJournal);

delete pJournal;

break;

}

}

}

// Реализация глобальных функций

void DisplayBook(Book &book) {

cout << "BOOK: " << endl;

cout << "Author: " << book.szAuthor << endl;

cout << "Title: " << book.szTitle << endl;

cout << "Year: " << book.nYear << endl;

}

void DisplayJournal(Journal Sjournal) {

cout «"JOURNAL: " << endl;

cout <<"Title: " << journal.szTitle << endl;

cout << "Year: " << journal.nYear << endl;

cout << "Number: " << journal.nNumber << endl;

}

void NewBook {

char szBuffer[MAX LENGTH];

int nY;

Book* pBook = new Book;

cout << "Author: ";

cin >> szBuffer;

strcpy(pBook —> szAuthor, szBuffer);

Поделиться:
Популярные книги

Шведский стол

Ланцов Михаил Алексеевич
3. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Шведский стол

Дворянская кровь

Седой Василий
1. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Дворянская кровь

Краш-тест для майора

Рам Янка
3. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
эро литература
6.25
рейтинг книги
Краш-тест для майора

Любовь Носорога

Зайцева Мария
Любовные романы:
современные любовные романы
9.11
рейтинг книги
Любовь Носорога

Темный Лекарь 5

Токсик Саша
5. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 5

Печать Пожирателя

Соломенный Илья
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Печать Пожирателя

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5

Возвышение Меркурия. Книга 16

Кронос Александр
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 16

Метатель

Тарасов Ник
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель

Запрети любить

Джейн Анна
1. Навсегда в моем сердце
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Запрети любить

На Ларэде

Кронос Александр
3. Лэрн
Фантастика:
фэнтези
героическая фантастика
стимпанк
5.00
рейтинг книги
На Ларэде

Третий. Том 4

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 4

Сочинения в трех томах. Том 1

Леблан Морис
Большая библиотека приключений и научной фантастики
Детективы:
классические детективы
5.00
рейтинг книги
Сочинения в трех томах. Том 1