Последовательность инструкций описывающая алгоритм решения с помощью компьютера

11

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

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

Основные
два элемента рабочего стола — это,
собственно, сам рабочий стол и панель
задач. Рабочий стол поможет вам запускать
различные программы и открывать
разнообразные окна, в то время как панель
задач предназначена для того, чтобы
получить более удобный доступ к
определенным программам или элементам
Windows. Все, что вы видите на рабочем столе,
показанном на рисунке выше, имеет свое
предназначение, о чем подробно
рассказывается далее.

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

  • 1Рабочий
    стол
    .
    Рабочий стол расположен над панелью
    задач. Любая программа, запущенная в
    Windows, будет отображаться в окне,
    расположенном на рабочем столе.

  • 2Значки
    рабочего стола
    .
    С помощью значков (пиктограмм) вы
    получаете быстрый доступ к часто
    используемым программам, папкам и
    документам. Любой значок можно как
    удалить с рабочего стола, так и добавить
    на него.

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

  • 3Кнопка
    Пуск
    .
    После щелчка правой кнопкой мыши на
    значке Пуск будет открыто окно (или,
    другими словами, меню), которое также
    называется Пуск. С помощью этого окна
    вы получите доступ ко всем программам,
    установленным в Windows, а также часто
    используемым папкам, таким как Мои
    документы и Недавние документы.

  • 4Панель
    быстрого запуска
    .
    Это еще один способ запуска часто
    используемых программ. Значки тех
    программ, с которыми вы часто работаете,
    можно по желанию разместить на панели
    быстрого запуска, получив тем самым к
    ним доступ даже в том случае, если
    рабочий стол со значками программ
    закрыт окном какой-либо программы.

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

  • 6Значок
    раскладки клавиатуры
    .
    Этот значок указывает, на каком языке
    вы сможете набирать текст с помощью
    клавиатуры.

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

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

Давайте
рассмотрим какими свойствами обладают
окошка приложений Windows.

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

2. Кнопка
свертывания с помощью этой кнопки
сворачивается окошко Windows в панель задач
Windows.

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

4. Кнопка
закрытия служит для полного завершения
работы и закрытием окошка Windows.

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

6. Скроллер.
Если передвинуть скроллер вниз, то
содержимое окошка Windows переместится
вниз, а если переместить его вверх, то
содержимое окошка Windows переместится
вверх.

7. Границы
окошка Windows. Стороны и углы окошка Windows
можно использовать для изменения его
размеров. Для того, чтобы изменить размер
активного окошка Windows нужно поместить
указатель над краем окошка Windows или над
его углом, чтобы его указатель изменил
свою форму на двойную стрел

Организация
и обслуживание фаловой структуры

Несмотря на то что
данные о местоположении файлов хранятся
в табличной структуре, пользователю
они представляются в виде иерархической
структуры — людям так удобнее, а все
необходимые преобразования берет на
себя операционная система. К функции
обслуживания файловой структуры
относятся следующие операции, происходящие
под управлением операционной системы:
• создание файлов и присвоение им имен;
· создание каталогов (папок) и присвоение
им имен;                                
· переименование файлов и каталогов
(папок);                                
· копирование и перемещение файлов
между дисками компьютера и между
каталогами (папками) одного диска; ·
удаление файлов и каталогов (папок); •
навигация по файловой структуре с целью
доступа к заданному файлу, каталогу
(папке); · управление атрибутами файлов.
  Создание и именование файлов Файл
— это именованная последовательность
байтов произвольной длины. Поскольку
из этого определения вытекает, что файл
может иметь нулевую длину, то фактически
создание файла состоит в присвоении
ему имени и регистрации его в файловой
системе — это одна из функций операционной
системы. Даже когда мы создаем файл,
работая в какой-то прикладной программе,
в общем случае для этой операции
привлекаются средства операционной
системы. По способам именования файлов
различают «короткое» и «длинное» имя.
До появления операционной системы
Windows 95 общепринятым способом именования
файлов на компьютерах IBM PC было соглашение
8.3. Согласно этому соглашению, принятому
в MS-DOS, имя файла состоит из двух частей:
собственно имени и расширения имени.
На имя файла отводится 8 символов, а на
его расширение — 3 символа. Имя от
расширения отделяется точкой. Как имя,
так и расширение могут включать только
алфавитно-цифровые символы латинского
алфавита. Соглашение 8.3 не является
стандартом, и потому в ряде случаев
отклонения от правильной формы записи
допускаются как операционной системой,
так и ее приложениями. Так, например, в
большинстве случаев система «не
возражает» против использования
некоторых специальных символов
(восклицательный знак, символ подчеркивания,
дефис, тильда и т. п.), а некоторые версии
MS-DOS даже допускают использование в
именах файлов символов русского и других
алфавитов. Сегодня имена файлов,
записанные в соответствии с соглашением
8.3, считаются «короткими». Основным
недостатком «коротких» имен является
их низкая содержательность. Далеко не
всегда удается выразить несколькими
символами характеристику файла, поэтому
с появлением операционной системы
Windows 95 было введено понятие «длинного»
имени. Такое имя может содержать до 256
символов. Этого вполне достаточно для
создания содержательных имен файлов.
«Длинное» имя может содержать любые
символы, кроме девяти специальных:
/:*?»<>|.В имени разрешается использовать
пробелы и несколько точек. Расширением
имени считаются все символы, идущие
после последней точки. Наряду с «длинным»
именем операционные системы Windows 95 и
Windows 98 создают также и короткое имя файла
— оно необходимо для возможности работы
с данным файлом на рабочих местах с
устаревшими операционными системами.
Особенности Windows 95 и Windows 98. Использование
«длинных» имен файлов в операционных
системах Windows 95 и Windows 98 имеет ряд
особенностей. Если «длинное» имя файла
включает пробелы, то в служебных операциях
его надо заключать в кавычки. Рекомендуется
не использовать пробелы, а заменять их
символами подчеркивания. В корневой
папке диска (на верхнем уровне иерархической
файловой структуры) нежелательно хранить
файлы с длинными именами — в отличие
от прочих папок в ней ограничено
количество единиц хранения, причем чем
длиннее имена, тем меньше файлов можно
разместить в корневой папке. Кроме
ограничения на длину имени файла (256
символов) существует гораздо более
жесткое ограничение на длину полного
имени файла (в него входит путьдоступа
к файлу, начиная от вершины иерархической
структуры). Полное имя не может быть
длиннее 260 символов

Разрешается использовать
символы любых алфавитов, в том числе и
русского, но если документ готовится
для передачи, с заказчиком (потребителем
документа) необходимо согласовать
возможность воспроизведения файлов с
такими именами на его оборудовании.
Прописные и строчные буквы не различаются
операционной системой. Для нее имена
Письмо.М и письмо.М соответствуют одному
и тому же файлу. Однако символы разных
регистров исправно отображаются
операционной системой, и, если для
наглядности надо использовать прописные
буквы, это можно делать. Программисты
давно научились использовать расширение
имени файла для передачи операционной
системе, исполняющей программе или
пользователю информации о том, к какому
типу относятся данные, содержащиеся в
файле, и о формате, в котором они записаны.
В ранних операционных системах этот
факт использовался мало. По существу,
операционные системы MS-DOS анали зировали
только расширения .ВАТ (пакетные файлы
с командами MS-DOS), .EXE, .COM (исполнимые файлы
программ) и .SYS (системные файлы
конфигурации). В современных операционных
системах любое расширение имени файла
может нести информацию для операционной
системы. Системы Windows 95/98 имеют средства
для регистрации свойств типов файлов
по расширению их имени, поэтому во многих
случаях выбор расширения имени файла
не является частным делом пользователя.
Приложения этих систем предлагают
выбрать только основную часть имени и
указать тип файла, а соответствующее
расши рение имени приписывают
автоматически.   Создание каталогов
(папок) Каталоги (папки) — важные элементы
иерархической структуры, необходимые
для обеспечения удобного доступа к
файлам, если файлов на носителе слишком
много. Файлы объединяются в каталоги
по любому общему признаку, заданному
их создателем (по типу, по принадлежности,
по назначению, по времени создания и т.
п.). Каталоги низких уровней вкладываются
в каталоги более высоких уровней и
являются для них вложенными. Верхним
уровнем вложенности иерархической
структуры является корневой каталог
диска. Все современные операционные
системы позволяют создавать каталоги.
Правила присвоения имени каталогу ничем
не отличаются от правил присвоения
имени файлу, хотя негласно для каталогов
не принято задавать расширения имен.
Мы знаем, что в иерархических структурах
данных адрес объекта задается маршрутом
(путем доступа), ведущим от вершины
структуры к объекту. При записи пути
доступа к файлу, проходящего через
систему вложенных каталогов, все
промежуточные каталоги разделяются
между собой определенным символом. Во
многих операционных системах в качестве
такого символа используется «» (обратная
косая черта), например:     Особенности
Windows 95 и Windows 98. До появления операционной
системы Windows 95 при описании иерархической
файловой структуры использовался
введенный выше термин каталог. С
появлением этой системы был введен
новый термин — папка. В том, что касается
обслуживания файловой структуры носителя
данных, эти термины равнозначны: каждому
каталогу файлов на диске соответствует
одноименная папка операционной системы.
Основное отличие понятий папка и каталог
проявляется не в организации хранения
файлов, а в организации хранения объектов
иной природы. Так, например, в Windows 95 и
Windows 98 существуют специальные папки,
представляющие собой удобные логические
структуры, которым не соответствует ни
один каталог диска.   Копирование и
перемещение файлов В неграфических
операционных системах операции
копирования и перемещения файлов
выполняются вводом прямой команды в
поле командной строки. При этом указывается
имя команды, путь доступа к каталогу-источнику
и путь доступа к каталогу-приемнику. В
графических операционных системах
существуют приемы работы с устройством
позиционирования, позволяющие выполнять
эти команды наглядными методами.

