Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lection_2_12_ст.doc
Скачиваний:
4
Добавлен:
11.11.2019
Размер:
217.09 Кб
Скачать

11

Лекция №2. ИТ

ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ

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

  2. анализ, формализованное описание задачи, выбор модели;

  3. выбор или разработка алгоритма решения задачи;

  4. проектирование общей структуры программы;

  5. кодирование;

  6. отладка и верификация программы;

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

  8. публикация или передача заказчику результата работы;

  9. в сопровождение программы.

АЛГОРИТМЫ И АЛГОРИТМИЗАЦИЯ

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

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

Алгоритм решения задачи имеет ряд обязательных свойств:

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

  2. Определенность – однозначность интерпретации и выполнения каждого отдельного шага преобразования информации.

  3. Конечность – решение задачи должно быть получено за конечное число шагов.

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

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

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

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

Запишем алгоритм вычисления суммы двух чисел. Обозначим эти числа a и b.

  1. Считать число а.

  2. Считать число b.

  3. Выполнить суммирование с = а + b.

  4. Вывести число с.

Это пример записи алгоритма на естественном языке.

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

  • словесный или формульно-словесный;

  • графический;

  • диаграмма Нэсси-Шнейдермана;

  • при помощи псевдокода;

  • с помощью алгоритмического языка программирования.

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

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

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

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

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

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

Блок-схема представляет собой запись алгоритма с помощью графических объектов.

Каждый блок, входящий в блок-схему, означает какое-либо действие.

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

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

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

Обработка данных. Блок вычислений (вычислительное действие или последовательность вычислений)

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

Заголовок цикла, который выполняется заданное количество раз

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

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

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

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

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

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

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

Представлен алгоритм нахождения действительных корней квадратного уравнения

ах2 + bх + с = 0, представленный при помощи диаграммы Нэсси-Шнейдермана.

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

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

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

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

Пример программы, записанной на алгоритмическом языке:

  • алг Сумма квадратов (арг цел n, рез цел S)

  • дано | n > О

  • надо | S=11 + 2 2 + 33 + ... + nn

  • нач

  • цел i

  • ввод n; S:=0

  • нц для i от 1 до n

  • S:=S + ii

  • кц

  • вывод "S = ", S

  • кон

Рассмотрим алгоритм работы кассового аппарата.

  1. Переменной sum присваиваем начальное значение равное нулю.

  2. Вводим цену товара – price.

  3. Печатаем цену товара – price.

  4. Переменной sum присвоить результат выполнения операции sum + price

  5. Если еще есть покупки, то переходим на шаг 2, иначе переходим к следующему действию (шаг 6).

  6. Находим НДС: tax = sum 0,2

  7. Печать общей суммы (sum), НДС (tax).

Составим блок-схему разработанного алгоритма (см. Рис. 1.4).

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

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

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

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

  • Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере.

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

Алфавит и словарь языка Object Pascal

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

Алфавит языка Object Pascal состоит из:

1. Прописных и строчных буква латинского алфавита от A до Z и от a до z.

2. Символа подчеркивания (_).

3. Разделительного символа пробела.

4. Арабских цифры от 0 до 9 и шестнадцатилетних цифр.

5. Специальных символов, которые используются в процессе построения конструкций языка (+ – * / = < > [ ] . , ( ) : ; @ { } $ # ');

6. Составных символов, которые воспринимаются компилятором как один символ

(<= >= := (* *) (. .) //)

7. Управляющих символов. (расшифровать #13, #0)

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

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

Слова подразделяются на зарезервированные (ключевые) слова и идентификаторы (имена).

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

Зарезервированные слова, используются для обозначения алгоритмических конструкций (Например if. to, var, program).

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

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

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

К стандартным идентификаторам принадлежат:

  1. Имена стандартных типов данных: real (действительный), integer (целочисленный) и т.д.

  2. Имена стандартных констант: maxint (максимальное целое) и т.д.

  3. Имена стандартных функций: abs, sin, cos и т.д.

  4. Имена стандартных процедур: read, write и т.д.

  5. Имена директив: forward, absolute, private и т.д.

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

Идентификатор пользователя – это имя, которое избирает программист для обозначения элементов программы.

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

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

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

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

Примеры допустимых идентификаторов:

а b sum Lab_1 _print _1_2_3 square_of_rectаnglе MyVariable

Примеры недопустимых идентификаторов:

My-Variable содержит специальный символ

1-2 содержит специальный символ

в-3 содержит специальный символ

sum.6 содержит специальный символ

1_Lab начинается с цифры

type зарезервированное слово

корень содержит русские буквы

х 5 содержит пробел

Структура программы

Программа состоит из следующих разделов:

{ I. Заголовок программы }

program Имя_Программы ;

{ II. Раздел подключения модулей }

uses Список используемых модулей используются ;

{ III. Разделы объявлений}

label Объявление меток ;

const Объявление именованных констант ;

type Объявление Типов ;

var Объявление пременных ;

procedure Объявление процедур ;

Function Объявление функций ;

{ IV. Раздел операторов (тело программы) }

begin

Операторы

end.

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

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

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

В Object Pascal разделы II, III (декларативная часть) могут быть отсутствующими.

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

Избирая порядок расположения разделов объявлений, следует пользоваться правилом:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]