- •1.Технология программирования. Основные понятия и подходы 8
- •Технология программирования. Основные понятия и подходы
- •1.1. Технология программирования и основные этапы ее развития
- •1.2. Жизненный цикл и этапы разработки программного обеспечения
- •Контрольные вопросы
- •2.Разработкаструктуры программы и модульное программирование
- •2.1. Цель модульного программирования
- •2.2. Основные характеристики программного модуля
- •2.3. Методы разработки структуры программы
- •Контрольные вопросы
- •3.Тестирование и отладка программного средСтВа
- •3.1. Принципы и виды отладки программного средства
- •3.2. Заповеди отладки программного средства
- •3.3. Автономная отладка программного средства
- •3.3. Комплексная отладка программного средства
- •Контрольные вопросы
- •4. Обеспечение качества программного средства
- •4.1. Общая характеристика процесса обеспечения качества программного средства
- •4.2. Обеспечение легкости применения программного средства
- •4.3. Обеспечение эффективности программного средства
- •4.4. Обеспечение сопровождаемости программного средства
- •Контрольные вопросы
- •5. Документирование программных средств составление программной документации
- •5.1. Виды программных документов
- •5.2. Пояснительная записка
- •5.3. Руководство пользователя
- •5.4. Руководство системного программиста
- •5.5. Основные правила оформления программной документации
- •Контрольные вопросы
- •6. Объектный подход к разработке программных средств
- •6.1. Объекты и отношения в программировании. Сущность объектного подхода к разработке программных средств
- •6.2. Особенности объектного подхода к разработке внешнего описания программного средства
- •6.3. Особенности объектного подхода на этапе конструирования программного средства
- •Контрольные вопросы
- •7. Постановка и алгоритмизация задач
- •7.1. Понятие алгоритма
- •7.2. Способы описания алгоритмов
- •Условные обозначения блоков
- •7.3. Структурные схемы алгоритмов
- •Контрольные вопросы
- •8. Основы языка
- •8.1. Алфавит языка
- •8.2. Структура программы
- •Контрольные вопросы
- •9. Типы данных
- •9.1. Целые типы
- •9.2. Вещественные типы
- •9.3. Логический тип
- •9.4. Символьный тип
- •9.5. Выражения
- •Арифметические операции
- •Операция отрицания
- •Операции конъюнкция, дизъюнкция, «исключающее» или
- •Приоритет операций
- •9.6. Константы
- •9.7. Совместимость типов данных
- •Контрольные вопросы
- •10. Линейные алгоритмы
- •10.1. Пустой и составной операторы
- •10.2. Оператор присваивания
- •10.3. Простейший ввод и вывод
- •Контрольные вопросы
- •11. Разветвляющиеся алгоритмы
- •11.1. Оператор перехода
- •11.2. Условный оператор
- •11.3. Оператор выбора
- •Контрольные вопросы
- •12. Циклические алгоритмы
- •12.1. Циклы с параметром
- •12.2. Циклы с условием
- •Контрольные вопросы
- •13. Пользовательские типы данных
- •13.1. Перечисляемый тип
- •13.2. Тип - диапазон
- •13.3. Массивы
- •13.4. Записи
- •13.5. Множества
- •Контрольные вопросы
- •14. Работа со строками
- •Контрольные вопросы
- •15. Процедуры и функции
- •15.1. Параметры-значения
- •15.2. Параметры-переменные
- •15.3. Параметры-константы
- •15.4. Открытые параметры-массивы
- •15.5. Бестиповые параметры
- •15.6. Процедурные типы
- •15.7. Рекурсия
- •Контрольные вопросы
- •16. Типизированные константы
- •Контрольные вопросы
- •17. Модули
- •Interface
- •Implementation
- •Interface
- •18.2. Поиск с барьером
- •83.3. Двоичный (бинарный) поиск
- •Контрольные вопросы
- •19. Алгоритмы сортировки
- •19.1. Сортировка выбором
- •19.2.Сортировка обменом (методом «пузырька»)
- •19.3. Сортировка включением
- •Контрольные вопросы
- •20. Файлы
- •20.1. Текстовые файлы
- •20.2. Компонентные файлы
- •20.3. Бестиповые файлы
- •20.4. Последовательный и прямой доступ
- •Контрольные вопросы
- •21.Программирование с использованием динамической памяти
- •21.1. Указатели и операции над ними
- •21.2. Процедуры и функции, работающие с указателями
- •Контрольные вопросы
- •22. Модуль crt (основные возможности)
- •Контрольные вопросы
- •22. Модуль graph (основные возможности)
- •22.1. Базовые процедуры и функции
- •22.2. Экран и окно в графическом режиме
- •22.3. Вывод точки
- •22.4. Вывод линии
- •22.5. Построение прямоугольников
- •22.6. Построение многоугольников
- •22.7. Построение дуг и окружностей
- •22.8. Работа с текстом
- •Контрольные вопросы
- •Заключение
- •Библиографический список
Операция отрицания
a |
not a |
false |
true |
true |
false |
Таблица 9.3
Операции конъюнкция, дизъюнкция, «исключающее» или
a |
b |
a and b |
a or b |
a xor b |
true |
true |
true |
true |
false |
true |
false |
false |
true |
true |
false |
true |
false |
true |
true |
false |
false |
false |
false |
false |
Пример9.3: приx=0 иy=4 выражение: (x=0)and(y=0) имеет значениеfalse.
Фрагмент программы:
var i: integer;r: boolean;begini: = 10 div 5;r: = I = 2;
В результате выполнения этого фрагмента программы переменной r присваивается значение true.
Таблица 9.4
Приоритет операций
Приоритет и описание |
Операции в Паскале |
Вычисления в круглых скобках |
( ) |
Вычисление значений функций |
Функции |
Отрицание и получение адреса объекта |
not , @, – |
Умножение, деление, логическое умножение, сдвиги операндов |
*, /, div, mod, and, shl, shr |
Сложение, вычитание, логическое сложение, исключающее или |
+,–, or, xor |
Простые булевы операции, принадлежность к множеству |
=,<>,<,>,<=,>=, in |
Выражениесостоит из констант, переменных, указателей функций, знаков операций и скобок. Выражение задает правило вычисления некоторого значения. Порядок вычисления определяется старшинством (приоритетом) содержащихся в нем операций. В языке Паскаль принят следующий приоритет операций:
1. Унарная операция not, унарный минус –, взятие адреса @. Например,
not Done { отрицание булевской переменной }@Х { указатель на переменную }–15 { константа со знаком }
2. Операции типа умножения: *, /, div, mod, and, shl, shr. Например,
x * yz / (1 – z)i mod j = i – (i div j) * j
3. Операции типа сложения: +, –, or, xor. Например,
done or error(x+y+z)
4. Операции отношения: =, <>, <, >, <= ,> =, in. Например,
(x <= y) and (y < z)
Выражения входят в состав многих операторов языка Паскаль, а также могут быть аргументами встроенных функций. Например,
sin(x/2) {вызов функции}['0..'9','А'..'Z'] {описатель множества}сhar(digit+48) {назначение типа}
9.6. Константы
Тип констант в языке Паскаль определяется по их виду: константы целого типа – это целые числа, не содержащие десятичной точки, константы действительного типа – действительные числа, логические константы – логические значения TRUE и FALSE, символьные константы – либо строки длиной в один символ, либо конструкции вида #K или ^K.
Описание констант [3,4]:
Рис. 9.1. Синтаксическая диаграмма описания констант
Являясьрасширением стандартного Паскаля, Турбо Паскаль позволяет использовать выражения–константы. Выражение–константа представляет собой выражение, которое может вычисляться компилятором без необходимости выполнения программы. Приведем примеры выражений–констант:
256 1(2.5 + 1) / (2.5 1)'Borland' + ' ' + 'Pascal'Chr(32)Ord('Z') Ord('A') + 1
Простейшийслучай выражения–константы представляет собой простая константа, например 100 или 'A'. В стандартном Паскале допускается использовать только простые константы. В Турбо Паскале разрешено использование выраженийконстант.
Поскольку компилятор должен иметь возможность полностью вычислить выражениеконстанту во время компиляции, в качестве выраженийконстант не допускается использовать следующие конструкции:
ссылки на переменные и типизированные константы (кроме констант в адресных выражениях);
вызовы функций (кроме тех, которые отмечены далее);
оператор получения адреса @ (кроме констант в адресных выражениях).
За исключением этих ограничений для выраженийконстант соблюдаются те же синтаксические правила, что и для обычных выражений.
В выражениях константах допускается использовать следующие стандартные функции: abs, chr, hi, high, length, lo, low, odd, ord, pred, ptr, round, sizeof, succ, swap, trunc.
Приведемнекоторые примеры использования выражений–констант в описаниях констант:
constmin = 0;max = 100;center = (max – min) div 2;beta = chr(255);numchars = ord('Z ') – ord('A') + 1;message = 'Out of memory';errstr = 'Error:' + Message + '.';errpos = 80 – length(errstr) div 2;errattr = blink + red * 16 + white;ln10 = 2.302585092994095684;ln10R = 1 / ln10;numeric = ['0'..'9'];alpha = ['A'..'Z','a'..'z'];alphanum = alpha + numeric;