Удаление
файлов и каталогов (папок)

Средства удаления данных не менее важны
для операционной системы, чем средства
их создания, поскольку ни один носитель
данных не обладает бесконечной емкостью.
Существует как минимум три режима
удаления данных: удаление, уничтожение
и стирание, хотя операционные системы
обеспечивают только два первых режима
(режим надежного стирания данных можно
обеспечить лишь специальными программными
средствами). Удаление файлов является
временным. В операционных системах
Windows 95 и Windows 98 оно организовано с помощью
специальной папки, которая называется
Корзина. При удалении файлов и папок
они перемещаются в Корзину. Эта операция
происходит на уровне файловой структуры
операционной системы (изменяется только
путь доступа к файлам). На уровне файловой
системы жесткого диска ничего не
происходит — файлы остаются в тех же
секторах, где и были записаны. Уничтожение
файлов происходит при их удалении в
операционной системе MS-DOS или при очистке
Корзины в операционных системах Windows
95/98. В этом случае файл полностью удаляется
из файловой структуры операционной
системы, но на уровне файловой системы
диска с ним происходят лишь незначительные
изменения. В таблице размещения файлов
он помечается как удаленный, хотя
физически остается там же, где и был.
Это сделано для минимизации времени
операции. При этом открывается возможность
записи новых файлов в кластеры, помеченные
как «свободные». Для справки укажем,
что операция стирания файлов, выполняемая
специальными служебными программами,
состоит именно в том, чтобы заполнить
якобы свободные кластеры, оставшиеся
после уничтоженного файла, случайными
данными. Поскольку даже после перезаписи
данных их еще можно восстановить
специальными аппаратными средствами
(путем анализа остаточного магнитного
гистерезиса), для надежного стирания
файлов требуется провести не менее пяти
актов случайной перезаписи в одни и те
же сектора. Эта операция весьма
продолжительна, и поскольку массовому
потребителю она не нужна, то ее не
включают в стандартные функции
операционных систем.   Навигация по
файловой структуре Навигация по файловой
структуре является одной из наиболее
используемых функций операционной
системы. Удобство этой операции часто
воспринимают как удобство работы с
операционной системой. В операционных
системах, имеющих интерфейс командной
строки, навигацию осуществляют путем
ввода команд перехода с диска на диск
или из каталога в каталог. В связи с
крайним неудобством такой навигации,
широкое применение нашли специальные
служебные программы, называемые файловыми
оболочками. Как и операционные системы,
файловые оболочки бывают неграфическими
и графическими. Наиболее известная
неграфическая файловая оболочка для
MS-DOS — диспетчер файлов Norton Commander, а роль
графической файловой оболочки для
MS-DOS в свое время исполняли программы
Windows 1.0 и Windows 2.0, которые постепенно
развились до понятия операционной среды
(в версиях Windows 3.x) и далее до самостоятельной
операционной системы (Windows 95/98). С приемами
навигации в современных графических
операционных системах мы познакомимся
при их изучении.   Управление атрибутами
файлов Кроме имени и расширения имени
файла операционная система хранит для
каждого файла дату его создания
(изменения) и несколько флаговых величин,
называемых атрибутами файла. Атрибуты
— это дополнительные параметры,
определяющие свойства файлов. Операционная
система позволяет их контролировать и
изменять; состояние атрибутов учитывается
при проведении автоматических операций
с файлами. Основных атрибутов четыре:
« Только для чтения (Read only); в Скрытый
(Hidden); в Системный (System); в Архивный
(Archive). Атрибут Только для чтения
ограничивает возможности работы с
файлом. Его установка означает, что файл
не предназначен для внесения изменений.
Атрибут Скрытый сигнализирует операционной
системе о том, что данный файл не следует
отображать на экране при проведении
файловых операций. Это мера защиты
против случайного (умышленного или
неумышленного) повреждения файла.
Атрибутом Системный помечаются файлы,
обладающие важными функциями в работе
самой операционной системы. Его
отличительная особенность в том, что
средствами операционной системы его
изменить нельзя. Как правило, большинство
файлов, имеющих установленный атрибут
Системный, имеют также и установленный
атрибут Скрытый. Атрибут Архивный в
прошлом использовался для работы
программ резервного копирования.
Предполагалось, что любая программа,
изменяющая файл, должна автоматически
устанавливать этот атрибут, а средство
резервного копирования должно его
сбрасывать. Таким образом, очередному
резервному копированию подлежали только
те файлы, у которых этот атрибут был
установлен. Современные программы
резервного копирования используют
другие средства для установления факта
изменения файла, и данный атрибут во
внимание не принимается, а его изменение
вручную средствами операционной системы
не имеет практического значения.  

Что
такое файлы и папки?

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

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

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

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

Папки
на компьютере работают точно так же.
Так выглядит типичный значок папки:

Пустая
папка (слева); папка с файлами (справа)

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

Операции
с файловой структурой

К основным операциям
с файловой структурой относятся:

навигация
по файловой структуре;

запуск
программ и открытие документов;

создание
папок;

копирование
файлов и папок;

перемещение
файлов и папок;

удаление
файлов и папок;

переименование
файлов и папок;

создание
ярлыков.

Программа
Проводник

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

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

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

Установка и
удаление программ

В
операционной системе Windows 98 есть несколько
способов установки приложений, но
основным является метод, основанный на
использовании значка Установка и
удаление программ в папке Панель
управления (Пуск > Настройка > Панель
управления). Во всех случаях рекомендуется
использовать именно это средство,
поскольку прочие методы установки не
гарантируют правильной регистрации
приложений в реестре операционной
системы.  Перед началом установки
нового приложения следует закрыть все
работающие программы и все открытые
документы. В некоторых случаях необходимо
закрывать и ряд фоновых процессов (их
наличие может отображаться в виде
значков панели индикации на правом краю
Панели задач).   Особенности спецификации
Windows Приступая к установке приложений,
необходимо знать особенности операционной
системы, связанные с совместным
использованием ресурсов, и помнить, что
процедура установки непроверенных
программных средств относится к категории
потенциально опасных. Принцип совместного
использования ресурсов лежит в основе
спецификации Windows, и в области программного
обеспечения он приводит к тому, что
разные приложения могут использовать
общие программные ресурсы. Так, например,
в большинстве приложений Windows можно
встретить одинаковые элементы оформления
и управления (окна, кнопки, раскрывающиеся
списки, меню, флажки, переключатели и
многое другое). Одинаковы и приемы
управления ими, и методы их использования.
С точки зрения приложений, это означает,
что их многие компоненты обрабатываются
одним и тем же программным кодом. Поэтому
в Windows принято выделять стереотипные
программные фрагменты и группировать
их в динамические библиотеки, к которым
открыт доступ из разных программ
(динамические библиотеки имеют расширение
имени файла .DLL). При установке новых
приложений вместе с ними устанавливаются
только те программные ресурсы, которые
нужны для работы данного приложения,
но отсутствуют на данном компьютере
(то есть, не зарегистрированы в его
операционной системе). Поэтому для
установки новых приложений очень важно,
чтобы они проходили правильную
регистрацию. Несмотря на то что в состав
дистрибутивных комплектов большинства
современных приложений входят специальные
устанавливающие программы-(ЗЕТиР.ЕХЕ),
полагаться на то, что они правильно
выполнят регистрацию, в общем случае
не следует. Установку программ следует
выполнять стандартными средствами.
Этим обеспечивается как надежная работа
ранее установленных приложений, так и
основы для корректной установки
последующих приложений.   Стандартное
средство установки приложений Стандартное
средство установки (и удаления) приложений
Windows запускают командой Пуск > Настройка
> Панель управления > Установка и
удаление программ. После двойного щелчка
на указанном значке открывается
диалоговое окно Свойства: Установка и
удаление программ. Для установки
произвольного программного обеспечения
используется вкладка Установка/Удаление.
На ее странице представлен список ранее
установленных приложений. Они прошли
правильную регистрацию, и если не были
нарушены условия их эксплуатации, то
можно рассчитывать на то, что они могут
быть и корректно удалены. 1 Установка
приложения начинается с щелчка на кнопке
Добавить/удалить. После этого запускается
вспомогательная программа Мастер
установки. С помощью кнопки Обзор следует
разыскать местоположение программы
Setup.exe, которая входит в дистрибутивный
комплект устанавливаемого приложения,
после чего щелкнуть на кнопке Готово.
Во многих случаях после установки
приложения следует перезагрузить
компьютер. Это одна из причин, по которой
до начала установки закрывают все
открытые приложения и документы.
Необходимость перезагрузки связана с
особенностью операционной системы,
которая заключается в том, что основная
часть регистрационных действий
выполняется в момент завершения работы.
Это сделано специально, чтобы не тормозить
производительную работу пользователей
служебными операциями. Перезагрузку
можно ускорить, если команду выдать при
нажатой клавише SHIFT. В этом случае
произойдет только перезапуск операционной
системы без перезагрузки компьютера.
  Удаление приложений Windows Удаление
