Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии 


Операции над элементами массива




К каждому элементу массива можно обратиться, указав имя массива и ин­декс этого элемента, записанный в квадратных скобках. При работе с 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; Просмотров: 829; Нарушение авторского права страницы


lektsia.com 2007 - 2019 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.014 с.) Главная | Обратная связь