GeoSELECT.ru



Программирование / Реферат: Разработка схемы топологии локальной корпоративной сети, описание ее технических характеристик и решаемых задач (Программирование)

Космонавтика
Уфология
Авиация
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Аудит
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника
Бухгалтерский учет
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Инвестиции
Иностранные языки
Информатика
Искусство и культура
Исторические личности
История
Кибернетика
Коммуникации и связь
Компьютеры
Косметология
Криминалистика
Криминология
Криптология
Кулинария
Культурология
Литература
Литература : зарубежная
Литература : русская
Логика
Логистика
Маркетинг
Масс-медиа и реклама
Математика
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Мифология
Москвоведение
Музыка
Муниципальное право
Налоги
Начертательная геометрия
Оккультизм
Педагогика
Полиграфия
Политология
Право
Предпринимательство
Программирование
Психология
Радиоэлектроника
Религия
Риторика
Сельское хозяйство
Социология
Спорт
Статистика
Страхование
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Физика
Физкультура
Философия
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
   

Реферат: Разработка схемы топологии локальной корпоративной сети, описание ее технических характеристик и решаемых задач (Программирование)



Индивидуальное заданне: Разработка схемы топологии локальной
корпоративной сети, описание ее технических характеристик и решаемых задач.


ФАЙЛ-СЕРВЕР И РАБОЧИЕ СТАНЦИИ

Файл-сервер является ядром локальной сети. Этот компьютер (обычно
высокопроизводительный мини-компьютер) запускает операционную систему и
управляет потоком данных, передаваемых по сети. Отдельные рабочие станции и
любые совместно используемые периферийные устройства, такие, как принтеры,
- все подсоединяются к файл-серверу.
Каждая рабочая станция представляет собой обычный персональный
компьютер, работающий под управлением собственной дисковой операционной
системы. Однако в отличие от автономного персонального компьютера рабочая
станция содержит плату сетевого интерфейса и физически соединена кабелями с
файлом-сервером. Кроме того, рабочая станция запускает специальную
программу, называемой оболочкой сети, которая позволяет ей обмениваться
информацией с файл-сервером, другими рабочими станциями и прочими
устройствами сети. Оболочка позволяет рабочей станции использовать файлы и
программы, хранящиеся на файл-сервере, так же легко, как и находящиеся на
ее собственных дисках.

ОПЕРАЦИОННАЯ СИСТЕМА РАБОЧЕЙ СТАНЦИИ

Каждый компьютер рабочей станции работает под управлением своей
собственной операционной системы (такой, как DOS или OS/2). Чтобы включить
каждую рабочую станцию с состав сети, оболочка сетевой операционной системы
загружается в начало операционной системы компьютера.
Оболочка сохраняет большую часть команд и функций операционной
системы, позволяя рабочей станции в процессе работы выглядеть как обычно.
Оболочка просто добавляет локальной операционной системе больше функций и
придает ей гибкость.

ТОПОЛОГИЯ ЛОКАЛЬНЫХ СЕТЕЙ

Термин "топология сети" относится к пути, по которому данные
перемещаются по сети. Существуют три основных вида топологий: "общая шина",
"звезда" и "кольцо".
Топология "общая шина" предполагает использование одного кабеля, к
которому подключаются все компьютеры сети (Смотреть рисунок № 1.1). В
случае "общая шина" кабель используется совместно всеми станциями по
очереди. Принимаются специальные меры для того, чтобы при работе с общим
кабелем компьютеры не мешали друг другу передавать и принимать данные.
В топологии "общая шина" все сообщения, посылаемые отдельными
компьютерами, подключенными к сети. Надежность здесь выше, так как выход из
строя отдельных компьютеров не нарушит работоспособности сети в целом.
Поиск неисправностей в кабеле затруднен. Кроме того, так как используется
только один кабель, в случае обрыва нарушается работа всей сети.
На (рисунке № 2.1) показаны компьютеры, соединенные звездой. В этом
случае каждый компьютер через специальный сетевой адаптер подключается
отдельным кабелем к объединяющему устройству.
При необходимости можно объединять вместе несколько сетей с
топологией "звезда", при этом получаются разветвленные конфигурации сети.
С точки зрения надежности эта топология не является
наилучшим решением, так как выход из строя центрального узла приведет к
остановке всей сети. Однако при использовании топологии "звезда" легче
найти неисправность в кабельной сети.
Используется также топология "кольцо" (рисунок № 3.1). В этом случае
данные передаются от одного компьютера к другому как бы по эстафете. Если
компьютер получит данные, предназначенные для другого компьютера, он
передает их дальше по кольцу. Если данные предназначены для получившего их
компьютера, они дальше не передаются.
Локальная сеть может использовать одну из перечисленных топологий.
Это зависит от количества объединяемых компьютеров, их взаимного
расположения и других условий. Можно также объединить несколько локальных
сетей, выполненных с использованием разных топологий, в единую локальную
сеть. Может, например, древовидная топология.

МЕТОДЫ ДОСТУПА И ПРОТОКОЛЫ ПЕРЕДАЧИ ДАННЫХ

В различных сетях существуют различные процедуры обмена данными в
сети. Эти процедуры называются протоколами передачи данных, которые
описывают методы доступа к сетевым каналам данных.
Наибольшее распространение получили конкретные реализации методов
доступа: Ethernet, Arcnet и Token-Ring.

Метод доступа Ethernet.

