Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сравнение синтаксиса команд Pascal и С.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
899 Кб
Скачать
☆

1.2.2 Записи (структуры)

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

- положение тележки относительно крана;

- скорость тележки;

- ускорение тележки.

Так как все переменные предназначены для хранения данных в виде десятичных дробей, например «1.25», (для повышения точности – целый тип в этом случае неприменим!), то тип переменных должен быть «real» или «double». Организация записи на языке Pascal в этом случае будет выглядеть следующим образом:

type // Служебное слово для обозначения

// пользовательского типа

TTelegka = record // Имя пользовательского типа TTelegka

// Служебное слово, обозначающее

// начало записи.

s: real; // 1-я переменная, позиция

V: real; // 2-я переменная, скорость

a: real; // 3-я переменная, ускорение

end; // конец записи

Var // Служебное слово для обозначения

// списка пользовательских переменных

Telegka: TTelegka; // Переменная Telegka типа TTelegka

На языке C++:

typedef // Служебное слово для обозначения

// пользовательского типа

struct // Служебное слово, обозначающее

// начало структуры.

{

double s; // 1-я переменная, позиция

double v; // 2-я переменная, скорость

double a; // 3-я переменная, ускорение

} TTelegka; // Имя пользовательского типа TTelegka

TTelegka Telegka; // Определение переменной Telegka типа

// TTelegka

В приведенных выше примерах имя типа похоже на имя определяемой переменной за исключением буквы «T» в начале (от первой буквы служебного слова «Type»). Строго говоря, это требование не обязательное, так как имя типа и имя переменной могут совершенно не совпадать. Но для облегчения восприятия программы, когда это возможно, следует пользоваться данным правилом.

В самой программе доступ к той или иной переменной в записи (структуре) осуществляется следующим образом.

На языке Pascal:

Telegka.s := 0; // Имя записи и переменной в этой записи

Telegka.s := Telegka.s + Telegka.v * 0.01;

На языке C++:

Telegka.s = 0; // Имя записи и переменной в этой записи

Telegka.s = Telegka.s + Telegka.v * 0.01;

1.2.3 Массивы

Иногда для решения поставленной задачи необходимо обработать последовательность переменных одного и того же типа (массивы). Например, для моделирования передвижения нескольких объектов по конвейеру удобно эти объекты объединить в последовательность. Или же для обработки статистических данных, поступающих с какого-нибудь датчика, эти данные удобно расположить последовательно друг за другом. Позиция данных в этой последовательности будет определять время их считывания.

Типы данных, которые могут быть помещены в массивы, различны. Это могут быть и стандартные типы (таблица 1.1), и определенные пользователем, в том числе и записи (структуры).

Пример определения массивов на языке Pascal:

S: array [1..10] of integer; // Определение массива с

// именем S, состоящего из

// 10 элементов целого типа

// с индексами с 1 по 10

MTelegka: array [1..20] of TTelegka; // Определение массива с

// именем MTelegka, состоящего из

// 10 элементов типа TTelegka

// с индексами с 1 по 10

На языке C++: