Главная      Учебники - Разные     Лекции (разные) - часть 33

 

Поиск            

 

Предмет и объект прикладной информатики

 

             

Предмет и объект прикладной информатики

Понятие архитектуры ЭВМ. Классическая архитектура ЭВМ и принципы фон Неймана. Архитектура персональных компьютеров

Общие принципы построения современных ЭВМ: построения всех современных ЭВМ является программное управление. В его основе представление решение любой задачи в виде программы вычислений.

Алгоритм- это конечный набор предписаний, определяющий решение задач по средствам конечного количества операций.

Программы – это упорядоченная последовательность команд, подлежащая обработке.

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

Каждая команда содержит указания на конкретную выполняющую операцию, место нахождения операндов, и ряд служебных признаков.

Операнды- переменные значения которые участвуют в операции преобразования данных.

Архитектура ЭВМ совокупность общих принципов организации аппаратно-программных средств и их основных характеристик, определяющая функциональные возможности ЭВМ при решении соответствующих типов задач.

Структура - совокупность элементов и их связей. Различают структуры технических, программных и аппаратурно-программных средств.

Отличие архитектуры от структуры: структура определяет его текущий состав и описывает связи внутри средства, архитектура определяет основные правила взаимодействия составных элементов вычислительного средства, описание которых выполняется в той мере, в какой необходимо для формирования правил их взаимодействия.

Общие принципов построения ЭВМ, которые относятся к архитектуре:

• структура памяти ЭВМ;

• способы доступа к памяти и внешним устройствам;

• возможность изменения конфигурации компьютера;

• система команд;

• форматы данных;

• организация интерфейса. Из этого следует:

«Архитектура - это наиболее общие принципы построения ЭВМ, реализующие программное управление работой и взаимодействием основных ее функциональных узлов ».

Классическая архитектура ЭВМ и принципы Фон Неймана

Основы учения об архитектуре вычислительных машин заложил выдающийся американский математик Джон фон Нейман . Он работал с первой ламповой ЭВМ ENIAC в 1944 г.

Классические принципы построения архитектуры ЭВМ были предложены в 40-ч годах ХХ века к этим принципам относятся:

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

Принцип программного управления . программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.

Принцип однородности памяти Программы и данные хранятся в одной и той же памяти. Поэтому ЭВМ не различает, что хранится в данной ячейке памяти — число, текст или команда.

Принцип хранимой программы программа задавалась путем установки перемычек на специальной коммутационной панели. Нейман предложил сохранять программу в той же самой памяти, что и обрабатываемые ею числа. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений. Фон Нейман выдвинул основополагающие принципы логического устройства ЭВМ,и предложил ее структуру которая воспроизводилась в течение первых двух поколений ЭВМ. Схема устройства такой ЭВМ представлена на рис. 4.10.

Внешняя память отличается от устройства ввода и вывода тем, что данные в нее заносятся в виде, удобном компьютеру, но недоступном для непосредственного восприятия человеком. Так, накопитель на магнитных дисках - внешняя память, а клавиатура - устройство ввода, дисплей и печать - устройства вывода.

Устройство управления (УУ) и арифметико-логическое устройство (АЛУ) в современных компьютерах объединены в один блок — процессор, являющийся преобразователем информации, поступающей из памяти и внешних устройств. Память (ЗУ) хранит информацию (данные) и программы. Запоминающее устройство у современных компьютеров "многоярусно" и включает оперативное запоминающее устройство (ОЗУ) и внешние запоминающие устройства(ВЗУ). ОЗУ- это устройство, хранящее ту информацию, с которой компьютер работает непосредственно в данное время ВЗУ-устройства гораздо большей емкости, чем ОЗУ, но существенно более медленны. На ОЗУ и ВЗУ классификация устройств памяти не заканчивается - определенные функции выполняют и СОЗУ (сверхоперативное запоминающее устройство), и ПЗУ (постоянное запоминающее устройство), и другие подвиды компьютерной памяти.

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

Принцип адресности

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

Принцип последовательного выполнения операций.

Разработанные фон Нейманом основы получили название «фон-неймановской архитектуры». Исключение составляют отдельные разновидности систем для параллельных вычислений (примерами могут служить потоковая и редукционная вычислительные машины).

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

Архитектура персонального компьютера

Архитектура персонального компьютера — компоновка его основных частей, таких как процессор, ОЗУ, видеоподсистема, дисковая система, периферийные устройства и устройства ввода-вывода.

Появление третьего поколения ЭВМ произошло усложнение структуры за счет разделения процессов ввода-вывода информации и её обработки. Связанные устройства АЛУ и УУ получили название – процессор.

В схеме ЭВМ появились дополнительные устройства: процессоры ввода-вывода, устройства управления обменом информацией, каналы ввода-вывода (КВВ). Тенденция к децентрализации управления и параллельной работе отдельных устройств, резко повысила быстродействие ЭВМ в целом.

В персональных ЭВМ, относящихся к ЭВМ четвертого поколения, произошло дальнейшее изменение структуры (рис. 1.3). Они унаследовали ее от мини-ЭВМ.

Соединение всех устройств в единую машину обеспечивается с помощью общей шины, представляющей собой линии передачи данных, адресов, сигналов управления и питания. Все передачи данных по шине осуществляются под управлением сервисных программ. Ядро ПЭВМ образуют процессор и основная память (ОП), состоящая из оперативной памяти и постоянного запоминающего устройства (ПЗУ). ПЗУ предназначается для записи и постоянного хранения наиболее часто используемых программ управления. Подключение всех внешних устройств (ВнУ), дисплея, клавиатуры, внешних ЗУ и других обеспечивается через соответствующие адаптеры - согласователи скоростей работы сопрягаемых устройств или контроллеры - специальные устройства управления периферийной аппаратурой. Контроллеры в ПЭВМ играют роль каналов ввода-вывода. В качестве особых устройств следует выделить таймер - устройство измерения времени и контроллер прямого доступа к памяти (КПД) - устройство, обеспечивающее доступ к ОП, минуя процессор.

Все приведенные структуры не выходят за пределы классической структуры Ф.Неймона.

Из рисунка рис. 4.11 для связи между отдельными функциональными узлами ЭВМ используется общая шина Шина состоит из трех частей:

• шина данных, по которой передается информация;

• шина адреса, определяющая, куда передаются данные;

• шина управления, регулирующая процесс обмена информацией.

Описанную схему модно пополнить новыми устройствами - это свойство называют открытостью архитектуры. На рис. 4.11 представлен вид памяти - видео-ОЗУ (видеопамять). Видео память появилась с устройства вывода - дисплея. Дисплей является «очень быстрым» устройством отображения информации. Поэтому для ЭВМ третьего и четвертого поколений он является неотъемлемой частью.

Для получения картинки существует видеопамять. Объем видеопамяти зависит от числа цветов изображения. она показана пунктиром).

При описании магистральной структуры, все устройства взаимодействуют через общую шину. Такая структура применяется только для ЭВМ с небольшим числом внешних устройств. В состав ЭВМ могут вводиться одна или несколько дополнительных шин. Одна шина-для обмена с памятью, вторая -для связи с «медленными» внешними устройствами.

Характерные тенденций в развитии ЭВМ:

расширяется и совершенствуется набор внешних устройств

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

машины не только для вычислений, но и для логического анализа информации.

Особенностью развития современных ЭВМ является возрастание роли межкомпьютерных коммуникаций, большее количество компьютеров объединяются в сети и обрабатывают имеющуюся информацию совместно.

Внутренняя структура вычислительной техники постоянно совершенствовалась и будет совершенствоваться.,

Все приведенные структуры не выходят за пределы классической структуры фон Неймана. Их объединяют следующие Традиционные признаки:

ядро ЭВМ образует процессор - единственный вычислитель в структуре, дополненный каналами обмена информацией и памятью;

линейная организация ячеек всех видов памяти фиксированного размера;

одноуровневая адресация ячеек памяти, стирающая различия между всеми типами информации;

внутренний машинный язык низкого уровня, при котором команды содержат элементарные операции преобразования простых операндов;

последовательное централизованное управление вычислениями;

достаточно примитивные возможности устройств ввода-вывода.

Недостатки классических структур:

плохо развитые средства обработки нечисловых данных (структуры, символы, предложения, графические образы, звук, очень большие массивы данных и др.);

несоответствие машинных операций операторам языков высокого уровня;

примитивная организация памяти ЭВМ;

низкая эффективность ЭВМ при решении задач, допускающих параллельную обработку.

Исчерпаны структурные методы производительности ЭВМ.

В ЭВМ будущих поколений, с использованием в них “встроенного искусственного интеллекта”, предполагается дальнейшее усложнение структуры.

Определение и назначение экспертной системы, ее состав. Система продукций. Этапы проектирования и участники процесса проектирования экспертной системы

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

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

Важность экспертных систем состоит в следующем:

технология экспертных систем существенно расширяет круг практически значимых задач, решаемых на компьютерах, решение которых приносит значительный экономический эффект;

технология ЭС является важнейшим средством в решении глобальных проблем традиционного программирования: длительность и, следовательно, высокая стоимость разработки сложных приложений;

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

объединение технологии ЭС с технологией традиционного программирования добавляет новые качества к программным продуктам за счет: обеспечения динамичной модификации приложений пользователем, а не программистом; большей "прозрачности" приложения (например, знания хранятся на ограниченном ЕЯ, что не требует комментариев к знаниям, упрощает обучение и сопровождение); лучшей графики; интерфейса и взаимодействия.

По мнению ведущих специалистов, в недалекой перспективе ЭС найдут следующее применение:

ЭС будут играть ведущую роль во всех фазах проектирования, разработки, производства, распределения, продажи, поддержки и оказания услуг;

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

ЭС предназначены для так называемых неформализованных задач, т.е. ЭС не отвергают и не заменяют традиционного подхода к разработке программ, ориентированного на решение формализованных задач.

Неформализованные задачи обычно обладают следующими особенностями:

ошибочностью, неоднозначностью, неполнотой и противоречивостью исходных данных;

ошибочностью, неоднозначностью, неполнотой и противоречивостью знаний о проблемной области и решаемой задаче;

большой размерностью пространства решения, т.е. перебор при поиске решения весьма велик;

динамически изменяющимися данными и знаниями.

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

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

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

Обобщенная структура состав

Обобщенная структура экспертной системы представлена на рис. 2.4.

Обычно она состоит из следующих взаимосвязанных между собой модулей:

База знаний – ядро экспертной системы, совокупность знаний предметной области, записанная на машинном носителе в форме, понятной эксперту и пользователю.

Интеллектуальный редактор базы знаний – программа, представляющая инженеру-когнитологу и программисту возможность создавать базу знаний в диалоговом режиме. Включает в себя системы вложенных меню, шаблонов языка представления знаний, подсказок (help – режим) и других сервисных средств, облегчающих работу с базой знаний.

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

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

Подсистема объяснений – программа, позволяющая пользователю получать ответы на вопросы: «Как была получена та или иная рекомендация ?» и «Почему система приняла такое решение ?» Ответ на вопрос «как ?» – это трассировка всего процесса получения решения с указанием исполняющих фрагментов базы знаний, т.е. всех шагов цепи умозаключений. Ответ на вопрос «почему ?» – ссылка на умозаключение, непосредственно предшествовавшее полученному решению, т.е. отход на один шаг назад.

В коллектив разработчиков экспертной системы входит : эксперт; инженер-когнитолог; программист; пользователь.

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

Экспертная система работает в двух режимах: приобретения знаний и решения задач или консультаций.

В режиме приобретения знаний происходит формирование базы знаний.

В режиме решения задач общение с экспертной системой осуществляет конечный пользователь.

Системы продукций - это набор правил, используемый как база знаний, поэтому его еще называют базой правил. В Стэндфордской теории фактор уверенности CF (certainty factor) принимает значения от +1 (максимум доверия к гипотезе) до -1 (минимум доверия). Продукционная система - способ представления знаний в виде:

- неупорядоченной совокупности продукционных правил;

- рабочей памяти; и

- механизма логического вывода

Этапы и технология разработки

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

Демонстрационный прототип – экспертная система, которая решает часть требуемых задач, демонстрируя жизнеспособность метода инженерии знаний. Демонстрационный прототип работает имея в базе знаний всего 50 – 100 правил. Время разработки такой экспертной системы – от 1 месяца до 1 года.

Исследовательский прототип – экспертная система, которая решает все требуемые задачи, но неустойчива в работе и не полностью проверена. База знаний содержит 200 – 500 правил. Разработка занимает 3 – 6 месяцев.

Действующий прототип – надежно решает все задачи, но для решения сложных задач может потребоваться много времени и памяти. Количество правил – 500 – 1000. Время разработки этапа – 6 – 12 месяцев.