Это метод доступа, разработанный фирмой Xerox в 1975 году, пользуется
наибольшей популярностью. Он обеспечивает высокую скорость передачи данных
и надежность.
Для данного метода доступа используется топология "общая шина".
Поэтому сообщение, отправляемое одной рабочей станцией, принимается
одновременно всеми остальными, подключенными к общей шине. Но сообщение,
предназначенное только для одной станции (оно включает в себя адрес станции
назначения и адрес станции отправителя). Та станция, которой предназначено
сообщение, принимает его, остальные игнорируют.
Метод доступа Ethernet является методом множественного доступа с
прослушиванием несущей и разрешением коллизий (конфликтов) (CSMA/CD -
Carier Sense Multiple Access with Collision Detection).
Перед началом передачи рабочая станция определяет, свободен канал или
занят. Если канал свободен, станция начинает передачу.
Ethernet не исключает возможности одновременной передачи сообщений
двумя или несколькими станциями. Аппаратура автоматически распознает такие
конфликты, называемые коллизиями. После обнаружения конфликта станции
задерживают передачу на некоторое время. Это время небольшое и для каждой
станции свое. После задержки передача возобновляется.
Реально конфликты приводят к уменьшению быстродействия сети только в
том случае, если работает порядка 80-100 станций.


Метод доступа Arcnet.

Этот метод доступа разработан фирмой Datapoint Corp. Он тоже получил
широкое распространение, в основном благодаря тому, что оборудование Arcnet
дешевле, чем оборудование Ethernet или Token -Ring. Arcnet используется в
локальных сетях с топологией "звезда". Один из компьютеров создает
специальный маркер (сообщение специального вида), который последовательно
передается от одного компьютера к другому.
Если станция желает передать сообщение другой станции, она должна
дождаться маркера и добавить к нему сообщение, дополненное адресами
отправителя и назначения. Когда пакет дойдет до станции назначения,
сообщение будет "отцеплено" от маркера и передано станции.


Метод доступа Token-Ring.

Метод доступа Token-Ring был разработан фирмой IBM и рассчитан на
кольцевую топологию сети.
Этот метод напоминает Arcnet, так как тоже использует маркер,
передаваемый от одной станции к другой. В отличие от Arcnet, при методе
доступа Token-Ring имеется возможность назначать разные приоритеты разным
рабочим станциям.

Аппаратура Ethernet

Аппаратура Ethernet обычно состоит из кабеля, разъемов, Т-
коннекторов, терминаторов и сетевых адаптеров. Кабель, очевидно,
используется для передачи данных между рабочими станциями. Для подключения
кабеля используются разъемы. Эти разъемы через Т-коннекторы подключаются к
сетевым адаптерам - специальным платам, вставленным в слоты расширения
материнской платы рабочей станции. Терминаторы подключаются к открытым
концам сети.
Для Ethernet могут быть использованы кабели разных типов: тонкий
коаксиальный кабель, толстый коаксиальный кабель и неэкранированная витая
пара. Для каждого типа кабеля используются свои разъемы и свой способ
подключения к сетевому адаптеру.
В зависимости от кабеля меняются такие характеристики сети, как
максимальная длина кабеля и максимальное количество рабочих станций,
подключаемых к кабелю.
Как правило, скорость передачи данных в сети Ethernet достигает 10
Мбит в секунду, что достаточно для многих приложений.
Рассмотрим подробно состав аппаратных средств Ethernet для различных
типов кабеля.

Толстый коаксиальный кабель.

Толстый коаксиальный кабель, используемый Ethernet, имеет диаметр 0.4
дюйма и волновое сопротивление 50 Ом. Иногда этот кабель называют "желтым
кабелем". Это самый дорогостоящий из рассматриваемых нами кабелей. Институт
IEEE определил спецификацию на этот кабель - 10BASES.
На рис. 4 схематически изображена локальная сеть на основе толстого
коаксиального кабеля.
[pic]
Здесь приведена конфигурация сети, состоящей из двух сегментов,
разделенным репитером. В каждом сегменте находятся 3 рабочие станции.
Каждая рабочая станция через сетевой адаптер (установлен на
материнской плате компьютера и на рисунке не показан) специальным
многожильным трансиверным кабелем подключается к устройству, называемому
трансивером. Трансивер служит для подключения рабочей станции к толстому
коаксиальному кабелю.
На корпусе трансивера имеется 3 разъема: два - для подключения
толстого коаксиального кабеля, и один - для подключения трансиверного
кабеля.
В таблице 2 перечислены устройства, необходимые для подключения
рабочей станции к толстому коаксиальному кабелю.
К сожалению, длина одного сегмента ограничена, и для толстого кабеля
не может превышать 500 метров. Если общая длина сети больше 500 метров, ее
необходимо разбить на сегменты, соединенные друг с другом через специальное
устройство - репитер.
На рисунке изображены два сегмента, соединенные репитером. При этом
общая длина сети может достигать одного километра.
Между собой трансиверы соединяются отрезками толстого коаксиального
кабеля с припаянными к их концам коаксиальными Оборудование для
подключения рабочей станции к толстому коаксиальному кабелю Ethernet
разъемами.
Таблица 2.
|Сетевой адаптер |Вставляется в материнскую плату компьютера |
|Трансиверный кабель |Многожильный экранированный кабель, соединяет |
| |сетевой адаптер с трансивером |
|Трансивер |Соединяется трансиверным кабелем с сетевым |
| |адаптером, имеет два коаксиальных разъема для |
| |подключения к толстому кабелю |



