extracted_text:
тема 1 вопрос № 30
Классификация и характеристики принтеров
Принтеры — устройства вывода данных из ЭВМ, преобразующие информационные ASCII
коды в соответствующие им графические символы и фиксирующие эти символы на бумаге.
В настоящее время существуют различные варианты классификации принтеров, которые могут
развиваться и усложняться ввиду развития модельного ряда этих устройств. наиболее значимым
характеристикам современных принтеров. являются:
∙ принцип работы печатающего механизма;
∙ максимальный формат листа;
∙ поддерживаемая цветность печати;
∙ скорость печати; Быстродействие – количество знаков или страниц,
распечатываемых за секунду или минуту. Измеряется в cps (character per second) – числе символов,
печатаемых в секунду, или в ppm (pages per minute) – числе страниц, печатаемых в минуту.
∙ разрешающая способность; Разрешение – величина самых мелких деталей
изображения, передаваемых при печати без искажений. Измеряется в dpi (dot per inch) – числе
наносимых отдельных точек красителя на дюйм бумаги.
∙ цена.
По способу формирования изображения принтеры делятся на:
последовательные (документ формируется символ за символом);
строчные (формируется вся строка);
страничные (формируется целая страница).
По способу печати: принтеры делятся на:
устройства ударного действия (impact);
устройства безударного действия (nonimpact).







К ударным принтерам относят матричные принтеры. В них печатающая головка из 9, 18 или 24 игл,
приводимых в движение электромагнитами, крепится к каретке и перемещается вместе с ней по
направляющим параллельно бумаге вдоль печатаемой строки. Часть игл матрицы приводится в
движение, и они "ударяют" по красящей ленте, находящейся между головкой и бумагой, формируя,
таким образом, след из маленьких точек. К недостаткам этих принтеров относят низкую скорость
печати и высокий уровень шума при работе. Достоинством же является то, что они оставляют
оттиски букв на бумаге, а это важно при составлении финансовых или официальных документов.
Следует отметить, что у этой технологии печати в общем случае нежесткие требования к качеству
бумаги.
К безударным относят струйные чернильные принтеры. У них, так же как и у матричных, головка
движется в горизонтальной плоскости над бумагой. Печатающая головка содержит сопла, через
которые подаются чернила. У разных моделей количество сопел может варьироваться от 12 до 64.
Различные технологии струйных принтеров отличаются способом выбрасывания чернильной
капельки из сопла. В принтерах Cannon и Hewlett Packard используется технология bubblejet (или
thermal ink jet). В каждом сопле находится нагревательный элемент (тонкопленочный резистор). При
резком нагревании образуется чернильный паровой пузырь, который выталкивает из сопла очередную
порцию чернил. В принтерах Epson используется технология piezo ink jet. Выбросом капли из сопла
управляет диафрагма из пьезоэлемента. Под действием электрического поля пьезоэлемент
деформируется и выталкивает каплю из сопла. Скорость работы струйных принтеров примерно
такая же, как и у матричных. Несомненным преимуществом перед матричными принтерами является 





низкий уровень шума при работе. Однако следует иметь в виду, что струйные принтеры требуют
высококачественной бумаги. В целом, необходимо отметить, что расходные материалы для данной
технологии являются самыми дорогими, по сравнению с принтерами других технологий печати.
По количеству цветов принтеры делятся на:
чёрнобелые;
цветные.
По технологии печати принтеры делятся на:
матричные;
струйные;
лазерные;
По  способу   нанесения   изображения  на   бумагу   принтеры   подразделяются   на   струйные,
матричные лазерные
Принтеры ударного типа
Принтеры   ударного   действия,   ,   создают   изображение   механическим   давлением   на   бумагу
через ленту с красителем. В качестве ударного механизма применяются либо шаблоны символов
(типы), либо иголки, конструктивно объединенные в
матрицы.
Когдато самый распространенный тип принтера.
Принцип печати – как у пишущей машинки:
маленькие иголочки ударяют через красящую ленту
по бумаге, образуя изображение. Чем больше
иголочек, тем выше качество печати. Некоторые
модели могут печатать в цвете (при наличии
цветного картриджа), но невысокое качество печати
делает эту возможность малополезной.
Главные достоинства матричных принтеров –
дешевизна расходных материалов и неприхотливость
к типу используемой бумаги, возможность печати
под копирку в несколько слоев.
Недостатки – невысокое качество печати и шум, издаваемый при работе. В общем случае, покупать
матричные принтеры сегодня смысла нет. Но бывают ситуации, когда такие принтеры незаменимы:
например, когда надо печатать на конвертах или готовых бланках из плохой бумаги.
Характеристики:
Разрешение – 72–360 dpi
Количество цветов – Один цвет (правда, есть матричные принтеры с многоцветной
красящей лентой)
Быстродействие – Маленькое (до 1500 строк в минуту)
В  матричных   принтерах
изображение   формируется   несколькими   иголками,
расположенными в головке принтера. Иголки обычно активизируются электромагнитным методом.
Каждая   ударная   иголка   приводится   в   движение   независимым   электромеханическим
преобразователем на основе соленоида. Принцип действия иглы матричного принтера показан на рис.
7.1. Головка двигается по горизонтальной направляющей и управляется шаговым двигателем. Бумага
втягивается валом, а между бумагой и головкой принтера располагается красящая лента. Многие
принтеры выполняют печать как при прямом, так и при обратном ходе.
Качество   печати   матричных   принтеров   определяется   количеством   иголок   в   печатающей
головке:   от   9   до   24.   К   числу   несомненных   преимуществ   матричных   принтеров   относится
возможность печати одновременно нескольких копий документа с использованием копировальной
бумаги. Существенным  недостатком  матричных   принтеров   как   принтеров   ударного   действия
является  шум,   который   достигает  58   дБ.   В   настоящее   время   матричные   принтеры   широкого
практического применения уже не находят.
Струйные принтеры
Изображение получается путем “набрызгивания” краски на бумагу. Такой метод позволяет добиться
очень неплохого качества печати, в том числе цветной (для этого нужен отдельный цветной
картридж – он не всегда входит в комплект поставки принтера!). Но требует специальной бумаги:
краска не должна расплываться по листу кляксами и в то же время достаточно быстро впитываться,
чтобы не размазаться следующим печатаемым листом. Впрочем, даже при хорошей бумаге надо
обращаться со свежеотпечатанным листом очень осторожно, чтобы не смазать краску. Но главный
недостаток – дороговизна картриджей. Зато сами принтеры относительно дешевы.
Основное достоинство – сравнительная дешевизна устройства, основной недостаток – дороговизна
расходных материалов.
Характеристики:



Разрешение – До 1440 dpi
Количество цветов – Один цвет (чёрный) или четыре цвета (модель печати CMYK)
Быстродействие – Печать в режиме нормального качества составляет 34 ppm.
Цветная печать немного д
По принципу действия струйные принтеры отличаются от матричных безударным режимом
работы за счет того, что их печатающая головка представляет собой набор не игл, а тонких сопел,
диаметры которых составляют десятые доли миллиметра. В этой же головке установлен резервуар с
жидкими чернилами, которые через сопла, как микрочастицы, переносятся на материал носителя.
Хранение   чернил   обеспечивается   двумя   конструктивными   решениями.   В   одном   из   них   головка
принтера   объединена   с   резервуаром   для   чернил,   причем   замена   резервуара   с   чернилами
одновременно   связана   с   заменой   головки.   Другое   предусматривает   использование   отдельного
резервуара, который через систему капилляров обеспечивает чернилами головку принтера.
Хотя  струйный   принцип   печати   известен   уже   давно,   устройства   с   его  использованием   не
нашли   бы   столь   широкого   применения,   если   бы   не   изобретение,   ставшее   основой   для
распространения струйной технологии. Качество струйной цветной печати таково, что полученный
полноцветный плакат практически невозможно отличить от изданного в типографии.
Уровень шума, создаваемый только двигателем, управляющим головкой струйного принтера,
значительно ниже, чем у матричных принтеров, и составляет около 40 дБ.
Скорость печати  струйного принтера, как и матричного, зависит от качества печати. При
черновой печати струйный принтер по скорости значительно превосходит матричный. При печати в
режиме с типографским качеством скорость значительно снижается. Цветная печать выполняется с
еще   меньшей   скоростью.   Отдельные   модели   струйных   принтеров   обеспечивают   скорость   до  15
страниц в минуту.
Разрешение струйных принтеров при печати графики достигает 2400x1200 dpi.
Качество печати струйного принтера в сравнении с матричным значительно выше, особенно
при   выводе   на   печать   шрифта.   Для   моделей   струйных   принтеров   с   большим   числом   сопел
характерно достижение качества печати лазерного принтера. Большое влияние на качество струйной
печати оказывает качество бумаги и чернил.
Бумага  для   струйных   принтеров   с   плотностью   от   60   до   135   г/м2   позволяет   получить
достаточно высокое качество печати, причем может быть использована бумага для ксероксов (80
г/м2). В струйных принтерах, в отличие от матричных, бумага в рулоне не применяется, а несколько
копий на струйном принтере можно получить только с помощью многократной печати одного и того
же документа.
Чернила,   применяемые   для   заправки   картриджа   струйных   принтеров,   должны   быть
специальными, предназначенными именно для данной модели принтера. Только в этом случае можно получить высокое качество печати и не испортить печатающую головку. Для повышения качества
печати за счет снижения растекания чернил используются различные технические решения.
Основным  недостатком  струйных принтеров является  засыхание чернил  внутри сопла. В
этом   случае   необходимо   заменять   печатающую   головку.   Принтеры   некоторых   типов   нельзя
выключать   во  время  эксплуатации,  поскольку  в  головке,  оставшейся  в  промежуточной  позиции,
происходит   интенсивное   засыхание   чернил.   Многие   модели   струйных   принтеров   имеют   режим
парковки, при котором печатающая головка возвращается в исходное положение внутри принтера,
что   предотвращает   засыхание   чернил.   В   некоторых   струйных   принтерах   имеются   специальные
устройства очистки сопел.
Подключение струйных принтеров к ПК производится через LTPпорт или через порт USB,
которым, как правило, оснащены все компьютеры с процессорами Pentium III, IV и Celeron. Данные
по USBшине передаются быстрее, что позволяет несколько увеличить скорость печати.
Лазерные принтеры являются самыми эффективными с точки зрения стоимости печати страницы. В
настоящее время преобладают в чернобелой печати.
Принцип действия следующий:
Сначала на всю поверхность барабана с фотопроводящим покрытием наносится положительный
заряд, обычно с помощью коронирующего электрода. Потом некоторые участки барабана
освещаются лазерным лучом, что приводит к снятию заряда в этих местах. Затем поверхность
барабана проходит через порошкообразный тонер, положительно заряженные частички которого
отталкиваются от заряженных участков барабана и прилипают к незаряженным. После этого тонер с
барабана переносится на бумагу, которая для этого предварительно заряжается отрицательно с
помощью другого коронирующего электрода. Бумага потом подвергается нагреву, при котором
частички тонера прочно приплавляются к ней.
Основные достоинства – высокая четкость и быстрота печати, основной недостаток – сравнительная
дороговизна самих устройств (особенно цветных).
Характеристики:
Разрешение – 600–1200 dpi
Количество цветов – Как правило, одноцветная печать
Быстродействие – До 12 ppm