Промышленная экспертная система обеспечивает высокое качество решения всех задач при минимуме времени и памяти, что достигается переписыванием программ с использованием более совершенных инструментальных средств и языков низкого уровня. База знаний содержит 1000 – 1500 правил. Время разработки – 1-1,5 года.

Коммерческая экспертная система отличается от промышленной тем, что помимо собственного использования она может продаваться различным потребителям. База знаний содержит 1500 – 3000 правил. Время разработки – 1,5 – 3 года. Стоимость – 0,3 – 5 млн. дол.

В настоящее время уже сложилась определенная технология разработки экспертных систем, которая состоит из следующих этапов, схематически изображенных на рис. 2.5:

1. Идентификация (постановка задачи). На этапе устанавливаются задачи, которые подлежат решению, выявляются цели разработки, требования к экспертной системе, ресурсы, используемые понятия и их взаимосвязи, определяются методы решения задач. Цель этапа – сформулировать задачу и охарактеризовать поддерживающую ее базу знаний и таким образом обеспечить начальный импульс для развития базы знаний.

2. Концептуализация. Проводится содержательный анализ проблемной области, выявляются используемые понятия и их взаимосвязи, определяются методы решения задач.

3. Формализация . Определяются способы представления всех видов знаний, формализуются основные понятия, определяются способы интерпретации знаний, оценивается адекватность целям системы зафиксированных понятий, методов решения, средств представления и манипулирования знаниями.

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

5. Тестирование. Эксперт и инженер по знаниям в интерактивном режиме, используя диалоговые и объяснительные средства, проверяют компетентность экспертной системы. Процесс тестирования продолжается до тех пор, пока эксперт не решит, что система достигла требуемого уровня компетентности.

6. Опытная эксплуатация. Проверяется пригодность экспертной системы для конечных пользователей. По результатам этого этапа может потребоваться модификация экспертной системы.

7. Модификация. В ходе создания экспертной системы почти постоянно производится ее модификация: переформулирование понятий и требований, переконструирование представления знаний и усовершенствование прототипа.

Приведенная последовательность разработки экспертных систем предложена Э.А.Поповым в [14]. Данная технология отражает опыт разработки и внедрения многочисленных экспертных систем широкого назначения.

Классификация сетей (глобальные, региональные, локальные). Архитектура сетей (модель OSI). Топология и методы доступа локальных сетей, популярные технологии

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

Классификации вычислительных сетей:

1) по степени территориальной рассредоточенности элементов (глобальные, региональные, локальные, корпоративные.

- глобальные сети (WAN - Wide Area Network);

- региональные сети (MAN - Metropolitan Area Network);

- локальные сети (LAN – Local Area Network).

Отдельный класс: корпоративные вычислительные сети - сеть некоторой корпорации.

Глобальная вычислительная сеть объединяет абонентов, расположенных в различных странах, континентах. Взаимодействие с помощью радиосвязи, спутниковой связи, телефонной линии. Из глобальных - сеть Internet. Основными ячейками Internet являются локальные вычислительные сети.

Региональная вычислительная сеть связывает абонентов внутри города, региона, страны.

Локальнаявычислительная сеть связывает абонентов, расположенных в пределах небольшой территории.

Локальные сети могут входить как компоненты в состав региональных сетей, региональные - в глобальные и, наконец, глобальные сети могут образовывать сложные структуры.

2) по способу управления телекомунникационных вычислительных сетей:

-Сети с централизованными

-Децентрализованными

-смешанные

3) по организации передачи информации:

-маршрутизация информации (не сколькой путей)

- сети с селекционной информацией (выборка)

4) по типу организации передачи данных .

-маршрутизация информации(коммутация цепей, сообщений, пакетов)

-патология-конфигурация элементов(широковещательные, пользовательские)

Архитектура сетей (модель OSI)

Эталонная модель OSI (стек OSI) это 7-уровневая сетевая иерархия (рис. 1) разработанную Международной организацией по стандартам (International Standardization Organization - ISO). Эта модель содержит 2 модели:

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

- вертикальную модель на основе услуг, обеспечиваемых соседними уровнями друг другу на одной машине

В горизонтальной модели двум программам требуется общий протокол для обмена данными. В вертикальной - соседние уровни обмениваются данными с использованием интерфейсов API.

Модель OSI
Тип данных Уровень Функции Протоколы
Данные 7. Прикладной уровень Доступ к сетевым службам HTTP, gopher, Telnet, SMTP, SNMP, CMIP, FTP, TFTP, SSH, IRC, AIM, NFS, NNTP, NTP, SNTP, XMPP, FTAM, APPC, X.400, X.500, AFP, LDAP, SIP, ITMS, Modbus TCP, BACnet IP, IMAP
6. Уровень представления Представление и кодирование данных HTTP/HTML, ASN.1, XML, TDI, XDR, SNMP, FTP, Telnet, SMTP, NCP, AFP
5. Сеансовый уровень Управление сеансом связи ASP, ADSP, DLC, Named Pipes, NBT, NetBIOS, NWLink, Printer Access Protocol, ZIP
Сегменты 4. Транспортный Прямая связь между конечными пунктами и надежность TCP, UDP, NetBEUI, AEP, ATP, IL, NBP, RTMP, SMB, SPX, SCTP, RTP, STP, TFTP
Пакеты 3. Сетевой Определение маршрута и логическая адресация IP, ICMP, IPX, NWLink, NetBEUI, DDP, IPSec, ARP, RARP, DHCP, BootP
Кадры 2. Канальный Физическая адресация ARCnet, ATM, Ethernet, FDDI, Frame Relay, LocalTalk, Token ring, PPP, StarLan, WiFi
Биты 1. Физический уровень Работа со средой передачи, сигналами и двоичными данными RS-232, RS-422, RS-423, RS-449, RS-485, ITU-T, DSL, ISDN, T-carrier (T1, E1), модификации стандарта Ethernet: 10BASE-T, 10BASE2, 10BASE5, 100BASE-TX, 100BASE-FX, 100BASE-T, 1000BASE-T, 1000BASE-TX, 1000BASE-SX

Рисунок 1 Модель OSI

Уровень 1, физический получает пакеты данных от вышележащего канального уровня и преобразует их в оптические или электрические сигналы, соответствующие 0 и 1 бинарного потока. Эти сигналы посылаются через среду передачи на приемный узел. Механические и электрические/оптические свойства среды передачи определяются на физическом уровне и включаются:

Тип кабелей и разъемов

Разводку контактов в разъемах

Схему кодирования сигналов для значений 0 и 1

Уровень 2, канальный обеспечивает создание, передачу и прием кадров данных. Этот уровень обслуживает запросы сетевого уровня и использует сервис физического уровня для приема и передачи пакетов. Спецификации IEEE 802.x делят канальный уровень на 2 подуровня: управление логическим каналом (LLC обеспечивает обслуживание сетевого уровня) и управление доступом к среде (MAC регулирует доступ к разделяемой физической среде).

Уровень 3, сетевой отвечает за деление пользователей на группы. На этом уровне происходит маршрутизация пакетов на основе преобразования MAC-адресов в сетевые адреса. Сетевой уровень обеспечивает также прозрачную передачу пакетов на транспортный уровень.

Уровень 4, транспортный делит потоки информации на достаточно малые фрагменты (пакеты) для передачи их на сетевой уровень.

Уровень 5, сеансовый отвечает за организацию сеансов обмена данными между оконечными машинами. Протоколы сеансового уровня обычно являются составной частью функций трех верхних уровней модели.

Уровень 6, уровень представления отвечает за возможность диалога между приложениями на разных машинах. Этот уровень преобразовывает данные (кодирование, компрессия и т.п.) прикладного уровня в поток информации для транспортного уровня.

Уровень 7, прикладной отвечает за доступ приложений в сеть. Задачами этого уровня является перенос файлов, обмен почтовыми сообщениями и управление сетью.

МОДЕЛЬ TCP/IP Её возможность – объединение различных сетей. Это модель сети с коммутацией пакетов, в основе лежит не имеющий соединений межсетевой уровень. Уровни модели TCP/IP:

1)Уровень приложений:

а) протокол виртуального терминала, позволяет регистрацию на удалённом сервере и работать с ним;

б) протокол переноса файлов;

в) протокол электронной почты;

г) протокол службы имён-доменов;

д) протокол передачи новостей;

2)Транспортный уровень – создан для поддержки связи между приёмными и передающими хостами. На нём реализуются два сквозных протокола TCP и UDP;

3) Межсетевой уровень – обеспечивает возможность каждого хоста посылать пакеты сообщений независимо друг от друга для перемещения их адресатов. Межсетевой уровень определяет формат пакета и протокол (IP протокол). Задача в доставке IP пакета адресату, определение маршрута пакета и недопущение затора транспортной передачи;

4) Канальный уровень (хост-сетевой) – реализует протоколы, которые обеспечивают соединение машины сети и позволяет посылать IP пакеты. Протоколы этого уровня точно не определены, не стандартизированы и меняются от сети к сети.

Топология сети Узел сети представляет собой компьютер, либо коммутирующее устройство сети. Ветвь сети - это путь, соединяющий два смежных узла. Узлы сети бывают трёх типов:

оконечный узел - расположен в конце только одной ветви;

промежуточный узел - расположен на концах более чем одной ветви;

смежный узел - такие узлы соединены по крайней мере одним путём, не содержащим никаких других узлов.

Топология сети – геометрическая форма и физическое расположение компьютеров по отношению к друг другу. Топология позволяет сравнивать и классифицировать различные сети. Различают три основных вида топологии: 1) Звезда; 2) Кольцо; 3) Шина.

ШИННАЯ ТОПОЛОГИЯ компьютер присоединяется к общему кабелю, на концах которого устанавливаются терминаторы. Сигнал проходит по сети через все компьютеры, отражаясь от конечных терминаторов.

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

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

ТОПОЛОГИЯ «КОЛЬЦО» последовательное соединение компьютеров, когда последний соединён с первым. Сигнал проходит от компьютера к компьютеру. Каждый компьютер работает как повторитель, усиливая сигнал и передавая его дальше. Сбой одного из них приводит к нарушению работы всей сети.

ТОПОЛОГИЯ «ЗВЕЗДА» компьютер подсоединяется к сети при помощи отдельного соединительного кабеля. Один конец кабеля соединяется с гнездом сетевого адаптера, другой подсоединяется к центральному устройству. Рабочая группа, может функционировать независимо или может быть связана с другими рабочими группами. Плюсы: подключение новых рабочих станций; возможность мониторинга сети; хорошая расширяемость и модернизация. Минусы: отказ от центрального устройства приводит к отключению от сети всех рабочих станций; требуется большое количество кабеля.

Комбинированные топологии

1. «Звезда-Шина» - несколько сетей с топологией звезда объединяются при помощи магистральной линейной шины.

2. Древовидная структура

5. «Снежинка»

5. «Каждый с каждым»

4. Пересекающиеся кольца

Локальные сети при разработке, как правило, имеют симметричную топологию, глобальные—неправильную.

Методы доступа и протоколы сетей

В различных сетях применяются различные сетевые протоколы для обмена данными между рабочими станциями. В 1980 году в Международном институте инженеров (Institute of Electronics Engineers–IEEE). Комитет 802 разработал семейство стандартов IЕЕЕ802. x, которые содержат рекомендации по проектированию нижних уровней локальных сетей.

Стандарты семейства IЕЕЕ802.x охватывают 2 уровня модели OSI – физический и канальный, именно они отражают специфику локальных сетей. Старшие уровни, сетевой, имеют общие черты, как для локальных, так и глобальных сетей.

К наиболее распространенным методам доступа относятся: Ethernet, ArcNet и Token Ring, которые реализованы соответственно в стандартах IЕЕЕ802.3, IЕЕЕ802.4 и IЕЕЕ802.5. Для локальных сетей, работающих на оптическом волокне, институтом ASNI был разработан стандарт FDDI, обеспечивающий скорость передачи данных 100 Мбит/с.

В канальный уровень разделяется подуровня, которые называются уровнями:

- управление логическим каналом (LCC - Logical Link Control),

-управление доступом к среде (MAC - Media Access Control).

Уровень управления доступом к среде передачи данных (MAC) появился, так как в локальных сетях используется разделяемая среда передачи данных.

Методы доступа к среде передачи данных (методы доступа к каналам связи)

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

Для того чтобы избежать этих столкновений необходим Шинный арбитраж - это механизм решающий проблему столкновений. Он определяет правила, когда среда свободна, и можно передавать данные. Существуют два метода шинного арбитража в локальных сетях:

