- •Вопросы к экзамену по оАиП
- •1. Словарь языка Pascal.
- •2. Типы данных и переменные.
- •3. Операции.
- •4. Операции сдвига.
- •5. Побитовые операции «и», «или», «исключающее или».
- •6. Простые операторы языка Pascal.
- •7. Операторы для реализации перехода по условию.
- •8. Операторы для реализации повторяющихся действий.
- •9. Ввод-вывод в Pascal.
- •10. Одномерные массивы: описание, определение.
- •11. Действия по добавлению, удалению, перестановке элементов.
- •12. Двумерные массивы: описание, определение.
- •13. Действия по добавлению, удалению, перестановке строк и столбцов.
- •14. Множества.
- •15. Строки в Pascal: описание, определение.
- •16. Действия над строками.
- •17. Подпрограммы.
- •18. Функции: описание в программе, вызов.
- •19. Процедуры: описание в программе, вызов.
- •20. Формальные и фактические параметры подпрограмм.
- •21. Функции, возвращающие более одного значения.
- •22. Записи: описание, определение, действия.
- •23. Рекурсивное описание записи.
- •24. Массивы записей: описание, определение, действия.
- •28. Файл: описание, определение, виды.
- •29. Функции для работы с файлом.
- •30. Функции чтения/записи данных в/из файл(-а).
12. Двумерные массивы: описание, определение.
В языке Паскаль двумерный массив - это массив, элементами которого являются одномерные массивы:
b: array[1..n] of array[1..m] of integer;
С другой стороны двумерный массив можно описать и так:
b: array[1..n,1..m] of integer;
Примеры описания двумерных массивов и обращения к элементам:
Type
massiv1=array[1..n] of real;
massiv2=array[1..5,1..6] of integer;
var
f:array[1..10] of massiv1;
mas:array[0..10,1..30] of char;
b:massiv2;
asd:array[1..20,1..10] of byte;
begin
..............
f[i,j]:=13.13;
mas[0,1]:='a';
b[5,6]:=7;
13. Действия по добавлению, удалению, перестановке строк и столбцов.
uses crt; const maxrow=10; maxcol=10; type matr=array[1..maxrow, 1..maxcol] of real; var a:matr; i, j, k, l, p:integer; begin read(k, l); for i:=1 to k do for j:=1 to l do begin read(a[i,j]); end; writeln('Введите номер столбца, который вы хотите удалить'); read(p); for i:=1 to k do for j:=p to l do a[i, j]:=a[i, j+1]; for i:=1 to k do begin for j:=1 to l-1 do write(' A[',i,',',j,']= ' ,a[i, j]); writeln; end; end. |
uses crt; const maxrow=10; maxcol=10; type matr=array[1..maxrow, 1..maxcol] of real; var a:matr; i, j, k, l, p:integer; begin read(k, l); for i:=1 to k do for j:=1 to l do begin read(a[i,j]); end; writeln('Введите номер строки, который вы хотите удалить'); read(p); for i:=p to k do for j:=1 to l do a[i, j]:=a[i+1, j]; for i:=1 to k-1 do begin for j:=1 to l do write(' A[',i,',',j,']= ' ,a[i, j]); writeln; end; end. |
uses crt; const maxrow=10; maxcol=10; type matr=array[1..maxrow, 1..maxcol] of real; var a:matr; i, j, k, l, p, m:integer; begin read(k, l); for i:=1 to k do for j:=1 to l do begin read(a[i,j]); end; writeln('Введите номер столбца массива, после которого хотите добавить столбец'); read(p); for i:=1 to k do for m:=l downto p+1 do a[i, m+1]:=a[i, m]; for i:=1 to k do begin writeln('Введите число, которое вы хотите добавить'); read(a[i, p+1]); end; for i:=1 to k do begin for j:=1 to l+1 do write(' A[',i,',',j,']= ' ,a[i, j]); writeln; end; end. |
uses crt; const maxrow=10; maxcol=10; type matr=array[1..maxrow, 1..maxcol] of real; var a:matr; i, j, k, l, p, m:integer; begin read(k, l); for i:=1 to k do for j:=1 to l do begin read(a[i,j]); end; writeln('Введите номер строки массива, после которой хотите добавить строку'); read(p); for m:=k downto p+1 do for j:=1 to l do a[m+1, j]:=a[m, j]; for j:=1 to k do begin writeln('Введите число, которое вы хотите добавить'); read(a[p+1, j]); end; for i:=1 to k+1 do begin for j:=1 to l do write(' A[',i,',',j,']= ' ,a[i, j]); writeln; end; end. |
uses crt; const maxrow=10; maxcol=10; type matr=array[1..maxrow, 1..maxcol] of real; var a:matr; b:array[1..10] of real; c:array[1..10] of real; i, j, k, l, x, y:integer; begin read(k, l); for i:=1 to k do for j:=1 to l do begin read(a[i,j]); end; writeln('Введите номера строк массива, которое хотите переставить'); read(x, y); for j:=1 to l do b[j]:=a[x, j]; for j:=1 to l do c[j]:=a[y, j]; for j:=1 to l do a[y, j]:=b[j]; for j:=1 to l do a[x, j]:=c[j]; for i:=1 to k do begin for j:=1 to l do write(' A[',i,',',j,']= ' ,a[i, j]); writeln; end; end. |
uses crt; const maxrow=10; maxcol=10; type matr=array[1..maxrow, 1..maxcol] of real; var a:matr; b:array[1..10] of real; c:array[1..10] of real; i, j, k, l, x, y:integer; begin read(k, l); for i:=1 to k do for j:=1 to l do begin read(a[i,j]); end; writeln('Введите номера столбцов массива, которое хотите переставить'); read(x, y); for j:=1 to l do b[j]:=a[j, x]; for j:=1 to l do c[j]:=a[j, y]; for j:=1 to l do a[j, y]:=b[j]; for j:=1 to l do a[j, x]:=c[j]; for i:=1 to k do begin for j:=1 to l do write(' A[',i,',',j,']= ' ,a[i, j]); writeln; end; end. |