- •История развития эвм.
- •Архитектура эвм. Основные устройства и принципы взаимодействия.
- •Типовые структуры эвм.
- •Система счисления. Способ представления любого числа с помощью цифр.
- •Структурная организация эвм или три иерархических уровня или функциональной части эвм.
- •Раздел 1. Технология проектирования программных продуктов. Алгоритмизация.
- •Программная часть пк.
- •Шаблоны файлов.
- •Структура файловой системы.
- •Принципы работы с программными продуктами.
- •Тема 1. Процессы жизненного цикла программных средств Введение
- •1 Область применения
- •1.2 Область распространения
- •1.3 Адаптация настоящего стандарта
- •1.4 Соответствие
- •1.5 Ограничения
- •2 Нормативные ссылки
- •3 Определения
- •4 Прикладное применение настоящего стандарта
- •4.1 Построение стандарта
- •5 Основные процессы жизненного цикла
- •5.1 Процесс заказа
- •5.2 Процесс поставки
- •5.3 Процесс разработки
- •5.3.1 Подготовка процесса,
- •5.4 Процесс эксплуатации
- •5.5 Процесс сопровождения
- •6 Вспомогательные процессы жизненного цикла
- •6.1 Процесс документирования
- •6.1.2 Проектирование и разработка
- •6.1.З Выпуск
- •6.2 Процесс управления конфигурацией
- •6.2.5 Оценка конфигурации
- •6.3 Процесс обеспечения качества
- •6.3.1 Подготовка процесса
- •6.3.2 Обеспечение продукта
- •6.4 Процесс верификации
- •6.5 Процесс аттестации
- •6.6 Процесс совместного анализа
- •6.7 Процесс аудита
- •6.8 Процесс решения проблем
- •7 Организационные процессы жизненного цикла
- •7.1 Процесс управления
- •7.2 Процесс создания инфраструктуры
- •7.3 Процесс усовершенствования
- •Раздел 3. Программирование в среде turbo pascal (система программирования)
- •Введение.
- •Общая характеристика системы.
- •Среда turbo pascal. Элементы диалоговой среды.
- •Система меню.
- •Search-поиск:
- •Window – окно:
- •Помощь f1:
- •Текстовый редактор.
- •Основные принципы работы с turbo pascal.
- •Язык программирования turbo pascal Структура программы.
- •Алфавит языка.
- •Синтаксис языка.
- •Запись текста программы.
- •Операции и выражения.
- •Встроенные (стандартные) функции языка turbo pascal.
- •Описание констант, переменных и типов .
- •Обзор типов данных.
- •Простые структурированные ссылочные процедурные объектные
- •Целый тип.
- •Понятие целочисленного выражения.
- •Вещественный тип.
- •Логический тип boolean.
- •Операции над логическими данными.
- •Символьный тип char.
- •Диапазон (ограниченный, интервальный).
- •Перечисляемый (перечислимый) тип.
- •Регулярный тип (массив) array.
- •Файловый тип.
- •Описание файлов
- •Чтение из файла.
- •Запись данных в файл.
- •Операции (действия) над файлами.
- •Текстовые файлы.
- •Запись (комбинированный тип данных) record.
- •Операции, выполняемые над записью.
- •Запись с вариантной частью.
- •Множественный тип (множества) set.
- •Операции множеств.
- •Строковый тип string.
- •Обработка операции строковых данных.
- •Типизированные константы.
- •Преобразование, совместимость типов.
- •Способы преобразования типов.
- •Эквивалентность типов.
- •Основы ввода/вывода.
- •Организация форматирования вывода.
- •Операторы языка.
- •Простые операторы.
- •Структурные операторы.
- •Оператор работы над записями with.
- •Операторы работы над записями.
- •Подпрограммы. Процедуры и функции. Блочная структура подпрограммы.
- •Правила по использованию подпрограмм
- •Общая структура подпрограмм
- •Механизм параметров
- •Вычисление значения функции. Завершение подпрограмм.
- •Предварительное описание подпрограмм.
- •Рекурсия и побочный эффект
- •Процедурный тип.
- •Правило использования процедурных типов
- •Директивы компилятора.
- •Модули.
- •Общая структура модуля.
- •Заголовок модуля и связь модулей друг с другом.
- •Интерфейсная часть.
- •Исполняемая часть(реализационная).
- •Инициирующая часть.
- •Компиляция модулей.
- •Стандартные модули.
Процедурный тип.
В Турбо Паскале определен тип данных , который называется процедурным. Определение этого типа аналогично определению заголовка подпрограммы без имени.
Простейший способ определения этого типа:
VAR P:PROCEDURE;
Значениями переменной Р может быть любая процедура.
VAR <имя>: PROCEDURE < список формальных параметров >
Введение этого типа позволяет описывать формальные параметры как подпрограммы.
TYPE FUNC=FUNCTION(X,Y:BYTE):BYTE;
VAR F1,F2: FUNC;
Переменным F1 и F2 могут быть присвоены в качестве значений функции от двух целых параметров.
Если в той же программе имеются функции сложения двух чисел , тодопустимо присвоение F1:=АDD;
причем F1 в качестве значения .
FUNCTION АDD(А,В:BYTE):BYTE;
BEGIN
АDD:=А+В;
END;
F1:=АDD; { после этого присваивания возможно вызвать функцию двумя способами}
WRITELN(АDD(1,2));
WRITELN(F1 (1,2));
Правило использования процедурных типов
1. Подпрограмма , присваиваемая переменной процедурного типа , должна быть оттранслирована в режиме дальнего типа вызовов. Это директива компилятора { F+}.
2. Подпрограмма, присваиваемая процедуре переменной не должна быть стандартной процедурой или функцией.
Пример: вычислить сумму положительных и отрицательных чисел, записанных в некотором файле и выдать суммы на печать вместе с их количеством. Программа содержит 3 процедуры:
А) открытие файла с заданными числами и инициализация глобальных переменных;
Б) вычисление сумм и количества;
В) вывод результата и закрытие файла.
Центральная процедура расчета содержит две вложенных процедуры: соответствующие вычисления для положительных и отрицательных чисел. Сама центральная процедура работает как управляющая по отношению к вложенным. Глобальный текст программы образует имена 4-х переменных, предназначенных для подсчета результатов, имя файла с исходными данными и имена 3-х процедур (START, PROCESS, FINISH). Все эти имена глобальные переменные и используются во всех блоках программы. Блоки START и FINISH не имеют разделов описаний, работают с глобальными переменными, доступными им по правилу блочности.
PROGRAM EXAMPLE;
VAR
INFILE: FILE OF INTEGER; {исходныйфайл}
COUNTPOS, COUNTNEG : WORD;
SUMPOS, SUMNEG : LONGINT; {переменные для подсчета нужных значений}
PROCEDURE START; {начальные действия}
BEGIN
ASSIGN(INFILE,PARAMSTR(1));
RESET(INFILE);
COUNTPOS:=0;COUNTNEG:=0;
SUMPOS:=0; SUMNEG:=0;
END;
PROCEDURE PROCESS; { вычисления}
BEGIN
VAR
VA 1: INTEGER;
{вложенные процедуры}
PROCEDURE PROCESSPOS(ITEM:INTEGER); {подсчет положительных чисел}
BEGIN
SUMPOS := SUMPOS + ITEM;
INC(COUNTPOS)
END;
PROCEDURE PROCESSNEG(ITEM:INTEGER); { подсчет отрицательных чисел}
BEGIN
SUMNEG := SUMNEG+ ITEM;
INC(COUNTNEG)
END;
BEGIN { PROCESS }
REPEAT
READ(INFILE , VA 1);
IF VA 1 > 0 THEN
PROCESSPOS(VA 1)
ELSE
PROCESSNEG(VA 1)
UNTIL
EOF(INFILE)
END; {PROCESS }
PROCEDURE FINISH; { завершающие действия}
BEGIN
WRITELN(' Сумма' ', 'COUNTPOS',' положительных чисел =',SUMPOS);
WRITELN(Сумма' ', 'COUNTNEG',' отрицательных чисел =',SUMNEG);
CLOSE(FILE);
END;
BEGIN { начало внешнего блока программы }
START;
PROCESS;
FINISH
END; {Конец программы }
