Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Синтаксис определения структуры

Простая структура

Мы начнем рассмотрение со структуры, содержащей три поля, два из которых имеют целый тип и одно поле – вещественный тип. Эта структура предназначе­на для хранения информации о комплектующих деталях изделий, выпускаемых фабрикой. Компания производит несколько типов изделий, поэтому номер моде­ли изделия включен в структуру как первое из полей. Номер самой детали пред­ставлен вторым полем, а ее стоимость – последним, третьим полем.

В программе PARTS определяется структура part и переменная part1 типа part. Затем полям переменной part присваиваются значения и выводятся на экран.

 

Определение структуры

Определение структуры в языке С++ задает ее внутреннюю организацию, описывая поля, входящие в состав структуры:

struct part
{

 

int modelnumber;
int partnumber;

 

float cost;
};

Синтаксис определения структуры

Определение структуры в языке С++ начинается с ключевого слова struct. Затем следует имя структуры, в данном случае этим именем является part. Объявления полей струк­туры modelnumber, partnumber и cost заключены в фигурные скобки. После за­крывающей фигурной скобки следует точка с запятой (;) – символ, означающий конец определения структуры. Обратите внимание на то, что использование точки с запятой после блока операторов при определении структуры отличает синтаксис структуры от синтаксиса других рассмотренных нами элементов про­граммы. Как мы видели, в циклах, ветвлениях и функциях блоки операторов тоже ограничивались фигурными скобками, однако точка с запятой после таких блоков не ставилась.

28. Формирование записей (структур). Операции над записями (структурами) в языках программирования Turbo Pascal, С++

 

Формат программы.

Программа на Паскаль состоит из строк. Максимальная длина строки – 127 символов. Набор текста программы осуществляется обычно с помощью встроенного редактора текстов системы программирования Turbo Pascal (или другой версии этой системы). Набирая текст программы, программист имеет право произвольно располагать строки на экране. Обязательным является только порядок следования частей программы и правильность их записи.

Структура программы:

 

Program <имя>(input,output); -заголовок

Uses <имя1,имя2,..>; -список подключаемых библиотечных модулей

Label …; -раздел описания меток

Const …; - раздел описания констант

Type …; - раздел описания типов данных

Var …; - раздел описания переменных

Procedure <имя>; - описание процедур и запись их операторов

<основная часть процедуры>;

Function <имя>; - описание функций

<основная часть функции>;

Begin

<основная часть программы >

End.

Любой раздел, кроме раздела операторов (основная часть программы), может отсутствовать. Раздел операторов в основной программе или подпрограмме всегда начинается зарезервированным словом Begin, далее следуют операторы языка, отделенные “;”. Завершает раздел зарезервированное слово End и точка “.”. В Паскаль конструкция Begin-End называется операторными скобками.

Комментарии помещаются в фигурные скобки { }и могут размещаться в любом месте программы.

Константы и переменные.

Как и другие языки программирования Паскаль интерпретирует данные как константы или переменные. В программе константы или переменные определяются идентификаторами (именами), по которым к ним можно обращаться для получения текущих значений.

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

Const

Max=1000; Str1=’Иванов’;

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

Var

I,j:integer;

A:array [1..10] of real;

 

Типы данных в языке Паскаль.

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

Все типы данных разделяются на две группы: скалярные (простые) и структурированные (составные).

Простые типы данных:

Целочисленные типы (Shortint, Integer, LongInt, Byte, Word) данных представляют собой значения, которые могут использоваться в арифметических выражениях и занимать память от 1 до 4 байт.

Вещественные типы (Single, Real, Double, Extended, Comp) данных представляют собой вещественные значения, которые могут использоваться в арифметических выражениях и занимать память от 4 до 10 байт.(Самый большой объем памяти – 10 байт - занимают данные вещественного типа повышенной точности: Extended). Паскаль допускает представление вещественных значений в виде как с плавающей, так и с фиксированной точкой.

Символьный (char) тип определяется множеством значений кодовой таблицы ASCII. Для переменной символьного типа требуется 1 байт.

Логический тип (Boolean, ByteBool, WordBool, LongBool) представлен двумя значениями: (истина) и (ложь). Он широко применяется в логических выражениях и выражениях отношения. Типы ByteBool, WordBool, LongBool являются нововведением Turbo Pascal 7.0, они были введены для обеспечения совместимости создаваемых программ в Windows.

Указательный тип (Pointer) – значениями переменных и констант данного типа являются адреса оперативной памяти, состоящие из адреса сегмента и смещения

Пользовательские типы данных.

 

В Паскаль существуют типы данных, определяемые пользователем. Это перечислимый тип (когда непосредственно, в разделе описания типов, заранее записываются все значения для переменных этого типа) и интервальный (когда задаются границы диапазона значений для данной переменной), указательный тип (кроме Pointer), структурированные типы и процедурный тип.

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

Var Season: (winter,spring,summer,autum);

Temp: (23,24,25,26);

Интервальный тип позволяет задавать две константы,определяющие границы диапазона значений для каждой переменной.Обе константы должны принадлежать одному и тому же стандартному типу (кроме real). Например, Var S:1..30;

Сh:’a’..’f’;