На концах сегмента подключены специальные заглушки - терминаторы. Это
просто коаксиальные разъемы, в корпусе которых установлен резистор с
сопротивлением 50 Ом.
Корпус одного из терминаторов должен быть заземлен. В каждом сегменте
сети можно соединять только один терминатор.
Таблица 3.
|Максимальная длина сегмента |500 м |
|Максимальное количество сегментов в сети |5 |
|Максимальная длина сети |2.5 км |
|Максимальное количество станций, подключенных к |100 |
|одному сегменту (если в сети есть репитеры, то они | |
|тоже считаются как рабочие станции) | |
|Минимальное расстояние между точками |2.5 м |
|Подключения рабочих станций | |
| |
| |


Существуют и другие ограничения кроме максимальной длины коаксиального
кабеля.
Ограничения для Ethernet на толстом кабеле
Кроме ограничения на длину сегмента существуют ограничения на
максимальное количество сегментов в сети (и, как следствие, на максимальную
длину сети), на максимальное количество рабочих станций, подключенных к
сети и на максимальную длину трансиверного кабеля.
Однако в большинстве случаев эти ограничения не существенны. Более
того, возможности толстого кабеля избыточны.
Итак, перечислим оборудование, необходимое для сети Ethernet на
толстом кабеле:
N-коннектор
N-терминатор
N-Barrel-коннектор
N-терминатор с заземлением
DIX-коннектор
Трансивер


Тонкий коаксиальный кабель

Тонкий коаксиальный кабель, используемый для Ethernet, имеет диаметр
0.2 дюйма и волновое сопротивление 50 Ом. Импортный кабель называется RG-
58A/U и соответствует спецификации 10BASE2. Можно также использовать кабель
РК-50, выпускаемый нашей промышленностью.
Сеть Ethernet на тонком кабеле существенно проще, чем на толстом.
Как правило, все сетевые адаптеры имеют два разъема. Один из них
предназначен для подключения многожильного трансиверного кабеля, второй -
для подключения небольшого тройника, называемого Т-коннектором. Т-коннектор
с одной стороны подключается к сетевому адаптеру, а с двух других сторон к
нему подключаются отрезки тонкого коаксиального кабеля с соответствующими
разъемами на концах. При этом получается, что коаксиальный кабель
подключается как бы непосредственно к сетевому адаптеру, поэтому не нужны
трансивер и трансиверный кабель.
[pic]
На концах сегмента должны находиться терминаторы, которые
подключаются к свободным концам Т-коннекторов. Один (и только один!)
терминатор в сегменте должен быть заземлен.
Сети на тонком кабеле имеют худшие параметры по сравнению с сетями на
базе толстого кабеля (таблица 4). Но стоимость сетевого оборудования,
необходимого для создания сети на тонком кабеле, существенно меньше.
Следует отметить, что некоторые фирмы выпускают адаптеры Ethernet,
способные работать при длине сегмента до 300 метров (например, адаптеры
фирмы 3COM). Однако такие адаптеры стоят дороже и вся сеть в этом случае
должна быть сделана с использованием адаптеров только одного типа.
Ограничения для Ethernet на тонком кабеле.
Таблица 4.
|Максимальная длина сегмента |185 м |
|Максимальное количество сегментов в сети |5 |
|Максимальная длина сети |925 м |
|Максимальное количество станций, подключенных к|30 |
|одному сегменту (если в сети есть репитеры, то | |
|они тоже считаются как рабочие станции) | |
|Минимальное расстояние между точками |0.5 м |
|Подключения рабочих станций | |
| | |

Как правило, большинство сетей Ethernet создано именно на базе тонкого
кабеля.
Итак, перечислим оборудование, необходимое для сети Ethernet на тонком
кабеле:
BNC-коннектор
BNC-терминатор
BNC-Barrel-коннектор
BNC-терминатор с заземлением
T-коннектор


Неэкранированная витая пара.

Некоторые (но не все) сетевые адаптеры Ethernet способны работать с
кабелем, представляющем собой простую неэкранированную витую пару проводов
(спецификация 10BASE-T). В качестве такого кабеля можно использовать
обычный телефонный провод и уже имеющуюся в вашей организации телефонную
сеть.
Сетевые адаптеры, способные работать с витой парой, имеют разъем,
аналогичный применяемому в импортных телефонных аппаратах.
Для сети Ethernet на базе витой пары необходимо специальное
устройство - концентратор. К одному концентратору через все те же
телефонные розетки можно подключить до 12 рабочих станций. Максимальное
расстояние от концентратора до рабочей станции составляет 100 метров, при
этом скорость передачи данных такая же, как и для коаксиального кабеля, -
10 Мбит в секунду.
Достоинства сети на базе витой пары очевидны - низкая стоимость
оборудования и возможность использования имеющейся телефонной сети. Однако
есть серьезные ограничения на количество станций в сети и на ее длину.




Реферат на тему: Разработка текстового редактора

Министерство образования Украины



Харьковский государственный технический
университет радиоэлектроники



Кафедра ПО ЭВМ


Курсовой проект по дисциплине:
«Основы программирования и алгоритмические языки»

Тема:
«Разработка текстового редактора»


|Работу выполнил: |Руководитель: |
|Ст. гр. ИСПР-99-2 | |
|Морашко Алексей | |
| |Работа защищена с оценкой: |
| | |
| | |
| |Комиссия: |



Харьков, 2000 г.



ХГТУРЭ

Кафедра ПО ЭВМ

Задание
на курсовую работу по дисциплине «ОП и АЯ»
ст. гр. ИСПР-99-2 Морашко А.Г.


Тема: «Разработка текстового редактора в Borland C++Builder»

