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

Существующие операционные системы можно разделить на несколько групп.

По числу одновременно выполняемых задач:

-  однозадачные ОС (DOS);

-  многозадачные ОС, обеспечивающие работу одновременно с несколькими задачами, между которыми можно переключаться (Windows, OS/2, UNIX и другие сетевые).

По числу одновременно работающих пользователей:

-  однопользовательские ОС (DOS, ранние версии Windows и OS/2);

-  многопользовательские ОС (UNIX, Windows NT и другие сетевые).

По принципу распределения процессорного времени:

-  ОС с обычной многозадачностью (Novell NetWare);

-  ОС с вытесняющей многозадачностью, когда в зависимости от ситуации система самостоятельно передает или забирает управление у той или иной задачи, что позволяет разделять все аппаратные ресурсы между различными приложениями (Windows, OS/2, UNIX).

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

-  однопотоковые ОС (DOS);

-  многопотоковые ОС, когда система разбивает одну задачу на несколько потоков и выполняет их независимо друг от друга, отслеживая процесс выполнения. В случае остановки какого-либо потока система автоматически загружает новый поток, систематически распределяя время между ними с учетом их приоритетов (Windows, OS/2, UNIX).

§5.4. Виды прикладного программного обеспечения

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

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

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

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

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

Наиболее широко применяются следующие классы программ:

-  системы обработки текстов (текстовые редакторы) Microsoft Word, Corel WordPerfect, Ami Pro, «Лексикон» и др.;

-  системы обработки таблиц (табличные процессоры) Microsoft Excel, Quattro Pro, Super Calc, Lotus 1-2-3 и др.;

системы управления базами данных (СУБД) Microsoft Access, FoxPro, Oracle, Paradox и др.;

-  системы обработки графики (графические редакторы) Corel Draw, Adobe PhotoShop, Macromedia FreeHand, Aldus PhotoStyler и др.;

-  системы обработки видеоданных (видео-редакторы) Adobe Premiere, Video Craft, Maya и др.;

-  системы обработки звука (звуковые редакторы) SoundForge, GoldWave, AWave и др.;

-  системы подготовки презентаций (программы демонстрационной графики) Microsoft PowerPoint, Freelance Graphics, Harvard Graphics и др.;

-  системы распознавания символов Abbyy FineReader, CuneiForm, OmniPage и др.;

-  системы подготовки документов типографского уровня (издательские системы) Microsoft Publisher, Adobe PageMaker, Quark XPress, Corel Ventura и др.;

системы экономического назначения (бухгалтерские и финансовые программы) «1С:Предприятие», «Инфин-Бухгалтерия», «ИНЭК-Аналитик», Audit Expert и др.;

-  справочно-правовые системы (правовые базы данных) «КонсультантПлюс», «ГАРАНТ», «Кодекс» и др.;

-  системы автоматизации проектирования (САПР) Autodesk AutoCAD, DesignCAD, Drawbase, UltimateCAD и др.;

-  системы проведения математических расчетов Maple, Mathematica, MathCAD, MathLab и др.;

-  системы статистического анализа данных Microsta, SPSS, Statgraph, Statistica и др.;

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

-  развлекательные и игровые программы.

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

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

НЕ нашли? Не то? Что вы ищете?

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

Типичные представители подобных пакетов: FrameWork, Symphony, Microsoft Works, Lotus Works. В этих пакетах происходит интеграция функций текстового редактора, табличного процессора и системы управления базами данных. В целом стоимость такого пакета гораздо ниже суммарной стоимости аналогичных специализированных программ (в 2 – 3 раза).

2) Объектно-связанный интегрированный пакет объединяет специализированные программы в рамках общей ресурсной базы на уровне объектов. Технология OLE (Object Linking and Embedding – связывание и внедрение объектов) дает пользователю возможность переносить объекты, созданные одной прикладной программой, в документы, формируемые другими программами, например, модуль построения графиков табличного процессора может быть использован в текстовом редакторе. Недостатком данной технологии является ограничение на размер объекта в одну страницу.

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

Типичные представители таких пакетов: Microsoft Office, Borland Office, Lotus SmartSuite, Sun OpenOffice. В профессиональной редакции этих пакетов обязательно присутствует четыре приложения: текстовый редактор, табличный процессор, СУБД и программа демонстрационной графики. В базовом варианте зачастую отсутствует СУБД.

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