- обнаружение столкновений (компьютер сначала слушает, а потом передает)

- передача маркера (чтобы передать данные, компьютер сначала должен получить разрешение)

Прослушивание канала до передачи называется “прослушивание несущей ” (carrier sense), а прослушивание во время передачи — обнаружение столкновений (collision detection). Компьютер, поступающий таким образом, использует метод, называющийся “обнаружение столкновений с прослушиванием несущей”, сокращенно CSCD.

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

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

Классификация сетей (глобальные, региональные, локальные). Архитектура сетей (модель OSI). Топология и методы доступа локальных сетей, популярные технологии

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

Классификации вычислительных сетей:

1) по степени территориальной рассредоточенности элементов (глобальные, региональные, локальные, корпоративные.

- глобальные сети (WAN - Wide Area Network);

- региональные сети (MAN - Metropolitan Area Network);

- локальные сети (LAN – Local Area Network).

Отдельный класс: корпоративные вычислительные сети - сеть некоторой корпорации.

Глобальная вычислительная сеть объединяет абонентов, расположенных в различных странах, континентах. Взаимодействие с помощью радиосвязи, спутниковой связи, телефонной линии. Из глобальных - сеть Internet. Основными ячейками Internet являются локальные вычислительные сети.

Региональная вычислительная сеть связывает абонентов внутри города, региона, страны.

Локальнаявычислительная сеть связывает абонентов, расположенных в пределах небольшой территории.

Локальные сети могут входить как компоненты в состав региональных сетей, региональные - в глобальные и, наконец, глобальные сети могут образовывать сложные структуры.

2) по способу управления телекомунникационных вычислительных сетей:

-Сети с централизованными

-Децентрализованными

-смешанные

3) по организации передачи информации:

-маршрутизация информации (не сколькой путей)

- сети с селекционной информацией (выборка)

4) по типу организации передачи данных .

-маршрутизация информации(коммутация цепей, сообщений, пакетов)

-патология-конфигурация элементов(широковещательные, пользовательские)

Архитектура сетей (модель OSI)

Эталонная модель OSI (стек OSI) это 7-уровневая сетевая иерархия (рис. 1) разработанную Международной организацией по стандартам (International Standardization Organization - ISO). Эта модель содержит 2 модели:

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

- вертикальную модель на основе услуг, обеспечиваемых соседними уровнями друг другу на одной машине

В горизонтальной модели двум программам требуется общий протокол для обмена данными. В вертикальной - соседние уровни обмениваются данными с использованием интерфейсов API.

Модель OSI
Тип данных Уровень Функции Протоколы
Данные 7. Прикладной уровень Доступ к сетевым службам HTTP, gopher, Telnet, SMTP, SNMP, CMIP, FTP, TFTP, SSH, IRC, AIM, NFS, NNTP, NTP, SNTP, XMPP, FTAM, APPC, X.400, X.500, AFP, LDAP, SIP, ITMS, Modbus TCP, BACnet IP, IMAP
6. Уровень представления Представление и кодирование данных HTTP/HTML, ASN.1, XML, TDI, XDR, SNMP, FTP, Telnet, SMTP, NCP, AFP
5. Сеансовый уровень Управление сеансом связи ASP, ADSP, DLC, Named Pipes, NBT, NetBIOS, NWLink, Printer Access Protocol, ZIP
Сегменты 4. Транспортный Прямая связь между конечными пунктами и надежность TCP, UDP, NetBEUI, AEP, ATP, IL, NBP, RTMP, SMB, SPX, SCTP, RTP, STP, TFTP
Пакеты 3. Сетевой Определение маршрута и логическая адресация IP, ICMP, IPX, NWLink, NetBEUI, DDP, IPSec, ARP, RARP, DHCP, BootP
Кадры 2. Канальный Физическая адресация ARCnet, ATM, Ethernet, FDDI, Frame Relay, LocalTalk, Token ring, PPP, StarLan, WiFi
Биты 1. Физический уровень Работа со средой передачи, сигналами и двоичными данными RS-232, RS-422, RS-423, RS-449, RS-485, ITU-T, DSL, ISDN, T-carrier (T1, E1), модификации стандарта Ethernet: 10BASE-T, 10BASE2, 10BASE5, 100BASE-TX, 100BASE-FX, 100BASE-T, 1000BASE-T, 1000BASE-TX, 1000BASE-SX

Рисунок 1 Модель OSI

Уровень 1, физический получает пакеты данных от вышележащего канального уровня и преобразует их в оптические или электрические сигналы, соответствующие 0 и 1 бинарного потока. Эти сигналы посылаются через среду передачи на приемный узел. Механические и электрические/оптические свойства среды передачи определяются на физическом уровне и включаются:

Тип кабелей и разъемов

Разводку контактов в разъемах

Схему кодирования сигналов для значений 0 и 1

Уровень 2, канальный обеспечивает создание, передачу и прием кадров данных. Этот уровень обслуживает запросы сетевого уровня и использует сервис физического уровня для приема и передачи пакетов. Спецификации IEEE 802.x делят канальный уровень на 2 подуровня: управление логическим каналом (LLC обеспечивает обслуживание сетевого уровня) и управление доступом к среде (MAC регулирует доступ к разделяемой физической среде).

Уровень 3, сетевой отвечает за деление пользователей на группы. На этом уровне происходит маршрутизация пакетов на основе преобразования MAC-адресов в сетевые адреса. Сетевой уровень обеспечивает также прозрачную передачу пакетов на транспортный уровень.

Уровень 4, транспортный делит потоки информации на достаточно малые фрагменты (пакеты) для передачи их на сетевой уровень.

Уровень 5, сеансовый отвечает за организацию сеансов обмена данными между оконечными машинами. Протоколы сеансового уровня обычно являются составной частью функций трех верхних уровней модели.

Уровень 6, уровень представления отвечает за возможность диалога между приложениями на разных машинах. Этот уровень преобразовывает данные (кодирование, компрессия и т.п.) прикладного уровня в поток информации для транспортного уровня.

Уровень 7, прикладной отвечает за доступ приложений в сеть. Задачами этого уровня является перенос файлов, обмен почтовыми сообщениями и управление сетью.

МОДЕЛЬ TCP/IP Её возможность – объединение различных сетей. Это модель сети с коммутацией пакетов, в основе лежит не имеющий соединений межсетевой уровень. Уровни модели TCP/IP:

1)Уровень приложений:

а) протокол виртуального терминала, позволяет регистрацию на удалённом сервере и работать с ним;

б) протокол переноса файлов;

в) протокол электронной почты;

г) протокол службы имён-доменов;

д) протокол передачи новостей;

2)Транспортный уровень – создан для поддержки связи между приёмными и передающими хостами. На нём реализуются два сквозных протокола TCP и UDP;

3) Межсетевой уровень – обеспечивает возможность каждого хоста посылать пакеты сообщений независимо друг от друга для перемещения их адресатов. Межсетевой уровень определяет формат пакета и протокол (IP протокол). Задача в доставке IP пакета адресату, определение маршрута пакета и недопущение затора транспортной передачи;

4) Канальный уровень (хост-сетевой) – реализует протоколы, которые обеспечивают соединение машины сети и позволяет посылать IP пакеты. Протоколы этого уровня точно не определены, не стандартизированы и меняются от сети к сети.

Топология сети Узел сети представляет собой компьютер, либо коммутирующее устройство сети. Ветвь сети - это путь, соединяющий два смежных узла. Узлы сети бывают трёх типов:

оконечный узел - расположен в конце только одной ветви;

промежуточный узел - расположен на концах более чем одной ветви;

смежный узел - такие узлы соединены по крайней мере одним путём, не содержащим никаких других узлов.

Топология сети – геометрическая форма и физическое расположение компьютеров по отношению к друг другу. Топология позволяет сравнивать и классифицировать различные сети. Различают три основных вида топологии: 1) Звезда; 2) Кольцо; 3) Шина.

ШИННАЯ ТОПОЛОГИЯ компьютер присоединяется к общему кабелю, на концах которого устанавливаются терминаторы. Сигнал проходит по сети через все компьютеры, отражаясь от конечных терминаторов.

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

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

ТОПОЛОГИЯ «КОЛЬЦО» последовательное соединение компьютеров, когда последний соединён с первым. Сигнал проходит от компьютера к компьютеру. Каждый компьютер работает как повторитель, усиливая сигнал и передавая его дальше. Сбой одного из них приводит к нарушению работы всей сети.

ТОПОЛОГИЯ «ЗВЕЗДА» компьютер подсоединяется к сети при помощи отдельного соединительного кабеля. Один конец кабеля соединяется с гнездом сетевого адаптера, другой подсоединяется к центральному устройству. Рабочая группа, может функционировать независимо или может быть связана с другими рабочими группами. Плюсы: подключение новых рабочих станций; возможность мониторинга сети; хорошая расширяемость и модернизация. Минусы: отказ от центрального устройства приводит к отключению от сети всех рабочих станций; требуется большое количество кабеля.

Комбинированные топологии

1. «Звезда-Шина» - несколько сетей с топологией звезда объединяются при помощи магистральной линейной шины.

2. Древовидная структура

5. «Снежинка»

5. «Каждый с каждым»

4. Пересекающиеся кольца

Локальные сети при разработке, как правило, имеют симметричную топологию, глобальные—неправильную.

Методы доступа и протоколы сетей

В различных сетях применяются различные сетевые протоколы для обмена данными между рабочими станциями. В 1980 году в Международном институте инженеров (Institute of Electronics Engineers–IEEE). Комитет 802 разработал семейство стандартов IЕЕЕ802. x, которые содержат рекомендации по проектированию нижних уровней локальных сетей.

Стандарты семейства IЕЕЕ802.x охватывают 2 уровня модели OSI – физический и канальный, именно они отражают специфику локальных сетей. Старшие уровни, сетевой, имеют общие черты, как для локальных, так и глобальных сетей.

К наиболее распространенным методам доступа относятся: Ethernet, ArcNet и Token Ring, которые реализованы соответственно в стандартах IЕЕЕ802.3, IЕЕЕ802.4 и IЕЕЕ802.5. Для локальных сетей, работающих на оптическом волокне, институтом ASNI был разработан стандарт FDDI, обеспечивающий скорость передачи данных 100 Мбит/с.

В канальный уровень разделяется подуровня, которые называются уровнями:

- управление логическим каналом (LCC - Logical Link Control),

-управление доступом к среде (MAC - Media Access Control).

Уровень управления доступом к среде передачи данных (MAC) появился, так как в локальных сетях используется разделяемая среда передачи данных.

Методы доступа к среде передачи данных (методы доступа к каналам связи)

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

Для того чтобы избежать этих столкновений необходим Шинный арбитраж - это механизм решающий проблему столкновений. Он определяет правила, когда среда свободна, и можно передавать данные. Существуют два метода шинного арбитража в локальных сетях:

- обнаружение столкновений (компьютер сначала слушает, а потом передает)

- передача маркера (чтобы передать данные, компьютер сначала должен получить разрешение)

Прослушивание канала до передачи называется “прослушивание несущей ” (carrier sense), а прослушивание во время передачи — обнаружение столкновений (collision detection). Компьютер, поступающий таким образом, использует метод, называющийся “обнаружение столкновений с прослушиванием несущей”, сокращенно CSCD.

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

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

Классификация сетей (глобальные, региональные, локальные). Адресация в глобальных сетях, сервисы глобальных сетей

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

Классификации вычислительных сетей:

1) по степени территориальной рассредоточенности элементов (глобальные, региональные, локальные, корпоративные.

- глобальные сети (WAN - Wide Area Network);

- региональные сети (MAN - Metropolitan Area Network);

- локальные сети (LAN – Local Area Network).

Отдельный класс: корпоративные вычислительные сети - сеть некоторой корпорации.

Глобальная вычислительная сеть объединяет абонентов, расположенных в различных странах, континентах. Взаимодействие с помощью радиосвязи, спутниковой связи, телефонной линии. Из глобальных - сеть Internet. Основными ячейками Internet являются локальные вычислительные сети.

Региональная вычислительная сеть связывает абонентов внутри города, региона, страны.

Локальнаявычислительная сеть связывает абонентов, расположенных в пределах небольшой территории.

Локальные сети могут входить как компоненты в состав региональных сетей, региональные - в глобальные и, наконец, глобальные сети могут образовывать сложные структуры.

2) по способу управления телекомунникационных вычислительных сетей:

-Сети с централизованными

-Децентрализованными

-смешанные

3) по организации передачи информации:

-маршрутизация информации (не сколькой путей)

- сети с селекционной информацией (выборка)

4) по типу организации передачи данных .

-маршрутизация информации(коммутация цепей, сообщений, пакетов)