ранее установленных приложений Windows
производится средствами того же
диалогового окна Свойства: Установка
и удаление программ. Следует выделить
удаляемый объект и щелкнуть на кнопке
Добавить/удалить. Удаление редко бывает
полным. Скорее всего, какие-то компоненты
останутся. Чаще всего остаются некоторые
папки (как правило, пустые). Компоненты,
не удаленные автоматически, следует
удалить вручную. Рекомендуется удалять
их в Корзину и наблюдать за компьютером
в течение нескольких дней. Если после
этого работоспособность прочих программ
не нарушается, эти компоненты можно
удалить и из Корзины. В общем случае,
оборудование подключается к компьютеру
дважды: аппаратно и программно. Под
аппаратным подключением понимают
физическое соединение с компьютером
либо с помощью слотов на материнской
плате, либо с помощью внешних разъемов
стандартных портов на задней стенке
системного блока. Бывает и смешанное
подключение, когда интерфейсная плата
нового устройства вставляется в слот
материнской платы и при этом создается
новый (нестандартный) порт, разъем
которого выходит на заднюю стенку. Таким
способом подключают, как правило,
устройства, требующие высокой скорости
передачи данных, например сканеры или
сетевые устройства. Под программным
подключением понимают установку
программы-драйвера, являющейся посредником
между операционной системой и устройством.
При установке драйвера происходит
выделение операционной системой части
ресурсов новому устройству, а также
регистрация устройства и его драйвера
в реестре операционной системы. Однако,
в общем правиле есть и исключения. Такие
«стандартные» устройства, как жесткие
диски, дисководы гибких дисков и
клавиатура, не требуют драйверов,
поскольку сведения о том, как с ними
работать, уже имеются в базовой системе
ввода-вывода (BIOS). Они должны распознаваться
и работать еще до загрузки операционной
системы. То же относится и к монитору,
и к видеоадаптеру, но без драйверов они
распознаются только как простейшие
стандартные модели. Для того чтобы
использовать все функциональные
возможности конкретной модели, драйвер
установить необходимо. Несколько менее
«стандартными» устройствами считаются
мышь и дисковод CD-ROM. Они не всегда
распознаются средствами BIOS, но после
загрузки операционной системы Windows 98
уже считаются стандартными устройствами
и обслуживаются драйверами, имеющимися
в ее составе, однако если речь идет о
необычных моделях, драйвер для них может
потребоваться. Абсолютное большинство
прочих устройств требуют наличия
программного драйвера. При продаже
аппаратного обеспечения общепринято
прикладывать к устройству программные
драйверы на гибком или лазерном диске.
В отсутствие такой возможности можно
воспользоваться библиотекой драйверов,
входящей в состав операционной системы.
Если библиотека не поддерживает
конкретную модель устройства, необходимый
драйвер можно получить в Интернете на
сервере фирмы, изготовившей оборудование,
или на сервере компании Microsoft, где имеется
коллекция драйверов устройств для
операционных систем, выпускаемых этой
компанией. Даже для старых и надежно
работающих устройств рекомендуется
периодически (два раза в год) посещать
сервер изготовителя и получать обновленную
версию драйвера. Своевременное обновление
драйверов устройств повышает эффективность
работы оборудования, улучшает совместимость
с программным обеспечением и повышает
общую надежность системы.   Средства
программной установки оборудования
Базовое программное средство установки
оборудования запускается двойным
щелчком на значке Установка оборудования
в окне папки Панель управления. С его
помощью можно установить большую часть
оборудования, хотя в общем правиле есть
исключения. Драйвер монитора можно
установить в диалоговом окне свойств
видеосистемы: Пуск > Настройка >
Панель управления > Экран > Настройка
> Дополнительно > Монитор > Изменить.
Там же можно установить или заменить
драйвер видеоадаптера: Пуск > Настройка
> Панель управления > Экран > Настройка
> Дополнительно > Адаптер > Изменить.
Специальные средства существуют для
установки принтеров: Пуск > Настройка
> Принтеры > Установка принтера, а
также для установки модемов Пуск >
Настройка > Панель управления >
Модемы. Однако наиболее универсальным
средством для большей части оборудования
все-таки остается Мастер установки
оборудования, который запускается
двойным щелчком на значке Установка
оборудования в окне папки Панель
управления.   Порядок установки
оборудования Новое оборудование
подключается при выключенном питании
компьютера. Если устройство является
самоустанавливающимся (соответствует
спецификацииplug-and-play), то после включения
питания его наличие выявляется
автоматически, и после сообщения
Обнаружено неизвестное устройство
операционная система приступает к
подбору драйвера для него. В этот момент
может потребоваться вставить дистрибутивный
диск с операционной системой в дисковод
CD-ROM или использовать гибкий диск с
драйвером, полученным вместе с устройством.
Иногда необходимы оба диска. Если
устройство не было опознано при запуске,
надо воспользоваться Мастером установки
оборудования. Мастер запускается
командой Пуск > Настройка > Установка
оборудования. На первом этапе он
разыскивает устройства, соответствующие
спецификации plug-and-play, и выдает список
обнаруженных устройств. На втором этапе
он разыскивает прочие устройства. Если
нужное устройство не было обнаружено
автоматически, мастер предлагает выбрать
тип устройства самостоятельно, после
чего открывает диалоговое окно, в котором
можно выбрать производителя и конкретную
модель. При наличии нужной модели драйвер
можно установить из базы данных Windows
или с гибкого диска. Если абсолютного
совпадения по модели достичь не удается,
возможна только установка драйвера с
диска, что выполняется после щелчка на
кнопке Установить с диска. По окончании
процесса установки оборудования
компьютер следует перезагрузить и
выполнить проверку на наличие конфликтов.
Для проверки наличия конфликтов
используют значок Система в окне папки
Панель управления или пункт Свойства
контекстного меню значка Мой компьютер.
И в том и в другом случае открывается
диалоговое окно Свойства: Система. На
вкладке Устройства в данном диалоговом
окне приведен список установленных
устройств. Нераспознанные устройства
в списке обозначены знаком «?», а
конфликтующие — знаком «!». Простейший
способ устранения конфликтов — удалить
конфликтующие устройства с помощью
кнопки Удалить и заново провести
распознавание оборудования и установку
драйверов обоих устройств. Во многих
случаях это автоматически снимает
проблемы. Более сложная технология
устранения конфликтов предполагает
назначение аппаратных ресурсов (номера
прерывания, адреса порта, адреса канала
прямого доступа к памяти) каждому из
конфликтующих устройств вручную командой
Свойства > Ресурсы.   Подведение
итогов   Основные достоинства
персональной вычислительной техники
проявляются в диалоговом режиме работы
с пользователем. Диалоговый режим
отличается от пакетного тем, что в ходе
работы процессор регулярно приостанавливает
выполнение текущих задач и обращается
к другим устройствам и к программам,
проверяя их состояние. Если пользователь
использует какое-либо средство управления
или извне поступает управляющий сигнал,
процессор устанавливает этот факт и
реагирует на него переходом на исполнение
другой программы. Несмотря на то что в
любой момент времени процессор работает
по жестко заданным программам, динамичное
переключение между ними создает
впечатление гибкого управления работой
компьютера. Организацией работы
процессора в таком режиме ведает
относительно небольшая группа системных
программ. Она образует ядро операционной
системы. Дополнительно к ядру операционная
система обладает средствами для: •
управления пользовательским интерфейсом
компьютера; • управления аппаратно-программными
интерфейсами компьютера; • обслуживания
файловой системы: • управления
распределением оперативной памяти
между процессами; • установки программ
и управления их работой; • обеспечения
надежности и устойчивости работы
оборудования и программ. Чем шире
функциональные возможности операционной
системы, тем большие требования она
предъявляет к техническим ресурсам
компьютерной системы, но тем проще
работа с компьютером с точки зрения
пользователя. Вопрос ресурсной
обеспеченности компьютера, универсальности
операционной системы, ее надежности,
обеспеченности прикладными программами
и драйверами устройств, а также простоты
и удобства ее использования — это
сложный вопрос баланса, который может
по-разному решаться на каждом рабочем
месте в зависимости от конкретных задач.
Для персональных компьютеров платформы
IBM PC в настоящее время наиболее широк
выбор потенциальных операционных
систем. В большинстве своем эти системы
принадлежат семейству Windows: Windows 95,
Windows NT, Windows 98, Windows Millenium и Windows 2000.
Операционные системы Windows 95/98/Me являются
универсальными многоцелевыми системами
для широкого круга задач. Их сфера
применения: бытовые и учебные компьютерные
системы, а также офисные системы
автоматизации рабочих мест малых
предприятий. Операционная система
Windows NT предназначена для специальных
работ, требующих повышенной надежности
и устойчивости компьютерной системы.
Ее сфера применения: профессиональное
программирование и серверное программное
обеспечение. Операционная система
Windows 2000 в определенной степени сочетает
универсальность и устойчивость. Все
вышеуказанные операционные системы
являются графическими. Программы,
которые работают под их управлением,
называются их приложениями. Принцип
управления приложениями состоит во
взаимодействии активных и пассивных
элементов управления. Активный элемент
управления — указатель мыши (его
предоставляет операционная система).
Пассивные элементы управления —
графические кнопки, поля, флажки,
переключатели, меню, списки и прочие.
Их предоставляют конкретные приложения.
В момент взаимодействия активного и
пассивного элементов управления
пользователь выдает управляющие сигналы
с помощью органов управления графического
манипулятора. В неграфических операционных
системах управление приложениями
ограничено и осуществляется путем
ручного ввода текстовых команд в поле
командной строки. Органом управления
в данном случае является клавиатура