Фотоэлектронные принтеры
Фотоэлектронные способы печати основаны на освещении заряженной светочувствительной
поверхности   промежуточного   носителя   и   формировании   на   ней   изображения   в   виде
электростатического рельефа, притягивающего частицы красителя, которые далее переносятся на
бумагу. Для освещения поверхности промежуточного носителя в лазерных принтерах используют
полупроводниковый лазер, в светодиодных — светодиодную матрицу, в
Таким образом, лазерный чернобелый принтер рекомендуется использовать для получения
высококачественной чернобелой распечатки, а для цветного изображения оптимальным является
применение цветного струйного принтера.
Уровень шума лазерного принтера составляет в среднем 40 дБ, причем в режиме offline это
значение меньше.
Разрешение  лазерного   принтера   по   горизонтали   и   по   вертикали   зависит   от   следующих
факторов.   Вертикальное   разрешение   определяется   шагом   вращения   барабана   и   в   основном
составляет   1/300—1/600   дюйма   (1   дюйм   =   2,54   см).   Горизонтальное   разрешение   определяется
числом точек в одной строке и ограничено точностью фокусировки лазерного луча. Многие модели
 2400   х   1200   dpi
лазерных   принтеров   имеют   «несимметричное   разрешение»,   например,
(горизонтальное разрешение х вертикальное разрешение).
Скорость печати  лазерного принтера измеряется в страницах в минуту и зависит от двух
факторов: времени механической протяжки бумаги и скорости обработки данных, поступающих от
ЭВМ, при формировании растровой страницы для печати. Как правило, лазерный принтер оснащен
собственным   процессором.   Скорость   печати   определяется   не   только   работой   процессора,   но   и
существенно зависит от объема памяти, которой оснащен принтер. Память  лазерного   принтера,   который   обрабатывает   информацию   постранично,   должна
обеспечивать большое количество вычислений. Например, при разрешении 300 х 300 dpi на странице
формата А4 насчитывается почти 9 млн точек, а при разрешении 1200 х 1200 — более 140 млн. В
основном используют принтеры с памятью от  8 до 16 Мбайт, причем цветные лазерные принтеры
обладают   еще   большей   памятью.   Сетевой   лазерный   принтер   имеет   еще   и   внешнюю   память
(винчестер).
Интерфейс лазерных принтеров фирмы HewlettPackard выполнен в основном в виде USB
порта, а фирмы Samsung — еще и в виде LTPпорта. В отдельных моделях лазерных принтеров
применяется   беспроводный   интерфейс   на   основе   инфракрасных   приемопередатчиков,   который
позволяет передавать файлы без кабеля.

file_name: тема 1 вопрос 30.doc

intro:
Принтеры — устройства вывода данных из ЭВМ, преобразующие информационные ASCII-коды в соответствующие им графические символы и фиксирующие эти символы на бумаге.
В настоящее время существуют различные варианты классификации принтеров, которые могут развиваться и усложняться ввиду развития модельного ряда этих устройств. наиболее значимым характеристикам современных принтеров. являются:
• принцип работы печатающего механизма;
• максимальный формат листа;
• поддерживаемая цветность печати;

title: Лекция "Классификация и характеристики принтеров"


extracted_text:
тема 1 вопрос 31
система ввода – вывода структура с одним общим интерфейсом
Структура с одним общим интерфейсом предполагает наличие общей шины, к которой
подсоединяются все модули, в совокупности образующие ЭВМ: процессор, оперативная и
постоянная память и периферийные устройства. В каждый данный момент через общую
шину может происходить обмен данными только между одной парой присоединенных к ней
модулей. Таким образом, модули ЭВМ разделяют во времени один общий интерфейс,
причем процессор выступает как один из модулей систем
Структура с одним общим интерфейсом
Структура  с   одним   общим   интерфейсом  предполагает   наличие   общей   шины,   к
которой   подсоединяются   все   модули,   в   совокупности   образующие   ЭВМ:   процессор,
оперативная и постоянная память и периферийные устройства. В каждый данный момент
через   общую   шину   может   происходить   обмен   данными   только   между   одной   парой
присоединенных к ней модулей. Таким образом, модули ЭВМ разделяют во времени один
общий интерфейс, причем процессор выступает как один из модулей системы (рис. 8).БУ –
блок управления
Периферийные   устройства   подсоединяются   к   общей   шине   с   помощью   блоков
управления периферийными устройствами (контроллеров), осуществляющих согласование
форматов данных периферийных устройств с форматом, принятым для передачи по общей
шине.
Если в периферийном устройстве операции вводавывода производятся для отдельных
байтов   или   слов,   то   используется   программноуправляемая   передача   данных   через
процессор и под его управлением. Конструкция контроллера при этом сильно упрощается.
Для периферийных устройств с поблочной передачей данных (ЗУ на дисках, лентах и
др.) применяется прямой доступ к памяти (ПДП) и контроллеры ПДП.
При общем интерфейсе аппаратура управления вводомвыводом рассредоточена по
отдельным   модулям   ЭВМ.   Процессор   при   этом   не   полностью   освобождается   от
управления операциями вводавывода. Более того, на все время операции передачи данных
интерфейс оказывается занятым, а связь процессора с памятью блокированной.

file_name: тема 1 вопрос 31.docx

информатика

group: Дисциплины

title: Лекция "система ввода – вывода структура с одним общим интерфейсом"


extracted_text:
тема 1 вопрос 32
система ввода – вывода структура  с каналами вводавывода
Структура системы с процессорами (каналами) вводавывода применяется в
высокопроизводительных ЭВМ. В таких ЭВМ система вводавывода строится путем централизации
аппаратуры управления вводомвыводом на основе применения программноуправляемых
процессоров (каналов) вводавывода. Обмен информацией между памятью и периферийным
устройством осуществляется через канал вводавывода (рис. 9).
Каналы вводавывода полностью освобождают процессор от управления операциями вводавывода.
В вычислительной машине с каналами вводавывода форматы передаваемых данных неоднородны,
поэтому необходимо использовать в ЭВМ несколько специализированных интерфейсов.
Можно выделить четыре типа интерфейсов: интерфейс основной памяти, интерфейс процессор
каналы, интерфейсы вводавывода, интерфейсы периферийных устройств (малые интерфейсы).
Через интерфейс основной памяти производится обмен информацией между памятью, с одной
стороны, и процессором и каналами – с другой.
Интерфейс процессорканалы предназначается для передачи информации между процессорами и
каналами вводавывода.
Через интерфейс вводавывода происходит обмен информацией между каналами и блоками
управления периферийных устройств.
Основные параметры интерфейсов
 Интерфейсы характеризуются следующими параметрами:
1. Пропускная способность интерфейса  это количество информации, которое может быть
передано через интерфейс в единицу времени (имеет диапазон от десятков байт до сотен мегабайт).
2. Максимальная частота передачи информационных сигналов через интерфейс лежит в
диапазоне от десятков герц до тысяч мегагерц.
3. Максимально допустимое расстояние между соединяемыми устройствами имеет диапазон
от десятков сантиметров до нескольких километров при использовании оптоволоконных линий.
4. Динамические параметры интерфейса – время передачи отдельного слова и блока данных с
учетом продолжительности процедур подготовки и завершения передачи. Эти параметры особенно
важны для систем реального времени.
5. Общее число линий (проводов) в интерфейсе.
6. Информационная ширина интерфейса  число бит данных, передаваемых параллельно через
интерфейс. Различные интерфейсы имеют ширину 1, 8, 16, 32, 64, 128 или 256 бит.
7. Связность интерфейса: интерфейс может быть односвязным, когда существует лишь
единственный путь передачи информации между парой устройств машины, и многосвязным,
позволяющим устройствам обмениваться информацией по нескольким независимым путям.
Многосвязность интерфейсов требует дополнительной аппаратуры, но повышает надежность и
живучесть вычислительной машины, обеспечивает возможность автоматической реконфигурации
вычислительного комплекса при выходе из строя отдельных устройств.

file_name: тема 1 вопрос 32.docx

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

title: Лекция "система ввода – вывода структура  с каналами ввода-вывода"