-патология-конфигурация элементов(широковещательные, пользовательские)

Адресация в глобальных сетях

Internet берет свое начало с 1969 года с создания системы ARPANET (Advanced Research Projects Net - сеть передовых исследовательских проектов). Физически структуру Internet составляют устройства разных типов. Те из них, которые подключены постоянно и участвуют в передаче данных между другими участниками сети, называют узлами. В телекоммуникационном обмене участвуют:

- Клиент - это компьютер, программа, включенный в телекоммуникационный обмен - потребитель услуг сети, основной участник телекоммуникационного обмена;

- Сервер - это программный комплекс, предоставляющая удаленный доступ к своим ресурсам с целью обмена информацией. Программы, обрабатывающие запросы клиентов-программные сервера (server). А компьютеры, на которых установлены программные сервера, называются физическими серверами;

- Узел - это компьютер, служащий для обеспечения связи между серверами и клиентами.

Основа функционирования Internet - работа узлов. Каждый узел использует стандартные протоколы передачи данных - TCP/IP (Transmission Control Protocol/Internet Protocol). TCP разбивает данные на пакеты при передаче и соединяет пакеты воедино при приеме. IP - система адресации, указывающая, откуда и куда пакет идёт.

Работа протокола TCP/IP: каждый компьютер, подключенный к Internet, имеет свой уникальный номер- IP-адрес. Он состоит из 32 битов (4 байта) и записывается как четыре десятичных числа разделенных точками, например 192.168.22.11 или 217.198.0.34. Информация через Internet передается в виде коротких пакетов. Если пересылаем сообщение, то оно разбивается на несколько пакетов, каждый пакет содержит адрес отправителя, получателя и служебную информацию. Когда пакеты поступают к получателю, из них формируется исходное сообщение- это коммутация пакетов. Протокол TCP/IP регламентирует, как следует разбивать длинное сообщение на пакеты, как должны быть устроены пакеты, как контролировать прибытие пакетов к месту назначения, что делать в случае ошибок и другие детали.

DNS (Domain Name System). DNS распределённая иерархическая база данных, поддерживающаяся DNS-серверами, каждый из которых отвечает за свою зону. DNS-сервера преобразуют символьные доменные имена в IP-адреса. Пример, набирая доменное имя web-сервера, пользователь получает доступ к нему, как если бы набрал IP-адрес.

В доменном имени названия доменов отделяют точкой: www.support.nchti.ru

www - имя компьютера (web-сервер);

support - название подразделения;

nchti - название организации;

ru - географическое положение (страна).

Имя домена, стоящее справа принято называть доменом первого уровня.

Доменные имена первого уровня это:

com (для коммерческих организаций)

.net (для сетевых организаций)

.org (для

некоммерческих организаций)

.mil (для военных организаций)

.gov (для правительственных организаций)

.edu (для образовательных организаций)

Региональные домены первого уровня:

ru (для России)

.ua (для Украины)

.us (для США)

.uk (для Великобритании) и т.д.

Каждая страна имеет свое доменное имя первого уровня.

Примеры доменных имен второго уровня: ibm.com, php.net, gazeta.ru, site.ua и т.д.

Примеры доменных имен третьего уровня: www.tourkz.com, send.site.kz, smtp.mail.ru.

Сервисы глобальных сетей

Сети Internet интересны способностью предоставлять конкретные виды ресурсов, поэтому на базе основного протокола TCP/IP действуют несколько протоколов более высокого уровня, а именно HTTP, FTP, SMTP, POP3, IMAP4 и др.

Электронная почта (E-mail) использует протоколы SMTP (для отправки), POP3 или IMAP4 (для получения) электронной корреспонденции. E-mail предусматривает передачу текстовых сообщений от одного пользователя, имеющего электронный адрес, к другому. E-mail может быть использована также для того, чтобы пересылать двоичные файлы, но они должны быть перекодированы в ASCII-формат, поскольку E-mail в Internet может оперировать только информацией в ASCII-формате.

Адрес e-mail имеет следующий формат:

<имя_пользователя>@<имя_домена>

Например: info@nchti.ru

World Wide Web

Web разработана в 1989 году в (CERN). Web основана на технологии, гипертекста, которая организовывает- текстовую информацию нелинейным способом, используя связи внутри документа и между ними.

Гипертекст - это термин, который впервые был использован американцем Тедом Нельсоном в 1960 году для описании. Язык гипертекстовой разметки HTML (HyperText Markup Language) служит для оформления электронных документов и их связи между собой. Язык состоит из тегов (указателей). Между тегами вставляется содержимое документа. Теги служат для указания, как выводить содержимое, например цвет, размер, таблицы, вставка рисунков и т.д. Главным преимуществом HTML перед другими подобными системами является возможность связывать документы между собой.

В сети находится огромное количество серверов, на которых хранится информация в формате HTML. Такие сервера называются Web-серверами. Любой пользователь сети, имея программу для работы с WWW, может получить доступ к подобным ресурсам. Программы для работы с WWW называются браузерами (browser). СамыЙ популярный - MS Internet Explorer, Netscape Navigator, Opera.

Адреса в WWW. Доступ к ресурсам Internet осуществляется через универсальные локаторы ресурсов (URL). URL состоит из 3-х элементов: названия протокола передачи, имени хоста. название протокола и имя хоста разделены двоеточием и 2-мя косыми чертами (://). Путевое имя начинается с одной косой черты (/):

<протокол_передачи>://<имя_хоста>/<путевое_имя>

Например: http://support.nchti.ru:80/proxy.pac

FTP (File Transfer Protocol). Для передачи файлов по сети Internet, представляют собой файловые архивы. Содержимое ftp-серверов представляет собой часть файловой системы сервера, к которой предоставлен доступ через сеть. Адреса ftp архивов подчиняются тем же правилам, что и адреса www сайтов, только указывается другое имя протокола. Например: ftp://mp3.int.ru

Для доступа к таким серверам необходимо знать login и пароль, которые нужно ввести на запрос ftp-клиента (браузера) или использовать url вида:

ftp://:@<доменное_имя_ftp_сервера>

Предпочтение следует отдавать первому способу, т.к. пользовательские регистрационные данные, передаваемые в строке url могут быть легко перехвачены при передаче по сети.

Информатика как наука. Предмет и объект прикладной информатики. Системы счисления

Инфоpматика — это основанная на использовании компьютерной техники дисциплина, изучающая структуру и общие свойства информации, а также закономерности и методы её создания, хранения, поиска, преобразования, передачи и применения в различных сферах человеческой деятельности.

Инфоpматика — научная дисциплина с широчайшим диапазоном применения.

Её основные направления:

pазpаботка вычислительных систем и пpогpаммного обеспечения;

теоpия инфоpмации, изучающая процессы, связанные с передачей, приёмом, преобразованием и хранением информации;

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

системный анализ, заключающийся в анализе назначения проектируемой системы и в установлении требований, которым она должна отвечать;

методы машинной графики, анимации, средства мультимедиа;

средства телекоммуникации, в том числе, глобальные компьютерные сети, объединяющие всё человечество в единое информационное сообщество;

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

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

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

Информатика является комплексной, междисциплинарной отраслью научного знания.

ПРЕДМЕТОМ ИНФОРМАТИКИ ЯВЛЯЕТСЯ ЗНАНИЕ. ОБЪЕКТОМ ИНФОРМАТИКИ ЯВЛЯЕТСЯ СИСТЕМА ЧЕЛОВЕК-ВМ

знание исторически всегда подразумевает человека, а не ВМ. Этому можно возразить так: ВМ используется человеком и для человека непосредственно или в конечном счете. слова «мыслить», «думать» и «знать», примененные к ВМ, начинают применяться без кавычек: ВМ мыслит, ВМ думает и ВМ знает.

Системы счисления

Для записи информации о количестве объектов используются числа. Числа записываются с использованием особых знаковых систем, которые называются системами счисления . Алфавит системы счисления состоит из символов, которые называются цифрами.

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

Все системы счисления делятся на две большие группы: позиционные и непозиционные .

В позиционных системах количественное значение цифры зависит от ее положения в числе, а в непозиционных — не зависит.

Непозиционные системы счисления. Система записи чисел называется единичной , так как любое число в ней образуется путем повторения одного знака, символизирующего единицу. Примером непозиционной системы: римская система счисления в её основе лежат знаки I (один палец) для числа 1, V (раскрытая ладонь) для числа 5, X (две сложенные ладони) для числа 10. При записи чисел в римской системе счисления есть правило: каждый меньший знак, поставленный слева от большего, вычитается из него, в остальных случаях знаки складываются. Недостатком непозиционных систем, является отсутствие арифметических действий над ними.

Позиционные системы счисления. Для записи чисел используется отличных друг от друга знаки. Число таких знаков называется основанием системы счисления. Пример некоторых позиционных систем: двоичная, троичная, четверичная, пятеричная, восьмеричная, десятичная, двенадцатеричная (0,1,2,3,4,5,б,7,8,9,А,В), шестнадцатеричная (0,1,2,3,4,5,6,7,8,9,A.B,D,E,F)

В позиционной системе счисления, число может быть представлено в виде суммы произведений коэффициентов на степени основания системы счисления:

AnAn-1An-2 … A1,A0,A-1,A-2 =

АnВn + An-1Bn-1 +... + A1B1 + А0В0 + A-1B-1 + А-2В-2 +...

(знак «точка» отделяет целую часть числа от дробной; знак «звездочка» здесь и ниже используется для обозначения операции умножения). Таким образом, значение каждого знака в числе зависит от позиции, которую занимает знак в записи числа. Именно поэтому такие системы счисления называют позиционными. Примеры (десятичный индекс внизу указывает основание системы счисления): 23,43(10) = 2*101 + З*10° + 4*10-1 + З*10-2

(в данном примере знак «З» в первом случае число единиц, а в другом - число сотых долей единицы);

692(10) = 6* 102 + 9*101 + 2.

(«Шестьсот девяносто два» с формальной точки зрения представляется в виде «шесть умножить на десять в степени два, плюс девять умножить на десять в степени один, плюс два»).

1101(2)= 1*23 + 1*22+0*21+ 1*2°;

A1F4(16) = A*162 + 1*161 + F*16° + 4*16-1.

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

Двоичная система счисления

В двоичной системе внутреннее представление информации является двоичным, т.е. описываемым наборами только из двух знаков (0 и 1).

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

Остаток

25: 2 = 12 (1),

12: 2 = 6 (0),

6: 2 = 3 (0),

3: 2 = 1 (1),

1: 2 = 0 (1).

Таким образом 25(10)=11001(2).

Для перевода дробной части (или числа, у которого «0» целых) надо умножить ее на 2. Целая часть произведения будет первой цифрой числа в двоичной системе. Затем, отбрасывая у результата целую часть, вновь умножаем на 2 и т.д.

Заметим, что конечная десятичная дробь при этом вполне может стать бесконечной {периодической) двоичной. Например:

0,73 • 2 = 1,46 (целая часть 1),

0,46 • 2 = 0,92 (целая часть 0),

0,92 • 2 = 1,84 (целая часть 1),

0,84 • 2 = 1,68 (целая часть 1) и т.д.

В итоге 0,73(10) =0,1011...(2).

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

Таблица 1.5. Таблицы сложения и умножения в двоичной системе

Заметим, что при двоичном сложении 1 + 1 возникает перенос единицы в старший разряд - точь-в-точь как в десятичной арифметике:

Восьмеричная и шестнадцатеричная системы счисления

Перевод чисел из десятичной системы счисления в восьмеричную производится с помощью делений и умножений на 8. Например, переведем число 58,32(10):

58: 8 = 7 (2 в остатке),

7: 8 = 0 (7 в остатке).

0,32 • 8 = 2,56,

0,56 • 8 = 4,48,

0,48-8=3,84,...

Таким образом, 58,32(10) =72,243... (8)

Для перевода целого двоичного числа в восьмеричное необходимо разбить его справа налево на группы по 3 цифры (самая левая группа может содержать менее трех двоичных цифр), а затем каждой группе поставить в соответствие ее восьмеричный эквивалент. Например:

11011001= 11011001, т.е. 11011001(2) =331(8).

Заметим, что группу из трех двоичных цифр часто называют «двоичной триадой».

Перевод целого двоичного числа в шестнадцатеричное производится путем разбиения данного числа на группы по 4 цифры - «двоичные тетрады»:

1100011011001 = 1 1000 1101 1001, т.е. 1100011011001(2)= 18D9(16).

Для перевода дробных частей двоичных чисел в восьмеричную или шестнадцатиричную системы аналогичное разбиение на триады или тетрады производится от точки вправо (с дополнением недостающих последних цифр нулями):

0,1100011101(2) =0,110 001 110 100 = 0,6164(8),

0,1100011101(2) = 0,1100 0111 0100 = 0,C74(16).

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

Таблица 1.6 Соответствие чисел в различных системах счисления

Десятичная Шестн-чная Восьмеричная Двоичная
0 0 0 0
1 1 1 1
2 2 2 10
3 3 3 11
4 4 4 100
5 5 5 101
6 6 6 110
7 7 7 111
8 8 10 1000
9 9 11 1001
10 А 12 1010
11 В 13 L011
12 С 14 1100
13 D 15 1101
14 E 16 1110
15 F 17 1111

Преобразования чисел из двоичной в восьмеричную и шестнадцатиричную системы и наоборот столь просты (по сравнению с операциями между этими тремя системами и привычной нам десятичной) потому, что числа 8 и 16 являются целыми степенями числа 2.

Арифметические действия с числами в восьмеричной и шестнадцатиричной системах счисления выполняются по аналогии с двоичной и десятичной системами. Для этого необходимо воспользоваться соответствующими таблицами. Для примера табл. 1.7 иллюстрирует сложение и умножение восьмеричных чисел.

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

Например, число 114(10):

114 - 26 = 114 – 64 = 50,

50 - 25 = 50 – 32 = 18,

18 - 24 = 2,

2 - 21 = 0.

Таким образом, 114(10) = 1110010(2).

114 – 1 ∙ 82 = 114 – 64 = 50,

50 – 6 ∙ 81 = 50 – 48 = 2,

2 – 2 ∙ 8° = 2 – 2 = 0.

Итак, 114(10)= 162(8).

Таблица 1.7 Таблицы сложения и умножения в восьмеричной системе

Сложение

Умножение

Производственная функция, издержки производства

Производственная функция , также функция производства — экономико-математическая количественная зависимость между величинами выпуска (количество продукции) и факторами производства, (затраты ресурсов, уровень технологий и др.)

Агрегированная производственная функция может описывать объёмы выпуска народного хозяйства в целом.

В зависимости от анализа влияния факторов производства на объём выпуска в определённый момент времени или в разные промежутки времени производственные функции делятся на статические: P = f(x1,x2,...,xn) и динамические: P = f(x1(t),...,xk(t),...,xn).

Линейные

функция производства — экономико-математическое уравнение, связывающее переменные величины затрат (ресурсов) с величинами продукции (выпуска).

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

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

Из этого следует, что знание издержек на производство и реализацию товара является одним из важнейших условий эффективного хозяйствования предприятия.

Издержки - это денежное выражение затрат производственных факторов, необходимых для осуществления предприятием своей производственной и коммерческой деятельности.

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

Существует несколько классификаций издержек

1. Бухгалтерские издержки - это реальные расходы фирмы по приобретению сырья, необходимого оборудования; затраты на заработную плату рабочим и аренду помещения, территории и т.д.

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

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

4. Частные издержки представляют собой все расходы фирмы по оплате нужных ресурсов.

5. Общественные издержки оцениваются с точки зрения общества с учетом положительных и отрицательных внешних эффектов.

6. Возвратные издержки - это все расходы фирмы, которая

она способна вернуть после очередного производственного цикла или по окончании своего функционирования.

7. Невозвратные издержки не имеют альтернативного использования. Это единовременные затраты по регистрации предприятия, его страхованию, изготовлению вывески.

В зависимости от объема выпускаемой продукции фирмы в краткосрочном периоде издержки подразделяются на две большие группы:

1) постоянные издержки, которые не зависят от объема производства в релевантном периоде. Они включают арендную плату, оплату электроэнергии и оклад рабочих;

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

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