12
Вы можете
запретить длинные имена файлах (размер
файлов, время их последнего обновления,
свойства файлов и т.п.),
заставив тем самым генерировать имена
в формате (DOS-овский формат). Как в Windows
происходит преобразование длинных имен
файлов в короткие? Обычно от имени
остаются первые шесть символов, затем
идет тильда (~) и после нее число. Т.е. вы
видите только первые 6 символов имени
(например, regist~1.txt). Это не очень удобно.
Можно заставить Windows генерировать
8-символьные имена, когда не происходит
дублирования (если первые 8 символов у
двух файлов одинаковые, будет генерироваться
6-символьное имя).

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

Понятия
«каталог»,
«директория»
появились в компьютерном мире одновременно
с понятиями «файл»,
«файловая система»
для упрощения организации файлов.
Понятие «папка»
в мире компьютеров появилось значительно
позднее, точнее, вместе с появлением
Windows 95 файлов в
Windows

13
Файловый менеджер (англ. file mannager) —
компьютерная программа, предоставляющая
интерфейс пользователя для работы с
файловой системой и файлами. Файловый
менеджер позволяет выполнять наиболее
частые операции


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

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

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

Наиболее
известные
ортодоксальные
файловые
менеджеры:
Norton Commander, Dos Navigator, Volkov Commander, PIE Commander, FAR
Manager, Total Commander, POSIX (Linux, BSD и
т.
д.),
Midnight Commander, Krusader, GNOME Commander.

Навигационные
файловые менеджеры: проводник Windows
(англ. Windows Explorer) — встроен в Windows, Mac OS X,
Finder, Path Finder, POSIX (Linux, BSD и т.д.), Konqueror —
поставляется с KDE, Nautilus (файловый менеджер)
— поставляется с GNOME

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

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

1.
Просмотр и редактирование текстовых
файлов, подцветка синтаксиса, поддержка
разных кодировок (включая Unicode)

2.
Поиск и замена по множеству файлов,
множественное
переименование файлов, просмотр картинок,
работа с архивами.

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

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

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

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

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

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

1. Постановка
задачи:

• сбор информации
о задаче;

• формулировка
условия задачи;

• определение
конечных целей решения задачи;

• определение
формы выдачи результатов;

• описание данных
(их типов, диапазонов величин, структуры
и т. п.).

2. Анализ и
исследование задачи, модели:

• анализ
существующих аналогов;

• анализ технических
и программных средств;

• разработка
математической модели;

• разработка
структур данных.

3. Разработка
алгоритма:

• выбор метода
проектирования алгоритма;

• выбор формы
записи алгоритма (блок-схемы, псевдокод
и др.);

• выбор тестов
и метода тестирования;

• проектирование
алгоритма.

4. Программирование:

• выбор языка
программирования;

• уточнение
способов организации данных;

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

программирования.

5. Тестирование и
отладка:

• синтаксическая
отладка;

• отладка семантики
и логической структуры;

• тестовые
расчеты и анализ результатов тестирования;

• совершенствование
программы.

6. Анализ результатов
решения задачи и уточнение в случае
необходимости математической модели
с повторным выполнением этапов 2-5.

7. Сопровождение
программы:

• доработка
программы для решения конкретных задач;

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

1. Понятие алгоритма

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

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

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

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

Алгоритм однозначен,
если при применении к одним и тем же
данным он даст один и тот же результат.
Но как по описанию алгоритма определить,
однозначен он или нет. В каком случае
шаги считаются элементарными.

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

2. Свойства алгоритма

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

–Дискретность –
последовательное выполнение простых
или ранее определённых (подпрограммы)
шагов. Преобразование исходных данных
в результат осуществляется дискретно
во времени.

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

–Результативность
означает возможность получения результата
после выполнения конечного количества
операций.

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

Для задания
алгоритма необходимо описать следующие
его элементы:

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

правило начала;

правило
непосредственной переработки информации
(описание последовательности действий);

правило окончания;

правило извлечения
результатов.

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

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

Таким образом,
можно дать следующее определение
программы для ЭВМ:

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

Содержание:

ВВЕДЕНИЕ

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

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

Цель данного исследования – характеристика алгоритмизации как обязательного этапа разработки программы.

Для достижения цели необходимо выполнить задачи:

  • охарактеризовать процесс разработки программы в целом;
  • проанализировать этапы разработки программного обеспечения;
  • рассмотреть понятие и основные характеристики алгоритма;
  • рассмотреть алгоритмизацию со стороны обязательного этапа разработки программы.

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

1 Разработка программы. Описание и этапы

1.1 Характеристика процесса разработки программы

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

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

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

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

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

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

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

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

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

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

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

В рамках одной фазы может выполняться много различных видов деятельности. Кроме того, один вид деятельности может выполняться на разных фазах – например, тестирование: на фазе анализа и проектирования можно писать тесты и налаживать тестовое окружение, при разработке и перед сдачей производить, собственно, само тестирование. На настоящий момент для сложного программного обеспечения используются многомерные модели процесса, в которых отделение фаз от видов деятельности существенно облегчает управление разработкой ПО [2]. Фазы и виды деятельности разными способами соединяются в различных моделях разработки программного обеспечения.

Водопадная модель была предложена в 1970 году Винстоном Ройсом. Фактически, впервые в процессе разработки ПО были выделены различные шаги разработки и поколеблены примитивные представления о разработке ПО в виде анализа системы и ее кодирования [3].

Были определены следующие шаги: разработка системных требований, разработка требований к ПО, анализ, проектирование, кодирование, тестирование, использование (рисунок 1).

https://www.intuit.ru/EDI/28_09_18_11/1538086734-1664/tutorial/520/objects/2/files/02-01.jpg

Рисунок 1 Водопадная модель разработки ПО

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

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

В 70–80 годах прошлого века эта модель прочно укоренилась в разработке ПО в силу своей простоты и сходности с моделями разработки иных, не программных систем. В дальнейшем, в связи с развитием программной инженерии и осознанием итеративного характера процесса разработки ПО эта модель активно критиковалась, практически каждым автором соответствующих статей и учебников. Стало общепринятым мнение, что она не отражает особенностей разработки ПО [3]. Недостатками водопадной модели являются:

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

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

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

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

Каждый виток имеет следующую структуру (секторы):

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

Схематично спиральная модель разработки программы может быть изображена следующим образом (рисунок 2):

Картинки по запросу спиральная модель разработки по

Рисунок 2 Спиральная модель разработки ПО

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

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

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