extracted_text:
тема 1 вопрос 33
прямой доступ к памяти
В системах вводавывода ЭВМ используется два основных способа организации передачи
данных между памятью и периферийными устройствами: программноуправляемая передача и
прямой доступ к памяти.
Программноуправляемая передача данных осуществляется при непосредственном участии и
под управлением процессора, который при этом выполняет специальную подпрограмму процедуры
вводавывода. Данные между памятью и периферийным устройством пересылаются через процессор.
Операция вводавывода инициируется текущей командой программы или запросом прерывания от
периферийного устройства. При этом процессор на все время выполнения операции вводавывода
отвлекается от выполнения основной программы.
Кроме того, при пересылке блока данных процессору приходится для каждой единицы
передаваемых данных выполнять несколько команд, чтобы обеспечить буферизацию, преобразование
форматов данных, подсчет количества переданных данных, формирование адресов в памяти и т.п.
Это сильно снижает скорость передачи данных (не выше 100 Кб/сек), что недопустимо при работе с
высокоскоростными ПУ.
Между тем, потенциально возможная скорость обмена данными при вводевыводе определяется
пропускной способностью памяти. Для быстрого вводавывода блоков данных используется прямой
доступ к памяти (DMA – Direct Memory Access).
Прямой доступ к памяти (ПДП) – система для быстрой передачи данных между памятью и
периферийным устройством, минуя процессор.
При этом МП освобождается от участия в обмене данными. ОЗУ связывается с МП и с
аппаратурой, руководящей обменом данных, разными шинами. Обмен данными полностью
управляется с помощью аппаратных средств. Инициатором обмена данными является ПУ, которое
посылает запрос об обмене данными на флажок запроса ПДП. Флажок запроса активизирует блок
ПДП. Блок ПДП посылает в память сигнал чтения или записи и определяет ячейку ОЗУ, с которой
начнется обмен данными. Блок ПДП посылает эти сигналы, после того, как получит от МП сигнал
подтверждения. Регистр данных передает данные из ОЗУ в ПУ и из ПУ в ОЗУ. При ПДП процессор
освобождается от управления операциями ввода  вывода и может параллельно выполнять основную
программу. ПДП обеспечивает более высокое быстродействие и более высокую производительность
работы ЭВМ.
Прямым доступом к памяти управляет контроллер ПДП, который выполняет следующие
функции:
1. Управление инициируемой процессором или ПУ передачей данных между ОП и ПУ.
2. Задание размера блока данных, который подлежит передаче, и области памяти, используемой
при передаче.
операции вводавывода.
3. Формирование адресов ячеек ОП, участвующих в передаче.
4. Подсчет числа переданных единиц данных (байт или слов) и определение момента завершения
Указанные функции реализуются контроллером ПДП с помощью одного или нескольких
буферных регистров, регистра – счетчика текущего адреса данных и регистра – счетчика
подлежащих передаче данных.
При инициировании операции вводавывода в счетчик подлежащих передаче данных заносится
размер передаваемого блока (число байт или слов), а в счетчик текущего адреса  начальный адрес
области памяти, используемой при передаче. При передаче каждого байта содержимое счетчика
адреса увеличивается на 1, при этом формируется адрес очередной ячейки памяти, участвующей в
передаче. Одновременно уменьшается на 1 содержимое счетчика подлежащих передаче данных;
обнуление этого счетчика указывает на завершение передачи.
В компьютерах, совместимых с IBM PC и PC/XT, для организации прямого доступа в память
используется одна 4канальная микросхема 8237, канал 0 которой предназначен для регенерации
динамической памяти. Каналы 2 и 3 предназначены для управления высокоскоростной передачей данных между дисководами гибких дисков, винчестером и оперативной памятью соответственно.
Только канал 1 доступен для дополнительного оборудования.
IBM РС/АТ – совместимые компьютеры имеют уже 7 каналов прямого доступа к памяти. В
первых компьютерах это достигалось каскадным включением двух микросхем 8237, как и в случае
контроллеров прерываний. Поскольку прямой обмен данными между оперативной памятью и
периферийными устройствами в IBM PCсовместимых компьютерах имеет некоторые существенные
ограничения (в том числе и по скорости), то в PC/AT задействован только канал 2 – для обмена с
приводом флоппидиска. Заметим, что для первых четырех каналов ПДП
(0–3) передача данных осуществляется побайтно, а для каналов 5–7 – 16
разрядными словами.
Контроллер ПДП обычно имеет более высокий приоритет в занятии цикла обращения к памяти
по сравнению с процессором. Управление памятью переходит к контроллеру ПДП, как только
завершается цикл обращения к памяти для текущей команды процессора.
Прямой доступ к памяти обеспечивает высокую скорость обмена данными за счет того, что
управление обменом производится не программными, а аппаратными средствами

file_name: тема 1 вопрос 33.docx

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

title: Лекция "прямой доступ к памяти"