Кодирование числовой, текстовой, графической и др. информации

Языки программирования высокого уровня.

Кодирование текстовой информации

Информация передается в виде сообщений.

Дискретная информация записывается в виде конечного набора знаков- букв. Буква- элемент некоторого конечного набора отличных друг от друга знаков. Множество знаков, в котором определен их порядок, - алфавитом.

Правило, описывающее однозначное соответствие букв алфавитов при таком преобразовании, называют кодом . Саму процедуру преобразования сообщения называют перекодировкой . Устройства, обеспечивающие кодирование и декодирование, называют кодировщиком и декодировщиком. На рис. 1.5 приведена схема, процесс передачи сообщения в случае перекодировки, и воздействия помех (см. следующий пункт).

Рис. 1.5. Процесс передачи сообщения от источника к приемнику

кодирования-декодирования следует пользоваться равномерными кодами, т.е. двоичными группами равной длины.

Системы «байтового» кодирования.

Наиболее распространены две такие системы: EBCDIC (Extended Binary Coded Decimal Interchange Code) и ASCII (American Standard Information Interchange).

Первая - исторически тяготеет к «большим» машинам, вторая чаще используется на мини- и микро-ЭВМ (включая персональные компьютеры).

ASCII, в 1963 г. это - система семибитного кодирования. Она ограничивалась одним алфавитом (английским), цифрами и набором различных символов. Примеры на клавиатуре компьютера: DEL - знак удаления символа.

В следующей версии фирма IBM перешла на 8-битную кодировку. В ней первые 128 символов совпадают с исходными и имеют коды со старшим битом равным нулю.

Одним из достоинств этой системы кодировки русских букв является упорядочениеномера букв стоят как в русском алфавите.

Кодирование числовой информации

Сходство в кодировании числовой и текстовой информации состоит в следующем: чтобы можно было сравнивать данные этого типа, у разных чисел (как и у разных символов) должен быть различный код. Основное отличие числовых данных от символьных заключается в том, что над числами кроме операции сравнения производятся разнообразные математические операции: сложение, умножение, извлечение корня, вычисление логарифма и пр. Правила выполнения этих операций в математике подробно разработаны для чисел, представленных в позиционной системе счисления. Многовековая история развития математики показывает, что именно позиционный принцип позволяет использовать эти правила как универсальные алгоритмы, справедливые для системы счисления с любым основанием: 2,3, 8, 10, 16, 60 и пр.

Кодирование графической информации

Языки программирования

Исполнитель алгоритма — это некоторая абстрактная или реальная система, способная выполнить действия, предписываемые алгоритмом. Исполнителя хаpактеpизуют:

сpеда;

элементаpные действия;

cистема команд;

отказы.

Сpеда — это "место обитания" исполнителя.

Система команд . Каждый исполнитель может выполнять команды только из некотоpого стpого заданного списка — системы команд исполнителя. Для каждой команды должны быть заданы условия пpименимости (в каких состояниях сpеды может быть выполнена команда) и описаны pезультаты выполнения команды. Напpимеp, команда Pобота "ввеpх" может быть выполнена, если выше Pобота нет стены. Ее pезультат — смещение Pобота на одну клетку ввеpх.

После вызова команды исполнитель совеpшает соответствующее элементаpное действие .

Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды. Обычно исполнитель ничего не знает о цели алгоpитма. Он выполняет все полученные команды, не задавая вопросов "почему" и "зачем".

В информатике универсальным исполнителем алгоритмов является компьютер.

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

Такой язык принято называть языком программирования, а запись алгоритма на этом языке — программой для компьютера.

Любой алгоритм выполняется за конечное число шагов, переходим от исходных данных к конечному результату . От степени детализации предписаний определяется уровень языка программирования — чем меньше детализация, тем выше уровень языка.

По этому критерию можно выделить следующие уровни языков программирования:

машинные;

машинно-оpиентиpованные (ассемблеpы);

машинно-независимые (языки высокого уровня).

Машинные языки и машинно-ориентированные языки — это языки низкого уровня , указать мекие детали обработки данных. Языки же высокого уровня имитируют естественные языки, используют общепринятые математические символы и разговорный язык.

Языки высокого уровня делятся на:

процедурные (алгоритмические) (Basic, Pascal, C и др.), предназначены:

для однозначного описания алгоритмов;

для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения;

логические (Prolog, Lisp и др.), которые ориентированы на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания;

объектно-ориентированные (Object Pascal, C++, Java и др.), в основе лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче.

Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.

Основные преимущества алгоритмических языков перед машинными таковы:

алфавит алгоритмического языка значительно шире алфавита машинного языка, что существенно повышает наглядность текста программы;

набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;

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

требуемые операции задаются с помощью общепринятых математических обозначений;

данным в алгоритмических языках присваиваются индивидуальные имена, выбираемые программистом;

в языке может быть предусмотрен значительно более широкий набор типов данных по сравнению с набором машинных типов данных.

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

Алгоритмический язык (как и любой другой язык) образуют три его составляющие: алфавит, синтаксис и семантика.

Алфавит — это фиксированный набор основных символов, из которых должен состоять любой текст на этом языке.

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

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

Каждое понятие алгоритмического языка подразумевает некоторую синтаксическую единицу (конструкцию) и определяемые ею свойства программных объектов или процесса обработки данных.

Понятие языка определяется во взаимодействии синтаксических и семантических правил. Синтаксические правила показывают, как образуется данное понятие из других понятий и букв алфавита, а семантические правила определяют свойства данного понятия

Основными понятиями в алгоритмических языках обычно являются следующие.

1. Имена (идентификаторы) — употpебляются для обозначения объектов пpогpаммы (пеpеменных, массивов, функций и дp.).

2. Опеpации . Типы операций:

аpифметические опеpации +, —, *, / и дp.;

логические опеpации и, или, не;

опеpации отношения <, >, <=, >=, =, <>;

опеpация сцепки (иначе, "присоединения", "конкатенации") символьных значений дpуг с другом с образованием одной длинной строки; изображается знаком "+".

3. Данные — величины, обpабатываемые пpогpаммой.

Имеется тpи основных вида данных: константы, пеpеменные и массивы .

Константы — это данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения. Пpимеpы констант: -числовые 7.5, 12; -логические да (истина), нет (ложь); -символьные (содержат ровно один символ) "А", "+"; -литеpные (содержат произвольное количество символов) "a0", "Мир", "" (пустая строка).

Пеpеменные обозначаются именами и могут изменять свои значения в ходе выполнения пpогpаммы. Пеpеменные бывают целые, вещественные, логические, символьные и литерные .

Массивы — последовательности однотипных элементов, число которых фиксировано и которым присвоено одно имя. Положение элемента в массиве однозначно определяется его индексами (одним, в случае одномерного массива, или несколькими, если массив многомерный). Иногда массивы называют таблицами.

4. Выpажения — пpедназначаются для выполнения необходимых вычислений, состоят из констант, пеpеменных, указателей функций (напpимеp, exp(x)), объединенных знаками опеpаций.

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

Различают выражения арифметические, логические и строковые.

Арифметические выражения служат для определения одного числового значения. Например, (1+sin(x))/2. Значение этого выражения при x=0 равно 0.5, а при x=p/2 — единице.

Логические выражения описывают некоторые условия, которые могут удовлетворяться или не удовлетворяться. Таким образом, логическое выражение может принимать только два значения — "истина" или "ложь" (да или нет ). Рассмотрим в качестве примера логическое выражение x*x + y*y < r*r, определяющее принадлежность точки с координатами (x, y) внутренней области круга радиусом r c центром в начале координат. При x=1, y=1, r=2 значение этого выражения — "истина" , а при x=2, y=2, r=1 — "ложь".

Cтроковые (литерные) выражения, значениями которых являются текcты . В строковые выражения могут входить литерные и строковые константы, литерные и строковые переменные, литерные функции, разделенные знаками операции сцепки. Например, А + В означает присоединение строки В к концу строки А. Если А = "куст ", а В = "зеленый", то значение выражения А + В есть "куст зеленый".

5. Операторы (команды). Оператор — это наиболее крупное и содержательное понятие языка: каждый оператор представляет собой законченную фразу языка и определяет вполне законченный этап обработки данных. В состав опеpатоpов входят:

ключевые слова;

данные;

выpажения и т.д.

Операторы подpазделяются на исполняемые и неисполняемые.

Неисполняемые служат описания данных и стpуктуpы пpогpаммы, а исполняемые — для выполнения pазличных действий (напpимеp, опеpатоp пpисваивания, опеpатоpы ввода и вывода, условный оператор).

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

Примеры функций:

Название и математическое обозначение функции Указатель функции
Абсолютная величина (модуль) | х | abs(x)
Корень квадратный sqrt(x)
Синус (угол в радианах) sin x sin(x)
Косинус (угол в радианах) cos x cos(x)

Каждый язык программирования имеет свой набор стандартных функций.

Арифметические выражения записываются по следующим правилам:

Нельзя опускать знак умножения между сомножителями и ставить рядом два знака операций.

Индексы элементов массивов записываются в квадратных (школьный АЯ, Pascal) или круглых (Basic) скобках.

