- •История развития эвм.
- •Архитектура эвм. Основные устройства и принципы взаимодействия.
- •Типовые структуры эвм.
- •Система счисления. Способ представления любого числа с помощью цифр.
- •Структурная организация эвм или три иерархических уровня или функциональной части эвм.
- •Раздел 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 INDEX : 0..5;
I1, I2 : 1..100;
Примечания:
-
два символа (две точки) рассматриваются как один символ;
-
левая граница не должна превышать правую;
-
имя должно быть правильным идентификатором (в имени не используются базовые слова!).
Перечисляемый (перечислимый) тип.
При описании этого типа вводят обобщение трактовки любого типа как множества традиционных значений, то есть это определение нового типа путем явного перечисления всех значений.
TYPE
COLOR=(RED, GREEN, BLUE);
DAYS=(Monday,Tuesday);
VAR A1: COLOR;
D: DAYS;
Для этого типа используются операции сравнения. Допускается образование ограниченных типов из перечисляемых по обычным правилам.
Необходимо представить примеры программ по работе с простыми и совершенными числами, с производящими функциями и числовыми рядами. Представить примеры программ по обработке числовых последовательностей.
Структурированные (сложные, составные) типы данных.
Эти типы задают множества значений (или совокупности значений) другого типа. Существует 4 сложных типа.
Это:
А) массивы
Б) записи
В) файловый
Г) множества.
Есть несколько дополнительных сложных типов, таких как строковый, процедурный, объектный и ссылочный.
Регулярный тип (массив) array.
Используется при работе с такими математическими объектами, в записи которых используются индексы (элементы вектора, матрицы, последовательности n-мерного пространства).
Массив – это структура, состоящая из фиксированного числа компонентов одного типа. Число элементов определяется типом индекса. Если указан один тип индекса, массив одномерный, если – n типов, то массив n-мерный.
Пример описания одномерного массива:
VAR A:ARRAY[1..20] OF INTEGER;
Пример описания матрицы:
VAR D:ARRAY[1..5,1..7] OF BYTE;
A1:ARRAY[1..5] OF ARRAY[1..7] OF BYTE;
Размерность массива не ограничена.
Описание массива с помощью типов:
TYPE
C=ARRAY[1..3] OF BYTE;
VAR A:C;
Задача: описать матрицу с помощью TYPE:
TYPE
B=ARRAY[1..3,1..5] OF INTEGER;
VAR A:B;
Пример: сложить 2 матрицы одинаковой размерности. Результат записать в третью
новую матрицу.
PROGRAM S2;
TYPE C=ARRAY[1..3,1..3] OF BYTE;
VAR X, Y, Z:C; I, J:INTEGER;
BEGIN
FOR I:=1 TO 3 DO
FOR J:=1 TO 3 DO {цикл для ввода}
READ(X[I, J], Y[I, J]);
FOR I:=1 TO 3 DO
FOR J:=1 TO 3 DO {цикл для суммирования}
Z[I, J]:=X[I, J] + Y[I, J];
FOR I:=1 TO 3 DO
FOR J:=1 TO 3 DO {цикл для вывода}
WRITELN(Z[I, J]);
END.
Пример: умножить 2 матрицы одинаковой размерности. Результат записать в третью новую матрицу.
PROGRAM L2;
TYPE C=ARRAY[1..3,1..3] OF BYTE;
VAR X, Y, Z:C; I, J:INTEGER;
BEGIN
FOR I:=1 TO 3 DO
FOR J:=1 TO 3 DO {цикл для ввода}
READ(X[I, J], Y[I, J]);
FOR I:=1 TO 3 DO
FOR J:=1 TO 3 DO {цикл для суммирования}
Z[I, J]:=X[I, J] * Y[I, J];
FOR I:=1 TO 3 DO
FOR J:=1 TO 3 DO {цикл для вывода}
WRITELN(Z[I, J]);
END.
Нельзя путать индекс и тип индекса. Тип индекса используется в разделе описания массива, а индекс указывается в разделе операторов для обозначения конкретных значений элементов массива , при этом индекс должен быть того же типа, что и тип индекса. Элемент массива – переменная с индексом.
Пример: присвоить третий элемент одномерного массива в ячейку Х.
PROGRAM R3;
VAR A:ARRAY[1..10] OF BYTE;
BEGIN
FOR I:=1 TO 10 DO
READ(A[ I ] );
X:=A[ 3 ]
Пример: присвоить первый элемент второй строки в ячейку У.
У:= А[ 2 , 1 ]
Доступ к любому элементу массива прямой.
В качестве индексов используются только целые числа. В Паскале допускается применение в качестве индексов символьных данных.
C: ARRAY[‘A’..’D’] OF…
Пример вставки порядкового номера столбца перед самим столбцом.
PROGRAM Y6;
VAR A:ARRAY [1..5,1..5] OF BYTE;
B:ARRAY [1..6,1..6] OF BYTE;
I,G: BYTE;
BEGIN
FOR I:=1 TO 5 DO BEGIN
FOR G := 1 TO 5 DO READ (A[I,G]);
END;
FOR I:= 1 TO 5 DO BEGIN
FOR G:=1 TO 5DO BEGIN
B[I+1,G]:= A[I,G];
B[1,G]:=G;
END;
END;
FOR I:=1 TO 6 DO
FOR G:=1 TO 5 DO
WRITE(B[I,G],’ ‘);
WRITELN:
END.
При работе с массивами в качестве индексов нельзя использовать вещественные числа, ассортимент операций определяется типом элементов. Можно выполнить оператор присваивания ( при работе с массивами) значений элементов одного массива другому в случае идентичности типов. Умножение, сложение можно производить в случае совпадения размерности. В большинстве случаев :
а) при изменении некоторых элементов массива,
б) при вводе / выводе,
в) сложении и т. д. оперируем отдельными элементами массива, то есть можно производить операции базового типа.
Пример:
PROGRAM U6;
TYPE NAPRAV=(X,Y,Z );
V: U,R:V;I:NAPRAV;
BEGIN
FOR I:=X TO Z DO
READ(R[ I]);
U:=R; . . . . .
END.
Пример: в квадратной матрице обнулить элементы главной диагонали.
FOR I:=1 TO 3 DO
FOR J:=1 TO 3 DO
READ( A[ I,J] );
FOR I:=1 TO 3 DO
A[ I,I]:=0;
Пример: найти минимум в каждой строке.
FOR I:=1 TO 3 DO
BEGIN MIN:=A[I,J];
FOR J:=1 TO 5 DO
IF A[I,J]< MIN THEN
BEGIN MIN:=A[I,J];
REZ[I]:=MIN;
END; END;
FOR I:=1 TO 3 DO
WRITELN( REZ[I]);
Пример : описать квадратную матрицу 5х5 и вывести на печать
А[1,1] = 101 А[1,2] = 102 А[1,3] =103
А[2,1] = 201 A[2,1] = 202 А[2,3] = 203
. . . . . . . . . .. .. .. . .. … …..
Задать соответствующим образом значение матрицы А и вывести на печать.
FOR I:=1 TO …. DO BEGIN
FOR J:=1 TO …. DO BEGIN
A[ I,J]:= 100* I+J;
WRITE (‘A[‘, I ,’,’,J,’] =', A[I,J] );
END;
WRITELN;
END.