
- •История языков программирования
- •Понятия программного обеспечения
- •2. История языков программирования
- •Классификация языков программирования
- •Понятие системы программирования
- •Технологии программирования
- •Понятие системы программирования
- •2.Технологии программирования
- •2.1. Структурное программирование
- •2. Модульное программирование
- •2. 3. Объектно-ориентированное программирование (ооп)
- •Формы записей алгоритмов. Общие принципы построения
- •Тема: Основные алгоритмические конструкции. Сложность алгоритмов.
- •Базовые принципы ооп
- •1.Общие свойства компонентов
- •2.События компонентов
- •Общие свойства компонентов
- •Свойство Align
- •Свойство Color
- •1.Структура проекта
- •2.Структура модуля
- •Лекция10
- •Лекция11
- •Лекция12
- •Лекция13
- •Лекция14
- •Лекция15
- •Лекция16
- •Лекция17 Стандартные диалоговые окна: назначение, свойства, события.TOpenDialog, tSaveDialog, tColorDialog, tOpenPictureDialog, tSavePictureDialogTPrinterSetupDialog, tPrinterDialog
- •1.Правила использования диалоговых панелей
- •П3.3.Символьный тип
- •П3.4. Перечисляемый тип
- •Пз.6. Тип дата-время
- •Приложение 5. Математические формулы
- •Многомерные массивы
- •Листинг 5.11. Инициализация таблицы
- •Листинг 5.12. Обработка двумерного массива
- •Ошибки при использовании массивов
Понятие системы программирования
Технологии программирования
2.1 Структурное программирование
2.2 Модульное программирование
2.3 Объектно-ориентированное программирование (ООП)
Понятие системы программирования
Система программирования – совокупность средств разработки программ(языки программирования ,текстовые редакторы, трансляторы, редакторы связей, библиотеки подпрограмм, утилиты. Обслуживающие программы) , обеспечивающие автоматизацию составления и отладки программ пользователя.
Алфавит – совокупность символов, вводимых с клавиатуры
Синтаксис - совокупность правил образования языковых конструкций
Семантика – проверка смысловой правильности конструкций
Для описания синтаксиса использованы грамматики в расширенной форме Бекуса-Науэра. В правой части таких грамматик допускается использование следующих "регулярных операций":
A B - последовательно А, за тем В. A | B - альтернатива. Читается: "A или B". A* - произвольное количество повторений (в том числе - 0 раз) А. Читается: "последовательность А". A # B - эквивалентно A ( B A )*. Читается: "последовательность А через В".
Терминальные символы выделяются подчеркиванием.
Оператор ::= Простой оператор | Структурный оператор Простой оператор ::= Оператор присваивания | Оператор вызова | Оператор возврата Структурный оператор ::= Оператор последовательного исполнения | Оператор ветвления | Оператор цикла Оператор присванивания ::= Переменная := Выражение ; Оператор вызова ::= Имя подпрограммы ( Список параметров ) ; Оператор возврата ::= return [ Выражение ] ; Оператор последовательного исполнения ::= begin Оператор* end Оператор ветвления ::= if Выражение then Оператор* (elseif Выражение then Оператор*)* [ else Оператор* ] end Оператор цикла ::= while Выражение do Оператор* end
Структура системы программирования:
Исходный текс т -текстовый редактор - исходный модуль - препроцессор- расширенный модуль-транслятор (компилятор) - объектный модуль - компоновщик -загрузочный модуль-загрузчик- абсолютный модуль- в ыполнение – результат
2.Технологии программирования
2.1. Структурное программирование
Сутью структурного программирования является возможность разбиения программы на составляющие элементы.
Идеи структурного программирования появились в начале 70-годов в компании IBM, в их разработке участвовали известные ученые Э. Дейкстра, Х. Милс, Э. Кнут, С. Хоор.
Распространены две методики (стратегии) разработки программ, относящиеся к структурному программированию: программирование "сверху вниз" и программирование "снизу вверх".
Программирование "сверху вниз", или нисходящее программирование – это методика разработки программ, при которой разработка начинается с определения целей решения проблемы, после чего идет последовательная детализация, заканчивающаяся детальной программой. Является противоположной методике программирования «снизу вверх».
При нисходящем проектировании задача анализируется с целью определения возможности разбиения ее на ряд подзадач. Затем каждая из полученных подзадач также анализируется для возможного разбиения на подзадачи. Процесс заканчивается, когда подзадачу невозможно или нецелесообразно далее разбивать на подзадачи.
В данном случае программа конструируется иерархически - сверху вниз: от главной программы к подпрограммам самого нижнего уровня, причем на каждом уровне используются только простые последовательности инструкций, циклы и условные разветвления.
Программирование "снизу вверх", или восходящее программирование – это методика разработки программ, начинающаяся с разработки подпрограмм (процедур, функций), в то время когда проработка общей схемы не закончилась. Является противоположной методике программирования «сверху вниз».
Такая методика является менее предпочтительной по сравнению с нисходящим программированием так как часто приводит к нежелательным результатам, переделкам и увеличению времени разработки.
Рассмотрим следующий пример.
Разработать программный комплекс, который рисует на экране дисплея дачный участок, состоящий из дороги, забора, елки и сияющего на небе солнца. Нарисованная картина показана на рис. 1.
Рис.
1. Дачный участок
Укажем в виде схем, которые называются структурными диаграммами, составные элементы картины :
Вариант представления структурной диаграммы имеет вид, представленный на рис.1.
Рис. 1. Структурной диаграммы (второй вариант)
Разбиение программы на модули представляет одну из достаточно ответственных и сложных задач, так как влияет на дальнейший ход разработки программного комплекса, его надёжность, эффективность, продолжительность тестирования и отладки, сопровождение и возможность использование стандартных программных процедур.
Достоинства структурного программирования:
1) повышается надежность программ (благодаря хорошему структурированию при проектировании, программа легко поддается тестированию и не создает проблем при отладке);
2) повышается эффективность программ (структурирование программы позволяет легко находить и корректировать ошибки, а отдельные подпрограммы можно переделывать (модифицировать) независимо от других);
3) уменьшается время и стоимость программной разработки;
4) улучшается читабельность программ.
Резюме
Технология структурного программирования при разработке серьезных программных комплексов, основана на следующих принципах:
- программирование должно осуществляться сверху вниз;
- весь проект должен быть разбит на модули (подпрограммы) с одним входом и одним выходом;
- подпрограмма должна допускать только три основные структуры – последовательное выполнение, ветвление (if, case) и повторение (for, while, repeat).
- недопустим оператор передачи управления в любую точку программы (goto);
- документация должна создаваться одновременно с программированием в виде комментариев к программе.
Структурное программирование эффективно используется для решения различных математических задач, имеющих алгоритмический характер.