Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка-ПРОГРАММИРОВАНИЕ -DELPHI 2007.doc
Скачиваний:
7
Добавлен:
12.11.2019
Размер:
2.04 Mб
Скачать

5.3. Пример программирования с использованием одномерного массива

Задание: Найти минимальный элемент в одномерном массиве, со­стоящем из 5 целых чисел.

Задачи поиска минимального и (или) максимального значе массиве чисел весьма распространены. Типовым приемом п минимума и максимума является присвоение в самом начале ал ритма переменным, хранящим значения максимума и мини,\ первого элемента массива, в котором осуществляется поиск.

5.3.1. Разработка алгоритма

Входные данные

MAS - массив целых чисел. Выходные данные

min - целочисленная переменная. Промежуточные данные

i - счетчик.

5.3.2 Разработка формы

Таблица 5.1 Используемые компоненты

Имя ком­понента

Страница

палитры

компонент

Настраи­ваемые свойства

Значения

1

Form1

-

Caption

Поиск минимального элемента в массиве

2

Label 1

Standard

Caption

Введите элементы це- лочисленного массива

3

StringGridl

Additional

FixedCols

0

FixedRows

0

RowCount

1

Options

[goEditing, goTab]

4

Buttonl

Standard

Caption

Поиск минимума

5

Label2

Standard

Caption

5.3.3. Текст программы

unit Unit 1; interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Contro ls, Forms,Dialogs, StdCtrls, Grids;

type

TForml = class(TForm)

Label 1: TLabel;

StringGridl: TStringGrid;

Button l:TButton;

Label2: TLabel;

procedure Button lClick(Sender: TObject);

private

{ Private declarations } public

{ Public declarations } end;

var Forml: TForml;

implementation

{$R*.DFM}

procedure TForml.ButtonlClick(Sender: TObject);

const N=5;

var min, i: integer;

MAS; array [1 ..N] of integer;

begin {ввод одномерного массива}

MAS[i+l]:=StrtoInt(StringGridl.Cells[i,0]);

for i:=0 toN-1 do

{поиск min}

min:=MAS[l];

fori:=l to N do

if min>MAS[i] then

min:=MAS[i];

{вывод результата}

Label2.Caption:{минимум = }+InttoStr(min);

end;

5.4. Контрольные вопросы

1. Ответить на следующие вопросы:

  • Может ли массив содержать один элемент?

  • Можно ли во время выполнения программы изменить размер массива?

  • Могут ли элементами некоторого массива быть числа 1, 1.41,4.98,30?

  • Верно ли, что тип элементов массива может быть лю­бым?

  • Может ли типом индекса массива быть тип integer или real?

2. Имеются описания:

type

d = (вчера, сегодня, завтра);

v = array [1..30] of real;

а = array [1..5] of integer; var

MASl:d;

MAS2,MAS3:v;

MAS4: array [1..10] of real; MASS: a; Ответить на вопросы:

  • Какие массивы определены?

  • Какие значения могут принимать массивы?

  • Как указать первый и последний элементы каждого из описанных массивов?

Какие операции над массивами как единым целым допустимы в среде Delphi?

  1. Дан фрагмент программы:

var

х: array [1 ..40] of char;

у: array [0..39] of char;

Можно ли переписать элементы массива х в массив у с помо­щью оператора у:=х?

5. Написать фрагмент программы ввода массива В, описанного следующим образом:

TYPE

Т = array [1 ..6] of integer; VAR

B:T;

6. Написать фрагмент программы вывода массива А, описанного следующим образом:

VAR A: array [1..5] of real;

7. Присвоить нулевые значения N элементам массива

VAR

A: array of real;

  1. Может ли быть описан массив без представления типа в разделе описания типов данных?

  1. Для чего предназначается компонент TStringGrid?

10. Какими свойствами обладает компонент TStringGrid?