Учебный курс Программирование на Delphi. Модуль 11: различия между версиями

Материал из Wiki Mininuniver
Перейти к навигацииПерейти к поиску
Строка 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.


*Форма с результатом работы программы. -6-1.JPG

Пример 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

Задание

Таблица 19

Таблица 20

Литература

  1. Архангельский. Программирование на Delphi 6. – М: БИНОМ, 2002
  2. Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003
  3. Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005.


Ссылки

Учебный курс Программирование на Delphi

Учебный план курса Программирование на Delphi