1.2 Этапы разработки программы

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

  1. Постановка задачи – выполняется специалистом в предметной области на естественном языке (русском, английском и т. д.). Необходимо определить цель задачи, ее содержание и общий подход к решению. Возможно, что задача решается точно (аналитически), и без компьютера можно обойтись. Уже на этапе постановки надо учитывать эффективность алгоритма решения задачи на ЭВМ, ограничения, накладываемые аппаратным и программным обеспечением (АО и ПО).
  2. Анализ задачи и моделирование – определяются исходные данные и результат, выявляются ограничения на их значения, выполняется формализованное описание задачи и построение (выбор) математической модели, пригодной для решения на компьютере.
  3. Разработка или выбор алгоритма решения задачи – выполняется на основе ее математического описания. Многие задачи можно решить различными способами. Программист должен выбрать оптимальное решение. Неточности в постановке, анализе задачи или разработке алгоритма могут привести к скрытой ошибке – программист получит неверный результат, считая его правильным.
  4. Проектирование общей структуры программы – формируется модель решения с последующей детализацией и разбивкой на подпрограммы, определяется «архитектура» программы, способ хранения информации (набор переменных, массивов и т. п.).
  5. Кодирование – запись алгоритма на языке программирования. Современные системы программирования позволяют ускорить процесс разработки программы, автоматически создавая часть ее текста, однако творческая работа по–прежнему лежит на программисте. Для успешной реализации целей проекта программисту необходимо использовать методы структурного программирования.
  6. Отладка и тестирование программы. Под отладкой понимается устранение ошибок в программе. Тестирование позволяет вести их поиск и, в конечном счете, убедиться в том, что полностью отлаженная программа дает правильный результат. Для этого разрабатывается система тестов – специально подобранных контрольных примеров с такими наборами па­раметров, для которых решение задачи известно. Тестирование должно охватывать все возможные ветвления в программе, т. е. проверять все ее инструкции, и включать такие исходные данные, для которых решение невозможно. Проверка особых, исключительных ситуаций,необходима для анализа корректности. Например, программа должна отказать клиенту банка в просьбе выдать сумму, отсутствующую на его счете. В ответст­венных проектах большое внимание уделяется так называемой «защите от дурака» подразумевающей устойчивость программы к неумелому обращению пользователя. Использование специальных программ – отладчиков, которые позволяют выполнять программу по отдельным шагам, просматривая при этом значения переменных, значительно упрощает этот этап [18].
  7. Анализ результатов – если программа выполняет моделирование какого–либо известного процесса, следует сопоставить результаты вычислений с результатами наблюдений. В случае существенного расхождения необ­ходимо изменить модель.
  8. Публикация результатов работы, передача заказчику для эксплуатации.
  9. Сопровождение программы – включает консультации представителей заказчика по работе с программой и обучение персонала. Недостатки и ошибки, замеченные в процессе эксплуатации, должны устраняться [6].

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

2 Алгоритмизация в процессе разработки программы

2.1 Алгоритм. Понятие, характеристики

Алгоритмом называется точное и понятное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи. Слово «алгоритм» происходит от имени математика Аль Хорезми, который сформулировал правила выполнения арифметических действий [5]. Первоначально под алгоритмом понимали только правила выполнения четырех арифметических действий над числами. В дальнейшем это понятие стали использовать вообще для обозначения последовательности действий, приводящих к решению любой поставленной задачи. Говоря об алгоритме вычислительного процесса, необходимо понимать, что объектами, к которым применялся алгоритм, являются данные. Алгоритм решения вычислительной задачи представляет собой совокупность правил преобразования исходных данных в результатные [3].

Относящаяся к алгоритму информация и сам алгоритм должны быть представлены на некотором языке. Описание алгоритма зависит от исполнителя – человека или технического средства (ЭВМ). Запись алгоритма для человека может иметь обычный текстуальный вид. Для повышения однозначности словесного описания прибегают к структуризации текста в соответствии с шагами алгоритмического процесса. Когда нужна высокая наглядность, применяют графическую форму записи алгоритмов, например в виде блок–схем. Текстуальная и графическая форма представления предназначена для восприятия человеком в процессе программирования или изучения алгоритма, но эти формы совсем не пригодны для выполнения программ на ЭВМ. ЭВМ воспринимает только определенные конструкции (команды), состав которых задан для каждого типа машины [8]. Алгоритм для ЭВМ следует представить на языке машины.

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

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

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

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

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

Для изучения основ алгоритмизации применяется так называемый Русский алгоритмический язык (школьный алгоритмический язык), использующий понятные школьнику слова на русском языке.

Алголо–подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980–х годов, в качестве основы для «безмашинного» курса информатики [16].

Основные служебные слова алгоритмического языка:

Описание алгоритма:

  • алг (алгоритм);
  • арг (аргумент);
  • рез (результат);
  • нач (начало) – начало алгоритма;
  • кон (конец) – конец алгоритма;
  • дано – исходные данные в произвольной форме;
  • надо – цель алгоритма;
  • утв.

Типы данных:

  • цел (целый);
  • вещ (вещественный);
  • сим (символьный);
  • лит (литера) – строка;
  • лог (логический);
  • таб (таблица) – для обозначения массива;
  • длин (длина) – количество элементов массива.

Обозначение условий:

  • если;
  • то;
  • иначе;
  • все;
  • выбор;
  • при;
  • знач.

Обозначение циклов:

  • нц (начало цикла);
  • кц (конец цикла);
  • пока;
  • для;
  • от;
  • до;
  • шаг.

Логические функции и значения для составления выражений:

  • и;
  • или;
  • не;
  • да;
  • нет;
  • Ввод–вывод;
  • ввод;
  • вывод [16].

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

  • детерминированность (определенность). Предполагает получение однозначного результата вычислительного процecca при заданных исходных данных. Благодаря этому свойству процесс выполнения алгоритма носит механический характер;
  • результативность. Указывает на наличие таких исходных данных, для которых реализуемый по заданному алгоритму вычислительный процесс должен через конечное число шагов остановиться и выдать искомый результат;
  • массовость. Это свойство предполагает, что алгоритм должен быть пригоден для решения всех задач данного типа;
  • дискретность. Означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений [15].

2.2 Алгоритмизация как этап разработки программы

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

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

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

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

  • линейные;
  • ветвящиеся;
  • циклические;

Линейные вычислительные процессы

Линейный алгоритм (линейная структура) – это такой алгоритм, в котором все действия выполняются последовательно друг за другом и только один раз. Схема представляет собой последовательность блоков, которые располагаются сверху вниз в порядке их выполнения [12]. Первичные и промежуточные данные не оказывают влияния на направление процесса вычисления. Построение линейного алгоритма изображено на рисунке 3.

Картинки по запросу линейный алгоритм схема

Рисунок 3 Структура линейного алгоритма

Алгоритмы разветвляющейся структуры

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

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

Похожее изображение

Рисунок 4 Структура разветвляющегося алгоритма

Циклические вычислительные процессы

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

Существуют две схемы циклических вычислительных процессов – с предусловием (рисунок 5) и с постусловием (рисунок 6).

Картинки по запросу циклический алгоритм с предусловием

Рисунок 5 Структура циклического алгоритма с предусловием

Картинки по запросу циклический алгоритм с постусловием

Рисунок 6 Структура циклического алгоритма с постусловием

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

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

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

Наибольшее распространение благодаря своей наглядности получил графический (блок–схемный) способ записи алгоритмов. Блок–схемой называется графическое изображение логической структуры алгоритма, в котором каждый этап процесса обработки информации представляется в виде геометрических символов (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций. Перечень символов, их наименование, отображаемые ими функции, форма и размеры определяются ГОСТами. Основные блоки для составления алгоритмов в процессе разработки программы представлены в таблице 1 [8].

Таблица 1

Основные блоки для составления алгоритмов

Название

Обозначение

Описание

Терминатор

Терминатор

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

Процесс

Процесс

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

Предопределенный процесс

Предопределенный процесс

Использование ранее созданных и отдельно описанных алгоритмов или программ

Ввод–вывод

Ввод-вывод

Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод)

Решение

Решение (условие)

Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий
Блок решения имеет 1 вход и по крайней мере 2 выхода

Границы цикла

Начало циклаНачало цикла

Конец циклаКонец цикла

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

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

Подготовка

Модификатор

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

Комментарий

Комментарий

Пояснение к элементу схемы (или линии связи)

Соединитель

Соединитель

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

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

ЗАКЛЮЧЕНИЕ

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

  • охарактеризован процесс разработки программы в целом;
  • проанализированы этапы разработки программного обеспечения;
  • рассмотрено понятие и основные характеристики алгоритма;
  • рассмотрена алгоритмизация со стороны обязательного этапа разработки программы.

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

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

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

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

  1. Агафонов, В. Н. Логическое программирование / В. Н. Агафонов. – М.: Форум, 2016. – 718 c.
  2. Бек, Л. Введение в системное программирование / Л. Бек. – М.: Мир, 2016. – 448 c.
  3. Голицына, О. Л. Основы алгоритмизации и программирования / О. Л. Голицына, И.И. Попов. – М.: Форум, 2015. – 432 c.
  4. Дегтерева, Р. Необычные эффекты алгоритмизации / Р. Дегтерева. – М.: LAP Lambert Academic Publishing, 2017. – 140 c.
  5. Долгов, А. И. Алгоритмизация прикладных задач. Учебное пособие / А. И. Долгов. – М.: Флинта, 2016. – 175 c.
  6. Канцедал, С. А. Алгоритмизация и программирование / С. А. Канцедал. – М.: Форум, Инфра–М, 2014. – 352 c
  7. Кнут, Д. Э. Искусство программирования (Том 1. Основные алгоритмы) / Д. Э. Кнут. – М.: Мир, 2017. – 882 c.
  8. Колдаев, В. Д. Основы алгоритмизации и программирования / В. Д. Колдаев. – М.: Форум, Инфра–М, 2018. – 416 c.
  9. Комлев, Н. Ю. Объектно Ориентированное Программирование. Хорошая книга для Хороших Людей / Н. Ю. Комлев. – М.: Солон–Пресс, 2014. – 892 c.
  10. Корниенко, М. М. Информатика. Основы алгоритмизации и программирования. Теоретические основы, примеры и задания, практические работы / М.М. Корниенко. – М.: Ранок, 2018. – 259 c.
  11. Кьоу Дж. Объектно–ориентированное программирование / Дж. Кьоу, М. Джеанини. – М.: Питер, 2015. – 240 c.
  12. Потопахин, В. В. Искусство алгоритмизации. Учебное пособие / В. В. Потопахин. – М.: ДМК Пресс, 2018. – 328 c.
  13. Санников, Е. В. Курс практического программирования в Delphi. Объектно–ориентированное программирование / Е. В. Санников. – М.: Солон–Пресс, 2017. – 188 c.
  14. Судзиловский, В. Ю. Моделирование и алгоритмизация в САПР / В. Ю. Судзиловский. – М.: Книжный клуб 36.6, 2017. – 270 c.
  15. Трофимов, В. В. Алгоритмизация и программирование. Учебник для академического бакалавриата / В. В. Трофимов. – М.: Юрайт, 2017. – 315 c
  16. Фалина, И. Н. Алгоритмизация и программирование (+ CD–ROM) / И. Н. Фалина и др. – М.: КУДИЦ–Пресс, 2019. – 280 c.
  17. Хорев, П. Б. Объектно–ориентированное программирование / П. Б. Хорев. – М.: Academia, 2017. – 448 c.
  18. Хювёнен, Э. Мир Лиспа. Том 2. Методы и системы программирования / Э. Хювёнен, И. Септянен. – М.: КУДИЦ, 2015. – 742 c.