extracted_text:
тема 1 вопрос 34
многопроцессорные вычислительные системы
Многопроцессорная вычислительная система (МПВС) – это система (комплекс), включающий в себя
два или более процессоров, имеющих общую ОП, общие периферийные устройства и работающих под
управлением единой ОС, которая, в свою очередь, осуществляет общее управление техническими и
программными средствами комплекса. При этом каждый из процессоров может иметь
индивидуальные, доступные только ему ОЗУ и периферийные устройства.
Следует отметить, что МПВС в аппаратном плане значительно более сложны чем ММВС. При этом
основная функция по организации вычислительного процесса возлагается на ОС, что значительно
осложняет ее построение.
Однако, несмотря на все трудности, связанные с аппаратной и программной реализацией, МПВС
получают все большее распространение, так как обладают рядом достоинств, основные из которых:
∙ высокая надежность и готовность за счет резервирования и возможности реконфигурации;
∙ высокая производительность за счет возможности гибкой организации параллельной обработки
информации и более полной загрузки всего оборудования;
∙ высокая экономическая эффективность за счет повышения коэффициента использования
оборудования комплекса.
Существует три типа структурной организации МПВС: с общей шиной; с перекрестной коммутацией;
с многовходовыми ОЗУ.
В МПВС с общей шиной проблема связей всех устройств между собой решается крайне просто: все
они соединяются общей шиной, по которым передаются информация, адреса и сигналы управления
(рис. 3.2). Интерфейс является односвязным, т. е. обмен информацией в любой момент времени может
происходить только между двумя устройствами. Если потребность в обмене существует более чем у
двух устройств, то возникает конфликтная ситуация, которая разрешается с помощью системы
приоритетов и организации очередей в соответствии с этим. Обычно функции арбитра выполняет либо
процессор, либо специальное устройство, которое регистрирует все обращения к общей шине и
распределяет шину во времени между всеми устройствами комплекса.
Рис. 20. МПВС с общей шиной
Достоинством такой структуры является простота, в том числе изменения комплекса, а также
доступность модулей ОЗУ для всех остальных устройств.
Недостатками является невысокое быстродействие (одновременный обмен информацией возможен
между двумя устройствами, не более), относительно низкая надежность системы изза наличия общего
элемента – шины. МПВС с перекрестной коммутацией лишены недостатков, присущих МПВС с общей шиной. В таких
МПВС все связи между устройствами осуществляются с помощью коммутационной матрицы (рис.
21.). Коммутационная матрица (КМ) позволяет связывать друг с другом любую пару устройств,
причем таких пар может быть сколько угодно: связи не зависят друг от друга.
Многопроцессорные вычислительные системы, состоящие из взаимосвязанных процессоров с общей
оперативной памятью, в этом смысле выглядят, пусть в упрощенной качественной оценке,
потенциально предпочтительнее: обмен информацией между фрагментами задачи может быть
осуществлен с помощью внутрисистемного интерфейса непосредственно между процессорами или
через общую область оперативной памяти. Разумеется, и здесь возникают дополнительные временные
затраты на организацию параллельных процессов и их координацию, являющиеся накладными
расходами по отношению к времени собственно полезного счета задачи. Уменьшение этих затрат
путем минимизации участия операционной системы МВС при взаимодействии фрагментов одной и той
же задачи является одним их важнейших резервов для уменьшения времени счета задачи в целом. В
книге рассматривается один из путей решения этой проблемы  организация вычислительного
процесса на уровне параллельнопоследовательных фрагментов задачи, получивших название
ветвей. [1]
Использование многопроцессорных вычислительных систем терафлопной производительности
позволяет реализовать новые, более точные ( а следовательно, и более трудоемкие) физико
математические модели описания поведения плазмы в широких диапазонах современных приложений,
в том числе в задачах управляемого термоядерного синтеза. Изучение свойств высокотемпературной
неравновесной плазмы, уточнение моделей взаимодействия с видами излучений и электромагнитными
полями составляют важный раздел современных вычислительных приложений. Одним из таких
приложений являются течения плазмы в каналах при наличии магнитных полей. Это сложные
многомерные ( зачастую нестационарные) задачи, решение которых требует больших вычислительных
ресурсов. [2]
Описанные архитектуры многопроцессорных вычислительных систем могут реализоваться в помощью
нескольких однопроцессорных ЭВМ. В этом случае получаются многомашинные вычислительные
системы. Но при этом следует помнить, что для соединения двух и более ЭВМ требуются
специальные согласующие средства  адаптеры, что усложняет задачу. [3]
Создание и применение многопроцессорных вычислительных систем, предназначенных для решения
актуальных фундаментальных и прикладных задач, открывает новые возможности для проведения
комплексного вычислительного моделирования в ведущих направлениях механики. [4]
Для повышения производительности многопроцессорной вычислительной системы ( ВС) с массовым
параллелизмом необходимо иметь возможность программировать в структуре универсальной
многопроцессорной ВС архитектуру виртуальной проблемноориентированной ВС, соответствующей
решаемой задаче. [5]
Применение БИС позволяет строить многопроцессорные вычислительные системы. [6]
С какой целью создаются многомашинные и многопроцессорные вычислительные системы и
комплексы. [7]
Эксперименты проводились на фрагменте многопроцессорной вычислительной системы, в состав
которого входят 3 микропроцессора Alpha 21164 / 600 МГц, связанных высокоскоростной
коммутационной сетью Myrinet с пропускной способностью до 320 Мбайт / сек. [8] При решении задач на многопроцессорных вычислительных системах несколько процессов могут
одновременно потребовать одного и того же ресурса ( процессора, канала, таблицы), который
предоставляется только одному из них. Такая ситуация называется конфликтом, а ресурс
неделимым. [9]
Электронные машины Единой системы и многопроцессорные вычислительные системы станут
основной технической базой вычислительных центров всех уровней на текущую и последующие
пятилетки. В области периферийных устройств на это время намечается значительно расширить их
номенклатуру и повысить их качественные показатели. Планируется выпуск магнитных дисков
большой емкости ( 100 Мбайта выше), серийное производство буквенноцифровых и графических
дисплеев. Будет значительно расширена комплектация ЭВМ пакетами дисков, лентопротяжными
устройствами, устройствами быстрой печати, дисплеями, что позволит увеличить загрузку ЭВМ. [10]
Следует подчеркнуть, что применение многопроцессорных вычислительных систем требует учета и
освоения специфики параллельной обработки, в том числе и в самих вычислительных алгоритмах и в
прикладном программировании. Хотя на сегодня уже имеется значительный положительный опыт в
решении сложных задач на этих системах, однако существуют и объективные трудности в
переосмыслении традиционных вычислительных подходов при построении параллельных алгоритмов.
На это необходимо обратить внимание в соответствующих образовательных программах. [11]
Напомним, что суперкомпьютер  это многопроцессорная вычислительная система,
производительность которой получена за счет глубочайшего распараллеливания процесса вычислений
по всем процессорам системы. Реализовать такое распараллеливание помогает искусство
программиста, от которого зависит производительность суперкомпьютера при решении той или иной
задачи. Создание программы для суперкомпьютера требует не только искусства, но и больших
временных затрат. Именно поэтому при решении специальных задач иногда приходится отказываться
от услуг универсального суперкомпьютера, а создавать специальные компьютеры, моделирующие
интересующие процессы. Например, для расчета орбит взаимодействующих планет Солнечной
системы был создан специализированный компьютер Digital Orrery. [12]
Кроме названных ЭВМ, предусматривается разработать многопроцессорные вычислительные системы
с быстродействием на многие десятки миллионов операций в секунду. Указанные вычислительные
системы будут использованы при решении сложных научнотехнических задач, а также при создании
территориальных вычислительных центров коллективного пользования с обслуживанием ими
нескольких тысяч предприятий и организаций. [13]
В рамках машин четвертого поколения создаются многопроцессорные вычислительные системы с
быстродействием в несколько десятков или сотен миллионов операций в секунду и
многопроцессорные управляющие комплексы повышенной надежности. [14]
К четвертому поколению также относится и многопроцессорная вычислительная система ПС2000,
содержащая до 64 процессоров, управляемых общим потоком команд, в которой при
распараллеливании процесса выполнения программ может быть достигнуто суммарное
быстродействие до 200 млн. операций / с ( см. гл. [15]

file_name: тема 1 вопрос 34.docx

title: Лекция " многопроцессорные вычислительные системы"


extracted_text:
тема 1 вопрос 35
многомашинные вычислительные системы
Многомашинная вычислительная система ( рис. 10.21, а) содержит несколько ЭВМ, каждая из
которых имеет свою основную память и работает под управлением своей операционной системы, а
также средства обмена информацией между машинами. Применение многомашинных систем
позволяет повысить надежность вычислительных комплексов, однако при этом оборудование
комплекса недостаточно эффективно используется для этой цели. Достаточно в каждой ЭВМ выйти
из строя одному устройству ( даже разных типов), как вся система становится неработоспособной. [1]
Многомашинная вычислительная система содержит две или более одинаковых или разных ЦВМ,
каждая со своими каналами и периферийными устройствами, связанных между собой через
устройство обмена информацией. [2]
Многомашинные вычислительные системы представляют собой логическое следствие эволюции двух
общих тенденций, действующих в области конструирования вычислительных машин: стремления к
модульной конструкции и организации одновременной ( параллельной) работы различных устройств
машины. Эти две тенденции и привели к перерастанию системы модулей отдельной ЭВМ в систему
самостоятельных вычислительных средств, которые могут выполнять одновременно различные части
одной большой задачи или различные задачи одной системы. [3]
Многомашинная вычислительная система представляет собой комплекс из двух или более ЭВМ,
связанных между собой либо общей разделяемой памятью, либо линиями передачи информации. [4]
Многомашинные вычислительные системы  это системы, содержащие несколько одинаковых или
различных, относительно самостоятельных компьютеров, связанных между собой через устройство
обмена информацией, в частности, по каналам связи. В последнем случае речь идет об
информационновычислительных сетях. [5]
В многомашинной вычислительной системе  ЭВМ, выполняющая программы под управлением
главной ЭВМ. [6]
В многомашинной вычислительной системе каждый компьютер, входящий в систему, имеет
классическую архитектуру. Такая система применяется достаточно широко, однако эффект от ее
применения может быть получен только при решении задач, имеющих специальную структуру: она
должна разбиваться на столько слабо связанных подзадач, сколько компьютеров в системе. [7]
В многомашинных вычислительных системах  одна из ЭВМ, осуществляющая планирование и
организацию работ в системе. [8]
В многопроцессорных и многомашинных вычислительных системах используются в основном
параллельные интерфейсы для сопряжения отдельных устройств в ЭВМ, и только в отдельных
случаях применяются последовательные интерфейсы для подключения периферийных устройств.
Параллельные интерфейсы обеспечивают в первую очередь передачу сигналов прерывания, а также
отдельных слов ( команд) и блоков данных между сопрягаемыми ЭВМ и устройствами. [9]
Рабочий режим многомашинной вычислительной системы, в которой вся основная память и большая
часть устройств внешней памяти являются общими для всех центральных процессоров. [10]
Структура многомашинной системы с непосредственными связями.
Основными вариантами многомашинных вычислительных систем с применением микро  ЭВМ
являются системы с непосредственной связью и с общей памятью. [11]
Современные сложные системы обработки информации используют в качестве технической базы
многомашинные вычислительные системы и вычислительные сети. Их структурные характеристики
определяют исходя из выполняемых функций по обработке, хранению, передаче и отображению
информации, а также реализации этих функций на конкретной технической основе. [12]
Чтобы управлять большим числом объектов, вычислительный комплекс выполнен в виде
многомашинной вычислительной системы, состоящей из нескольких машин, связанных каналами
обмена информацией. [13]
Многопрограммные ЭВМ в большей степени приспособлены для построения на их базе
многопроцессорных и многомашинных вычислительных систем. Многомашинная вычислительная система (ММВС) – система (комплекс), включающая в себя две или
более ЭВМ (каждая из которых имеет процессор, ОЗУ, набор периферийных устройств и работает под
управлением собственной ОС), связи между которыми обеспечивают выполнение функций,
возложенных на ММВС.
По характеру связей между ЭВМ ММВС можно разделить на три типа: косвенно, или
слабосвязанные; прямосвязанные; сателлитные.
В косвенно, или слабосвязанных ММВСЭВМ связаны друг с другом только через внешние
запоминающие устройства (ВЗУ). Структурная схема такого ММВС приведена на рис. 3.1. (при трех и
более ЭВМ комплексы строятся аналогичным образом). В косвенносвязанных системах связь между
ЭВМ осуществляется только на информационном уровне. Такая организация связей обычно
используется в тех случаях, когда необходимо повысить надежность комплекса путем резервирования
ЭВМ. В этом случае может быть несколько способов организации работы ММВС:
∙ Резервная ЭВМ находится в выключенном состоянии (ненагруженный резерв) и включается только
при отказе основной ЭВМ.
∙ Резервная ЭВМ находится в состоянии полной готовности и в любой момент может заменить
основную ЭВМ (нагруженный резерв), причем либо не решает никаких задач, либо работает в режиме
самоконтроля, решая контрольные задачи.
∙ Для того чтобы полностью исключить перерыв в выдаче результатов, обе ЭВМ, и основная и
резервная, решают одновременно одни и те же задачи, но результаты выдаст только основная ЭВМ, а в
случае выхода се из строя результаты начинает вы давать резервная ЭВМ.
Рис. 19. Связи ЭВМ в составе ММВС
Прямосвязанные ММВС обладают существенно большой гибкостью. В ММВС существуют три вида
связей (рис. 19): общее ОЗУ (ООЗУ); прямое управление, иначе связь процессор – процессор; адаптер
канал – канал (АКК).
Связь через ООЗУ значительно сильнее связи через ВЗУ, вследствие того, что процессоры имеют
прямой доступ к ОЗУ, хотя тоже информационная.
Непосредственная связь между процессорами – канал прямого управления – может быть не только
информационной, но и командной, что, естественно, улучшает динамику перехода от основной ЭВМ к
резервной и позволяет осуществлять более полный взаимный контроль ЭВМ.
Связь через адаптер канал – канал обеспечивает достаточно быстрый обмен информацией между
ЭВМ, при этом обмен может производиться большими массивами информации. В отношении скорости
передачи информации связь через АКК мало уступает связи через общее ОЗУ, а в отношении объема
передаваемой информации – связи через общее ВЗУ.
Прямосвязанные ММВС позволяют осуществлять все способы организации работы ММВС,
характерные для слабосвязанных ММВС, но значительно более эффективно.
Для ММВС с сателлитными связями ЭВМ характерным является не способ связи, а принципы
взаимодействии ЭВМ. Структура связей в сателлитных ММВС не отличается от вышерассмотренных
(чаще используется АКК). Особенностью этих ММВС является то, что в них, вопервых, ЭВМ
существенно различаются по своим характеристикам, а вовторых, имеет место определенная
соподчиненность машин и различие функций, выполняемых каждой ЭВМ. Основная ЭВМ (чаще более
высокопроизводительная) предназначена для основной обработки информации. Сателлитная
(подчиненная меньшей производительности) осуществляет организацию обмена информацией основной ЭВМ с периферийными устройствами, ВЗУ, удаленными абонентами и т.д. Некоторые
ММВС могут включать не одну, а несколько сателлитных ЭВМ, при этом каждая из них
ориентируется на выполнение определенных функций.
Сателлитные ММВС значительно увеличивают производительность, не оказывая заметного влияния на
показатели надежности.

file_name: тема 1 вопрос 35.docx

title: Лекция "многомашинные вычислительные системы"


extracted_text:
тема 2 вопрос 1
понятие алгоритма. свойства и основные структуры алгоритма
АЛГОРИТМ И ЕГО СВОЙСТВА
    В основе решения любой задачи лежит понятие алгоритма. Под алгоритмом принято
понимать "точное предписание, определяющее вычислительный процесс, ведущий от
варьируемых начальных данных к искомому результату" (ГОСТ 19.78174).
    При составлении алгоритмов следует учитывать ряд требований, выполнение которых
приводит к формированию необходимых свойств.
    Алгоритм должен быть однозначным, исключающим произвольность толкования любого
из предписаний и заданного порядка исполнения. Это свойство алгоритма называется
определенностью.
    Реализация вычислительного процесса должна через определенное число шагов привести
к выдаче результатов или сообщения о невозможности решения задачи. Это свойство
алгоритма называется результативностью.
    Решение однотипных задач с различными исходными данными можно осуществлять по
одному и тому же алгоритму, что дает возможность создавать типовые программы для
решения задач при различных вариантах задания значений исходных данных. Это свойство
алгоритма называется массовостью.
    Предопределенный алгоритмом вычислительный процесс можно расчленить на
отдельные этапы, элементарные операции. Это свойство алгоритма называется
дискретностью.
    Алгоритмизация  техника составления алгоритмов и программ для решения задач на
ЭВМ.
ОНЯТИЕ АЛГОРИТМА. СВОЙСТВА АЛГОРИТМА. ВИДЫ АЛГОРИТМОВ.
СПОСОБЫ ОПИСАНИЯ АЛГОРИТМОВ
Алгоритмом называется точное и понятное предписаниe исполнителю совершить
последовательность действий, направленных на решение поставленной задачи. Слово
«алгоритм» происходит от имени математика Аль Хорезми, который сформулировал
правила выполнения арифметических действий. Первоначально под алгоритмом понимали
только правила выполнения четырех арифметических действий над числами. В дальнейшем
это понятие стали использовать вообще для обозначения последовательности действий,
приводящих к решению любой поставленной задачи. Говоря об алгоритме вычислительного
процесса, необходимо понимать, что объектами, к которым применялся алгоритм,
являются данные. Алгоритм решения вычислительной задачи представляет собой
совокупность правил преобразования исходных данных в результатные.
Основными свойствами алгоритма являются:
1. детерминированность (определенность). Предполагает получение однозначного
результата вычислительного процecca при заданных исходных данных. Благодаря
этому свойству процесс выполнения алгоритма носит механический характер;
2. результативность. Указывает на наличие таких исходных данных, для которых
реализуемый по заданному алгоритму вычислительный процесс должен через
конечное число шагов остановиться и выдать искомый результат;
3. массовость. Это свойство предполагает, что алгоритм должен быть пригоден для
решения всех задач данного типа;
4. дискретность. Означает расчлененность определяемого алгоритмом
вычислительного процесса на отдельные этапы, возможность выполнения которых
исполнителем (компьютером) не вызывает сомнений.
Алгоритм должен быть формализован по некоторым правилам посредством конкретных
изобразительных средств. К ним относятся следующие способы записи алгоритмов: словесный, формульнословесный, графический, язык операторных схем, алгоритмический
язык.
Наибольшее распространение благодаря своей наглядности получил графический (блок
схемный) способ записи алгоритмов.
Блоксхемой называется графическое изображение логической структуры алгоритма, в
котором каждый этап процесса обработки информации представляется в виде
геометрических символов (блоков), имеющих определенную конфигурацию в зависимости
от характера выполняемых операций. Перечень символов, их наименование, отображаемые
ими функции, форма и размеры определяются ГОСТами.
При всем многообразии алгоритмов решения задач в них можно выделить три основных
вида вычислительных процессов:



линейный;
ветвящийся;
циклический.
Линейным называется такой вычислительный процесс, при котором все этапы решения
задачи выполняются в естественном порядке следования записи этих этапов.
Ветвящимся называется такой вычислительный процесс, в котором выбор направления
обработки информации зависит от исходных или промежуточных данных (от результатов
проверки выполнения какоголибо логического условия).
Циклом называется многократно повторяемый участок вычислений. Вычислительный
процесс, содержащий один или несколько циклов, называется циклическим. По
количеству выполнения циклы делятся на циклы с определенным (заранее заданным)
числом повторений и циклы с неопределенным числом повторений. Количество повторений
последних зависит от соблюдения некоторого условия, задающего необходимость
выполнения цикла. При этом условие может проверяться в начале цикла — тогда речь идет
о цикле с предусловием, или в конце — тогда это цикл с постусловием.
Свойства алгоритмов:
 понятность;
 дискретность;
 определенность;
 результативность;
 массовость.
войства алгоритмов:
Дискретность (от лат. discretus — разделённый, прерывистый, раздельность) (алгоритм
должен состоять из конкретных действий, следующих в определенном порядке);
Детерминированность (от. лат. determinate – определенность, точность) (любое действие
должно быть строго и недвусмысленно определено в каждом случае);
Конечность (каждое действие и алгоритм в целом должны иметь возможность
завершения);
Массовость (один и тот же алгоритм можно использовать с разными исходными данными);
Результативность (отсутствие ошибок, алгоритм должен приводить к правильному
результату для всех допустимых входных значениях).
Виды алгоритмов:
1. Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке);
2. Циклический алгоритм (описание действий, которые должны повторятся указанное
число раз или пока не выполнено заданное условие);
3. Разветвляющийся алгоритм (алгоритм, в котором в зависимости от условия выполняется
либо одна, либо другая последовательность действий);
4. Вспомогательный алгоритм (алгоритм, который можно использовать в других
алгоритмах, указав только его имя).
Линейный алгоритм – описание действий, которые выполняются однократно в заданном
порядке. Исполнитель выполняет действия последовательно, одно за другим в том порядке
в котором они следуют.
иклический алгоритм
Циклический алгоритм – описание действий, которые должны повторяться указанное
число раз или пока не выполнено заданное условие.
Перечень повторяющихся действий называют телом цикла.
Циклические алгоритмы бывают двух типов:
Циклы со счетчиком, в которых какието действия выполняются определенное число раз;
Циклы с условием, в которых тело цикла выполняется, в зависимости от какоголибо
условия. Различают циклы с предусловием и постусловием.
Циклы со счетчиком используют когда заранее известно какое число повторений тела
цикла необходимо выполнить. Например, на уроке физкультуры вы должны пробежать
некоторое количество кругов вокруг стадиона.
Во многих случаях требуется, чтобы при одних условиях выполнялась одна
последовательность действий, а при других – другая.
 Разветвляющийся алгоритм