Для обозначения переменных используются буквы латинского алфавита.

Операции выполняются в порядке старшинства : сначала вычисление функций, затем возведение в степень, потом умножение и деление и в последнюю очередь — сложение и вычитание.

Операции одного старшинства выполняются слева направо . Однако, в школьном АЯ есть одно исключение из этого правила: операции возведения в степень выполняются справа налево. Так, выражение 2**(3**2) в школьном АЯ вычисляется как 2**(3**2) = 512. В языке QBasic аналогичное выражение 2^3^2 вычисляется как (2^3)^2 = 64. А в языке Pascal вообще не предусмотрена операция возведения в степень, в Pascal x^y записывается как exp(y*ln(x)), а x^y^z как exp(exp(z*ln(y))*ln(x)).

Математическая запись Запись на школьном алгоритмическом языке
x * y / z
(a**3 + b**3) / (b*c)

В записи логических выражений помимо арифметических операций сложения, вычитания, умножения, деления и возведения в степень используются операции отношения < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), = (равно), <> (не равно), а также логические операции и, или, не.

Условие Запись на школьном алгоритмическом языке
Целое число a — четное mod(a, 2) = 0
Целое число a — нечетное mod(a, 2) = 1
Каждое из чисел a, b положительно (a>0) и (b>0)
Только одно из чисел a, b положительно

((a>0) и (b<=0)) или

((a<=0) и (b>0))

Хотя бы одно из чисел a, b, c является отрицательным (a<0) или (b<0) или (c<0)
Число x удовлетворяет условию a < x < b (x>a) и (x<b)
Хотя бы одна из логических переменных F1 и F2 имеет значение да F1 или F2
Обе логические переменые F1 и F2 имеют значение да F1 и F2
Обе логические переменые F1 и F2 имеют значение нет не F1 и не F2
Логическая переменная F1 имеет значение да, а логическая переменная F2 имеет значение нет F1 и не F2
Только одна из логических переменных F1 и F2 имеет значение да (F1 и не F2) или (F2 и не F1)

Алгоритм и его свойства, способы записи алгоритма; стандартные типы данных; представление основных структур: следование, ветвление, повторение

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

Основными свойствами алгоритмов являются:

Универсальность (массовость) - применимость алгоритма к различным наборам исходных данных.

Дискретность - процесс решения задачи по алгоритму разбит на отдельные действия.

Однозначность - правила и порядок выполнения действий алгоритма имеют единственное толкование.

Конечность - каждое из действий и весь алгоритм в целом обязательно завершаются.

Результативность - по завершении выполнения алгоритма обязательно получается конечный результат.

Выполнимость - результата алгоритма достигается за конечное число шагов.

Алгоритм считается правильным, если его выполнение дает правильный результат.

Выделяют три крупных класса алгоритмов :

- вычислительные алгоритмы , работают с простыми видами данных: числа и матрицы, хотя сам процесс вычисления может быть долгим и сложным;

- информационные алгоритмы - набор простых процедур, работающих с большими объемами информации (алгоритмы баз данных);

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

Виды алгоритмов:

Разветвляющийся алгоритм - действия выполняются в зависимости от условия (можно ответить "да" или "нет"). Каждая такая последовательность действий называется ветвью алгоритма.

Линейный алгоритм - действия следуют друг за другом.

Циклический алгоритм -действия повторяются. Вложенным называется цикл, находящийся внутри тела другого цикла. Различают циклы с предусловием и послеусловием: Итерационным называется цикл, число повторений определяется в ходе выполнения цикла. Одно повторение цикла называется итерацией .

Разнообразие же алгоритмов определяется тем, что любой алгоритм распадается на части, фрагменты и каждый фрагмент представляет собой алгоритм одного из трех указанных видов.

Способы записи алгоритмов

Распространены следующие формы представления алгоритмов:

словесная (запись на естественном языке);

графическая (изображения из графических символов);

псевдокоды (включающие в себя элементы языка программирования, и фразы естественного языка)

программная (тексты на языках программирования).

Общепринятыми способами записи являются графическая запись с помощью блок-схем и символьная запись - алгоритмического языка.

Описание алгоритма с помощью блок схем осуществляется рисованием последовательности геометрических фигур. Порядок действий указывается стрелками. Написание алгоритмов с помощью блок-схем регламентируется ГОСТом.

Cловесный способ - описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.

Словестный способ не имеет широкого распространения, так как такие описания:

строго не формализуемы;

страдают многословностью записей;

допускают неоднозначность толкования отдельных предписаний.

Псевдокод - система обозначений и правил предназначена для единообразной записи алгоритмов. Псевдокод занимает промежуточное место между естественным и формальным языками. Алгоритмы могут на нем записываться и читаться как обычный текст. В псевдокоде не приняты строгие синтаксические правила для записи команд, что облегчает запись алгоритма на стадии его проектирования. В псевдокоде, есть служебные слова, смысл которых определен. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.

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

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

В таблице приведены наиболее часто употребляемые символы.

Название символа Обозначение и пример заполнения Пояснение
Процесс Вычислительное действие или последовательность действий
Решение Проверка условий
Модификация Начало цикла
Предопределенный процесс Вычисления по подпрограмме, стандартной подпрограмме
Ввод-вывод Ввод-вывод в общем виде
Пуск-останов Начало, конец алгоритма, Вход и выход в подпрограмму

Стандартные типы данных;

Целочисленный тип - содержит числовые значения, целые числа. Числа упорядочены по возрастанию:..., -2, -1, 0, 1, 2, 3..

Логический тип - содержит всего 2 значения - True, False, которые тоже упорядочены: False, True (следует из соответствия False - 0, True - 1).

Символьный тип - символы кодовой таблицы. Поскольку каждому символу соответствует свой код, то символы расположены в порядке увеличения кода.

Из того, что перечисленных типы данных упорядочены, следует, что все значения образуют конечную последовательность.

Целочисленные типы. позволяют хранить целые числа. Они хранят числа положительные или отрицательные, а некоторые хранят только положительные. Чем больше значений содержит тип, тем больше он памяти занимает. Рассмотрим целочисленные типы данных.

Сначала рассмотрим беззнаковые типы - хранят только положительные числа и ноль:

Byte - значения 0..255 - занимает в памяти 1 байт.

Word - значения 0..65535 - 2 байта.

LongWord - значения 0..4294967295 - 4 байта.

Теперь типы со знаком (отрицательные "-" впереди, неотрицательные "+", так и без него):

ShortInt - значения -128..127 - 1 байт.

SmallInt - значения -32768..32767 - 2 байта.

LongInt - значения -2147483648..2147483647 - 4 байта.

Int64 - значения -2^53..2^53-1 - 8 байт.

Рекомендуется использовать именно эти типы, т.к. компилятор создаёт более быстрый код:

Integer - значения -2147483648..2147483647 - 4 байта.

Cardinal - значения 0..4294967295 - 4 байта.

Целые числа представляются как в десятичной, так шестнадцатеричной системе счисления, $xxxxxxxx, где x - один из символов 0, 1,..E, F. Все цвета представляются в виде шестнадцатеричных чисел.

Логические типы. Существуют следующие логические типы: Boolean , принимает значение True и False, ByteBool, WordBool и LongBool , Последние для обеспечения совместимости с другими языками и системами программирования. Используется только Boolean. Логическое значение в памяти занимает 1 байт.

Символьные типы. Обеспечивают хранение отдельных символов. Основной тип данных - Char , который содержит символы с кодами 0..255 . Существуют ещё типы AnsiChar и WideChar . Тип AnsiChar эквивалентен типу Char . Занимает в памяти 1 байт.

Для кодирования используется код ANSI (American National Standards Institute). Тип WideChar кодируется международным кодом Unicode и занимает в памяти 2 байта. Таблица Unicode включает символы практически всех языков мира.

Вещественные типы. Для хранения вещественных- действительных чисел. Отличаются, числом цифр после запятой. Вот эти типы:

Real (он же Double ) - значения от 5.0x10^-324 до 1.7x10^308 , точность - 15-16 цифр, занимает в памяти 8 байт.

Real48 - значения от 2.9x10^-39 до 1.7x10^38 , точность - 11-12 цифр, 6 байт памяти.

Single - значения от 1.7x10^-45 до 3.4x10^38 , точность - 7-8 цифр, 4 байта.

Extended - от 3.6x10^-4951 до 1.1x10^4932 , точность - 19-20 цифр, 10 байт памяти.

Comp - от -2x10^63+1 до 2x10^63-1 , точность - 19-20 цифр, 8 байт.

Currency - от -922337203685477.5808 до 922337203685477.5807 , точность - 19-20 цифр, в памяти занимает 8 байт.

Перед вещественными числами может стоять знак "+" или "-". Возможны 2 записи вещественных чисел - с фиксированной точкой и с плавающей.

С фиксированной точкой целая и дробная части отделяются точкой или запятой.

С плавающей точкой , запись которая отделяется от самого числа буквой "E". Например, запись 1.5e2 означает число 1.5 с порядком +2, т.е. это 1.5x10^2 = 150.

Типы Comp и Currency служат для точных денежных расчётов. Comp , хранит целые числа, при задании чисел с дробной частью они преобразуются в целое число.

Интервальные типы данных. (ограниченные) получаются из имеющихся типов путём ограничения диапазона значений. Интервал задаётся двумя константами - начальной и конечной границей . При присвоении значения переменной выполняется проверка нового значения. Если значение не попадает в диапазон, выдаётся сообщение об ошибке. Ограниченный тип данных задается на основе простого упорядоченного типа. Значение правой границы должно быть больше значения левой границы.

Ограниченные типы данных также описывают в разделе type , между константами-границами ставятся две точки.

Например, мы хотим в программе работать с датами. Можно создать ограниченные типы данных для значений дня, месяца и года

type

TDay = 1..31;

TMonth = 1..12;

TYear = 1900..2100;

Составные (структурированные) типы данных

Структуры данных хранят сразу несколько значений, некоторые не имеют ограничения на количество значений - редел определяется объёмом памяти.

Представление основных структур: следование, ветвление, повторение.

Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых элементов.

Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование; ветвление; цикл.

Базовая структура Следование

Образуется из последовательности действий, следующих одно за другим:

Базовая структура Ветвление.

Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма.

Структура ветвление существует в четырех основных вариантах:

1. если - то

2. если - то - иначе

3. выбор

4. выбор - иначе

Базовая структура цикл.

Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла.

Основные разновидности цикла:

Цикл пока

Цикл для.

Общее равновесие, эффективность и благосостояние

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

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

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

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

Считается, что при данном предложении благ потребление является экономически эффективным, если уровень благосостояния одного лица можно улучшить только посредством понижения уровня благосостояния другого лица.

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

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

Информатика как наука. Предмет и объект прикладной информатики. Системы счисления

Инфоpматика — это основанная на использовании компьютерной техники дисциплина, изучающая структуру и общие свойства информации, а также закономерности и методы её создания, хранения, поиска, преобразования, передачи и применения в различных сферах человеческой деятельности.

Инфоpматика — научная дисциплина с широчайшим диапазоном применения.

Её основные направления:

pазpаботка вычислительных систем и пpогpаммного обеспечения;

теоpия инфоpмации, изучающая процессы, связанные с передачей, приёмом, преобразованием и хранением информации;

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

системный анализ, заключающийся в анализе назначения проектируемой системы и в установлении требований, которым она должна отвечать;

методы машинной графики, анимации, средства мультимедиа;

средства телекоммуникации, в том числе, глобальные компьютерные сети, объединяющие всё человечество в единое информационное сообщество;

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

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

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

Информатика является комплексной, междисциплинарной отраслью научного знания.

ПРЕДМЕТОМ ИНФОРМАТИКИ ЯВЛЯЕТСЯ ЗНАНИЕ.

ОБЪЕКТОМ ИНФОРМАТИКИ ЯВЛЯЕТСЯ СИСТЕМА ЧЕЛОВЕК-ВМ.

знание исторически всегда подразумевает человека, а не ВМ. Этому можно возразить так: ВМ используется человеком и для человека непосредственно или в конечном счете. слова «мыслить», «думать» и «знать», примененные к ВМ, начинают применяться без кавычек: ВМ мыслит, ВМ думает и ВМ знает.

Системы счисления

Для записи информации о количестве объектов используются числа. Числа записываются с использованием особых знаковых систем, которые называются системами счисления . Алфавит системы счисления состоит из символов, которые называются цифрами.

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

Все системы счисления делятся на две большие группы: позиционные и непозиционные .

В позиционных системах количественное значение цифры зависит от ее положения в числе, а в непозиционных — не зависит.