Указательный типы – их значениями являются адреса памяти. В отличие от стандартного указательного типа Pointer, пользовательский тип определяет множество значений, которые указывают на динамические переменные опеределенного типа, называемого базовым типом. Указатель на какой-либо тип может быть описан до обьявления самого типа:

Type PtStack=^Stack;

Stack=array[1..40] of real;

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

Type Tproc1=procedure (var x,y:real);

Tproc2=function (x:real):real;

Структурированные типы данных.

Составные типы данных определяют упорядоченную совокупность скалярных переменных и характеризуются типом своих компонентов. К структурированным типам данных в Turbo Pascal относят: тип-массив (array), тип-множество (set), тип-запись (record), файловый тип (file), объектный тип (object), строковый тип (string);

Строковый тип:

Строка- в общем случае это последовательность символов. Строка представляет собой особую форму одномерного массива символов, которая имеет существенное отличие. Массив символов имеет фиксированную длину (количество элементов), которая определяется при описании. Строка имеет две разновидности длины:

Общую длину строки, которая характеризует размер памяти, выделяемый строке при описании.

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

Для определения данных строкового типа в Turbo Pascal 7.0 введены стандартные типы String и PChar.

 

В строках типа String текущая длина строки указывается в нулевом (то есть имеющем индекс 0) элементе строки. Максимальная текущая длина строки может быть не более 255 символов. Например,

Const Adres=’ул.Королева,2’;

Type

FileName=string[150];

Var

St1: FileName;

St2,St3:string[10];

В Паскаль существует ряд встроенных процедур и функций для работы со строками типа String: Delete, Str, Val, Insert, Copy, Concat, Length, Pos, UpCase.

Тип PChar поддерживает формат представления строк, признаком конца строки которых служит символ с кодом 0 (нуль) и которые называются строками с завершающим нулем, или ASCIIZ-строками.

 

Тип-массив (array):

Массив – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип. Элементами массива могут быть данные любого типа, включая структурированный тип. Описывается в виде: Type Имя =array [тип индекса] of тип компонентов;

При выполнении программы к каждому элементу массива можно обратиться используя его индекс в массиве. Например, М=array [1..4] of integer; - массив из четырех целых чисел.

M[1], M[2], M[3], M[4] – элементы массива М.

Тип-множество (set):

Множество – набор взаимосвязанных по какому-либо признаку (или группе признаков) элементов, которые можно рассматривать как единое целое. Элементы множества должны принадлежать к одному и тому же типу данных, которые называют базовым типом множества. Type Имя =set of “элемент1,..элементN”;

Например, А=set of (3,5,7,11,13) - множество простых чисел.

 

Тип-запись (record):

Запись- тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начинается идентификатором record и заканчивается зарезервированным словом end. Между ними заключен список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля: Type имя = record Например, Mash=record

имя поля1: тип компонента; Nomer:integer;

имя поля2: тип компонента; Marka:string[20];

… year:integer;

end; end;

Файловый тип (file):

Файлы классифицируются по двум признакам: по типу (логическая структура) и по методу доступа к элементам файла.

В Паскале существует три класса файлов по типу – типизированные текстовые, нетипизированные. По методу доступа они делятся на файлы последовательного доступа и прямого доступа.

К типизированным файлам относятся файлы строго определенного типа (их иногда рассматривают как последовательность записей определенного типа).Стандартное задание в программе такой файловой переменной осуществляется следующим образом:

Type FileRec=record

end;

var F:file of FileRec;

 

Текстовый файл рассматривается как последовательность символов, разбитая на строки. Каждая строка завершается символом конца строки. На практике это два символа: перевод строки Chr(13) и возврат каретки Chr(10).

Нетипизированный файл рассматривается в Pascal как набор символов или байтов. Представление Char или Byte не играет роли, а важно лишь с точки зрения обьема занимаемого данными. Нетипизированный файл является файлом прямого доступа, что говорит о возможности одновременного использования операций чтения записи. При обьявлении нетипизированного файла указывается только ключевое слово file:

Var F: file;

 

Объектный тип (object):

Обьект – тип данных ставший основой обьектно-ориентированного программирования на языке Паскаль. Он похож на запись, так как содержит данные различных типов в качестве полей, и отличается тем, что также содержит методы работы с этими данными в рамках обьекта. Методы работы с данными обьекта называются правилами. Например, Type

Coordinate=object обьект с именем Coordinate

X,Y:byte; X,Y - данные, входящие в обьект

Procedure Init(Xinit,Yinit:byte); метод инициализации данных

Function GetX:byte; метод получение значения X

Function GetY:byte; метод получение значения Y End;

Операции

 

С++

Транслятор, компилятор, интерпретатор

Трансля́тор — программа или техническое средство, выполняющее трансляцию программы.

Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т. д.

Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.

Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом.

Понятие трансляции относится не только к языкам программирования, но и к другим компьютерным языкам, вроде языков разметки, аналогичных HTML, и к естественным языкам, вроде английского или русского.

Компилировать — производить трансляцию машинной программы с проблемно-ориентированного языка на машинно-ориентированный язык и последующую компоновку программы в готовый к использованию программный модуль.

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

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...