§5.5. Интегрированный пакет Microsoft Office

В настоящее время наиболее популярным пакетом офисных приложений, особенно в России, является Microsoft Office. Этому есть несколько причин: во-первых, агрессивная маркетинговая политика компании Microsoft по всему миру, а во-вторых, возможность бесплатно установить сам пакет (как и операционную систему Windows).

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

-  удобный интерфейс, обеспечивающий простоту эксплуатации пакета;

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

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

-  развитая справочная система построена на основе языка HTML (Hyper Text Markup Language – язык разметки гипертекста), что облегчает ее использование и способствует постоянной актуализации справочной информации, поскольку может обновляться через Интернет;

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

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

Корпорация Microsoft выпускает три типа пакетов Microsoft Office XP:

§  комплектация Standard предназначена для пользователей, которым необходим базовый набор инструментов для работы с офисными документами. Включает четыре популярных офисных приложения: Word, Excel, Outlook и PowerPoint;

§  комплектация Professional дополнительно включает два инструмента: для работы с массивами информации (Access), для разработки и управления web-узлами (FrontPage);

§  комплектация Small Business обеспечивает пользователей всем необходимым для офисной и издательской деятельности. Включает пять приложений: набор Standard дополнен настольной издательской системой (Publisher).

Кроме того, корпорация выпускает набор для профессиональных разработчиков специализированных решений на базе Office – Microsoft Developer Kit (MDK).

Компоненты интегрированного пакета Microsoft Office:

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

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

-  Outlook – программа, обеспечивающая выбор и структуризацию актуальной информации, ее коллективную обработку, аналог обычного органайзера;

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

-  Access – одно из самых популярных приложений для работами с базами данных. Эта СУБД предоставляет широкий набор средств, необходимых для управления любыми данными и принятия на их основе оптимальных решений;

-  FrontPage – программа для создания и публикации в Интернет web-страниц;

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

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

§5.6. Требования к программным продуктам

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

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

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

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

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

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

§5.7. Тенденции развития программного обеспечения

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

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

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

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

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

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

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

§  генератор отчетов – обеспечивает вывод запросной информации, формирование итогов различных уровней и др.

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

6.  Алгоритмизация и программирование.

6.1.  Понятие и свойства алгоритма.

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

6.3.  Типы алгоритмов

6.4.  Основные понятия программирования

6.5.  Этапы разработки программного обеспечения

6.6.  Технологии разработки программного обеспечения

6.7.  Структурное программирование

6.8.  Объектно-ориентированное программирование

§6.1. Понятие и свойства алгоритма

Как научить компьютер решать те задачи, которые изначально он не умеет решать самостоятельно? Или что следует сделать, если нужно привлечь к решению задачи человека (назовем его «исполнитель»), не знакомого с ее решением? В общем виде последовательность действий здесь следующая:

3)  выбрать способ (метод) решения задачи и изучить его во всех подробностях;

4)  сообщить исполнителю выбранный метод в абсолютно понятном для него виде.

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

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

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

Именно поэтому описание метода следует выполнять в соответствии с определенными правилами:

-  выделить исходные величины для задачи;

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

-  указать порядок выполнения этапов;

-  указать признак окончания процесса решения задачи;

-  указать, что является результатом решения задачи (во всех случаях).

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

5)  Подготовить исходные величины: картофель, посуду (кастрюлю с крышкой для варки), нож, воду, соль.

6)  Очистить картофель с помощью ножа.

7)  Промыть картофель водой.

8)  Нарезать картофель дольками.

9)  Поместить картофель в кастрюлю.

10)  Залить содержимое кастрюли водой.

11)  Посолить.

12)  Довести воду до кипения.

13)  Убавить огонь.

14)  Варить картофель до готовности (около 20 минут).

15)  Снять кастрюлю с огня и слить воду.

16)  Прекратить процесс, так как картофель готов.

Вообще слово «алгоритм» (алгорифм) произошло от algorithmi, algorismus – латинской формы написания имени великого среднеазиатского математика аль-Хорезми[170], который сформулировал правила выполнения арифметических действий над многозначными числами в десятичной (позиционной) системе счисления. Эти правила и назвали алгоритмами. В дальнейшем это понятие стало использоваться вообще для обозначения последовательности действий, приводящих к решению поставленной задачи.

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

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

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

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

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

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

§  определенность (детерминированность) – каждая команда алгоритма должна быть однозначно истолкована и понятна исполнителю, чтобы он мог решить задачу по этому алгоритму. Например, в алгоритме не должно быть указано, что надо взять 10 – 20 литров бензина. Какого бензина, сколько точно литров необходимо?;

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

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

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

1) Алгоритм дискретен, так как весь процесс разбит на отдельные шаги (в нашем случае их оказалось 12).

2) Алгоритм определен, так как каждая команда описана коротко и достаточно понятно для исполнителя. Команды даны именно в той последовательности, которая необходима для решения данной задачи. Попробуйте, например, поменять местами пункты 6 и 8 алгоритма – вряд ли в этом случае вы получите нужный результат.

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

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

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

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

Существует четыре способа описания алгоритмов:

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

§  запись на псевдокоде – языке со свободным синтаксисом, близким к естественному языку (или языкам программирования). К достоинствам этого способа можно отнести краткость записи алгоритмов, возможность использования собственных символьных конструкций, естественность и простота описания логики решения задачи, возможность представления алгоритма с произвольной степенью детализации. Недостаток состоит в понятности такой записи лишь ограниченному кругу людей;

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

§  запись на языке программирования завершает процесс алгоритмизации реализацией соответствующей программы. Однако такая запись достаточно сложна для понимания практически любым человеком кроме ограниченного круга людей (программистов) – в этом ее недостаток.

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

Пример. Необходимо составить алгоритм расчета стоимости пробега 100 км для автомобиля по следующим условиям.

Если автомобиль имеет дизельный двигатель, то цена топлива для него (солярки) составляет 16 руб. за литр, а его расход равен 7 литров на 100 км; если автомобиль имеет бензиновый двигатель, то цена топлива для него (бензина) составляет 19 руб. за литр, а его расход равен 10 литров на 100 км; если двигатель автомобиля работает на газу, то цена топлива для него (газа) составляет 9 руб. за литр, а его расход равен 11 литров на 100 км.

Сначала сформулируем задачу в математическом виде:

,

где S – стоимость пробега 100 км автомобиля (руб.);

D – тип двигателя.

Словесно-формульная запись алгоритма:

1)  Ввести тип двигателя (D).

2)  Если D – дизельный, то S=16*7, перейти к п.4.

3)  Если D – бензиновый, то S=19*10, иначе S=9*11.

4)  Вывести рассчитанную стоимость пробега 100 км автомобиля (S).

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

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

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

Таблица 6.1

Стандартные геометрические фигуры, используемые в блок-схемах

Название

Фигура

Описание

Прерывание

Начало и конец,
вход и выход
в подпрограммах

Данные

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

Действие

Вычислительное
действие или их
последовательность

Условие

Проверка условий, переход к действию по условию

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

Вернемся к нашему примеру расчета стоимости пробега автомобиля. Блок-схема алгоритма будет выглядеть следующим образом (рис. 6.1).

Рис. 6.1. Блок-схема алгоритма расчета стоимости пробега автомобиля.

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

§6.3. Типы алгоритмов

Структурный подход к построению алгоритмов предполагает использование только нескольких основных структур, комбинации которых дают все многообразие алгоритмов. Все существующие алгоритмы делятся на три типа (рис. 6.2):

§  линейный алгоритм при каждом исполнении предписывает однократное выполнение всех действий алгоритма в определенной последовательности;

§  ветвящийся алгоритм описывает несколько возможных последовательностей действий (ветвей алгоритма) и при каждом исполнении предписывает выполнение одной из ветвей алгоритма в зависимости от определенных условий;

§  циклический алгоритм при каждом исполнении предписывает многократное выполнение одной и той же последовательности действий.

Рис. 6.2. Блок-схемы различных типов алгоритмов.

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

Условие составляется в виде логического выражения – сравнения некоторых объектов между собой (переменных или констант). Существует шесть операций сравнения:

§  равно (=);

§  не равно (<>);

§  меньше (<);

§  больше (>);

§  меньше или равно (<=);

§  больше или равно (>=).

Часто встречаются задачи, в которых используется совокупность связанных между собой условий – составные условия. Для их обозначения используются две логические операции: конъюнкция (И) и дизъюнкция (ИЛИ). Кроме того, возможны обратные условия, отрицающие какое-либо условие. Такие условия обозначаются логической операцией инверсия (НЕ).

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27