Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Система тестов



Номер теста Проверяемый случай Данные Результат
  При просмотре линейной записи слева направо первой встречается закрывающая скобка ''a)b+1('' ''Нет баланса''
  Первой встречается открывающая скобка, но число открывающих и закрывающих скобок не совпадает ''(a+b))'' ''Нет баланса''
  Есть баланс скобок ''(a+b/(c*d))'' ''Есть баланс''
Program Balance; Uses Crt; Var S: String; Dlina, Flag, i: Integer;BEGIN ClrScr; GotoXY(15, 5); Write('Введите линейную запись математической формулы:'); GotoXY(32,7); ReadLn(S); i:=1; Flag:=0; Dlina:=Length(S); While (Flag>=0) and (i<=Dlina) do begin If S[i] = '(' then Flag:=Flag + 1; If S[i] = ')' then Flag:=Flag - 1; i:=i+1 end; GotoXY(32, 9); WriteLn('О т в е т'); GotoXY(15,11); If Flag=0 then Write('Есть баланс ') else Write('Нет баланса '); WriteLn('открывающих и закрывающих скобок'); ReadLn

END

Записи

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

Запись - это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов, называемых полями записи. Определение типа записи начинается идентификатором Record и заканчивается зарезервированным словом end. Между ними заключен список компонентов, называемых полями, с указанием имен полей и типа каждого поля. Структура объявления типа записи такова:

Type <имя типа> = Record

<имя поля1>: <тип компонентов>;

<имя поляN>: <тип компонентов>;

End;

VAR <имя переменной>: <имя типа>;

Пример описания записи:

Type Car=Record

Number:Integer;

Marka:String[20];

FIO:String[40];

Address:String[60];

End;

Var Mashina, Mash: Car;

В данном примере была объявлена запись с именем Car, у которой имеется 4 поля: номер, название марки машины, ФИО владельца и его адрес.

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

Например, доступ к полям записи Car осуществляется как: Mashina.Marka, Mashina.FIO, Mashina.Number. Составное имя можно использовать везде, где допустимо применение типа поля. Для присваивания полям значений используется оператор присваивания, например:

Mashina. Number:=1645365;

Mashina.Marka:=’Volvo’;

Mashina.FIO:=’Иванов И.И.’;

Mashina. Address:=’ул.Пушкина 12-30’;

Составные имена можно использовать в операторах ввода-вывода:

Read (Mashina. Number, Mashina. FIO, Mashina. Address);

Write(Mashina. Number:4, Mashina. FIO:12, Mashina. Address:25);

Допускается применение оператора присваивания и к записям в целом, если они имеют один и тот же тип. Например, Mash:=Mashina;

После выполнения этого оператора значения полей записи Mash станут равны значениям соответствующих полей записи Mashina.

В ряде задач удобно пользоваться массивами из записей. Их можно описать следующим образом:

Type Car=Record

Number:Integer;

Marka:String[20];

FIO:String[40];

Address:String[60];

End;

Var Mashins: array [1..20] of Car;

Обращение к полям такой записи имеет громоздкий вид. Для решения этой проблемы в языке Паскаль предназначен оператор With, который имеет следующий формат:

With <переменная типа запись> do <оператор>;

Один раз, указав переменную типа запись в операторе With, можно работать с именами полей как с обычными переменными,например:

With Mashina do

Begin

Number:=164536l;

Marka:=’Volvo’;;

FIO:=’Иванов И.И’;

Address:=’ул.Пушкина 12-30’;

End;





Дата публикования: 2014-11-04; Прочитано: 247 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...