Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Операции над элементами массива
К каждому элементу массива можно обратиться, указав имя массива и индекс этого элемента, записанный в квадратных скобках. При работе с n-мерным (n> 1) массивом указывается соответственно n индексов. Инициализация массива Инициализация массива заключается в присвоении начальных значений каждому элементу массива. Например, обнуление массива из 55 элементов: for i: = 1 to 55 do a[i]: = 0; Для инициализации двумерного массива используется конструкция “цикл в цикле” (вложенные циклы). Например, инициализация массива размера 55 × 77 значением 5: for i: = 1 to 55 do for j: = 1 to 77 do a[i, j]: = 5; Ввод/вывод массива Так как в языке Паскаль не имеется средств для ввода/вывода всего массива, то необходимо организовывать поэлементный ввод/вывод массива. Например, ввод массива из 23 элементов: for i: = 1 to 23 do readln (a[i]); Для вывода двумерного массива (матрицы) из 10 строк и 15 столбцов можно использовать следующий фрагмент программы: for i: = 1 to 10 do for j: = 1 to 15 do write (a[i, j]);
Работа в среде Турбо-Паскаль Подменю Run (выполнение) Подменю Run используется для запуска программ на выполнение. Пункт подменю Run (< Ctrl> +< F9> ) запускает программу на выполнение. Если с момента последней компиляции текст программы на языке Паскаль был изменен, то встроенный менеджер проекта автоматически перекомпилирует и скомпонует программу. Пункт подменю Trace into (< F7> ) выполняет следующую строку (оператор) программы. При этом будет осуществляться трассировка процедур и функций, содержащихся в программе. Пункт подменю Step over (< F8> ) выполняет следующую строку (оператор) программы без трассировки процедур и функций. Пункт подменю Goto Cursor (< F4> ) выполняет программу без трассировки до строки, на которой стоит курсор в текущем окне редактора. Пункт подменю Program reset (< Ctrl> +< F2> ) прерывает текущий сеанс отладки программы. Пункт подменю Parameters позволяет передать запускаемой на выполнение программе параметры командной строки точно так же, как вы их набрали бы в командной строке DOS.
Задания для лабораторной работы Вариант 1 1. Подсчитать количество положительных и количество отрицательных элементов массива X(20). 2. Вычислить значения функции , если Xi и Ai - элементы массивов, состоящих из десяти элементов каждый. 3. Записать в массив Y(20) квадраты чисел, указанных в массиве N(20). 4. Вывести на печать отдельно положительные элементы массива X(16) и отдельно отрицательные элементы. 5. Вывести на печать первый отрицательный элемент массива A(20) и его номер, полагая, что в массиве есть хотя бы один отрицательный элемент. 6. Найти сумму положительных и сумму отрицательных элементов массива X(11). 7. Задан массив X, состоящий из пяти элементов. Вычислить значения функции y = 0.5*ln(x) при значениях аргумента, заданных в массиве X, и поместить их в массив Y. Напечатать массивы X и Y в виде двух столбцов. 8. Решить уравнение a*х = b для пяти пар значений a и b, заданных в виде двух массивов. Результат поместить в массив X. 9. Вычислить сумму и разность массивов A(20) и B(20). Результат распечатать в виде двух параллельных столбцов. 10. Найти среднее значение элементов массива X, состоящего из двенадцати элементов. 11. Вывести на печать номера элементов массива Y(16), удовлетворяющих условию 0 < Yi < 1. 12. Найти максимальный элемент массива X(10). 13. Даны два массива X(10) и Y(8). Сформировать массив Z(18) из положительных элементов массивов X и Y. Если положительных элементов меньше 18, то оставшимся элементам массива Z присвоить значение 1. 14. Записать (-1) вместо минимального элемента массива X(11) и 1 – вместо максимального элемента. 15. Найти наибольший среди отрицательных элементов массива C(15).
Вариант 2 1. В матрице M(5, 5) среди элементов главной диагонали найти наибольший элемент. 2. В матрице M(5, 5) среди элементов побочной диагонали найти наименьший элемент. 3. В матрице A(6, 6) найти произведение положительных элементов главной диагонали и сумму всех элементов побочной диагонали. 4. Задана матрица M(3, 4). Определить, сколько чисел больше -2, но меньше 2 находится в третьей строке. 5. В матрице M(5, 3) вычислить сумму положительных элементов второго столбца. 6. Задана матрица M(4, 5). Найти максимальное число в третьей строке. 7. Задана матрица M(3, 4). Определить, сколько чисел больше или равно A, но меньше B находится в первом столбце. 8. Дан массив A(20). Определить, сколько его элементов с номерами 1, 2, 4, 8, 16 имеют значение меньше, чем 0.25. 9. Выяснить является ли массив A(11) упорядоченным по убыванию. 10. В массиве A(25) определить число соседств двух чисел разного знака. 11. Дан массив целых чисел C(17). Имеются ли в этом массиве два идущих подряд нулевых элемента. 12. Дан массив X(14). Заменить все элементы массива, значения которых меньше 2, нулями. 13. Задан массив Y(24). Определить количество элементов, которые при делении на 7 дают остаток 1, 2 или 5. 14. Дан массив A(32). Получить число отрицательных членов среди первых 20-ти элементов массива и количество нулевых элементов во всем массиве. 15. Дан массив Q(23). Получить сумму тех элементов массива, которые нечетны и отрицательны.
Вариант 3 1. В матрице A(6, 6) найти произведение положительных элементов главной диагонали и сумму всех элементов матрицы. 2. В матрице М(5, 5) среди элементов главной диагонали найти наибольший элемент. Вывести его на печать и обнулить строку и столбец, в которых он расположен. 3. В матрице B(7, 3) найти сумму всех положительных элементов, количество отрицательных элементов, а если Bij = 0, то вместо него записать 1. 4. В матрице A(5, 4) подсчитать количество элементов, удовлетворяющих условию K1 < = Aij < = K2 или Aij > i+j, где K1 и K2 – произвольные числа. 5. В матрице S(5, 5) найти наименьший среди положительных элементов. 6. В матрице Y(6, 4) найти наибольший среди отрицательных элементов. 7. Найти два наибольших элемента матрицы A(6, 4), вывести их на печать вместе с координатами. 8. Дана матрица B(4, 4). Среди элементов главной диагонали найти наименьший, вывести его, и, если он меньше некоторого числа K, то ко всем элементам строки, в которой расположен наименьший элемент, прибавить 1. 9. Найти матрицу Y(3), равную произведению матриц X(4) и A(4, 3). 10. В матрице C(4, 4) подсчитать количество и сумму элементов, удовлетворяющих условию K1 < =│ Cij│ < = K2 (K1 и K2 - произвольные числа). 11. В матрице W(6, 6) найти наименьший элемент, расположенный на побочной диагонали. Вывести номер строки и столбца, в котором он расположен. 12. В матрице Z(6, 6) найти максимальный элемент, расположенный на главной диагонали, и произведение всех отрицательных элементов матрицы. 13. Нечетные строки матрицы D(7, 4) заменить на значение X, введенное с клавиатуры. 14. Четные строки матрицы K(8, 3) заменить на значение Н, введенное с клавиатуры. 15. Первые три столбца матрицы Q(3, 7) заменить на значение 2.
Вариант 4 1. Среди элементов, расположенных ниже главной диагонали матрицы A(6, 6), найти те элементы, которые удовлетворяют условию K2 < = Aij < = K1 (K1, K2 - произвольные числа), и сформировать из них одномерный массив. 2. В матрице T(5, 5) найти максимальный элемент, расположенный выше побочной диагонали, вывести его на печать, а столбец, в котором он расположен, обнулить. 3. Среди элементов, расположенных ниже главной диагонали матрицы B(6, 6), найти элементы, удовлетворяющие условию Bij < = K и Bij > i+j, и сформировать из них одномерный массив X. 4. Дана матрица B(4, 4). Среди элементов главной диагонали найти наименьший элемент, вывести его на печать, и, если он меньше некоторого числа K, ко всем элементам строки, в которой он расположен, прибавить 1. 5. В матрице C(6, 6) найти суммы S1 и S2 элементов, расположенных выше и ниже главной диагонали. 6. В матрице A(5, 5) найти максимальный элемент среди элементов, расположенных выше главной диагонали. Вывести его на печать вместе с координатами. 7. В матрице H(5, 5) найти минимальный элемент среди элементов, расположенных ниже побочной диагонали, и количество элементов матрицы, значение которых не больше некоторого числа K. 8. Из массивов X(15) и Y(10) построить матрицу A(5, 5) таким образом, чтобы элементы массива X были расположены на главной диагонали и выше ее. 9. В матрице D(6, 6) найти произведение элементов, расположенных на главной диагонали и выше нее, причем Dij < > 0. Подсчитать количество элементов Dij = 0. 10. В матрице C(5, 5) найти сумму элементов, расположенных на главной диагонали и ниже нее. Все четные строки матрицы обнулить. 11. В матрице Y(5, 5) найти минимальный отрицательный элемент среди элементов, расположенных выше побочной диагонали. Столбец, в котором находится этот элемент, обнулить. 12. Из массивов X(10) и Y(15) построить матрицу A(5, 5) таким образом, чтобы элементы массива X были расположены выше побочной диагонали. 13. В матрице C(6, 6) найти произведение P1 и P2 не равных нулю элементов, расположенных выше и ниже главной диагонали. 14. Среди элементов, расположенных выше побочной диагонали матрицы R(6, 6), найти те элементы, которые удовлетворяют условию K2 < = Rij < = K1 (K1, K2 - произвольные числа), и сформировать из них одномерный массив. 15. Среди элементов, расположенных выше побочной диагонали матрицы N(6, 6), найти элементы, удовлетворяющие условию Nij < = K и Nij > i+j, и сформировать из них одномерный массив Y.
Лабораторная работа N 9 Записи
Теоретическая часть Записи Запись – это структурированный тип данных, состоящий из фиксированного числа компонент (полей) разного типа. Формат объявления записи: Type < имя типа> = record < идентификатор поля>: < тип данных>; [< идентификатор поля>: < тип данных>; ] end; Var < идентификатор> [, < идентификатор> ]: < имя типа>;
Пример объявления записи описания студента: Type student = record fam: string[20]; gr: integer; pol: boolean; kd: 0..10; end; Var s: student; Никаких ограничений на типы полей не накладывается, поэтому компонентой записи может быть любая структура данных. Доступ к любому полю записи осуществляется путем указания имени переменной и имени поля, разделенных точкой. Пример доступа к полям структуры описания студента: s.fam: = 'Иванов И.И.'; writeln (s.gr, s.pol); Обращение к полям записи в многоуровневой структуре будет достаточно длинным. Чтобы не писать длинные адреса доступа к полям записей в языке Паскаль используется оператор with, который имеет формат: with < переменная типа запись> do < оператор>; Этот оператор позволяет работать в зоне своего действия с полями объявленной переменной типа запись, как с простыми переменными. Пример упрощенного обращения к полям записи: with s do begin fam: = 'Иванов И.И.'; kd: = 5; writeln ( fam, kd: 6); end; Популярное:
|
Последнее изменение этой страницы: 2016-03-15; Просмотров: 2487; Нарушение авторского права страницы