Непозиционные системы счисления. Система записи чисел называется единичной , так как любое число в ней образуется путем повторения одного знака, символизирующего единицу. Примером непозиционной системы: римская система счисления в её основе лежат знаки I (один палец) для числа 1, V (раскрытая ладонь) для числа 5, X (две сложенные ладони) для числа 10. При записи чисел в римской системе счисления есть правило: каждый меньший знак, поставленный слева от большего, вычитается из него, в остальных случаях знаки складываются. Недостатком непозиционных систем, является отсутствие арифметических действий над ними.

Позиционные системы счисления. Для записи чисел используется отличных друг от друга знаки. Число таких знаков называется основанием системы счисления. Пример некоторых позиционных систем: двоичная, троичная, четверичная, пятеричная, восьмеричная, десятичная, двенадцатеричная (0,1,2,3,4,5,б,7,8,9,А,В), шестнадцатеричная (0,1,2,3,4,5,6,7,8,9,A.B,D,E,F)

В позиционной системе счисления, число может быть представлено в виде суммы произведений коэффициентов на степени основания системы счисления:

AnAn-1An-2 … A1,A0,A-1,A-2 =

АnВn + An-1Bn-1 +... + A1B1 + А0В0 + A-1B-1 + А-2В-2 +...

(знак «точка» отделяет целую часть числа от дробной; знак «звездочка» здесь и ниже используется для обозначения операции умножения). Таким образом, значение каждого знака в числе зависит от позиции, которую занимает знак в записи числа. Именно поэтому такие системы счисления называют позиционными. Примеры (десятичный индекс внизу указывает основание системы счисления): 23,43(10) = 2*101 + З*10° + 4*10-1 + З*10-2

(в данном примере знак «З» в первом случае число единиц, а в другом - число сотых долей единицы);

692(10) = 6* 102 + 9*101 + 2.

(«Шестьсот девяносто два» с формальной точки зрения представляется в виде «шесть умножить на десять в степени два, плюс девять умножить на десять в степени один, плюс два»).

1101(2)= 1*23 + 1*22+0*21+ 1*2°;

A1F4(16) = A*162 + 1*161 + F*16° + 4*16-1.

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

Двоичная система счисления

В двоичной системе внутреннее представление информации является двоичным, т.е. описываемым наборами только из двух знаков (0 и 1).

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

Остаток

25: 2 = 12 (1),

12: 2 = 6 (0),

6: 2 = 3 (0),

3: 2 = 1 (1),

1: 2 = 0 (1).

Таким образом 25(10)=11001(2).

Для перевода дробной части (или числа, у которого «0» целых) надо умножить ее на 2. Целая часть произведения будет первой цифрой числа в двоичной системе. Затем, отбрасывая у результата целую часть, вновь умножаем на 2 и т.д.

Заметим, что конечная десятичная дробь при этом вполне может стать бесконечной {периодической) двоичной. Например:

0,73 • 2 = 1,46 (целая часть 1),

0,46 • 2 = 0,92 (целая часть 0),

0,92 • 2 = 1,84 (целая часть 1),

0,84 • 2 = 1,68 (целая часть 1) и т.д.

В итоге 0,73(10) =0,1011...(2).

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

Таблица 1.5. Таблицы сложения и умножения в двоичной системе

Заметим, что при двоичном сложении 1 + 1 возникает перенос единицы в старший разряд - точь-в-точь как в десятичной арифметике:

Восьмеричная и шестнадцатеричная системы счисления

Перевод чисел из десятичной системы счисления в восьмеричную производится с помощью делений и умножений на 8. Например, переведем число 58,32(10):

58: 8 = 7 (2 в остатке),

7: 8 = 0 (7 в остатке).

0,32 • 8 = 2,56,

0,56 • 8 = 4,48,

0,48-8=3,84,...

Таким образом, 58,32(10) =72,243... (8)

Для перевода целого двоичного числа в восьмеричное необходимо разбить его справа налево на группы по 3 цифры (самая левая группа может содержать менее трех двоичных цифр), а затем каждой группе поставить в соответствие ее восьмеричный эквивалент. Например:

11011001= 11011001, т.е. 11011001(2) =331(8).

Заметим, что группу из трех двоичных цифр часто называют «двоичной триадой».

Перевод целого двоичного числа в шестнадцатеричное производится путем разбиения данного числа на группы по 4 цифры - «двоичные тетрады»:

1100011011001 = 1 1000 1101 1001, т.е. 1100011011001(2)= 18D9(16).

Для перевода дробных частей двоичных чисел в восьмеричную или шестнадцатиричную системы аналогичное разбиение на триады или тетрады производится от точки вправо (с дополнением недостающих последних цифр нулями):

0,1100011101(2) =0,110 001 110 100 = 0,6164(8),

0,1100011101(2) = 0,1100 0111 0100 = 0,C74(16).

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

Таблица 1.6 Соответствие чисел в различных системах счисления

Десятичная Шестн-чная Восьмеричная Двоичная
0 0 0 0
1 1 1 1
2 2 2 10
3 3 3 11
4 4 4 100
5 5 5 101
6 6 6 110
7 7 7 111
8 8 10 1000
9 9 11 1001
10 А 12 1010
11 В 13 L011
12 С 14 1100
13 D 15 1101
14 E 16 1110
15 F 17 1111

Преобразования чисел из двоичной в восьмеричную и шестнадцатиричную системы и наоборот столь просты (по сравнению с операциями между этими тремя системами и привычной нам десятичной) потому, что числа 8 и 16 являются целыми степенями числа 2.

Арифметические действия с числами в восьмеричной и шестнадцатиричной системах счисления выполняются по аналогии с двоичной и десятичной системами. Для этого необходимо воспользоваться соответствующими таблицами. Для примера табл. 1.7 иллюстрирует сложение и умножение восьмеричных чисел.

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

Например, число 114(10):

114 - 26 = 114 – 64 = 50,

50 - 25 = 50 – 32 = 18,

18 - 24 = 2,

2 - 21 = 0.

Таким образом, 114(10) = 1110010(2).

114 – 1 ∙ 82 = 114 – 64 = 50,

50 – 6 ∙ 81 = 50 – 48 = 2,

2 – 2 ∙ 8° = 2 – 2 = 0.

Итак, 114(10)= 162(8).

Таблица 1.7 Таблицы сложения и умножения в восьмеричной системе

Сложение

Умножение

Производственная функция, издержки производства

Производственная функция , также функция производства — экономико-математическая количественная зависимость между величинами выпуска (количество продукции) и факторами производства, (затраты ресурсов, уровень технологий и др.)

Агрегированная производственная функция может описывать объёмы выпуска народного хозяйства в целом.

В зависимости от анализа влияния факторов производства на объём выпуска в определённый момент времени или в разные промежутки времени производственные функции делятся на статические: P = f(x1,x2,...,xn) и динамические: P = f(x1(t),...,xk(t),...,xn).

Линейные

функция производства — экономико-математическое уравнение, связывающее переменные величины затрат (ресурсов) с величинами продукции (выпуска).

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

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

Из этого следует, что знание издержек на производство и реализацию товара является одним из важнейших условий эффективного хозяйствования предприятия.

Издержки - это денежное выражение затрат производственных факторов, необходимых для осуществления предприятием своей производственной и коммерческой деятельности.

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

Существует несколько классификаций издержек.

1. Бухгалтерские издержки - это реальные расходы фирмы по приобретению сырья, необходимого оборудования; затраты на заработную плату рабочим и аренду помещения, территории и т.д.

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

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

4. Частные издержки представляют собой все расходы фирмы по оплате нужных ресурсов.

5. Общественные издержки оцениваются с точки зрения общества с учетом положительных и отрицательных внешних эффектов.

6. Возвратные издержки - это все расходы фирмы, которая

она способна вернуть после очередного производственного цикла или по окончании своего функционирования.

7. Невозвратные издержки не имеют альтернативного использования. Это единовременные затраты по регистрации предприятия, его страхованию, изготовлению вывески.

В зависимости от объема выпускаемой продукции фирмы в краткосрочном периоде издержки подразделяются на две большие группы:

1) постоянные издержки, которые не зависят от объема производства в релевантном периоде. Они включают арендную плату, оплату электроэнергии и оклад рабочих;

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

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

Процедуры, функции; записи; файлы. Программирование рекурсивных алгоритмов

Подпрограмма представляет собой набор операторов, команд, оформленных специальным образом.

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

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

Общий вид описания процедуры:

Procedure Имя [Список формальных параметров];

Описательная часть

Begin

Тело процедуры

End;

При вызове процедуры ее формальные параметры заменяются соответствующими фактическими.

Фактические параметры – это параметры, которые передаются процедуре при ее вызове.

Количество и типы формальных и фактических параметров должны в точности совпадать.

Формальные параметры описываются в заголовке процедуры и определяют тип и место подстановки фактических параметров. Формальные параметры делятся на 2 вида: параметры-переменные и параметры-значения.

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

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

Все переменные программы делятся на глобальные и локальные. Глобальные переменные объявляются в разделе описаний основной программы. Локальные переменные объявляются в процедурах и функциях.

Таким образом, локальные переменные «живут» только во время работы подпрограммы.

Функции

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

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

Таким образом общий вид описания функции следующий:

Function Имя [Список формальных параметров]:

Тип результата;

Описательная часть

Begin

Тело функции, в котором обязательно должно быть присваивание

Имя функции:=значение

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

Описание записи в языке Паскаль осуществляется с помощью служебного слова record, вслед за которым описываются компоненты записи. Завершается описание записи служебным словом end.

Например, телефонный справочник содержит фамилии и номера телефонов, поэтому отдельную строку в таком справочнике удобно представить в виде следующей записи:

type TRec = Record

FIO: String[20];

TEL: String[7]

end;

var rec: TRec;

Описание записей возможно и без использования имени типа, например:

var rec: Record

FIO: String[20];

TEL: String[7]

end;

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

rec.FIO, rec.TEL

Такое имя называется составным . Компонентой записи может быть также запись, в таком случае составное имя будет содержать не два, а большее количество имен.

Обращение к компонентам записей можно упростить, если воспользоваться оператором присоединения with.

Он позволяет заменить составные имена, характеризующие каждое поле, просто на имена полей, а имя записи определить в операторе присоединения:

with rec do оператор;

Здесь rec - имя записи, оператор - оператор, простой или составной. Оператор представляет собой область действия оператора присоединения, в пределах которой можно не использовать составные имена. Например для нашего случая:

with rec do begin

FIO:='Иванов А.А.';

TEL:='2223322';

end;

Такая алгоритмическая конструкция полностью идентична следующей:

rec.FIO:='Иванов А.А.';

rec.TEL:='2223322';

Инициализация записей может производиться с помощью типизированных констант:

type

RecType = Record

x,y: Word;

ch: Char;

dim: Array[1..3] of Byte

end;

const

Rec: RecType = (x: 127;

y: 255;

ch: 'A';

dim: (2, 4, 8));

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

Например, сконструируем запись, в которой мы будем хранить данные о некоторой геометрической фигуре (отрезок, треугольник, окружность).

ype

TFigure = record

type_of_figure: string[10];

color_of_figure: byte;

...

case integer of

1: (x1,y1,x2,y2: integer);

2: (a1,a2,b1,b2,c1,c2: integer);

3: (x,y: integer; radius: word);

end;

var figure: TFigure;

Таким образом, в переменной figure мы можем хранить данные как об отрезке, так и о треугольнике или окружности. Надо лишь в зависимости от типа фигуры обращаться к соответствующим полям записи.

Заметим, что индивидуальные поля для каждого из типов фигур занимают тем не менее одно адресное пространство памяти, а это означает, что одновременное их использование невозможно.

В любой записи может быть только одна вариантная часть. После окончания вариантной части в записи не могут появляться никакие другие поля. Имена полей должны быть уникальными в пределах той записи, где они объявлены.

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

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

Понятие файла достаточно широко. Это может быть обычный файл на диске, коммуникационный порт ЭВМ, устройство печати, клавиатура или другие устройства.

При работе с файлами выполняются операции ввода - вывода. Операция ввода означает перепись данных с внешнего устройства (из входного файла) в основную память ЭВМ, операция вывода - это пересылка данных из основной памяти на внешнее устройство (в выходной файл).

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

'LAB1.DAT'

'c:\ABC150\pr.txt'

'my_files'

Турбо Паскаль поддерживает три файловых типа:

текстовые файлы;

типизированные файлы;

нетипизированные файлы.

Доступ к файлу в программе происходит с помощью переменных файлового типа. Переменную файлового типа описывают одним из трех способов:

file of тип - типизированный файл (указан тип компоненты);

text - текстовый файл;

file - нетипизированный файл.

Примеры описания файловых переменных:

var

f1: file of char;

