Паскаль: масиви, Детальна інформація
Паскаль: масиви
Масиви типу Table мають два виміри: номер рядка та номер символу в ньому; масиви типу Game – три: номери таблиці, рядка та символу. Вимір 1..9 у типі Game називається зовнішнім, вимір 'a'..'c', що нумерує символи в рядках, – внутрішнім.
Тип Game можна задати еквівалентним виразом, не означаючи імен типів Row і Table, а саме:
type Game = array [ 1 .. 9 ] of
array [ 1 .. 3 ] of
array [ 'a' .. 'c' ] of char;
Нехай A – змінна типу Game. Вираз вигляду A[ i ], де 1\xF0A3 i \xF0A3 9, задає змінну типу Table, або типу
array [ 1 .. 3 ] of array [ 'a' .. 'c' ] of char;
вираз вигляду A[i][j], де 1\xF0A3 j\xF0A3 3, – змінну типу Row, або типу
array[ 'a' .. 'c' ] of char;
вираз вигляду A[i][j][k], де 'a' \xF0A3 k \xF0A3 'c', – змінну типу char.
Мова Паскаль допускає іншу форму задання типів та елементів багатовимірних масивів: виміри та індекси записуються через кому в спільних дужках. Так, означення
type Game1 = array [ 1 .. 9, 1 .. 3, 'a' .. 'c' ] of char
еквівалентне означенню типу Game, а вираз A[i, j, k] – виразові A[i][j][k].
Елементи багатовимірних масивів розташовуються в пам'яті послідовно, найшвидше в них змінюється внутрішній індекс, найповільніше – зовнішній. Зокрема, двовимірні масиви (матриці) розташовуються за рядками. Так, послідовні числа масиву типу
array [ 1 ..2, 'a' ..'b' ] of real
мають набори індексів [1, 'a'], [1, 'b'], [2, 'a'], [2, 'b'], а послідовні символи в масиві типу Game – [1, 1, 'a'], [1, 1, 'b'], [1, 1, 'c'], [1, 2, 'a'], … , [1, 3, 'c'], [2, 1, 'a'], … , [9, 3, 'c'].
Задачі
30. Написати процедуру побудови за дійсними числами a1, … , an квадратної матриці
а) 1 1 … 1 б) a1 a2 … an-1 an
a1 a2 … an a2 a3 … an a1
… …
a1n-1 a2n-1 … ann-1 an a1 … an-2 an-1
31.* У матриці розмірами M \xF0B4 N обміняти місцями
а) два рядки, б) два стовпці,
задані номерами.
32.* Транспонувати квадратну матрицю без використання додаткової матриці.
33.* Квадратну матрицю повернути за годинниковою стрілкою на
а) 90\xF0B0 ; б) 180\xF0B0 .
Додаткову матрицю не використовувати.
34. Елемент матриці називається сідловим, якщо його значення є мінімальним у рядку й максимальним у стовпці, на перетині яких він знаходиться (або навпаки, максимальним у рядку й мінімальним у стовпці). Написати процедуру повернення номерів рядка та стовпця якого-небудь із сідлових елементів (якщо таких немає, то повертається пара номерів зовні індексної множини матриці).
Тип Game можна задати еквівалентним виразом, не означаючи імен типів Row і Table, а саме:
type Game = array [ 1 .. 9 ] of
array [ 1 .. 3 ] of
array [ 'a' .. 'c' ] of char;
Нехай A – змінна типу Game. Вираз вигляду A[ i ], де 1\xF0A3 i \xF0A3 9, задає змінну типу Table, або типу
array [ 1 .. 3 ] of array [ 'a' .. 'c' ] of char;
вираз вигляду A[i][j], де 1\xF0A3 j\xF0A3 3, – змінну типу Row, або типу
array[ 'a' .. 'c' ] of char;
вираз вигляду A[i][j][k], де 'a' \xF0A3 k \xF0A3 'c', – змінну типу char.
Мова Паскаль допускає іншу форму задання типів та елементів багатовимірних масивів: виміри та індекси записуються через кому в спільних дужках. Так, означення
type Game1 = array [ 1 .. 9, 1 .. 3, 'a' .. 'c' ] of char
еквівалентне означенню типу Game, а вираз A[i, j, k] – виразові A[i][j][k].
Елементи багатовимірних масивів розташовуються в пам'яті послідовно, найшвидше в них змінюється внутрішній індекс, найповільніше – зовнішній. Зокрема, двовимірні масиви (матриці) розташовуються за рядками. Так, послідовні числа масиву типу
array [ 1 ..2, 'a' ..'b' ] of real
мають набори індексів [1, 'a'], [1, 'b'], [2, 'a'], [2, 'b'], а послідовні символи в масиві типу Game – [1, 1, 'a'], [1, 1, 'b'], [1, 1, 'c'], [1, 2, 'a'], … , [1, 3, 'c'], [2, 1, 'a'], … , [9, 3, 'c'].
Задачі
30. Написати процедуру побудови за дійсними числами a1, … , an квадратної матриці
а) 1 1 … 1 б) a1 a2 … an-1 an
a1 a2 … an a2 a3 … an a1
… …
a1n-1 a2n-1 … ann-1 an a1 … an-2 an-1
31.* У матриці розмірами M \xF0B4 N обміняти місцями
а) два рядки, б) два стовпці,
задані номерами.
32.* Транспонувати квадратну матрицю без використання додаткової матриці.
33.* Квадратну матрицю повернути за годинниковою стрілкою на
а) 90\xF0B0 ; б) 180\xF0B0 .
Додаткову матрицю не використовувати.
34. Елемент матриці називається сідловим, якщо його значення є мінімальним у рядку й максимальним у стовпці, на перетині яких він знаходиться (або навпаки, максимальним у рядку й мінімальним у стовпці). Написати процедуру повернення номерів рядка та стовпця якого-небудь із сідлових елементів (якщо таких немає, то повертається пара номерів зовні індексної множини матриці).
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021