Форма входа

Категории раздела

Мои статьи [15]

Поиск

Наш опрос

Оцените мой сайт
Всего ответов: 62

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0




Понедельник, 25.11.2024, 07:27
Приветствую Вас Гость | RSS

Delphiport.ucoz.com

Главная | Регистрация | Вход
Каталог статей


Главная » Статьи » Мои статьи

Структурированные типы данных - ключ к оптимизации (ч.1 Одномерные массивы)

  Массив это, очень интересный и полезный способ организации однотипных данных в программе.  Так, если мы оперируем некоторым количеством 

однотипных переменных, их иногда бывает очень удобно представить в виде массива данных, помещенных в одну единственную переменную. 

В этом плане массив подобен русской матрешке, только каждая однотипная матрешка находящаяся внутри, называется элементом массива и имеет

собственный числовой индекс. По этому индексу ее можно легко найти, отличить от других, поместить в нее или наоборот извлечь какие либо данные.

В общем иногда для понимания лучше рассмотреть ряд примеров, чем разбираться в дебрях теории. Рассмотрим рисунок ниже...

Массив

Здесть представлен одномерный массив - a, переменных типа Integer, где в каждой конкретной коробочке (переменной) содержится соответствующее

значение, в первой -10, во второй 20, в третьей 30 и т.д. Значениями этими можно оперировать, изменять, сравнивать, проводить над ними

арифметические операции и прочее... Допустим нам нужно сложить содержимое первой и четвертой коробок, а результат поместить в третью. Для этого 

обращаемся к их содержимому через индексы, итак наше сложение будет выглядеть, следующим образом: 

a[3]:=a[1]+a[4]; Здесь я думаю все понятно.

  Рассмотрим теперь основные правила работы с массивами данных. Для начала нам нужно объявить то, что мы имеем дело с массивом переменных.

Делается это соответствующей записью в разделе type или чаще всего в разделе var. Итак, объявим наконец наш красочный массивчик:

var

a: array[1..5] of Integer;

Здесь a: - наша переменая, array и of - специальные зарезервированные слова, array - в переводе на русский означает -"массив" и указывает на то

что, объявляется массив данных, of - указывает на принадлежность массива к данным определенного типа, после него обычно указывается тип

помещенных в него данных, в нашем случае это Integer, хотя можно указывать и String и Char и другие типы данных. А цифры через две точки друг 

от друга в квадратных скобках  [1..5]  означают размер массива - количество переменных или констант содежащих данные, в нашем случае указан

размер от 1 до 5 ти. А вообще нумерация массивов может начинаться с нуля.

  Итак мы научились объявлять массивы, попробуем теперь поработать с содержащимися в них данными. Давайте напишем такую программку,

чтобы пользователь вводя в Edit номера с 1 по 12, по нажатию кнопки получал в Label, название месяца, соответствующего введенному числу.

Для этого:

1) Помещаем на форму компоненты Label Edit и Button;

2) Очищаем свойство Caption у Label и свойство Text у Edit, а в свойстве Caption у Button пишем слово: - Рассичтать

3) В разделе var листинга, объявляем переменные и массив:

b: Integer;

a: array [1..12] of string;

4) Cоздаем собственную функцию, и назовем ее number, для этого в разделе private листинга пишем:

function number:Integer; и нажимаем клавиши Ctrl+Shift+C;

5) B разделе между begin и end сгенерированного программой кода для функции function TForm1.number: Integer; записываем:

If Edit1.Text = IntToStr(1) then b:=1; 
If Edit1.Text = IntToStr(2) then b:=2;
If Edit1.Text = IntToStr(3) then b:=3;
If Edit1.Text = IntToStr(4) then b:=4;
If Edit1.Text = IntToStr(5) then b:=5;
If Edit1.Text = IntToStr(6) then b:=6;
If Edit1.Text = IntToStr(7) then b:=7;
If Edit1.Text = IntToStr(8) then b:=8;
If Edit1.Text = IntToStr(9) then b:=9;
If Edit1.Text = IntToStr(10) then b:=10;
If Edit1.Text = IntToStr(11) then b:=11;
If Edit1.Text = IntToStr(12) then b:=12;

Эта функция, когда мы ее вызовем присвоит переменной b значение от 1-12 введенное пользователем.

6) Создаем обработчик событий OnClick на кнопке и записываем следующий код:

begin

a[1]:=  'Январь';  // Присваиваем массиву названия месяцев;
a[2]:=  'Февраль';
a[3]:=  'Март';
a[4]:=  'Апрель';
a[5]:=  'Май';
a[6]:=  'Июнь';
a[7]:=  'Июль';
a[8]:=  'Август';
a[9]:=  'Сентябрь';
a[10]:='Октябрь';
a[11]:='Ноябрь';
a[12]:='Декабрь';

number; //Вызываем нашу функцию, то есть переменную b, c уже присвоенным пользователем значением; 

label1.Caption:=a[b]; //И подставляем ее в качестве индекса, для вызова в Label из массива, соответствующего значения месяца;

end;

7) Запускаем проект, и если вы выполнили в точности все, как предлагается в статье, то после ввода целого числа от 1-12, по нажатию кнопки, Label 

будет отображать название месяца соответствующее введенному числу. Такие вот дела.

  Но это еще не все. В этом примере да и вообще, массивы можно объявлять не только как переменные, но и как константы, в таком случае синтаксис

объявления массива будет немного отличаться. Возьмем наш последний пример и представим массив для хранения названий месяцев - константами.

Делается это так:

const

a: array[1..12] of String = ('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август''Сентябрь', 'Октябрь''Ноябрь',

'Декабрь' );

 После описания размерности и типа, ставим знак равенства и в скобках по порядку перечисляем значения для массива. И вот здесь нужно быть

крайне внимательным, поскольку количество указанное в размерности  [1..12] строго должно быть равно количеству присваиваемых значений. Если

это условие не выполнится, то выскочит ошибка.   Ну вот наверное пока достаточно, на сегодня, попробуйте теперь самостоятельно поработать с

массивами.

 Продолжение следует... 


Категория: Мои статьи | Добавил: Sashok (20.11.2011)
Просмотров: 1514 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright MyCorp © 2024