file_name: тема 2 вопрос 1.docx

intro:
В основе решения любой задачи лежит понятие алгоритма. Под алгоритмом принято понимать "точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату" (ГОСТ 19.781-74).
    При составлении алгоритмов следует учитывать ряд требований, выполнение которых приводит к формированию необходимых свойств.
    Алгоритм должен быть однозначным, исключающим произвольность толкования любого из предписаний и заданного порядка исполнения. Это свойство алгоритма называется определенностью.

title: Лекция "АЛГОРИТМ И ЕГО СВОЙСТВА"


extracted_text:
способы представления алгоритмов. структурные схемы алгоритмов
тема 2 вопрос 2
    К изобразительным средствам описания алгоритмов относятся следующие основные
способы их представления:
   а) словесный (записи на естественном языке);
   б) структурностилизованный (записи на языке псевдокода);
   в) программный (тексты на языках программирования);
   г) графический (схемы графических символов).
    Словесный способ записи алгоритмов представляет собой описание последовательных
этапов обработки данных и задается в произвольном изложении на естественном языке.
Способ основан на использовании общепринятых средств общения между людьми и, с
точки зрения написания, трудностей для авторов алгоритмов не представляет. Однако для
"исполнителей" такие описания алгоритмов часто неприемлемы. Они строго не
формализуемы, страдают многословностью записей, допускают неоднозначность
толкования отдельных предписаний. Поэтому такой способ описания алгоритмов не имеет
широкого распространения.
    Пример. Записать алгоритм нахождения наибольшего общего делителя двух
натуральных чисел (m и n) на естественном языке.
    При таком словесном способе содержание алгоритма может быть следующим:
    1) если числа равны, то необходимо взять любое из них в качестве ответа, в противном
случае  продолжить выполнение алгоритма;
    2) определить большее из чисел;
    3) заменить большее число разностью большего и меньшего чисел;
    4) повторить алгоритм с начала.
    Структурностилизованный способ записи алгоритмов основан на формализованном
представлении предписаний, задаваемых путем использования ограниченного набора
типовых синтаксических конструкций. Такие средства описания алгоритмов часто
называются псевдокодами. Разновидностью структурностилизованного способа описания
алгоритмов является известный школьникам алгоритмический язык в русской нотации
(АЯРН).
    Пример. Приведем описанный на АЯРН алгоритм решения задачи об определении
принадлежности точки D треугольнику АВС.
    алг Определение принадлежности точки треугольнику (действ xA, yA, хB,  уB, хC, уC,
хD, уD целое z лит а);
   арг хА, уА, хВ, уВ, хС, уС, хD, уD;
   рез z,а;
    нач
    действ S1, S2, S3, S4
    вычислить значение S1, равное площади трка АВС;
    вычислить значение S2, равное площади трка АВD;
    вычислить значение S3, равное площади трка АСD;
    вычислить значение S4, равное площади трка СDВ;
    если S1 = S2+S3+S4
    то z := 1,
а := "точка внутри треугольника",
    иначе z := 0,
а := "точка вне треугольника",
    все
    напечатать значение а:
   кон
    Программный способ записи алгоритмов  это алгоритм, записанный на языке
программирования, позволяющем на основе строго определенных правил формировать
последовательность предписаний, однозначно отражающих смысл и содержание частей
алгоритма с целью их последующего исполнения на ЭВМ. Пример. Программа на языке Бейсик перевода температуры из градусов Цельсия в
градусы Фаренгейта.
   PRINT "Перевод температуры из град. Цельсия в град. Фаренгейта"
   PRINT "Укажите температуру в град. Цельсия"
   INPUT C
   6 IF C = 9999 THEN 7
   F = C*1.8 +32
   PRINT C, F
   GOTO 6
   7 END
    Для графического изображения алгоритмов используются графические символы.
Наиболее распространенными являются блочные символы (блоки), соединяемые линиями
передач управления. Существует государственный стандарт на выполнение графической
записи алгоритма. Графическая запись алгоритма является наиболее наглядной. Перечень
условных графических символов, их наименования, форма, размеры и отображаемые
функции устанавливаются ГОСТ 19.00380. Основные графические символы, используемые
для описания алгоритмов, приведены в литературе [1, 2].
    Схемы могут быть представлены также в виде структограмм или по имени их авторов,
диаграммами Нэсси  Шнейдермана [7].
    На рис. 3 приведена схема алгоритма перевода температуры из шкалы Цельсия в шкалу
Фаренгейта. Перевод осуществляется по формуле:
    Температура по Фаренгейту = (температура по Цельсию) Ч 180/100 +32.
СХЕМЫ АЛГОРИТМОВ
    Использование схем позволяет представить алгоритм в наглядной форме, поэтому они
наиболее часто используются.
    Вычислительный блок представляет собой прямоугольник, в котором записываются
расчетные формулы. Причем формула должна быть записана таким образом, что
вычисляемая переменная записывается слева, далее идет знак равенства (в данном случае
этот знак называется присваиванием), далее  расчетная формула.
    Проверка условия изображается ромбом, внутри которого записывается это условие. В
результате проверки выбирается один из двух возможных путей вычислительного процесса.
    Если условие выполняется, то есть имеет значение ДА, то следующим выполняется этап
по стрелке ДА. Если условие не выполняется, то осуществляется переход по стрелке НЕТ.
    Начало и конец вычислительного процесса изображаются овалом, в котором
записываются слова "Начало" или "Останов".
    При решении задач на ЭВМ исходные данные задаются при вводе в машину. Ввод данных
может осуществляться разными способами, например, с клавиатуры, с перфоленты, с диска
и т. д. Задание численных значений исходных данных мы будем называть вводом, а
фиксацию результатов расчета  выводом. Ввод исходных данных и вывод результатов
изображаются параллелограммом. Внутри него пишется слово "Ввод" или "Вывод" и
перечисляются переменные, подлежащие вводу или выводу.
    Параллелограммом обозначается ввод  вывод, не привязанный к какомулибо
конкретному устройству. Если ввод или вывод осуществляется с использованием
конкретных устройств, то блоки ввода  вывода изображаются с помощью специальных
фигур [2].
    Комментарий используется в тех случаях, когда пояснение не помещается внутри блока.
    По стандарту высота блока равна а, ширина 2а, где размер а выбирается из ряда 10, 15,
20 мм. Блоки "начало" и "конец" имеют высоту 0.5а.
    Линии потока проводят параллельно внешним краям рамки листа. Направление линий
