- •Для студентов, обучающихся по направлению 090303 «Информационная безопасность автоматизированных систем»
- •Принципы модульного программирования
- •2. Назначение модулей
- •3. Структура модулей
- •3.1. Заголовок модуля
- •3.2 Интерфейс модуля
- •3.3 Исполнительная часть модуля
- •5. Компиляция модуля
- •6. Контрольный пример
- •3.4 Секция инициализации
- •4. Создание модуля
- •7. Модули и принцип сокрытия информации
- •Объявленные здесь идентификаторы Len и t_mas могут исполнять роль глобальных величин для всех модулей, где в предложении uses стоит имя модуля Global.
- •Задания
- •Пояснения к заданию
- •Советы по реализации модулей
- •9. Контрольные вопросы
- •10. Библиографический список
- •Корректура составителей
- •394000 Воронеж, пр. Революции, 193
7. Модули и принцип сокрытия информации
Традиционные правила сферы действия глобальных и локальных переменных для модулей не работают. Языковая конструкция «модуль» была специально разработана, чтобы исключить влияние глобальных переменных, объявленных в главной программе, на внутренние описания модуля.
Поэтому, если все-таки возникает необходимость ввести какие-либо доступные для всех описания (то есть глобальные описания), то для модулей это можно сделать только одним способом. А именно, создать специальный модуль для глобальных объявлений и включить его в списки предложения uses всех модулей и главной программы. Например:
Unit Global; { Модуль глобальных описаний}
Interface
Const Len =100;
Type T_mas = array [1 .. Len] of integer;
Implementation
End.
Объявленные здесь идентификаторы Len и t_mas могут исполнять роль глобальных величин для всех модулей, где в предложении uses стоит имя модуля Global.
Задания
Составить программу обработки целочисленных массивов W, D и A каждый из которых содержит n элементов:
Вычислить:
Ввести массив W(30). Найти сумму его элементов.
Ввести массив W(30). Найти сумму его отрицательных элементов.
Ввести массив W(30). Найти максимальный элемент.
Ввести массив W(30). Найти максимальный элемент среди нечетных элементов.
Ввести массив W(30). Найти индексы его минимального и максимального элементов.
Ввести массив W(30). Найти минимальный положительный элемент.
Ввести массив W(30). Сделать симметричный относительно середины обмен элементов, например, 1-й поменять местами с последним, 2-й - с предпоследним и т.д.
Ввести массив W(30). Все его отрицательные элементы перенести в массив А , все его положительные элементы перенести в массив D, и посчитать количество нулевых элементов.
Из массива W(30) перенести все четные элементы в массив A.
В массиве W(30). Найти его минимальный и максимальный элементы и поменять их местами.
Напечатать все элементы массива W(30), значения которых равны их индексам.
Напечатать все элементы массива W(30), которые встречаются в массиве A(30).
Напечатать все элементы массива W(30), которые встречаются в массиве A(30) не менее 2-х раз.
Найти количество элементов, общих для 3-х массивов W(30), A(30) и В(30).
Найти произведение всех отрицательных элементов массива W(30) и заменить им минимальный элемент массива.
Найти среднее арифметическое четных элементов массива W(30).
Найти скалярное произведение 2-х массивов A(30) и W(30)
Осуществить циклический сдвиг массива вправо на N элементов, N запросить и ввести в самой процедуре сдвига
Осуществить циклический сдвиг массива влево на N элементов, N запросить и ввести в самой процедуре сдвига
Сдвинуть массив вправо на N элементов, N запросить и ввести в самой процедуре сдвига. Освобождаемые в процессе сдвига элементы заполнить нулями
Сдвинуть массив влево на N элементов, N запросить и ввести в самой процедуре сдвига. Освобождаемые в процессе сдвига элементы заполнить нулями
Заполнить случайными числами массивы A(30) и W(30). Ввести с терминала n. Сформировать массив D таким образом, чтобы
D[i]=A[i]+ W[i], где i=1.. n и D[i]=0, где i=n..30.
Заполнить массив таким образом, чтобы каждый элемент массива был равен очередному простому числу (простыми называются числа, не имеющие целочисленных делителей).
Заполнить массив таким образом, чтобы каждый элемент массива был равен очередному числу, у которого сумма всех делителей – четная.
Заполнить массив таким образом, чтобы каждый элемент массива был равен очередному трёхзначному числу, у которого сумма цифр – четная. Например, для числа 100 сумма цифр: 1+0+0=1, для числа 101: 1+0+1=2, для числа 102: 1+0+2= 3.
Заполнить массив с терминала. Распечатать его. Проверить, является ли массив симметричным относительно своей середины. Т.е. последний элемент должен быть равен первому, предпоследний – второму и т.д.
Найти средне арифметическое положительных элементов массива
Найти средне арифметическое нечётных элементов массива
Найти максимальные элементы двух поменять их местами, т.е. максимальный элемент 1-го массива поместить во второй массив вместо его максимального элемента. И наоборот.
Распечатать массив таким образом, чтобы чётные его элементы печатались красным цветом, нечётные – зелёным, а нули – белым.
