|
|||||||||||||||||||||||||||
t:array[1..31] of integer; ⇐ ПредыдущаяСтр 2 из 2 t:array[1..31] of integer; Читаем: t- линейная таблица от 1 до 31 целого типа. Внимание: [1..31]!!! две точки! б) динамика стоимости $ в ПМР в течение 10 дней. Как описать этот вектор? var SD:array[1..10] of real; Прочитайте эту строку… в) список 10-го класса (фамилии, скажем). Сделайте описание и прочитайте его… Прямоугольные таблицы: а) таблица Пифагора – имеет 9 строк и 9 столбцов. (Как она называется?) Описание такой таблицы имеет вид: var TP:array[1..9,1..9] of integer; Читаем ТР – матрица 9 на 9 целого типа или матрица из 9 строк и 9 столбцов, содержащих целые числа. б) таблица результатов футбольного турнира для 6-ти команд, в которую внесены колонки: проигрыши(0), ничьи(1),победы(2). Опишите эту матрицу и прочитайте запись… (Как определить победителя?) III. Обращение к элементам таблицы Чтобы подвергнуть элементы таблицы каким-либо преобразованиям, действиям, надо записать обращение к элементу, т.е. указать на него, найти его в массиве. Для этого надо указать “адрес” элемента в таблице. В линейной таблице это будет номер (индекс) элемента в строке (столбце), в прямоугольной таблице – номер строки и номер столбца. Примеры: а) Пусть задан некоторый одномерный массив А: array[1..10] of integer; 1 2 3 4 5 6 7 8 9 10
Здесь A[1]=3; A[4]=-4; A[9]=-7 и т.д. Необходимо различать номер элемента (адрес) и значениеэлемента. (Номер – на коробочке, значение – в коробочке). В общем виде записываем: A[i], где i – индекс (номер) элемента в линейной таблице. Примечание: В зависимости от задачи нумерация элементов может быть и такой, например [5..20], [-10..10], [1..N], [M..N], где N и M – целые числа, причем M<=N. Вопрос: Как определить количество элементов в линейной таблице? Выведите формулу для общего случая [M..N]. j 1 2 3
б) Пусть задана матрица i А:array[1..5,1..3] of real; 1 A[1,1]=3; A[3,3]=2; 2 A[4,2]=8; A[5,2]=10 3 A[1,4]=? A[3,5]=? 4 5
В общем виде записывается: A[i,j] – где i – номер строки, j- номер столбца. Задание Определить количество элементов в следующих матрицах: A[1..6,1..9], a[3..9,4..8], sb[-2..2, 1..5], tr[1..10,1..N], B[1..M,1..N]. IV. Формирование таблиц можно выполнять различным образом: - через ввод элементов с клавиатуры; - вычислениепо заданному правилу (формуле, закону); - случайным образом (автоматически). Примечания: 1) В Паскале для задания случайных чисел (не зависящих от нас, от какой-либо формулы…) существует специальная процедура – генератор случайных чисел – randomize; После запуска этой процедуры в программе надо выполнить команду присваивания, например, A[i]:=random(x); где х – целое число, и в массив А начнут записываться целые случайные числа в интервале от 0 до х. Если хотим, чтобы были и отрицательные числа, то можно воспользоваться командой A[i]:=random(x) – x/2; (к примеру, random(200)-100) ). 2) Для записи элементов линейного (одномерного) массива в память, обработки (преобразования, действий над ними), вывода их на печать используется команда повторения (цикл) for i:=1 to n do… Если имеем матрицу, то понадобятся два вложенных цикла: for i:=1 to m do Внешний цикл – по строкам, for j:=1 to n do внутренний (вложенный) – по столбцам. V. Способы формирования таблиц – образцы записи
А) линейные таблицы Б) прямоугольные таблицы: 1) вручную (ввод с клавиатуры): for i:=1 to 10 do for i:=1 to 10 do read(A[i]); for j:=1 to 10 do read(A[i,j]); 2) по заданной формуле (правилу, закону): for i:=1 to 10 do for i:=1 to 10 do A[i]=2*i+1; for j:=1 to 10 do A[i,j]=i+j; 3) случайным образом: randomize; randomize; for i:=1 to 10 do for i:=1 to 10 do A[i]:=random(10); for j:=1 to 10 do A[i,,j]:=random(100); VI. Вывод таблиц на печать: А) линейные таблицы Б) прямоугольные таблицы: for i:=1 to 10 do for i:=1 to 10 do write(A[i], ’ ‘); begin for j:=1 to 10 do write(A[i,j], ’ ‘); writeln; end; VII. Комбирированный ввод-вывод А) линейные таблицы Б) прямоугольные таблицы: randomize; randomize; for i:=1 to 10 do for i:=1 to 10 do begin begin A[i]:=random(10); for j:=1 to 10 do write(A[i], ‘ ‘); begin end; A[i,j]:=random(100); write(A[i,j], ‘ ‘); end; writeln; end; См. на обороте VII. Образцы ПРОГРАММ на формирование и вывод на печать А) линейной таблицы Б) прямоугольной таблицы: program Vector; program Matrica; var A:array[1..100] of integer; var A:array[1..10,1..5] of real; i:integer; i,j:integer; begin begin randomize; for i:=1 to 10 do for i:=1 to 10 do for j:=1 to 5 do A[i]:=random(100)-50; A[i,j]:=sin(i-j); for i :=1 to 10 do for i:=1 to 10 do write(A[i], ‘ ‘); begin end. for j:=1 to 5 do write(A[i,j], ’ ‘); writeln; end; end.
program Lintab; program Prugtab; var A:array[1..100] of real; var A:array[1..10,1..5] of integer; i:integer; i,j:integer; begin begin for i:=1 to 10 do randomize; begin for i:=1 to 10 do A[i]:=sqrt(i); begin write(A[i], ‘ ‘); for j:=1 to 5 do end; begin end. A[i,j]:=random(100)-50; write(A[i,j], ’ ‘); end; writeln; end; end.
|
|||||||||||||||||||||||||||
|