потока сверху вниз и слева направо принимают за основное; если линии потока основного
направления не имеют изломов, то их направление стрелками можно не обозначать. В
остальных случаях направление линий потока обозначать стрелкой обязательно. Записи
внутри символа или рядом с ним должны выполняться машинописью или чертежным
шрифтом и должны быть краткими. В левом верхнем углу в разрыве линий ставится номер
блока. В настоящее время основная тенденция в использовании схем алгоритмов состоит не
столько в указании последовательности операций, сколько в группировании блочных
символов в виде базовых управляющих конструкций. К ним относятся следование,
ветвление и повторение. Основные структуры алгоритмов  это ограниченный набор блоков
и стандартных способов их соединения для выполнения типичных последовательностей
действий. Такие структуры рекомендуются при использовании так называемого
структурного подхода к разработке алгоритмов и программ. Структурный подход
предполагает использование только нескольких основных структур, комбинация которых
дает все многообразие алгоритмов и программ.
АЛГОРИТМЫ ЛИНЕЙНОЙ СТРУКТУРЫ
    Алгоритм линейной структуры (следование)  алгоритм, в котором все действия
выполняются последовательно друг за другом. Такой порядок выполнения действий
называется естественным.
    Рассмотрим несколько примеров.
    Задача 1. Определить площадь треугольника по формуле Герона
   где a, b, c  длины сторон;
   p = (a + b + c)/2  полупериметр треугольника.
    Для того чтобы рассчитать S, необходимо иметь численные значения p, a, b, c. Мы можем
рассчитать p по формуле, а вот значения a, b, c должны быть заданы заранее, иначе задачу
решить невозможно.
    Запишем словесный алгоритм.
    1. Задать численные значения a, b, c.
    2. Вычислить p по формуле:
p = (a + b + c)/2.
    3. Вычислить S по формуле:
    4. Зафиксировать результат.
    Схема представляет собой последовательность блоков, соединенных линиями потоков.
Направление потока задается стрелкой, но стрелка не ставится, если направление потока
сверху вниз и слева направо. В левом верхнем углу в разрыве линий ставится номер блока.
    Внутри блока ввода записывается слово "Ввод" и перечисляются исходные данные
(имена переменных), которые задаются извне. Внутри блока вывода записывается слово
"Вывод" и перечисляются переменные, которые являются результатом расчета.
    Приведем еще один пример схемы алгоритма линейной структуры.
    Задача 2. Вычислить значения функций Y и Z.
    Разработка алгоритма (рис. 5).
    Исходные данные: а, Ь, с. Y и Х должны быть определены раньше, чем Y и  Z так как
входят в расчетную формулу для Y и для Z.
АЛГОРИТМЫ РАЗВЕТВЛЯЮЩЕЙСЯ СТРУКТУРЫ
    На практике редко удается представить схему алгоритма решения задачи в виде
линейной структуры. Часто в зависимости от какихлибо значений промежуточных
результатов необходимо организовать вычисление либо по одним, либо по другим
формулам. Ветвление  такая схема, в которой предусмотрено разветвление указанной
последовательности действий на два направления в зависимости от итога проверки
заданного условия. В схемах такой структуры используется логический блок (рис. 6).
    Задача 2.
    Рассчитать Y.
    Разработка алгоритма. В этой задаче должно быть задано X. Далее анализируется X.
Если X<0, то вычисления производятся по первой формуле, если это условие не
выполняется, то выполняется второе условие X і 0, так как условия X<0 и X і 0
взаимоисключающие, и Y вычисляется по второй формуле.
    Словесный алгоритм решения этой задачи будет выглядеть следующим образом.
    1. Задать численное значение для X.
    2. Проверить условие X<0:
если условие выполняется перейти к п. 5;
если условие не выполняется перейти к п. 3. 3. Вычислить Y по формуле Y = X2.
    4. Перейти к пункту 6.
    5. Вычислить Y по формуле Y = X.
    6. Зафиксировать вычисленное Y.
    Схема данного алгоритма представлена на рис. 6.
    Рекомендуется под словом "нет" записывать условие, противоположное проверяемому.
    Задача 4. Вычислить значение функции Z = Х /Y, где Y = sin(nX) + 0.5.
    Разработка алгоритма. Казалось бы решение этой задачи можно описать алгоритмом
линейной структуры. Однако, для удовлетворения свойств массовости и результативности
алгоритма необходимо, чтобы при любых исходных данных был получен результат или
сообщение о том, что задача не может быть решена при заданных исходных данных.
Действительно, если Y = 0, задача не может  быть решена. Поэтому в алгоритме
необходимо предусмотреть этот случай и выдать в качестве результата информацию о том,
что Y = 0. Рассматриваемый вычислительный процесс должен иметь две ветви: в одной,
если Y № 0, необходимо вычислить значение переменной Z, а в другой  дать информацию
Y = О (рис. 7).
    Если условие Y = О, выполняется, то работает блок 6, т.е. осуществляется вывод
сообщения о равенстве Y нулю. После блока 6 сразу же выполняется блок  8  решение
заканчивается. Если условие Y = 0 не выполняется, это значит, что  выполняется условие Y
№ 0 и мы должны рассчитать Z и вывести его.
АЛГОРИТМЫ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ
    Алгоритмы, отдельные действия в которых многократно повторяются, называются
алгоритмами циклической структуры (повторение). Совокупность действий алгоритма,
связанную с повторением, называют циклом.
Алгоритмы циклической структуры
Алгоритмы, отдельные действия в которых многократно
повторяются, называются алгоритмами циклической структуры
(повторение). Совокупность действий алгоритма, связанную с
повторением, называют циклом. На рис. 10 представлена схема
алгоритма циклической структуры. Блоки 3, 4, образующие тело цикла,
повторяются многократно. Сколько раз? Бесконечное количество. При
каждом расчете к предыдущему значению X прибавляется 2, далее
следует возврат к расчету Y, вывод Y и опять X изменяется на 2. По условию задачи
расчетом Y при X = 10 нужно ограничиться. Следовательно, необходимо включить условие
окончания расчетов. До тех пор, пока X £ 10, расчеты производить; как только X станет
больше 10 – вычисления закончить. В схему включим логический блок.
В блоке 2 осуществляется задание начального значения для X. В блоке 3
рассчитываются значения Y. В блоке 5 фиксируется текущее значение X с заданным шагом.
В блоке 6 анализируется величина X. Если X еще не превысил своего конечного значения,
то необходимо вернуться к блоку 3 и повторить вычисления. Если X стал больше
предельного значения, расчеты нужно закончить.
Еще раз обратите внимание на то, что блок 4 – модификация – включил в себя три блока
предыдущей схемы – блоки 4, 7, 8.
Нельзя точно сказать, какая из типов циклических структур (“До” или “Пока”) скрывается
в блоке “модификация”. Например, в языках программирования эта структура
организована по разному.
АЛГОРИТМЫ СО СТРУКТУРОЙ ВЛОЖЕННЫХ ЦИКЛОВ
    Любой цикл, содержащий внутри себя один или несколько других циклов, называется
вложенным. Цикл, охватывающий другие циклы, называется внешним а остальные циклы
внутренними. Правила организации как для внешнего, так и внутреннего циклов такие же,
как и для простого цикла. Параметры этих циклов изменяются одновременно, т. е. при
одном значении параметра внешнего цикла параметр внутреннего цикла принимает по
очереди все свои значения.
    Матрицы  удобный пример для демонстрации алгоритмов со структурой вложенных
циклов. В матрице [A] М столбцов и N строк. Каждый элемент матрицы определен двумя
индексами, которые указывают положение этого элемента. На первом месте  записывается
номер строки, на втором  номер столбца. Например, а     элемент матрицы [A ],
расположенный во второй строке третьего столбца.
    Если необходимо задать значение матрицы, значит нужно задать значения всех ее
элементов. Назовем элемент матрицы аij. Для всей матрицы в целом i пробегает значения
от 1 до N, а j от 1 до М.
    Каждую строку матрицы можно рассматривать как одномерный массив. С вводом
одномерного массива мы знакомы. Ввод первой строки матрицы определяет следующая
совокупность элементов схемы (рис. 24).
    Такая же схема должна быть использована для второй строки матрицы, для третьей и
так далее до М  ой строки. То есть номер строки может быть задан циклом и этот цикл
будет внешним по отношению к циклу по столбцу. Cхема ввода матрицы [A]  без блока
модификации дана на рис. 25.
Внешний цикл по i  блоки 3, 4, 5, 6, 7, 8, 9.
Блок 3  подготовка цикла по i.
Блок 8  изменение параметра цикла.
Блок 9  проверка условия окончания цикла.
Блоки 4, 5, 6, 7, 8  тело цикла.
Внутренний цикл по j  блоки 4, 5, 6, 7.
Блок 4  подготовка цикла по j.
Блок  6  изменение параметра цикла.
Блок 7  проверка условия окончания цикла.
Блоки 5, 6  тело цикла.
    При переходе к следующему значению i (к следующей строке) j  восстанавливает
первоначальное значение равное 1.
ПОДЧИНЕННЫЕ АЛГОРИТМЫ
    При записи алгоритмов могут использоваться алгоритмы, составленные раньше.
Алгоритмы, целиком используемые в составе других алгоритмов, называются
подчиненными алгоритмами или подалгоритмами. Не исключено, что алгоритм,
содержащий в своем описании подчиненные алгоритмы, сам может выступать в роли
подалгоритма. В схемах подалгоритм изображается символом
    Задача 15. Составить алгоритм вычисления числа сочетаний. Число сочетаний
рассчитывается по формуле:
    Вычисление факториала оформить в виде подалгоритма.
    В блоках "начало" и "останов" в подчиненном алгоритме записываются слова "вход" и
"выход" (рис. 30 В).
    В данной задаче необходимо трижды вычислить факториал: n!, m! и (n  m)!. Для расчета
факториала разработан подалгоритм. Вместо полной записи последовательности блоков
подалгоритма, которая должна повторяться трижды в основной схеме, введены блоки
обращения к подалгоритму.
    Использование подалгоритмов находит широкое применение в практике алгоритмизации
и является одним из наиболее значительных и интересных приемов.
    Одним из приемов разработки алгоритма решения более сложных задач является метод
пошаговой детализации, когда первоначально продумывается и фиксируется общая
структура алгоритма без детальной проработки отдельных его частей, но при этом также
используются лишь основные структуры алгоритмов. Блоки, требующие дальнейшей
детализации, обозначаются пунктирной линией. Далее прорабатываются (детализируются)
отдельные блоки, не детализированные на предыдущем шаге. Полностью закончив
детализацию всех блоков, получим решение всей задачи в целом.
пособы представления алгоритмов:
    1. Формульнословесный способ.
    Основан на задании инструкций о выполнении конкретных действий в четкой
