Учебный курс Программирование на Delphi. Модуль 11: различия между версиями
| Строка 17: | Строка 17: | ||
Оба описания равноценны. | Оба описания равноценны. | ||
== Пример 1== | == Пример 1== | ||
| − | *Условие | + | '''*Условие.''' |
| − | + | Получить матрицу, элементами которой являются произведения номеров строк i и номеров столбцов j. | |
| − | * | + | '''*Использованные компоненты:''' |
| − | + | StringGrid1 - для выврда результирующей таблицы | |
| + | BitBtn1 - для запуска программы | ||
| + | |||
| + | BitBtn2 - для закрытия формы | ||
| + | |||
| + | '''*Программный код:''' | ||
| + | program umnog; | ||
| + | type mat = array[1..9, 1..9] of integer; | ||
| + | var i,j: integer; p: mat; | ||
| + | begin | ||
| + | for i:=1 to 9 do | ||
| + | begin | ||
| + | for j:=1 to 9 do | ||
| + | begin | ||
| + | p[i,j]:=i*j; | ||
| + | write (p[i,j]: 3) | ||
| + | end; | ||
| + | writeln; | ||
| + | end | ||
| + | end. | ||
| + | |||
| + | |||
| + | '''*Форма с результатом работы программы.''' | ||
| + | [[Изображение:-6-1.JPG]] | ||
== Пример 2== | == Пример 2== | ||
| − | |||
| − | *Использованные компоненты | + | '''*Условие.''' |
| + | |||
| + | Из матрицы А[3,4] получить вектор В, элементами которого являются наибольшие элементы столбцов матрицы. | ||
| + | |||
| + | '''*Использованные компоненты:''' | ||
| + | |||
| + | StringGrid1 - для вывода исходной матрицы | ||
| + | |||
| + | StringGrid2 - для вывода результирующего вектора | ||
| + | |||
| + | Label1 - для подписи матрицы | ||
| + | |||
| + | Label2 - для подписи вектора | ||
| + | |||
| + | BitBtn1 - для запуска программы | ||
| + | |||
| + | BitBtn2 - для закрытия формы | ||
| + | '''*Программный код:''' | ||
| + | type x = array[1..3, 1..4] of integer; | ||
| + | y = array[1..4] of integer; | ||
| + | var i, j: integer; a: x; b: y; | ||
| + | begin | ||
| + | writeln ('Введите матрицу А'); | ||
| + | for i:=1 to 3 do begin | ||
| + | for j:=1 to 4 do begin | ||
| + | read(a[i,j]); | ||
| + | write (' ') | ||
| + | end; | ||
| + | writeln | ||
| + | end; | ||
| + | writeln ('Массив В'); | ||
| + | for j: = 1 to 4 do | ||
| + | begin | ||
| + | b[j]: = a[1,j]; | ||
| + | for i: = 2 to 3 do | ||
| + | if b[j] < a[i, j] | ||
| + | then b[j]: = a[i, j]; | ||
| + | write(b[j]:4) | ||
| + | end | ||
| + | end. | ||
| − | |||
| − | *Форма с результатом работы программы | + | '''*Форма с результатом работы программы.''' |
| + | [[Изображение:-6-2.JPG]] | ||
==Задание== | ==Задание== | ||
Версия 13:03, 26 февраля 2008
Описание двумерного массива
Двумерный массив состоит из элементов с двумя индексами: один показывает номер строки в
массиве, другой - номер столбца.
В Delphi возможны массивы и большей размерности. Для их описания возможны два подхода:
а) массив рассматривается как массив других массивов:
type x = array[1..100] of real; y = array[1..2] of x;
б) массив рассматривается как многоиндексный
type y = array [ 1...100, 1...2 ] of real;
Оба описания равноценны.
Пример 1
*Условие.
Получить матрицу, элементами которой являются произведения номеров строк i и номеров столбцов j.
*Использованные компоненты:
StringGrid1 - для выврда результирующей таблицы
BitBtn1 - для запуска программы
BitBtn2 - для закрытия формы
*Программный код:
program umnog;
type mat = array[1..9, 1..9] of integer;
var i,j: integer; p: mat;
begin
for i:=1 to 9 do
begin
for j:=1 to 9 do
begin
p[i,j]:=i*j;
write (p[i,j]: 3)
end;
writeln;
end
end.
*Форма с результатом работы программы.
Пример 2
*Условие.
Из матрицы А[3,4] получить вектор В, элементами которого являются наибольшие элементы столбцов матрицы.
*Использованные компоненты:
StringGrid1 - для вывода исходной матрицы
StringGrid2 - для вывода результирующего вектора
Label1 - для подписи матрицы
Label2 - для подписи вектора
BitBtn1 - для запуска программы
BitBtn2 - для закрытия формы *Программный код:
type x = array[1..3, 1..4] of integer;
y = array[1..4] of integer;
var i, j: integer; a: x; b: y;
begin
writeln ('Введите матрицу А');
for i:=1 to 3 do begin
for j:=1 to 4 do begin
read(a[i,j]);
write (' ')
end;
writeln
end;
writeln ('Массив В');
for j: = 1 to 4 do
begin
b[j]: = a[1,j];
for i: = 2 to 3 do
if b[j] < a[i, j]
then b[j]: = a[i, j];
write(b[j]:4)
end
end.
*Форма с результатом работы программы.
Задание
Таблица 19
Таблица 20
Литература
- Архангельский. Программирование на Delphi 6. – М: БИНОМ, 2002
- Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003
- Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005.