f2: file of integer;

f3: file;

t: text;

Стандартные процедуры и функции файлов:

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

Assign(f, FileName)

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

После связи файловой переменной с дисковым именем файла в программе нужно указать направление передачи данных (открыть файл). В зависимости от этого направления говорят о чтении из файла или записи в файл.

- Reset(f)

открывает для чтения файл, с которым связана файловая переменная f. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента. Процедура завершается с сообщением об ошибке, если указанный файл не найден.

Если f - типизированный файл, то процедурой reset он открывается для чтения и записи одновременно.

- Rewrite(f)

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

- Close(f)

закрывает открытый до этого файл с файловой переменной f. Вызов процедуры Close необходим при завершении работы с файлом. Если по какой-то причине процедура Close не будет выполнена, файл все-же будет создан на внешнем устройстве, но содержимое последнего буфера в него не будет перенесено.

- EOF(f): boolean

возвращает значение TRUE, когда при чтении достигнут конец файла. Это означает, что уже прочитан последний элемент в файле или файл после открытия оказался пуст.

- Rename(f, NewName)

позволяет переименовать физический файл на диске, связанный с файловой переменной f. Переименование возможно после закрытия файла.

- Erase(f)

уничтожает физический файл на диске, который был связан с файловой переменной f. Файл к моменту вызова процедуры Erase должен быть закрыт.

- IOResult

возвращает целое число, соответствующее коду последней ошибки ввода - вывода. При нормальном завершении операции функция вернет значение 0. Значение функции IOResult необходимо присваивать какой-либо переменной, так как при каждом вызове функция обнуляет свое значение. Функция IOResult работает только при выключенном режиме проверок ошибок ввода - вывода или с ключом компиляции {$I-}.

Типизированный файл - это последовательность компонент любого заданного типа (кроме типа "файл"). Доступ к компонентам файла осуществляется по их порядковым номерам. Компоненты нумеруются, начиная с 0. После открытия файла указатель (номер текущей компоненты) стоит в его начале на нулевом компоненте. После каждого чтения или записи указатель сдвигается к следующему компоненту.

Текстовый файл - это совокупность строк, разделенных метками конца строки. Сам файл заканчивается меткой конца файла. Доступ к каждой строке возможен лишь последовательно, начиная с первой. Одновременная запись и чтение запрещены.

Нетипизированные файлы - это последовательность компонент произвольного типа.

Понятие множества в языке Паскаль основывается на математическом представлении о конечных множествах: это ограниченная совокупность различных элементов. Для построения конкретного множественного типа используется перечисляемый или интервальный тип данных. Тип элементов, составляющих множество, называется базовым типом.

Множественный тип описывается с помощью служебных слов Set of, например:

type M = Set of B;

Здесь М - множественный тип, В - базовый тип.

Пример описания переменной множественного типа:

type

M = Set of 'A'..'D';

var

MS: M;

Принадлежность переменных к множественному типу может быть определена прямо в разделе описания переменных:

var C: Set of 0..7;

Константы множественного типа записываются в виде заключенной в квадратные скобки последовательности элементов или интервалов базового типа, разделенных запятыми, например:

['A', 'C'] [0, 2, 7] [3, 7, 11..14]

Константа вида [ ] означает пустое подмножество. Количество базовых элементов не должно превышать 256. Инициализация величин множественного типа может производиться с помощью типизированных констант:

const seLit: Set of 'A'..'D'= [];

Порядок перечисления элементов базового типа в константах безразличен.

Значение переменной множественного типа может быть задано конструкцией вида [T], где T - переменная базового типа. Например, вполне допустима конструкция:

type T = set of char;

Множество включает в себя набор элементов базового типа, все подмножества данного множества, а также пустое подмножество. Так, переменная Т множественного типа

var T: Set of 1..3;

может принимать восемь различных значений:

[ ] [1] [2] [3] [1,2] [1,3] [2,3] [1,2,3]

К переменным и константам множественного типа применимы операции присваивания(:=), объединения(+), пересечения(*) и вычитания(-):

['A','B'] + ['A','D'] даст ['A','B','D']

['A','D'] * ['A','B','C'] даст ['A']

['A','B','C'] - ['A','B'] даст ['C'].

Результат выполнения этих операций есть величина множественного типа.

К множественным величинам применимы операции: тождественность (=), нетождественность (<>), содержится в (<=), содержит (>=). Результат выполнения этих операций имеет логический тип, например:

['A','B'] = ['A','C'] даст FALSE

['A','B'] <> ['A','C'] даст TRUE

['B'] <= ['B','C'] даст TRUE

['C','D'] >= ['A'] даст FALSE.

Кроме этих операций для работы с величинами множественного типа в языке ПАСКАЛЬ используется операция in, проверяющая принадлежность элемента базового типа, стоящего слева от знака операции, множеству, стоящему справа от знака операции. Результат выполнения этой операции - булевский. Операция проверки принадлежности элемента множеству часто используется вместо операций отношения, например:

'A' in ['A', 'B'] даст TRUE,

2 in [1, 3, 6] даст FALSE.

Рекурсия — метод определения класса объектов или методов предварительным заданием одного или нескольких (обычно простых) его базовых случаев или методов, а затем заданием на их основе правила построения определяемого класса.

Другими словами, рекурсия — частичное определение объекта через себя, определение объекта с использованием ранее определённых. Рекурсия используется, когда можно выделить самоподобие задачи.

В программировании рекурсия — вызов функции или процедуры из неё же самой (обычно с другими значениями входных параметров), непосредственно или через другие функции (например, функция А вызывает функцию B, а функция B — функцию A). Количество вложенных вызовов функции или процедуры называется глубиной рекурсии.

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

Имеется специальный тип рекурсии, называемый «хвостовой рекурсией». Интерпретаторы и компиляторы функциональных языков программирования, поддерживающие оптимизацию кода (исходного и/или исполняемого), выполняют хвостовую рекурсию в ограниченном объёме памяти при помощи итераций.

Следует избегать избыточной глубины рекурсии, так как это может вызвать переполнение стека вызовов.

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

Function Factorial (N: Integer): Integer;

Begin

if N = 1 Then Factorial:= 1

Else Factorial:= N*Factorial(N -1)

End;

Здесь Factorial(N) определяется через значение Factorial(N-1), которое определяется через Factorial(N-2), и т.д. до сведения к значению Factorial(0), которое определено явно и равно 1. Любое рекурсивное описание должно содержать явное определение для некоторых значений аргумента (или аргументов), так как иначе процесс сведения оказался бы бесконечным. Таким образом при рекурсивном описании необходимо наличие базовой части описания, которая обеспечивала бы завершение рекурсивных вызовов функции (процедуры). Рекурсивное обращение можно рассмотреть на примере вычисления определенного двойного интеграла по формуле трапеций. Точность этого приближения тем выше, чем больше число участков разбиения n. Увеличивая число n, можно достигнуть заданной точности. Если, допустим, функция TRAP вычисляет интеграл по методу трапеций при заданном числе интервалов N и А, В - пределы интегрирования, а FN - функция вычисления подынтегрального выражения, вычисление двойного интеграла можно осуществить с помощью следующего рекурсивного обращения к функции TRAP: J:= TRAP (N1, A1, B1, TRAP (N2, A2, B2, FN));

Ниже приведена рекурсивная функция, предназначенная для вычисления наибольшего общего делителя двух целых чисел N1 и N2.

Пример.

Function HighFactor(N1,N2:lnteger):lnteger;

Var P: Integer;

Begin

lf N1 > N2 Then P:=HighFactor(N1,N2)

Else

If N2<=0 Then p:= N1 {нерекурсивное решение}

Else P:=HighFactor(N2,N1 Mod N2);

HighFactor:= P

End;

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

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

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

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

Различают прямую и косвенную рекурсию. Функция HighFactor является характерным примером прямой рекурсии. Косвенная рекурсия возникает тогда, когда один блок вызывает второй, а второй, в свою очередь, первый.

Динамические структуры данных; списки: основные виды и способы реализации. Технологии программирования

Способы конструирования программ

Динамические структуры данных – сложные, организованные определенным образом данные, которые могут менять размер и/или свою структуру во время работы программы. Т

Типичными динамическими структурами являются массивы, стеки, очереди, списки, деревья. Универсальными способами организации таких структур является использование указателей.

Указатели – переменные, содержащие не сами данные, а адреса памяти.

Стек – линейная динамическая структура, у которой в каждый момент времени доступным является последний ее элемент. Стеки упорядочены, неоднородны (элементы стэка могут относиться к разным типам).

Previous – указатель на тип элемента stack

Массивы – последовательность упорядоченных, индексированных значений одного типа.

Количество элементов динамических массивов можно изменять во время работы.

Stack Item Queue Item List Item
Data Data Data
Previous Next Pointes

Описание динам. массива : TypeName = Array of BaseType

Очередь – линейная динамическая структура. Отличается от стэка тем, что при добавлении элемент помещается в конец очереди.

Список – линейная динамическая структура связанных элементов.

Для списка определены следующие операции:

Вставка элемента в список;

Удаление элемента из списка;

Перемещение элемента по списку;

Извлечение данных элемента списка;

Поиск элемента и сортировка (дополнительно).

Pointes – указатели для перемещения по списку.

Если каждый элемент имеет указатель на один соседний элемент, то список однонаправленный. Перемещение производится в одну сторону. Если на 2 элемента, то двунаправленный.

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

Для реализации двунаправленного списка элемент должен содержать данные data и указатели previous и next на предыдущий и последующий элемент соответственно. Перемещение по списку осуществляется простыми перемещениями указателя Current на предыдущий и последующий элемент.

В языках программирования (Pascal, C, др.) существует и другой способ выделения памяти под данные, который называется динамическим . В этом случае память под величины отводится во время выполнения программы. Такие величины будем называть динамическими . Раздел оперативной памяти, распределяемый статически, называется статической памятью ; динамически распределяемый раздел памяти называется динамической памятью (динамически распределяемой памятью) .

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

Работа с динамическими величинами связана с использованием еще одного типа данных — ссылочного типа . Величины, имеющие ссылочный тип, называют указателями .

Указатель содержит адрес поля в динамической памяти, хранящего величину определенного типа. Сам указатель располагается в статической памяти.

Адрес величины — это номер первого байта поля памяти, в котором располагается величина. Размер поля однозначно определяется типом.

Далее будем более подробно обсуждать указатели и действия с ними в языке Pascal.

В версиях Турбо-Паскаля, работающих под операционной системой MS DOS, под данные одной программы выделяется 64 килобайта памяти (или, если быть точнее, 65520 байт). Это и есть статическая область памяти. При необходимости работать с большими массивами информации этого может оказаться мало. Размер динамической памяти — много больше (сотни килобайт). Поэтому использование динамической памяти позволяет существенно увеличить объем обрабатываемой информации.

Следует отчетливо понимать, что работа с динамическими данными замедляет выполнение программы, поскольку доступ к величине происходит в два шага: сначала ищется указатель, затем по нему — величина. Как это часто бывает, действует "закон сохранения неприятностей": выигрыш в памяти компенсируется проигрышем во времени.

Технология программирования - это совокупность методов и средств разработки (написания) программ и порядок применения этих методов и средств. Основные походы:

Операциональный подход . В эпоху ЭВМ 1 - го и 2-го поколений основным требованием к алгоритму была его узко понимаемая эффективность:

1) минимальные требования в отношении оперативной памяти компьютера - программа должна была использовать наименьшее возможное число ячеек оперативной памяти компьютера;

2) минимальное время исполнения (минимальное число операций). При этом программы составлялись из команд, непосредственно или почти непосредственно исполнявшихся компьютером (точнее говоря, процессором):

* операции присваивания;

* простейших арифметических операций;

* операций сравнения чисел;

* операторов безусловного и условных переходов (изменяющих порядок вычисления команд в программе);

* операторов вызова подпрограмм (вспомогательных алгоритмов).

Такой подход в программировании (создании алгоритмов), ориентированный на непосредственно выполняемые компьютером операции, можно назвать операциональным. Программа созданная в таком подходе малоэффективная. Много времени. Линейная.

Структурное программирование – это методология программирования, основанная на иерархическом решении задач. Основная цель – это дисциплинированность программирования. Принципы:

Принцип абстракции – рассмотрение решаемой задачи в целом, без учета деталей ее реализации.

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

Принцип модульности – каждая из подзадач реализуется в отдельном модуле.

Модуль – независимая часть программы, которая может быть разработана, отлажена и откомпилирована отдельно от основной программы. Каждый модуль может ссылаться на другие модули. Количество используемых модулей называется размахом (шириной) модуля, который не должен превышать 7. Использование модулей имеет следующие преимущества: