Представление о программе

Вид материалаДокументы
Подобный материал:
1   2   3   4   5   6   7   8   9
Первая стадия — разработка приближенного алгоритма, ориентированного на создающего его человека:
  • определить цель, для достижения которой будет создан ал­горитм;
  • наметить приблизительный план действий для достижения поставленной цели.



Вторая стадия — детализация алгоритма с учетом специфики среды и других объектов:
  • выбрать среду и объекты, посредством которых алгоритм бу­дет реализован;
  • детализировать алгоритм с учетом особенностей выбранной среды.



Контрольные вопросы и задания
  1. Дайте определение алгоритма и приведите примеры.
  2. Что такое алгоритмизация?
  3. Приведите пример математического выражения и составьте алгоритм его вычисления.
  4. Поясните на примерах свойства алгоритма.
  5. Как вы понимаете свойство конечности алгоритма? Приведи­те примеры.
  6. Как вы понимаете свойство массовости алгоритма? Приведи­те примеры.
  7. Что такое линейный алгоритм? Приведите примеры.
  8. Что такое циклический алгоритм? Приведите примеры.
  9. Напишите циклический алгоритм и укажите в нем тело цикла.
  10. Как происходит окончание циклического алгоритма?
  11. Что такое разветвляющийся алгоритм? Приведите примеры.
  12. Как в алгоритме записывается условие?
  13. Как записывается полная форма разветвляющегося алгорит­ма? Приведите примеры.
  14. Как записывается неполная форма разветвляющегося алго­ритма? Приведите примеры.
  15. Что такое вспомогательный алгоритм? Приведите примеры.
  16. Зачем нужна блок-схема алгоритма?
  17. Придумайте пример алгоритма и представьте его в виде блок-схемы.
  18. Какие стадии разработки алгоритма вы знаете и в чем их суть? *.
  19. Приведите пример разработки алгоритма по стадиям в виде двух блок-схем.

Тема 13 Представление о программе. Классификация программ


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


13.1. Исполнитель алгоритма

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

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



Объект, который будет выполнять разработанный человеком алгоритм, обычно называют Исполнителем. Его предназначе­ние — точно выполнить предписания алгоритма, подчас не заду­мываясь о результатах и целях. Например, Исполнителем мо­жет быть:
  • солдат в армии, который обязан беспрекословно выполют
    приказы старших по званию чинов;
  • собака, которая должна выполнять команды хозяина;
  • животные в цирке, которые должны точно исполнять требования дрессировщика;
  • робот, производящий измерения в космосе, выполняет Щ манды, поступающие от космического центра;
  • летчик, который должен точно выполнять распоряжения диспетчера аэропорта.

Во всех приведенных выше примерах объект, исполняющий действия алгоритма, не обязан:
  • понимать цели и методы достижения этой цели;
  • пропускать действия или менять их порядок по своему уо мотрению;
  • искать какую-то'замену, если действие выполнить нош)! можно.

Исполнитель — объект, который выполняет алгоритм.

Идеальными Исполнителями являются машины, роботы, компьютеры. Они в состоянии им поднять указанные коми идi i

обсуждая их целесообрн;

Человек тоже может

себя в положение Исполни i алгоритма, хотя бы для п|»

• и ( к) правильности. При этом человек формально, не старине

Инн lib поставленную задачу, выполняет команду за командой

Иемолнитель способен выполнять только ограниченное коми

HdTito команд. Поэтому алгоритм, переписанный на второй CTI

под конкретного Исполнителя, должен еще раз пройти до

И» и пи тельное преобразование. Алгоритм дорабатывается и дети

in шруется так, чтобы в нем присутствовали только те команд!

и'трукции, которые может выполнить Исполнитель.

'Гни появляется третья стадия, на которой алгоритм ДОЛЯМ!

prill- представлен в форме, понятной Исполнителю. Исполни

f*ni.. пик и любой объект, находится в определенной среде и м<

Ими ш.пюлнять только допустимые в ней действия. Если ИОПОЛ

о. иетретит в алгоритме неизвестную ему команду, то вы

пне алгоритма прекратится.

J

13.2. Понятие программы
м.ей стадии разработки алгоритма необходимо гхоанаХ(

и с командами, доступными Исполнителю, и с правилим щней. Так, игра в шахматы теряет всякий смысл, если И< iи гель не представляет себе правил поведения в среде «шах юе поле».

i оритм, представленный на понятном Исполнителю янык<

пшют программой. Обычно понятие программы связываю

И компьютером, и тогда процесс создания программы называю

i к мп/ншанием или кодированием. Программа должна быт

на гак, чтобы каждый блок компьютера выполнял МД]

ми ловеком действие в соответствии с алгоритмом.

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

< дачи.

Программирование (кодирование) — процесс составления прогрлл мы для компьютера.

рных электронно-вычислительных машин программ!

1.ииеь и ииде поеледова-тел хти элементарных опер!

ih'o была очень трудоемкий и не;н|)фектииная работа. Дл



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

Поэтому впоследствии были разработаны специальные язы­ки программирования, кото рые позволяют удобно и на­глядно представить алгоритм I решения задачи. Первым алгоритмическим языком для создл-ния компьютерных программ был АЛГОЛ (60-е годы). Очень скоро появились и другие языки: Фортран, ПЛ, Бейсик, Пав каль и др. Каждый из них нес в себе какую-нибудь особую идет по более рациональному использованию ресурсов компьютера и усовершенствованию формы представления программы.

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

Программы, так же как и алгоритмы, обладают свойствами дискретности и детерминированности. Верно составленные программы должны быть конечны и правильны. Хорошие про граммы обладают свойством массовости.

Программа хранится в памяти компьютера. При запуске про граммы компьютер выполняет команды в том порядке, в кото- ] ром они записаны.

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

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

Процедура — вспомогательная программа, которая вы u.m.i из другой программы.

•пмие жизни человек постоянно расширяет свой СЛ01 miшс. Услышав или прочитав новое слово, вы иногда не и\ о чем идет речь, пока не сопоставите это слово с j ii.iми понятиями. Столкнувшись с новым явлением, мея подобрать для него название, иногда придумывая < штельно объясняя с помощью уже известных слов. Tai

1

1 увеличиваются наши знания,
г ' 1|>:и">атывая программу для компьютера, вы даете ей у
| >«' имя. Записывая в память программу под этим имен
и расширяете словарный запас компьютера. Применяя сие
.н» конструкции языка программирования, можно paopfl
о программу использовать в качестве процедуры при
и пых программ. Обращение к процедуре происходит
им.

13.3. Подходы к созданию программы

1|'н разработке алгоритмов, а затем соответствующих им и ■ м можно использовать разные подходы. Проиллюстрир\ ИЛ примерах создания алгоритмов, в которых примети->' i\ рный и объектный подходы. При процедурном подходе в результате выполнения лн> mini, описанного в алгоритме, должен быть получен про

\ i • •■■ ni.ii'f результат. Цепочка промежуточных результатов в им счете должна привести к ожидаемому конечному рсм\

Hi ткем это на примере. Надо составить алгоритм вычт-па калькуляторе следующего выражения:



Здесь числа, над которыми в калькуляторе будут совершатьв! действия, заменены именами переменных. Эти переменные м| гут принимать различные значения. Если вводимые числа или значение суммы в знаменателе окажется равным нулю, то дей<ч вие алгоритма окажется невыполнимым. Следовательно, в алго» ритм должна быть включена проверка условия «равно ли знач| ние знаменателя нулю?» и предусмотрены действия для об холм такой ситуации. В результате алгоритм вычисления будет (mi#i дующим:

Если R1 = 0, или R2 = 0, или R3 = 0, или R4 = 0, то выбрить другие числа. Если все числа не равны нулю, то перейти кп.!1

Вычислить 1/R1 и записать Результат!..

Вычислить 1/R2 и записать Результат2.

Вычислить 1/R3 и записать РезультатЗ.

Вычислить 1/R4 и записать Результат4.

Сложить Результат!, Результат2, РезультатЗ и Результат! и запомнить сумму как Результатб.

Если Результатб не равен нулю, то разделить 1 на Резулм и полученный Результатб будет искомым ответом.

Если Результатб равен 0, то выбрать другие числа и перш i и к п. 1 или прекратить вычисления.

При объектном подходе рассматривается класс объектом, и* свойства, параметры, действия, среда. Для создания конкретно!., экземпляра класса объектов надо указать соответствующие ;iпа чения параметров. Вы не должны подробно описывать, как со вать каждый элемент выбранных объектов. Обработка парам in ров конкретного объекта уже заключена в действиях алгорич



Рассмотрим пример, иллюп рирующий объектный подход. Предположим, в альбоме и ются красочные иллюстрации, И1 которых изображены разнооГ>|.... ные цветы. Кроме того, прип< и ны шаблоны для рисования чао тей каждого цветка: стебля, лигти

м цветка. Эти шаблоны рекомендуется вырезать, чтобы, 1 их, можно было достаточно быстро рисовать сущвСТ -и, или выдуманные цветы. Гш 1'пипм описание класса «Цветок» в виде таблицы 13.1 тик, мм м<> пило показано в теме 7. ■ -'(Л 13.1. Описание класса «Цветок»





Параметр

Действие

||й ИШПИС

Значение

1 1 .11111-

Роза, ромашка, тюльпан и др.

Выращивать

Рисовать

Вырезать из бумаги

Ь 1 M'lllUI

Стебель розы, стебель ромашки, стебель тюльпана и т. д.

111, I'll

Лист розы, лист ромашки, лист тюльпана и т. д.

Mil И 1И1С11

Венчик розы, венчик ромашки, венчик тюльпана и т. д.




|1| оложим, вы хотите нарисовать ромашку, исполму)



мы се составных частей. Это означает, что вы выбирает ищи 13.1 действие «Рисовать». |||н i !!• всего надо создать необходимую для ния среду, а именно: найти место на столе, пу магу, цветные карандаши, подготовить и и. :*атем вы определяете конкретные зна-i ii.ip;i метров объекта, который будете рисо­вание цветка — ромашка; вид стебля, листа и венчик и определяются выбранным шаблоном. Далее составля» ирптм рисования: I IIнита в книге изображение ромашки.

Нарисовать по шаблону стебель ромашки, задав нужны

vM'|).

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

гл По указанному алгоритму вы сможете нарисовать

3|р любое количество ромашек разного размера с разным 3j количеством листочков.

Щу Если вы решите рисовать другой объект, например

4§§k розу, то алгоритм останется тем же. Изменятся только > значения параметров: название объекта — роза; вид стебля, вид листа, вид венчика цветка — типовые для розы и оп­ределяются выбранным шаблоном. Обратите внимание на изме­нения в алгоритме:



Найти в книге изображение розы.

Нарисовать по шаблону стебель ро­зы, задав нужный размер.

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

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

Допустим, вы решили вырезать из бумаги цветок розы, ис­пользуя для этого готовые шаблоны. Тогда нужно немного изме­нить среду (условия) работы — найти ножницы, цветные листы бумаги, клей. В алгоритме действие «Рисовать» будет заменено на «Вырезать». Параметры останутся прежними:

Найти в книге изображение розы.

Вырезать по шаблону стебель розы, задав нужный размер.

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

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

Склеить вырезанные части.

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

нения их параметров. Алгоритм преобразования объектов СОДв жит описание действий, выполняемых этими инструментам Например, при рисовании ромашки такими инструментами я ляются: «Нарисовать по шаблону стебель», «Нарисовать на 014 ле по шаблону несколько листов», «Нарисовать в верхней часч стебля по шаблону чашечку цветка».



Объектный подход к разработ­ке алгоритма часто использует­ся при создании компьютерных игр. Алгоритм игры описывает действия героев, параметры ко­торых можно задавать (вводить) в процессе выполнения алгорит­ма (игры). Благодаря этому в на­чале игры вы имеете возмож­ность выбрать своего героя, обеспечить ему снаряжение и указал

другие характеристики. В соответствии с введенными знач<

ми компьютер отображает вашего героя на экране монитора.


13.4. Классификация программного обеспечения

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

И Программное обеспечение — совокупность всех используемы — J» B компьютере программ.

В жизни все объекты можно сгруппировать по определен им г признакам и составить для себя представление о том, где MOM но использовать того или иного представителя данной группi

(класса). То же самое можно сделать и по отношению к компью­терным программам.

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



Рис. 13.1. Классификация программного обеспечения

Системное программное обеспечение

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

Этот комплекс программ определяет на компьютере систем­ную среду и правила работы в ней. Чем более совершенно сис­темное программное обеспечение, тем комфортнее мы чувству­ем себя в системной среде.



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

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

Операционная система обеспечивает:

ф выполнение прикладных программ;

Ф управление ресурсами компьютера — памятью, процессоре и всеми внешними устройствами;

Ф контакт человека с компьютером.

К наиболее известным операционным системам относите Windows, MS-DOS, Unix, Linux.

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

Например, широкое распространение получил комплекс п| грамм Norton Commander, которые используются вместе g 01 рационной системой MS-DOS. Подобная программа, называем оболочкой, создает более удобную среду работы, чем операции ная система. В среде Windows часто используется программ проверки диска ScanDisk, которая позволяет выявить и части но устранить дефекты диска.

С инструментарием и функциями системного программ!кi обеспечения вы познакомитесь при изучении системной с ре, Windows в теме 14. Умение работать в системной среде <>чг важно, так как позволяет сесть за любой компьютер и начать | ботать с конкретной программой.

Прикладное программное обеспечение

Все имеющиеся на компьютере прикладные программы сосп ляют прикладное программное обеспечение. Оно определяет компьютере прикладную среду и правила работы в ней. 11| кладная среда всегда является «дружественной» по отношенi к любому человеку, овладевшему несложными приемами рд| ты в ней. Прикладные программы могут работать на комт.ю ре только при условии, что на компьютере уже установлена 04 рационная система.

На примере изучения языка ЛОГО в практикуме вы познако­митесь с базовым инструментарием программирования, поня­тиями, приемами и методами, которыми пользуются профессио­нальные программисты.

Как программное обеспечение соотносится с аппаратной частью

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