І Разработать текстовый редактор, который имел бы такие возможности:
. Открывать и сохранять текстовые файлы типа TXT или RTF
. Возможности редактирования текста
. Простой и удобный интерфейс

ІІ Константы. Их синтаксис и применение.



Дата выдачи задания: Дата защиты:



Студент: Морашко А.Г.


Руководитель:


Реферат



Данная работа содержит 30 страниц, включая приложение; 5 иллюстраций.
Цель работы: создать, используя систему программирования C++Builder,
текстовый редактор.
Объект исследования: текстовый редактор, разработанный в C++Builder,
умеющий редактировать файлы типа TXT и RTF. В перспективе планируется
редактирование формата документов типа DOC.
Ключевые слова:
C++BUILDER, ТЕКСТОВЫЙ РЕДАКТОР, КОНСТАНЫ, ФОРМАТ ТЕКСТОВЫХ ФАЙЛОВ,
ХАРАКТЕРИСТИКИ

Содержание



Реферат 3


Содержание 4


Введение 5


1 Описание программы 6


1.1 Основные характеристики 6

1.2 Руководство для пользователя 6

2.1 Константы 14


2.1.1 Целые Константы 14

2.1.2 Константы с Плавающей Точкой 15

2.1.3 Символьные Константы 15

2.1.4 Строки 16

2.1.5 Ноль 17

2.1.6 Const 18

2.1.7 Перечисления 19

Перечень ссылок 21


Приложение А 22



Введение



Несколько лет назад исследователи заметили, что программисты в течение
определенного времени пишут и отлаживают приблизительно одинаковый по
объему код, независимо от используемого языка программирования. Объем
работы примерно тот же, но результаты разные. Написание 100 строк на С
требует столько же затрат, сколько и 100 строк кода на ассемблере, но
возможности кода на С гораздо шире. Поняв это, исследователи начали
разрабатывать языки высокого уровня, которые увеличивали бы потенциал
отдельного программиста, сокращая тем самым строки и стоимость разработки
проектов.
В 70-х годах среди создателей языков программирования приобрела
популярность концепция объекта. Объект является совокупностью кода и
данных, созданной для воспроизведения свойств физических объектов или
абстрактных понятий.
Объектно-ориентированное программирование – это методология, которая
концентрируется больше на связях между объектами, чем на деталях
реализации. Данные связи обычно развиваются по принципу деревьев, при этом
новые типы объектов образуются уже из существующих. Сокрытие реализации
объекта ведет к тому, что пользователя больше волнует связь с остальными
объектами, чем поведение объекта. Данное отличие очень важно, поскольку оно
означает принципиальный отказ от «императивных» языков (таких как С), в
которых функции и вызовы функций составляют основу деятельности.
В С++ некоторые объекты являются частью самого языка. Но в целом задача
создания новых объектов ложится на пользователя. В C++Builder имеется
множество типов объектов, но реальное использование языка требует создания
новых типов. Эффективность ООП проявляется только при создании и применении
групп связанных между собой объектов. Такие группы называют иерархиями
классов. Развитие этих иерархий классов является основой деятельности в
ООП.
C++Builder является объектно-ориентированным языком программирования и
на примере создания текстового редактора я хочу продемонстрировать всю мощь
и быстроту визуального, объектно-ориентированного программирования.

1 Описание программы



1 Основные характеристики



Рассматриваемая программа имеет возможность редактирования текстовых
файлов типа TXT и RTF, а также им подобные.
Программа представляет собой EXE файл; программа умеет открывать и
сохранять текстовые файлы, редактировать их, изменять шрифт и размер
текста, имеет поиск и замену текста. Описание функций и клавиш будет
приведено ниже.


3 Руководство для пользователя



Выполняемый файл называется WORD.EXE. После его запуска на экране
появляется окно, показанное на Рисунок 1. 1

[pic]
Рисунок 1. 1 – Окно программы, возникающее после запуска
После того как программа запустится ее можно использовать.



Кнопки панели управления

[pic] -создание нового документа.
[pic] - открытие документа
[pic] - сохранение документа
[pic]- вырезание выделенного текста
[pic] - копирование выделенного текста
[pic] - вставка текста из буфера обмена
[pic] - отмена последнего действия
[pic] - поиск в тексте
[pic] - замена в тексте
[pic] - печать документа
[pic] - выбор шрифта для выделенного текста
[pic] - изменение размера выбранного текста
[pic] - полужирный шрифт
[pic] - курсивный шрифт
[pic] - подчеркнутый шрифт
[pic] - равнение текста по левому краю
[pic] - равнение текста по центру
[pic] - равнение текста по правому краю
[pic] - маркировка выделенного абзаца

Работа с документами

Создание нового документа
1. В меню Файл выберите команду Новый.
2. Начните ввод текста.
3. Чтобы сохранить новый файл, выберите в меню Файл команду Сохранить как
и введите имя в поле Имя файла.
Сохранение измененного документа
В меню Файл выберите команду Сохранить.
Примечание
. Чтобы сохранить существующий документ под другим именем, выберите
команду Сохранить как и введите новое имя в поле Имя файла.
Открытие документа
1. В меню Файл выберите команду Открыть.
[pic]
Рисунок 1.2 – Окно открытия файла.
2. В открывшемся окне (рис 1.2), в поле со списком Папка выберите диск,
содержащий документ, который следует открыть.
3. Дважды щелкните папку, содержащую нужный документ.
4. Выберите документ и нажмите кнопку Открыть.
Примечания
. Если вы не видите нужный документ, попробуйте выбрать другой тип
документов в поле со списком Тип файлов.
. Чтобы открыть один из недавно открывавшихся документов, выберите его
имя в меню Файл.