СПИСОК ДЛЯ ТРЕНИРОВКИ ССЫЛОК

  • Роль мотивации в поведении организации (Теоретические аспекты реализации различных моделей мотивации на коммерческом предприятии)
  • ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ИЗУЧЕНИЯ ПОКУПАТЕЛЬСКОГО СПРОСА И ФОРМИРОВАНИЯ ТОВАРНОГО АССОРТИМЕНТА ТОРГОВОГО ПРЕДПРИЯТИЯ
  • Оценка развития менеджмента в разных странах
  • Анализ внутренней и внешней среды предприятия.
  • Проектирование организации ( Процессы организационного проектирования)
  • .Средства создания программ, выполняемых на стороне сервера.
  • ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ СИСТЕМЫ НАЛОГОВОГО УЧЕТА
  • Общие вопросы государственного регулирования предпринимательской деятельности
  • Понятие языкового заимствования
  • Характеристика предметной области
  • Политический режим как ведущий элемент формы государства
  • Формы государственного устройства(Форма государственного устройства как элемент формы государства)

Алгоритмы и программы

План

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

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

  3. Понятие программы. Программирование и его виды

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

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

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

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

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

Свойства алгоритмов

Алгоритм должен обладать определенными свойствами. Наиболее важные свойства алгоритмов:

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

  2. Конечность. Исполнение алгоритма должно завершиться за конечное число шагов; при этом должен быть получен результат.

  3. Понятность. Каждая команда алгоритма должна быть понятна исполнителю. Алгоритм должен содержать только те команды, которые входят в систему команд его исполнителя.

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

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

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

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

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

  3. Формальные алгоритмические языки. Для записи алгоритма используется специальная система обозначений (искусственный язык, называемый алгоритмическим);

  4. Псевдокод. Запись алгоритма на основе синтеза алгоритмического и обычного языков. Базовые структуры алгоритма записываются строго с помощью элементов некоторого базового алгоритмического языка.

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

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

Пример 1. Записать в словесной форме правило деления обыкновенных дробей.

Решение.

Шаг 1. Числитель первой дроби умножить на знаменатель второй дроби.

Шаг 2. Знаменатель первой дроби умножить на числитель второй дроби.

Шаг 3. Записать дробь, числителем которой являет результат выполнения шага 1, знаменателем — результат выполнения шага 2.

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

Формальные исполнители алгоритма

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

Программы на языке произвольного формального исполнителя могут состоять только из элементарных команд, которые входят в его систему (которые исполнитель «понимает»).

Исполнитель может иметь свою среду (например, систему координат, клеточное поле и др.). Среда исполнителя — это совокупность объектов, над которыми он может выполнять определенные действия (команды), и связей между этими объектами. Алгоритмы в этой среде выполняются исполнителем по шагам.

Пример 2. Исполнитель Крот имеет следующую систему команд:

вперед k — продвижение на указанное число шагов вперед;

поворот s — поворот на s градусов по часовой стрелке;

повторить m [команда1 … командаN] — повторить m раз серию указанных команд.

Какой след оставит за собой исполнитель после выполнения следующей последовательности команд?

Повторить 5 [вперед 10 поворот 72]

Решение. Команда вынуждает исполнителя 5 раз повторить набор действий: пройти 10 шагов вперед и повернуть на 72° по часовой стрелке. Так как поворот происходит на один и тот же угол, то за весь путь исполнитель повернет на 5 х 72° = 360°. Поскольку все отрезки пути одинаковой длины и сумма внешних углов любого многоугольника составляет 360°, то в результате будет оставлен след в форме правильного пятиугольника со стороной в 10 шагов исполнителя.

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

Пример 3. В системе команд предыдущего исполнителя Крот сформировать алгоритм вычерчивания пятиступенчатой лестницы (длина ступеньки — 10 шагов исполнителя).

Решение. За каждый шаг цикла должно происходить 4 действия: движение вперед на 10 шагов исполнителя, поворот на 90° по часовой стрелке, еще 10 шагов вперед и поворот на 90° против часовой стрелки (= 270° по часовой). В результате за один шаг цикла формируется ломаная из двух отрезков длиной 10 под прямым углом. За пять таких шагов сформируется 5–ступенчатая лестница (ломаная будет содержать 10 звеньев).

Повторить 5 [вперед 10 поворот 90 вперед 10 поворот 270]

Блок–схема

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

Основные элементы блок–схемы алгоритма:

Общий вид блок–схемы алгоритма:

Пример 4. Алгоритм целочисленных преобразований представлен в виде фрагмента блок–схемы. Знаком := в нем обозначен оператор присваивания некоторого значения указанной переменной. Запись X := 1 означает, что переменная Х принимает значение 1.

Определить результат работы алгоритма для исходных данных Х = 7, Y = 12.

Решение.

Блок ввода данных определит исходные значения переменных Х и Y (7 и 12 соответственно).