последовательности в сочетании со словесными пояснениями.
    Пример. Вычислить: С =
    Этап 1. Ввести А, В;
    Этап 2. Если А В, то переходим к этапу 3; иначе переходим к этапу 4.
    Этап 3. С=АВ, и переходим к этапу 5;
    Этап 4. С=А+В;
    Этап 5. Вывод С.
    2. На алгоритмическом языке.
Алгоритмический язык – совокупность правил и обозначений, использующиеся для записи
алгоритма.
    Он включает:
    а) математические выражения;
    б) текст;
в) служебные слова (полные или сокращенные слова русского текста, стоящие в
определенном месте алгоритма, которые обязательно подчеркиваются)
Пример.
Вычислить значение А+
алг Проскурнин (нат А, вещ В, У, цел Х)
        арг А, В, Х
        рез У
    нач
        У:=А+
    кон
    3. Графический способ (метод блоксхемы).
    При таком представлении алгоритма, каждый этап отображается в виде геометрических
фигурблоков, форма которых зависит от выполняемой операции.
    Линия соединения блоков, показывает направление процесса обработки данных. Каждое
направление называется ветвью.

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

Использование ранее созданных или отдельно
описанных алгоритмов (модулей).

Указание связи между линиями потока
обработки данных. Вычислить: С =
4. Табличный способ.

«Типы алгоритмов».
1) Линейный алгоритм:

2) Разветвляющийся алгоритм:

3) Циклический алгоритм:

 Структурные схемы алгоритмов
    Одним из свойств алгоритма является дискретность — возможность расчленения
процесса вычислений, предписанных алгоритмом, на отдельные этапы, возможность
выделения участков программы с определенной структурой. Можно выделить и наглядно
представить графически три простейшие структуры:


последовательность двух или более операций;
выбор направления; 
повторение.
    Любой вычислительный процесс может быть представлен как комбинация этих
элементарных алгоритмических структур. Соответственно, вычислительные процессы,
выполняемые на ЭВМ по заданной программе, можно разделить на три основных вида:



линейные;
ветвящиеся;
циклические.
    Линейным принято называть вычислительный процесс, в котором операции
выполняются последовательно, в порядке их записи. Каждая операция является
самостоятельной, независимой от какихлибо условий. На схеме блоки, отображающие эти
операции, располагаются в линейной последовательности.
Линейные вычислительные процессы имеют место, например, при вычислении
арифметических выражений, когда имеются конкретные числовые данные и над ними
выполняются соответствующие условию задачи действия. На рис. 11.1, а показан пример
линейного алгоритма, определяющего процесс вычисления арифметического выражения
у=(b2ас):(а+с).

а
б
Рис. 11.1. Примеры алгоритмов: а) линейный алгоритм; б) ветвящийся алгоритм
    Вычислительный процесс называется ветвящимся, если для его реализации
предусмотрено несколько направлений (ветвей). Каждое отдельное направление процесса
обработки данных является отдельной ветвью вычислений. Ветвление в программе — это
выбор одной из нескольких последовательностей команд при выполнении программы.
Выбор направления зависит от заранее определенного признака, который может относиться
к исходным данным, к промежуточным или конечным результатам. Признак характеризует
свойство данных и имеет два или более значений.
    Ветвящийся процесс, включающий в себя две ветви, называется простым, более двух
ветвей — сложным. Сложный ветвящийся процесс можно представить с помощью простых
ветвящихся процессов.
    Направление ветвления выбирается логической проверкой, в результате которой
возможны два ответа: «да» — условие выполнено и «нет» — условие не выполнено.
Следует иметь в виду, что, хотя на схеме алгоритма должны быть показаны все возможные
направления вычислений в зависимости от выполнения определенного условия (или
условий), при однократном прохождении программы процесс реализуется только по одной
ветви, а остальные исключаются. Любая ветвь, по которой осуществляются вычисления,
должна приводить к завершению вычислительного процесса. На рис. 11.1,б  показан пример алгоритма с разветвлением для вычисления следующего
выражения:
Y = (а+b), если Х <0;
с/b, если Х>0.
    Циклическими называются программы, содержащие циклы. Цикл — это многократно
повторяемый участок программы.
В организации цикла можно выделить следующие этапы:
    Порядок выполнения этих этапов, например, Т и М, может изменяться. В зависимости
от расположения проверки условия окончания цикла различают циклы с нижним и верхним
окончаниями (рис. 11.2). Для цикла с нижним окончанием (рис. 11.2, а) тело цикла
выполняется как минимум один раз, так как сначала производятся вычисления, а затем
проверяется условие выхода из цикла. В случае цикла с верхним окончанием (рис. 11.2, б)
тело цикла может не выполниться ни разу в случае, если сразу соблюдается условие
выхода.




• подготовка (инициализация) цикла (И);
• выполнение вычислений цикла (тело цикла) (Т);
• модификация параметров (М);
• проверка условия окончания цикла (У).

а
б
Рис. 11.2. Примеры циклических алгоритмов
    Цикл называется детерминированным, если число повторений тела цикла заранее
известно или определено. Цикл называется итерационным, если число повторений тела
цикла заранее неизвестно, а зависит от значений параметров (некоторых переменных),
участвующих в вычислениях.
    На рис. 11.3 показан пример циклического алгоритма вычисления суммы десяти чисел.
Рис. 11.3. Алгоритм нахождения суммы 10ти чисел

file_name: тема 2 вопрос 2.docx

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

title: Лекция "структурные схемы алгоритмов"


extracted_text:
тема 2 вопрос 4
классификация и краткая характеристика языков программирования
1. Процедурное программирование
2. Декларативные языки программирования
3. Объектноориентированное программирование
4. Сетевые языки
5. Машинно  ориентированные языки
6. Машинные языки
7. Языки символического кодирования
8. Автокоды
9. Макрос
10.Машинно  независимые языки
11.Проблемно  ориентированные языки
12.Универсальные языки
13.Диалоговые языки
14.Непроцедурные языки
Существующие языки
программирования
классифицируют по четырём
основным группам:
процедурные, объектно
ориентированные,
функциональные и логические.
Дадим краткие определения
каждого подхода.
Процедурное
программирование  такое
программирование, когда
программа отделена от данных
и состоит из
последовательности команд,
обрабатывающих данные.
Данные как правило хранятся в
виде переменных. Весь процесс вычисления сводится к изменению их содержимого.
Декларативные языки программирования  это языки объявлений и построения
структур. К ним относятся функциональные и логические языки программирования. В этих
языках не производится алгоритмических действий явно, то есть алгоритм не задается
прграммистом, а строится самой программой. В декларативных языках задается,
производится построение какойлибо структуры или системы, то есть декларируются
(объявляются) какието свойства создаваемого объекта. Эти языки получили широкое
применение в системах автоматизированного проектирования (САПР), в так называемых
CADпакетах, в моделировнии, системах исккусственного интеллекта.
Объектноориентированное программирование  в этих языках переменные и функции
группируются в так называемые классы (шаблоны). Благодаря этому достигается более
высокий уровень структуризации программы. Объекты, порождённые от классов вызывают
методы (функции или процедуры) друг друга и меняют таким образом состояние свойств
(переменных). С формальноматематической стороны объектно ориентированный способ
написания программ базируется на процедурной модели программирования, но с
содержательной стороны ООП базируется не на функции, а на объекте, как целостной
системе, имеющей стандартный автоматический межобъектный интерфейс.
Сетевые языки  языки, предназначенные для организации взаимодействия удаленных
компьютеров в интенсивном интерактивном режиме, а поэтому они построены на
принципах интерпретации, то есть построчной, интерактивной обработки строк
программного кода, описывающего некоторый сценарий (скрипт) сетевого взаимодействия
компьютеров, поэтому часто они называются скриптовыми языками, хотя скриптовые
языки не обязательно являются сетевыми, к примеру, пакетные командные языки
различных операционных сред.
Машинно  ориентированные языки
Машинно  ориентированные языки  это языки, наборы операторов и изобразительные
средства которых существенно зависят от особенностей ЭВМ (внутреннего языка,
структуры памяти и т.д.). Машинно ориентированные языки позволяют использовать все
возможности и особенности Машинно  зависимых языков:



высокое качество создаваемых программ (компактность и скорость выполнения);
возможность использования конкретных аппаратных ресурсов;
предсказуемость объектного кода и заказов памяти; 