Настройка окна MAGWord

Вывод на экран или скрытие линейки
В меню Вид выберите команду Линейка.
Если слева от этой команды в меню стоит метка, линейка находится на
экране.

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


Работа с текстом

Отмена последнего действия
В меню Правка выберите команду Отменить.
Удаление текста
1. Выделите текст, который следует удалить.
2. Чтобы переместить текст в другую часть документа, выберите в меню
Правка команду Вырезать.
Чтобы просто удалить текст из документа, нажмите клавишу DELETE.
Примечания
. Чтобы снять выделение, щелкните любое место в документе.
. Чтобы отменить удаление, выберите в меню Правка команду Отменить.
. Чтобы выделить для удаления весь текст в документе нажмите Ctrl+A.
Поиск текста

1. В документе щелкните место, с которого следует начать поиск текста.
2. В меню Правка выберите команду Поиск. В появившемся окне (Рисунок 1.3)
установить параметры поиска.
3. В поле Образец введите образец текста для поиска и нажмите кнопку
Найти далее.
[pic]
Рисунок 1.3 – Окно поиска текста
4. Чтобы найти следующие вхождения искомого текста, нажимайте кнопку
Найти далее.

Примечания

. Для поиска и замены текста выберите в меню Правка команду Заменить.

Поиск и замена текста

1. В меню Правка выберите команду Заменить.
2. В поле Образец введите образец текста для поиска и замены.
3. В поле Заменить на введите новый текст.
Примечания
. Чтобы заменить все вхождения искомого текста, нажмите кнопку Заменить
все.
. Чтобы заменять каждое вхождение образца по отдельности, нажимайте
кнопку Найти далее, а затем кнопку Заменить.



Форматирование текста


Создание маркированного списка
1. Щелкните место в документе, с которого следует начать маркированный
список.
2. В меню Формат выберите команду Маркер, а затем начинайте ввод текста.
При каждом нажатии клавиши ENTER на следующей строке будет появляться
новый маркер.
3. Чтобы завершить маркированный список, выберите команду Маркер еще раз.

Изменение шрифта, начертания и размера символов
1. Выделите текст, формат которого следует изменить.
2. В меню Правка выберите команду Шрифт. Откроется диалоговое окно
показанное на рисунке 1.4.
[pic]
Рисунок 1.4 – Окно выбора шрифта.
3. Выберите нужные параметры и нажмите кнопку применить.
Примечания
. Чтобы задать шрифт для оформления нового текста, измените его до
начала ввода текста.
. Чтобы изменить шрифт всего документа, нажмите Ctrl+A, а затем в меню
Правка выберите Шрифт.

Форматирование абзаца

1. Щелкните любое место внутри абзаца, который требуется отформатировать.

2. На панели инструментов щелкните по одной из кнопок выравнивания текста
и задайте параметры отступа с помощью линейки.



Печать


Смена принтера и изменение параметров печати
1. Чтобы сменить принтер, нажмите кнопку Печать. Откроется диалоговое
окно показанное на рисунке 1.5. Выберите имя принтера в поле со
списком Имя.
[pic]
Рисунок 1.5 - Диалоговое окно печати документа.
2. Чтобы начать печать щелкните по кнопке OK.


6 Константы



C++ дает возможность записи значений основных типов: символьных
констант, целых констант и констант с плавающей точкой. Кроме того, ноль
(0) может использоваться как константа любого указательного типа, и
символьные строки являются константами типа char[]. Можно также задавать
символические константы. Символическая константа - это имя, значение
которого не может быть изменено в его области видимости. В C++ имеется три
вида символических констант: (1) любому значению любого типа можно дать имя
и использовать его как константу, добавив к его описанию ключевое слово
const; (2) множество целых констант может быть определено как перечисление;
и (3) любое имя вектора или функции является константой.


1 Целые Константы


Целые константы предстают в четырех обличьях: десятичные, восьмеричные,
шестнадцатеричные и символьные константы. Десятичные используются чаще
всего и выглядят так, как можно было бы ожидать:
0 1234 976 12345678901234567890

Десятичная константа имеет тип int, при условии, что она влезает в int,
в противном случае ее тип long. Компилятор должен предупреждать о
константах, которые слишком длинны для представления в машине. Константа,
которая начинается нулем за которым идет x (0x), является шестнадцатеричным
числом (с основанием 16), а константа, которая начинается нулем за которым
идет цифра, является восьмеричным числом (с основанием 8). Вот примеры
восьмеричных констант:

0 02 077 0123

их десятичные эквиваленты - это 0, 2, 63, 83. В шестнадцатеричной записи
эти константы выглядят так:

0x0 0x2 0x3f 0x53

Буквы a, b, c, d, e и f, или их эквиваленты в верхнем регистре,
используются для представления чисел 10, 11. 12, 13, 14 и 15,
соответственно. Восьмеричная и шестнадцатеричная записи наиболее полезны
для записи набора битов; применение этих записей для выражения обычных
чисел может привести к неожиданностям. Например, на машине, где int
представляется как двоичное дополнительное шестнадцатеричное целое, 0xffff
является отрицательным десятичным числом -1; если бы для представления
целого использовалось большее число битов, то оно было бы числом 65535.


2 Константы с Плавающей Точкой