В первом условном блоке осуществляется сравнение значений Х и Y. Поскольку условие, записанное в блоке, неверно (7

Во втором условном блоке выполняется второе сравнение, которое для исходных данных оказывается верным. Происходит переход по линии «да».

Вычисляется результат выполнения алгоритма: X := 0, Y := 1.

Ответ: X := 0, Y := 1.

Алгоритмические языки

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

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

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

Псевдокод

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

Служебные слова учебного алгоритмического языка:

Стандартная структура алгоритма

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

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

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

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

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

Примеры заголовков алгоритмов:

В первом примере алгоритм имеет название Объем_шара, один вещественный аргумент Радиус и один вещественный результат Объем. Во втором примере алгоритм под названием Choice имеет три аргумента — целые M и N и логический b, а также два результата — вещественные Var1 и Var2.

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

На вход алгоритму даются два вещественных аргумента a и b (величины катетов), результатом является вещественная переменная с (гипотенуза). Для ее расчета используется функция вычисления квадратного корня sqrt.

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

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

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

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

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

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

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

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

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

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

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

Линейные алгоритмические конструкции

В блок–схемах линейные алгоритмы представляют с помощью последовательности функциональных блоков:

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

Команда 1

Команда 2

Команда 3

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

Пример 1. Определить значение целой переменной n после выполнения следующего алгоритма:

m := 3

n := 4

m := 6 + m*n

n := n + m/3

Решение. Первые две команды присваивания определяют начальные значения переменных. Для выполнения третьей команды сначала надо вычислить правую часть выражения: 6 + 3 х 4 = 18. Это значение будет присвоено переменной m. Для выполнения последней команды также сначала вычисляется правая часть выражения: 4 + 18/3 = 10. Результат будет присвоен переменной п.

Ответ: 10.

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

Пример 2. Вычислить значение выражения x2 – 3 × х – 10, используя только операции сложения и умножения.

Для решения задачи в той последовательности, что определяет само выражение, потребуется 2 операции умножения, 2 вычитания и 3 переменных (х, y, z). Однако можно вычислить то же выражение как (х — 2) × х – 10. Такой алгоритм расчета потребует 1 умножение, 2 вычитания и 2 переменных (х, у).

Решение.

Алгоритмические конструкции ветвления

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

Существует две реализации структуры ветвления: полная и неполная (краткая). Обе формы ветвления являются замкнутыми: каждая из них имеет один вход и один выход.

Полная форма ветвления означает, что осуществляется выбор между двумя действиями. Если проверка условия дает результат «да», то выбирается действие 1; в противоположном случае (то есть если проверка условия дает результат «нет») — выбирается действие 2.

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

Пример 3. Для извлечения квадратного алгебраического корня из числа B необходимо проверить, положительно ли это число. Если проверка дает значение «истина» («да»), извлечь корень; если результат проверки — «ложь» («нет»), выдать соответствующее сообщение пользователю.

Краткая форма ветвления предполагает, что в случае истинности условия будет выполнена команда 1, а иначе — никакие действия не выполняются.

Пример 4. Для расчета значений гиперболы по формуле y = 2/x необходимо проверить, что значение х не равно нулю. Если проверка условия дает значение «истина», — вычислить результат. В противном случае (если проверка условия дает значение «ложь», т. е. х равно нулю) — не выполнять никаких действий, поскольку деление на ноль запрещено.

если 2/х ≠ 0

то y := 2/x

всё

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

Решение. Ромбу на блок–схеме соответствует структура ветвление (команда если): проверяется условие «отрицательное». Если условие истинно, выполняется ветвь «да» (строка то на алгоритмическом языке) с двумя действиями: «умножить на –1»; «извлечь корень». Если условие ложно, выполняется ветвь «нет» (строка иначе на алгоритмическом языке) с одним действием: «разделить на 2». После обоих вариантов структура завершается, что соответствует служебному слову всё. Такому положению соответствует вариант алгоритма 4.

Ответ: 4.

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

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

Полная и краткая формы структуры выбор различаются действиями после проверки последнего условия. Если проверка последнего условия выдает «ложь» («нет»), — в полной форме выполняют заданную команду; в краткой форме ничего не делают.

Во всех формах структур ветвления важную роль играют условия выбора. Часто в них используются операторы сравнения или другие отношения. Результатом условия может быть только одно из двух логических значений — Ложь или Истина. В языках программирования эти значения обычно записывают как True и False. В учебном алгоритмическом языке используют чаще значения «да» и «нет». В компьютерной форме эти значения обычно представлены битовыми значениями 0 и 1.

Простые условия обычно содержат только одну операцию — например, X 0, А ≠ В или s = «отец». Объединение нескольких простых условий образует составное условное выражение (или составное условие). Для объединения простых условий используются логические операторы:

and (логическое И),

or (логическое ИЛИ),

xor (исключающее ИЛИ),

not (отрицание).

Например, чтобы задать условие принадлежности числовой величины Z промежутку (10;20), следует записать составное условие Z 10 and Z

Циклические конструкции

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

ЦИКЛ С ПРЕДУСЛОВИЕМ (ИЛИ ЦИКЛ «ПОКА»)

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

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

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

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

Решение. Если число а меньше b, то остатком от деления служит само число а. В ином случае необходимо вычитать b из числа а до тех пор, пока результат не станет меньше b — он и будет остатком от деления.

ЦИКЛ С ПОСТУСЛОВИЕМ (ИЛИ ЦИКЛ «ДО»)

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

Работа цикла с постусловием начинается с выполнения команд тела цикла. Затем проверяется условие цикла. Если условие ложно (проверка условия дает результат «нет») — происходит возврат к выполнению команд тела цикла. Затем снова проверяется условие (поскольку оно могло измениться в результате работы команд цикла). Так происходит до тех пор, пока проверка условия не выдаст результат «да». Тогда происходит выход из цикла и управление будет передано команде, следующей непосредственно за циклом.

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

Пример 7. Записать алгоритм примера 6 с помощью цикла «до».

Решение.

ЦИКЛ С ПАРАМЕТРОМ (ЦИКЛ СО СЧЕТЧИКОМ, ИЛИ ЦИКЛ «ДЛЯ»)

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

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

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

Цикл со счетчиком всегда выполняется i1 – i2 + 1 раз.

Пример 8. Записать алгоритм вычисления факториала числа N.

Решение. Факториал числа вычисляется по формуле N! = 1 × 2 × … × N. Следовательно, для расчета факториала надо организовать цикл со счетчиком, в котором перемножить последовательные целые числа от 2 до N. Значение 1!, равное 1, можно присвоить результирующей переменной до цикла.

Понятие программы. Программирование и его виды

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

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

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

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

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

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

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

Процесс создания программы называется программированием.

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

Алгоритмическое или модульное

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

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

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

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

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

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

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

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

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

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

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

Подпрограммы решают три важные задачи:

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

• улучшают структуру программы, облегчая ее понимание;

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

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

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

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

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

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

Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:

1. Инкапсуляция – объединение данных с методами в одном классе;

2. Наследование – возможность создания на основе имеющегося класса новые классы с наследованием всех его свойств и методов и добавлением собственных;

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

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

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

1.    
Постановка
задачи.

2.    
Формализация
задачи.

3.    
Создание
алгоритма.

4.    
Программирование.

5.    
Тестирование
и отладка.

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

·     
«Что
нужно найти по условию задачи?»

·     
«Что
при этом дано?»

·     
«Чем
можно пользоваться при решении задачи?»

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

Как ясно из названия следующего этапа «Создание
алгоритма
», его результатом должен быть алгоритм или конкретная
последовательность действий. Алгоритм создаётся на основании математической
модели.

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

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

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

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


Пример блок-схемы

На этапе программирования алгоритм записывается
с помощью какого-нибудь языка программирования. То есть результатом работы на
данном этапе должна быть программа. Мы будем писать программы на языке Pascal.

Пример
программы на языке Pascal

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

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

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

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

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

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

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

Схема
решения задачи с помощью компьютера

Важно запомнить:

Решение
задач с помощью компьютера включает в себя:

1.    
Постановку
задачи.

2.    
Формализацию
задачи.

3.    
Создание
алгоритма.

4.    
Программирование.

5.    
Тестирование
и отладку.

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

Обновлено: 20.05.2023

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

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

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

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

Тип урока: комбинированный урок: повторение, обобщение пройденного материала, изучение и закрепление нового материала.

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

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

Программное обеспечение: Операционная система Windows 7, среда программирования Free Pascal, тестирующая среда Knowing, операционная система Naulinux, образовательная программная оболочка kTurtle.

Дидактический материал: карточки с заданиями, тест в тестирующей среде Knowing.

1. Организационный момент.

2. Постановка целей и задач урока.

3. Повторение пройденного материала: “Мозговой штурм”.

1) Что такое алгоритм и его исполнители?

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

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

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

2) От какого слова произошло название алгоритма?

Название “алгоритм” произошло от латинской формы имени среднеазиатского математика аль-Хорезми – Algorithmi.

3) Назовите свойства алгоритмов?

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

4) Какие существуют способы записи алгоритмов.

Для записи алгоритмов можно использовать разные способы:

словесный — каждое действие алгоритма описывается словами;

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

табличный — все шаги алгоритма записываются в таблицу;

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

программа – алгоритм, записанный на “понятном” компьютеру языке программирования.

5) Рассказать об основных структурах алгоритмов.

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

В алгоритмической структуре “ветвление” в зависимости от истинности или ложности условия выполняется одна или другая серия команд.

В алгоритмической структуре “цикл” серия команд (тело цикла) выполняется многократно.

6) Что такое программа?

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

7) Назовите основные этапы разработки линейной программы в среде программирования Pascal.

Основные этапы разработки программы в среде Паскаль.

1. Ввод и редактирование текста на языке программирования.

2. Сохранение текста программы на диске.

3. Запуск программы на исполнение.

4. Отладка программы.

5. Тестирование программы.

На интерактивной доске показывается изображение “Примеры выполнения линейной программы на Паскале”.

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

Задание 1. Найти соответствие между понятиями в 1 колонке и определениями во 2 колонке и поставить стрелки. (Карточка оранжевого цвета)

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

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

4. Обобщение пройденного и изучение новой темы “Этапы решения задач с помощью компьютера”.

Задание 4. Поставить предполагаемые порядковые номера выполнения этапов. (Карточка ярко-жёлтого цвета)

После выполнения задания на экране появляется готовая схема: “Этапы решения задач с помощью компьютера”.

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

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

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

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

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

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

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

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

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

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

5. Решение задачи в среде программирования Free Pascal, используя этапы решения задач с помощью компьютера.

I этап (постановка задачи)

Задача № 5. Рассчитать расстояние полёта ракеты Гагарина (1 оборот вокруг Земли), если экваториальный радиус Земли R 6378 км, высота полёта ракеты над Землёй H 300 км.

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

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

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

структурный или блок-схемный;

с помощью граф-схем;

с помощью сетей Петри.

Типовые конструкции алгоритмов:

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

б) Разветвляющийся (развилка)

Это такой алгоритм, в котором содержится команда ветвления.

Команда ветвления – это составная команда, в которой та или иная серия команд выполняется после проверки условия.

Команда ветвления имеет полную (1) или сокращенную форму (2)

Цикл «Пока» ( While )

Это такой алгоритм, в котором содержится команда повторения.

Команда повторения – это составная команда, в которой тело цикла выполняется несколько раз.

ТРИ ТИПА КОМАНД ПОВТОРЕНИЯ: ЦИКЛ «ДЛЯ», ЦИКЛ «ПОКА», ЦИКЛ «ДО»

Отличие – способ проверки окончания цикла.

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

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

2. Понятность (определенность). Каждый алгоритм должен быть ориентирован на определенного пользователя.

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

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

Таблица 1. Условные обозначения блоков схем алгоритмов

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

Основные правила составления блок-схемы:

Обязательно должно присутствовать два блока – «Начало» и «Конец». Причем в единичном экземпляре.