для составления эффективных программ необходимо знать систему команд и
особенности функционирования данной ЭВМ;
трудоемкость процесса составления программ ( особенно на машинных языках и
ЯСК), плохо защищенного от появления ошибок;
низкая скорость программирования;
невозможность непосредственного использования программ, составленных на этих
языках, на ЭВМ других типов.
Машинноориентированные языки по степени автоматического программирования
подразделяются на классы.
Машинный язык
Как уже упоминалось в введении, отдельный компьютер имеет свой определенный
Машинный язык (далее МЯ), ему предписывают выполнение указываемых операций над
определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые
семейства ЭВМ (например, ЕС ЭВМ, IBM370 и др.) имеют единый МЯ для ЭВМ разной
мощности. В команде любого из них сообщается информация о местонахождении
операндов и типе выполняемой операции.
В новых моднлях ЭВМ намечается тенденция к повышению внутренних языков машинно
аппаратным путем реализовывать более сложные команды, приближающиеся по своим
функциональным действиям к операторам алгоритмических языков программирования.
Языки Символического Кодирования
Продолжим рассказ о командных языках, Языки Символического Кодирования (далее
ЯСК), так же, как и МЯ, являются командными. Однако коды операций и адреса в
машинных командах, представляющие собой последовательность двоичных (во внутреннем
коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК
заменены на символы (идентификаторы), форма написания которых помогает
программисту легче запоминать смысловое содержание операции. Это обеспечивает
существенное уменьшение числа ошибок при составлении программ.
Использование символических адресов  первый шаг к созданию ЯСК. Команды ЭВМ
вместо истинных (физических) адресов содержат символические адреса. По результатам
составленной программы определяется требуемое количество ячеек для хранения
исходных промежуточных и результирующих значений. Назначение адресов, выполняемое
отдельно от составления программы в символических адресах, может проводиться менее
квалифицированным программистом или специальной программой, что в значительной
степени облегчает труд программиста.
Автокоды
Есть также языки, включающие в себя все возможности ЯСК, посредством расширенного
введения макрокоманд  они называются Автокоды.
В различных программах встречаются некоторые достаточно часто использующиеся
командные последовательности, которые соответствуют определенным процедурам
преобразования информации. Эффективная реализация таких процедур обеспечивается
оформлением их в виде специальных макрокоманд и включением последних в язык
программирования , доступный программисту. Макрокоманды переводятся в машинные
команды двумя путями  расстановкой и генерированием. В постановочной системе
содержатся "остовы"  серии команд, реализующих требуемую функцию, обозначенную
макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые
в процессе трансляции вставляются в "остов" программы, превращая её в реальную
машинную программу.
В системе с генерацией имеются специальные программы, анализирующие макрокоманду,
которые определяют, какую функцию необходимо выполнить и формируют необходимую
последовательность команд, реализующих данную функцию. Обе указанных системы используют трансляторы с ЯСК и набор макрокоманд, которые
также являются операторами автокода.
Развитые автокоды получили название Ассемблеры. Сервисные программы и пр., как
правило, составлены на языках типа Ассемблер. Более полная информация об языке
Ассемблера см. ниже.
Макрос
Язык, являющийся средством для замены последовательности символов описывающих
выполнение требуемых действий ЭВМ на более сжатую форму  называется Макрос
(средство замены).
В основном, Макрос предназначен для того, чтобы сократить запись исходной программы.
Компонент программного обеспечения, обеспечивающий функционирование макросов,
называется макропроцессором. На макропроцессор поступает макроопределяющий и
исходный текст. Реакция макропроцессора на вызоввыдача выходного текста.
Макрос одинаково может работать, как с программами, так и с данными.
Машинно  независимые языки
Машинно  независимые языки  это средство описания алгоритмов решения задач и
информации, подлежащей обработке. Они удобны в использовании для широкого круга
пользователей и не требуют от них знания особенностей организации функционирования
ЭВМ и ВС.
Подобные языки получили название высокоуровневых языков программирования.
Программы, составляемые на таких языках, представляют собой последовательности
операторов, структурированные согласно правилам рассматривания языка(задачи,
сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять
система после трансляции программы на МЯ.
Т.о., командные последовательности (процедуры, подпрограммы), часто используемые в
машинных программах, представлены в высокоуровневых языках отдельными
операторами. Программист получил возможность не расписывать в деталях
вычислительный процесс на уровне машинных команд, а сосредоточиться на основных
особенностях алгоритма.
Проблемно  ориентированные языки
С расширением областей применения вычислительной техники возникла необходимость
формализовать представление постановки и решение новых классов задач. Необходимо
было создать такие языки программирования, которые, используя в данной области
обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для
поставленных задач, ими стали проблемно  ориентированные языки. Эти языки,
ориентированные на решение определенных проблем, должны обеспечить программиста
средствами, позволяющими коротко и четко формулировать задачу и получать результаты
в требуемой форме.
Проблемных языков очень много, например:
Фортран, Алгол  языки, созданные для решения математических задач;
Simula, Слэнг  для моделирования;
Лисп, Снобол  для работы со списочными структурами.
Об этих языках рассказано дальше.
Универсальные языки
Универсальные языки были созданы для широкого круга задач: коммерческих, научных,
моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в
последовательности языков Пл/1. Второй по мощности универсальный язык называется
Алгол68. Он позволяет работать с символами, разрядами, числами с фиксированной и
плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами,
для работы с полями переменной длины, с данными организованными в сложные
структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы.
Предусмотрена возможность параллельного выполнение участков программ.
Программы в Пл/1 компилируются с помощью автоматических процедур. Язык использует
многие свойства Фортрана, Алгола, Кобола. Однако он допускает не только
динамическое, но и управляемое и статистическое распределения памяти.
Диалоговые языки
Появление новых технических возможностей поставило задачу перед системными
программистами  создать программные средства, обеспечивающие оперативное
взаимодействие человека с ЭВМ их назвали диалоговыми языками.
Эти работы велись в двух направлениях. Создавались специальные управляющие языки для
обеспечения оперативного воздействия на прохождение задач, которые составлялись на
любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки,
которые кроме целей управления обеспечивали бы описание алгоритмов решения задач.
Необходимость обеспечения оперативного взаимодействия с пользователем потребовала
сохранения в памяти ЭВМ копии исходной программы даже после получения объектной
программы в машинных кодах. При внесении изменений в программу с использованием
диалогового языка система программирования с помощью специальных таблиц
устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет
осуществить требуемые редакционные изменения в объектной программе.
Одним из примеров диалоговых языков является Бэйсик.
Бэйсик использует обозначения подобные обычным математическим выражениям. Многие
операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот
язык позволяет решать достаточно широкий круг задач.
Непроцедурные языки
Непроцедурные языки составляют группу языков, описывающих организацию данных,
обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов),
и языков связи с операционными системами.
Позволяя четко описывать как задачу, так и необходимые для её решения действия,
таблицы решений дают возможность в наглядной форме определить, какие условия должны
быть выполнены прежде чем переходить к какомулибо действию. Одна таблица решений,
описывающая некоторую ситуацию, содержит все возможные блоксхемы реализаций
алгоритмов решения.
Табличные методы легко осваиваются специалистами любых профессий.
Программы, составленные на табличном языке, удобно описывают сложные ситуации,
возникающие при системном анализе.
к алгоритмизации   алгоритмы, струкутуры данных и программирование   СУБД   ЯиМП
3GL   4GL   5GL   технологии прогр.
Знаете ли Вы, что событийноуправляемое программирование  это объектно
ориентированное программирование, при котором задаются реакции программы на
различные события.
Языки программирования и их классификация
Существуют различные классификации языков программирования.
По наиболее распространенной классификации все языки программирования, в
соответствии с тем, в каких терминах необходимо описать задачу, делят на языки низкого
и высокого уровня.
Если язык близок к естественному языку программирования, то он называется языком
высокого уровня, если ближе к машинным командам, – языком низкого уровня.
В группу языков низкого уровня входят машинные языки и языки символического
кодирования: Автокод, Ассемблер. Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не
конкретные адреса, а символические имена. Все языки низкого уровня ориентированы на
определенный тип компьютера, т. е. являются машинно–зависимыми.
Машинно–ориентированные языки – это языки, наборы операторов и изобразительные
средства которых существенно зависят от особенностей ЭВМ (внутреннего языка,
структуры памяти и т.д.).
К языкам программирования высокого уровня относят Фортран (переводчик формул –
был разработан в середине 50–х годов программистами фирмы IBM и в основном
используется для программ, выполняющих естественно – научные и математические
расчеты), Алгол, Кобол (коммерческий язык – используется, в первую очередь, для
программирования экономических задач), Паскаль, Бейсик (был разработан
профессорами Дармутского колледжа Джоном Кемени и Томасом Курцом.), Си (Деннис
Ритч – 1972 году), Пролог (в основе языка лежит аппарат математической логики) и т.д.
Эти языки машинно–независимы, т.к. они ориентированы не на систему команд той или
иной ЭВМ, а на систему операндов, характерных для записи определенного класса
алгоритмов. Однако программы, написанные на языках высокого уровня, занимают больше
памяти и медленнее выполняются, чем программы на машинных языках.
Программу, написанную на языке программирования высокого уровня, ЭВМ не понимает,
поскольку ей доступен только машинный язык. Поэтому для перевода программы с языка
программирования на язык машинных кодов используют специальные программы –
трансляторы.
Существует три вида транслятора: интерпретаторы (это транслятор, который производит
пооператорную обработку и выполнение исходного кода программы), компиляторы
(преобразует всю программу в модуль на машинном языке, после чего программа
записывается в память компьютера и лишь потом исполняется) и ассемблеры (переводят
программу, записанную на языке ассемблера, в программу на машинном языке).
Языки программирования также можно разделять на поколения:
– языки первого поколения: машинно–ориентированные с ручным управлением памяти
на компьютерах первого поколения.
– языки второго поколения: с мнемоническим представлением команд, так называемые
автокоды.
– языки третьего поколения: общего назначения, используемые для создания прикладных
программ любого типа. Например, Бейсик, Кобол, Си и Паскаль.
– языки четвертого поколения: усовершенствованные, разработанные для создания
специальных прикладных программ, для управления базами данных.
– языки программирования пятого поколения: языки декларативные, объектно–
ориентированные и визуальные. Например, Пролог, ЛИСП (используется для построения
программ с использованием методов искусственного интеллекта), Си++, Visual Basic,
Delphi.
Языки программирования также можно классифицировать на процедурные и
непроцедурные.
В процедурных языках программа явно описывает действия, которые необходимо
выполнить, а результат задается только способом получения его при помощи некоторой
процедуры, которая представляет собой определенную последовательность действий.
Среди процедурных языков выделяют в свою очередь структурные и операционные языки.
В структурных языках одним оператором записываются целые алгоритмические
структуры: ветвления, циклы и т.д. В операционных языках для этого используются
несколько операций. Широко распространены следующие структурные языки: Паскаль,
Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал.
Непроцедурное (декларативное) программирование появилось в начале 70х годов 20 века, К непроцедурному программированию относятся функциональные и логические языки.
В функциональных языках программа описывает вычисление некоторой функции. Обычно
эта функция задается как композиция других, более простых, те в свою очередь делятся
на еще более простые задачи и т.д. Один из основных элементов функциональных языков –
рекурсия. Оператора присваивания и циклов в классических функциональных языках нет.
В логических языках программа вообще не описывает действий. Она задает данные и
соотношения между ними. После этого системе можно задавать вопросы. Машина
перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок
перебора не описывается в программе, а неявно задается самим языком. Классическим
языком логического программирования считается Пролог. Программа на Прологе
содержит, набор предикатов–утверждений, которые образуют проблемно–
ориентированную базу данных и правила, имеющие вид условий.
Можно выделить еще один класс языков программирования – объектно–ориентированные
языки высокого уровня. На таких языках не описывают подробной последовательности
действий для решения задачи, хотя они содержат элементы процедурного
программирования. Объектно–ориентированные языки, благодаря богатому
пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него
форме.
Первый объектноориентированный язык программирования Simula был создан в 1960х
годах Нигаардом и Далом.
Ява – язык для программирования Internet, позволяющий создавать безопасные,
переносимые, надежные, объектно–ориентированные интерактивные программы. Язык Ява
жестко связан с Internet, потому, что первой серьезной программой, написанной на этом
языке, был браузер Всемирной паутины.
В последнее время, говоря о программировании в Internet, часто имеют в виду создание
публикаций с использованием языка разметки гипертекстовых документов HTML.
Применение специальных средств (HTML–редакторов) позволяет не только создавать
отдельные динамически изменяющиеся интерактивные HTML–документы, используя при
этом данные мультимедиа, но и редактировать целые сайты.

file_name: тема 2 вопрос 4.docx

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

title: Лекция "Классификация и краткая характеристика языков программирования"