Константы с плавающей точкой имеют тип double. Как и в предыдущем
случае, компилятор должен предупреждать о константах с плавающей точкой,
которые слишком велики, чтобы их можно было представить. Вот некоторые
константы с плавающей точкой:
1.23 .23 0.23 1. 1.0 1.2e10 1.23e-15

Заметьте, что в середине константы с плавающей точкой не может
встречаться пробел. Например, 65.43 e-21 является не константой с плавающей
точкой, а четырьмя отдельными лексическими символами (лексемами):
65.43 e - 21

и вызовет синтаксическую ошибку.
Если вы хотите иметь константу с плавающей точкой типа float, вы можете
определить ее так:
const float pi = 3.14159265;


3 Символьные Константы

Хотя в C++ и нет отдельного символьного типа данных, точнее, символ
может храниться в целом типе, в нем для символов имеется специальная и
удобная запись. Символьная константа - это символ, заключенный в одинарные
кавычки; например, 'a' или '0'. Такие символьные константы в
действительности являются символическими константами для целого значения
символов в наборе символов той машины, на которой будет выполняться
программа (который не обязательно совпадает с набором символов, применяемом
на том компьютере, где программа компилируется). Поэтому, если вы
выполняетесь на машине, использующей набор символов ASCII, то значением '0'
будет 48, но если ваша машина использует EBCDIC, то оно будет 240.
Употребление символьных констант вместо десятичной записи делает программу
более переносимой. Несколько символов также имеют стандартные имена, в
которых обратная косая используется как escape-символ:
|'b' |возврат назад |
|'f' |перевод формата |
|'n' |новая строка |
|'r' |возврат каретки |
|'t' |горизонтальная табуляция |
|'v' |вертикальная табуляция |
|'' |обратная косая (обратный слэш) |
|''' |одинарная кавычка |
|'"' |двойная кавычка |
|'0' |null, пустой символ, целое значение 0 |

Вопреки их внешнему виду каждое является одним символом. Можно также
представлять символ одно-, дву- или трехзначным восьмеричным числом (символ
, за которым идут восьмеричные цифры), или одно-, дву- или трехзначным
шестнадцатеричным числом (x, за которым идут шестнадцатеричные цифры).
Например:
'6' 'x6' 6 ASCII ack
'60' 'x30' 48 ASCII '0'
'137' 'x05f' 95 ASCII '_'

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


4 Строки

Строковая константа - это последовательность символов, заключенная в
двойные кавычки:
"это строка"

Каждая строковая константа содержит на один символ больше, чем кажется; все
они заканчиваются пустым символом '0' со значением 0. Например:
sizeof("asdf")==5;

Строка имеет тип "вектор из соответствующего числа символов", поэтому
"asdf" имеет тип char[5]. Пустая строка записывается "" (и имеет тип
char[1]). Заметьте, что для каждой строки s strlen(s)==sizeof(s)-1,
поскольку strlen() не учитывает завершающий 0. Соглашение о представлении
неграфических символов с обратной косой можно использовать также и внутри
строки. Это дает возможность представлять в строке двойные кавычки и escape-
символ . Самым обычным символом этого рода является, безусловно, символ
новой строки 'n'. Например:
cout Text = RichEdit1->SelAttributes->Name;
FirstInd->Left = int(RichEdit1->Paragraph->FirstIndent*RulerAdj)-
4+GutterWid;
LeftInd->Left = int((RichEdit1->Paragraph->LeftIndent+
RichEdit1->Paragraph->FirstIndent)*RulerAdj)-4+GutterWid;
RightInd->Left = Ruler->ClientWidth-6-int(
(RichEdit1->Paragraph->RightIndent+GutterWid)*RulerAdj);
if (CurrText()->Style==CurrText()->Style >> fsItalic)
ToolButton17->Down=false;
else ToolButton17->Down=true;
if (CurrText()->Style==CurrText()->Style >> fsBold)
ToolButton15->Down=false;
else ToolButton15->Down=true;
if (CurrText()->Style==CurrText()->Style >> fsUnderline)
ToolButton3->Down=false;
else ToolButton3->Down=true;
Edit2->Text = itoa(RichEdit1->SelAttributes->Size, sizebuf, 10);
if (RichEdit1->Paragraph->Alignment == taLeftJustify)
LeftAlign->Down=true;
else LeftAlign->Down=false;
if (RichEdit1->Paragraph->Alignment == taCenter)
CenterAlign->Down=true;
else CenterAlign->Down=false;
if (RichEdit1->Paragraph->Alignment == taRightJustify)
RightAlign->Down=true;
else RightAlign->Down=false;
if(RichEdit1->Paragraph->Numbering == TNumberingStyle(nsBullet))
ToolButton14->Down=true;
else ToolButton14->Down=false;
}
catch (...) {
FUpdating = False;
}
FUpdating = False;
}

TTextAttributes *__fastcall TForm1::CurrText(void)
{
return RichEdit1->SelAttributes;
}

void __fastcall TForm1::FileNew1Execute(TObject *Sender)
{
FFileName = LoadStr(sUntitled);
RichEdit1->Lines->Clear();
RichEdit1->Modified = false;
}

void __fastcall TForm1::FileOpen1Execute(TObject *Sender)
{
if (OpenDialog->Execute())
{
RichEdit1->Lines->LoadFromFile(OpenDialog->FileName);
FFileName = OpenDialog->FileName;
RichEdit1->SetFocus();
RichEdit1->Modified = false;
RichEdit1->ReadOnly = OpenDialog->Options.Contains(ofReadOnly);
Form1->Caption = OpenDialog->FileName;
}
}

void __fastcall TForm1::FileSave1Execute(TObject *Sender)
{
if (FFileName == LoadStr(sUntitled))
{
FileSaveAs1Execute(Sender);
Form1->Caption = SaveDialog->FileName; }
else
{
RichEdit1->Lines->SaveToFile(FFileName);
RichEdit1->Modified = false; }
}

void __fastcall TForm1::FileSaveAs1Execute(TObject *Sender)
{
String str;
TVarRec vrs[1];
if (SaveDialog->Execute())
{
if (FileExists(SaveDialog->FileName))
{
str = FmtLoadStr(sOverwrite, OPENARRAY(TVarRec, (SaveDialog-
>FileName)));
if (MessageDlg(str, mtConfirmation, TMsgDlgButtons() FileName;
RichEdit1->Modified = false;
}
}

void __fastcall TForm1::CheckFileSave(void)
{
if ( RichEdit1->Modified ) {
switch(MessageBox(Handle, "Save Changes?",
"Confirmation",MB_YESNOCANCEL | MB_ICONQUESTION))
{ case ID_YES : FileSave1Execute(this);
case ID_CANCEL : Abort();
}
}
}

void __fastcall TForm1::FileExit1Execute(TObject *Sender)
{
Close();
}

void __fastcall TForm1::HelpAbout1Execute(TObject *Sender)
{
AboutBox->ShowModal();
}

void __fastcall TForm1::UndoClick(TObject *Sender)
{
if ( RichEdit1->HandleAllocated() )
SendMessage(RichEdit1->Handle, EM_UNDO, 0, 0);
}

void __fastcall TForm1::PrintClick(TObject *Sender)
{
if (PrintDialog1->Execute()) RichEdit1->Print(OpenDialog->FileName);
}

void __fastcall TForm1::Print_SetupClick(TObject *Sender)
{
PrinterSetupDialog1->Execute();
}

void __fastcall TForm1::FindClick(TObject *Sender)
{
FindDialog1->FindText = RichEdit1->SelText;
FindDialog1->Execute();
}

void __fastcall TForm1::FindDialog1Find(TObject *Sender)
{
int FoundAt, StartPos, ToEnd;
if (RichEdit1->SelLength)
StartPos = RichEdit1->SelStart + RichEdit1->SelLength;
else
StartPos = 0;
ToEnd = RichEdit1->Text.Length() - StartPos;
FoundAt = RichEdit1->FindText(FindDialog1->FindText, StartPos, ToEnd,
TSearchTypes()SetFocus();
RichEdit1->SelStart = FoundAt;
RichEdit1->SelLength = FindDialog1->FindText.Length();
}
}

void __fastcall TForm1::ReplaceDialog1Replace(TObject *Sender)
{
if (RichEdit1->SelLength == 0)
FindDialog1Find(Sender);
else
{
RichEdit1->SelText = ReplaceDialog1->ReplaceText;
FindDialog1Find(Sender);
}

if (ReplaceDialog1->Options.Contains(frReplaceAll))
while (RichEdit1->SelLength !=0)
ReplaceDialog1Replace(Sender);
}

void __fastcall TForm1::ReplaceClick(TObject *Sender)
{
ReplaceDialog1->Execute();
}

void __fastcall TForm1::N5Click(TObject *Sender)
{
FontDialog1->Options Execute();
}

void __fastcall TForm1::FontDialog1Apply(TObject *Sender, HWND Wnd)
{
if (ActiveControl->ClassNameIs("TEdit"))
((TEdit *)ActiveControl)->Font->Assign(FontDialog1->Font);
else if (ActiveControl->ClassNameIs("TRichEdit"))
((TRichEdit *)ActiveControl)->SelAttributes->Assign(FontDialog1-
>Font);
else
MessageBeep(0);
}

void __fastcall TForm1::prClick(TObject *Sender)
{
ToolButton8->Visible=false;
}

void __fastcall TForm1::rp1Click(TObject *Sender)
{
ToolButton8->Visible=true;
}

void __fastcall TForm1::CenterAlignClick(TObject *Sender)
{
RichEdit1->Paragraph->Alignment = taCenter;
}

void __fastcall TForm1::LeftAlignClick(TObject *Sender)
{
RichEdit1->Paragraph->Alignment = taLeftJustify;
}

void __fastcall TForm1::RightAlignClick(TObject *Sender)
{
RichEdit1->Paragraph->Alignment = taRightJustify;
}

void __fastcall TForm1::SetupRuler(void)
{ int iCtr = 1;
char sTmp[201];
while (iCtr < 200) {
sTmp[iCtr] = 9;
iCtr++;
sTmp[iCtr] = '|';
iCtr++;
}
Ruler->Caption = (AnsiString)sTmp;
}

void __fastcall TForm1::FormCreate(TObject *Sender)
{
OpenDialog->InitialDir = ExtractFilePath(ParamStr(0));
SaveDialog->InitialDir = OpenDialog->InitialDir;
SetupRuler();
for (int i = 0; i < Screen->Fonts->Count; i++)
ComboBox1->Items->Add(Screen->Fonts->Strings[i]);
RichEdit1->SelStart = 0;
}

void __fastcall TForm1::ToolButton14Click(TObject *Sender)
{
if(RichEdit1->Paragraph->Numbering == TNumberingStyle(nsBullet))
RichEdit1->Paragraph->Numbering = TNumberingStyle(nsNone);
else
RichEdit1->Paragraph->Numbering = TNumberingStyle(nsBullet);
}


void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
TCharsetObject* ChasrsetObject;
if ( !FUpdating ){
ChasrsetObject = (TCharsetObject*)ComboBox1->Items-
>Objects[ComboBox1->ItemIndex];
CurrText()->Name = ComboBox1->Items->Strings[ComboBox1->ItemIndex];
}
}

void __fastcall TForm1::ToolButton15Click(TObject *Sender)
{
if (CurrText()->Style == CurrText()->Style >> fsBold)
CurrText()->Style = CurrText()->Style Style = CurrText()->Style >> fsBold;
}

void __fastcall TForm1::ToolButton17Click(TObject *Sender)
{
if (CurrText()->Style ==CurrText()->Style >> fsItalic)
CurrText()->Style = CurrText()->Style Style = CurrText()->Style >> fsItalic;
}

void __fastcall TForm1::Edit2Change(TObject *Sender)
{
int fontsize = atoi(Edit2->Text.c_str());
if ((!FUpdating) && (fontsize))
{
CurrText()->Size = atoi(Edit2->Text.c_str());
}
}


void __fastcall TForm1::ToolButton3Click(TObject *Sender)
{
if (CurrText()->Style ==CurrText()->Style >> fsUnderline)
CurrText()->Style = CurrText()->Style Style = CurrText()->Style >> fsUnderline;
}


void __fastcall TForm1::FirstIndMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
TLabel * oTmpLabel = (TLabel *)Sender;
FDragOfs = oTmpLabel->Width / 2;
oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
FDragging = True;
}


void __fastcall TForm1::FirstIndMouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
FDragging = False;
RichEdit1->Paragraph->FirstIndent = int((FirstInd->Left+FDragOfs-
GutterWid) / RulerAdj);
LeftIndMouseUp(Sender, Button, Shift, X, Y);
}


void __fastcall TForm1::LeftIndMouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
FDragging = False;
RichEdit1->Paragraph->LeftIndent = int((LeftInd->Left+FDragOfs-
GutterWid)/
RulerAdj)-RichEdit1->Paragraph->FirstIndent;
RichEdit1SelectionChange(Sender);
}


void __fastcall TForm1::FirstIndMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
if (FDragging) {
TLabel * oTmpLabel = (TLabel *)Sender;
oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
}
}


void __fastcall TForm1::RightIndMouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
FDragging = False;
RichEdit1->Paragraph->RightIndent =
int((Ruler->ClientWidth-RightInd->Left+FDragOfs-2) /
RulerAdj)-2*GutterWid;
RichEdit1SelectionChange(Sender);
}

void __fastcall TForm1::RulerResize(TObject *Sender)
{
RulerLine->Width = (int)Ruler->ClientWidth - (RulerLine->Left*2);

}

void __fastcall TForm1::FormPaint(TObject *Sender)
{
TRect Rct = Rect(GutterWid, 0, RichEdit1->ClientWidth-GutterWid,
ClientHeight);
SendMessage(RichEdit1->Handle, EM_SETRECT, 0, long(&Rct));;
}

void __fastcall TForm1::FormResize(TObject *Sender)
{
RichEdit1SelectionChange(Sender);
}

void __fastcall TForm1::FormActivate(TObject *Sender)
{
FileNew1Execute(Sender);
RichEdit1->SetFocus();
}

void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
try{
CheckFileSave();
}
catch (...) {
CanClose = False;
}
}

void __fastcall TForm1::NRulerClick(TObject *Sender)
{
if (Ruler->Visible==false)
{
Ruler->Visible=true;
NRuler->Checked=true;}
else {Ruler->Visible=false; NRuler->Checked=false;
}
}

void __fastcall TForm1::NPanelClick(TObject *Sender)
{
if (Panel1->Visible==false)
{
Panel1->Visible=true;
NPanel->Checked=true;
}
else {Panel1->Visible=false;
NPanel->Checked=false;
}
}

void __fastcall TForm1::NBarClick(TObject *Sender)
{
if (StatusBar->Visible==false)
{StatusBar->Visible=true;
NBar->Checked=true;}
else { StatusBar->Visible=false;
NBar->Checked=false;
}
}





Новинки рефератов ::

Реферат: Султанат Оман (География)


Реферат: Гетьман Іван Мазепа - державний та політичний діяч України (История)


Реферат: Выборочные ответы к государственному экзамену факультета ВМС специальности 2201 (Программирование)


Реферат: Вербальный и невербальный языки деловых людей (Менеджмент)


Реферат: Отражение в бухгалтерском учете и отчетности информации по прекращаемой деятельности (Бухгалтерский учет)


Реферат: Управление рисками (Управление)


Реферат: Системы химического мониторинга (Химия)


Реферат: Русские монастыри (Архитектура)


Реферат: Западная Сибирь (Геология)


Реферат: Международная экономика (Менеджмент)


Реферат: Киноискусство 20 века (Искусство и культура)


Реферат: Технология производства и товароведная оценка светлых сортов пива (Технология)


Реферат: В.О. Ключевский (Исторические личности)


Реферат: Достижение Римской Империи (История)


Реферат: Правовые основы взаимоотношений представительного и исполнительного органов местного самоуправления (Право)


Реферат: Загальні положення методики розслідування окремих видів злочинів. Криміналістична характеристика злочинів (Криминалистика)


Реферат: За что погиб Н.С. Гумилев? (Исторические личности)


Реферат: Возникновение театра в Древней Греции (Культурология)


Реферат: Керамика – один из видов народных художественных промыслов (Искусство и культура)


Реферат: Жан-Жак Руссо (Культурология)



Copyright © GeoRUS, Геологические сайты альтруист