От начального блока до конечного должны быть проведены линии связи.

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

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

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

Если поток движется снизу вверх или справа налево (другими словами, в обратном порядке), то обязательно рисуются стрелки.

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

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

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

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

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

Формализация – это замена реального объекта или процесса его формальным описанием, т.е. его информационной моделью.

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

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

ЭТАПЫ РЕШЕНИЯ ЗАДАЧИ НА ЭВМ

Выделяют несколько этапов в подготовке и решении задач на ЭВМ:

математическое описание задачи;

выбор и обоснование метода решения;

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

решение задачи на ЭВМ и анализ результатов.

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

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

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

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

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

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

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

hello_html_m51abb215.jpg

Пример реализации алгоритма при помощи блок-схемы.

Задана блок-схема, по которой решается какой-то алгоритм. При этом пользователь самостоятельно вводит значения переменных. Допустим, х=16, а у=2. Процесс выполнения такой:

1. Производится ввод значений х и у.

2. Выполняется операция преобразования: х=√16=4.

3. Выполняется условие: у=у2=4.

4. Производится вычисление: х=(х+1)=(4+1)=5.

5. Дальше вычисляется следующая переменная: у=(у+х)=(5+4)=9.

6. Выводится решение: у=9.

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

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

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

Получите невероятные возможности

2. Раздавайте видеоуроки в личные кабинеты ученикам.

3. Смотрите статистику просмотра видеоуроков учениками.

Конспект урока «Этапы решение задачи на компьютере. Принцип последовательного конструирования алгоритма»

· Этапы решения задачи на компьютере.

· Принцип последовательного конструирования алгоритма.

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

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

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

Далее мы записывали созданный алгоритм с помощью языка программирования или других инструментов. И получали компьютерную программу для решения задачи. Этот этап имеет простое название: программирование.

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

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

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

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

Рассмотрим задачу. Написать программу, вычисляющую наименьшее общее кратное двух целых положительных чисел a и b. Наименьшим общим кратным (НОК) двух натуральных чисел называется наименьшее целое число, которое без остатка делится на оба числа. Из курса математики нам известно, что наименьшее общее кратное двух натуральных чисел можно вычислить как их произведение, делённое на их наибольший общий делитель (НОД). Таким образом, исходную задачу мы можем разбить на 3 подзадачи: вычислить произведение введённых чисел, вычислить их наибольший общий делитель и разделить произведение чисел на их наибольший общий делитель.

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

print (‘Программа, вычисляющая НОК a и b.’)

while a != 0 and b != 0:

print (‘НОК введённых чисел:’, nok)

Сохраним написанную программу и протестируем её. Запустим программу на выполнение и зададим числа 2 и 3. Действительно, наименьшее число, которое без остатка делится и на 2, и на 3 – 6. Снова запустим программу и зададим числа 6 и 8. Действительно, наименьшее число, которое без остатка делится и на 6, и на 8 – 24. Программа работает правильно. Задача решена.

Рассмотрим ещё одну задачу. Выпуклый четырёхугольник задан положительными длинами своих сторон: a, b, c и d. Написать программу для вычисления его площади, если известно, что между сторонами a и b прямой угол.

Изобразим условие этой задачи в виде рисунка. Соединим противоположные концы сторон a и b отрезком, длину которого обозначим t. Таким образом мы разделили четырёхугольник на два треугольника со сторонами a, b, t и c, d, t соответственно. Площадь четырёхугольника равна сумме их площадей. Так как между сторонами a и b прямой угол, то площадь первого треугольника можно вычислить как полупроизведение a и b, а t – как гипотенузу первого треугольника. Зная значения c, d и t, мы можем вычислить площадь второго треугольника по формуле Герона. Таким образом, мы записали формулы, необходимые для решения задачи, получив математическую модель.

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

print (‘Программа, вычисляющая площадь четырёхугольника по длинам его сторон. Угол между a и b прямой.’)

from math import sqrt

t = sqrt (a ** 2 + b ** 2)

s2 = sqrt (p * (p — c) * (p — d) * (p — t))

print (‘Площадь заданного четырёхугольника:’, ».format (s))

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

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

Нажмите, чтобы узнать подробности

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

Просмотр содержимого документа
«Алгоритмы и способы их описания, этапы решения задач»

У чебный элемент

Тема: «Алгоритмы и способы их описания. Этапы решения задач.» — 10 —

П редмет: «Информатика»

Изучив данный учебный элемент, Вы повторите и усвоите:

понятие алгоритма, свойства;

способы описания алгоритма;

виды алгоритмических конструкций;

этапы решения задач

Оборудование, материалы и вспомогательные средства:

Сопутствующие учебные элементы и пособия:

Учебник И.Г. Семакин и др. 10 класс

Слово «алгоритм» происходит от имени великого среднеазиатского ученого 8–9 вв. Аль-Хорезми.

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

Характеристики исполнителя

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

Система команд – некоторый строго заданный список команд.

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

Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды.

Свойства алгоритма

Понятность — исполнитель алгоритма должен знать, как его выполнять.

Дискpетность — алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых шагов.

Опpеделенность — каждое пpавило алгоpитма должно быть четким и однозначным.

Pезультативность — алгоpитм должен пpиводить к pешению задачи за конечное число шагов.

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

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

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

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

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

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

б лок начала (конца)

блок ввода (вывода)

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

действие n

Разветвляющийся алгоритм – это алгоритм, в котором та или иная серия команд выполняется в зависимости от истинности условия.


Условия в разветвляющихся алгоритмах

Условие – это высказывание, которое может быть либо истинным, либо ложным.

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

Сложное условие — последовательность простых условий, объединенных между собой знаками логических операций И (AND), ИЛИ (OR).

Например: (100) AND (89); (x=10) OR (x=0).

Алгоритмическая структура «выбор»

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

Полный выбор:

при условии 1: действия 1

при условии 2: действия 2

при условии N: действия N

иначе действия N+1

Неполный выбор

при условие 1: действия 1

при условие 2: действия 2

при условие N: действия N

Алгоритмическая структура «цикл»

Цикл — это такая алгоритмическая структура, в которой серия команд (тело цикла) выполняется многократно.

Различают циклы с предусловием и с постусловием ( цикл «До» и цикл «Пока»)


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

Словесный способ записи: для i от i1 до i2 тело цикла.

Этапы решения задачи на компьютере

Постановка задачи и формализация.

Анализ математической задачи.

Разработайте первые 3 этапа решения задачи: города А и Б находятся на одной междугородней магистрали. Из обоих городов на магистраль одновременно выехали два автомобиля. Каждый движется со своей постоянной скоростью, никуда не сворачивая. Нужно определить, через сколько времени они встретятся, на каком расстоянии от городов А и Б произойдет встреча и встретятся ли они вообще?

Вариант постановки задачи и математической модели решения

Дано: V1 , V2 – скалярные значения скоростей автомобилей,

S – расстояние между городами А и Б.

Требуется найти t – время, через которое автомобили встретятся.

Данная модель очень ограничена. Возможны другие варианты решения.

Автомобили выехали навстречу друг другу. Должны встретиться.

Автомобили выехали в одном направлении. Могут встретиться, могут не встретиться.

Автомобили выехали в одном направлении. Могут встретиться, могут не встретиться.

Автомобили выехали в разных направлениях. Они не встретятся.

Будем считать, что если V1 или V2 меньше 0, то автомобиль едет в сторону, противоположную положительному направлению.

Читайте также:

      

  • Eset не удаляет вирусы
  •   

  • Разборка ноутбука emachines e430
  •   

  • Как убрать смайлик в internet explorer
  •   

  • Для обработки текстовой информации на компьютере используются приложения общего назначения тест
  •   

  • Надо ли менять сетевую карту

4

Чайнворд по теме «Алгоритмизация»

Методическая разработка «Образовательная головоломка»

по дисциплине «Информатика» для студентов 1 курса СПО

​​​​​​​ Головоломка выполнена в виде чайнворда.

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

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

Цель головоломки – закрепить полученные знания по теме «Алгоритмизация» в рамках изучения дисциплины «Информатика».

Задачи:

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

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

обобщить и систематизировать знания по теме.

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

Михеева Е. В., Титова О. И., Информатика: учебник для студ. учреждений среднего профессионального образования;

Цветкова М. С., Хлобыстова И. Ю., Информатика : учебник для студентов учреждений среднего профессионального образования..

Вопросы головоломки:

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

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

3. Упрощенное представление о реальном объекте, процессе или явлении.

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

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

Ответы:

1. программа; 2. алгоритм; 3. модели; 4. исполнители; 5. Линейный.t1654098812aa.jpg

Опубликовано 01.06.22 в 18:54 в группе «УРОК.РФ: группа для участников конкурсов»



Размер файла: 275.35 Кбайт

Понравилась статья? Поделить с друзьями:
  • E8000 клей инструкция по применению на русском
  • Посмотрите руководство в оверлее steam как это выполнить
  • Кгк по могилевской области руководство
  • 24 hours time switch tm32 инструкция по применению
  • Руководство тик это кто