W Cat - Описание языка PascalABC.NET
- Название:Описание языка PascalABC.NET
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - Описание языка PascalABC.NET краткое содержание
PascalABC.NET — это язык программирования Паскаль нового поколения, включающий классический Паскаль, большинство возможностей языка Delphi, а также ряд собственных расширений. Он реализован на платформе Microsoft.NET и содержит все современные языковые средства: классы, перегрузку операций, интерфейсы, обработку исключений, обобщенные классы и подпрограммы, сборку мусора, лямбда-выражения, средства параллельного программирования.
PascalABC.NET является мультипарадигменным языком: на нем можно программировать в структурном, объектно-ориентированном и функциональном стилях.
PascalABC.NET — это также простая и мощная интегрированная среда разработки, поддерживающая технологию IntelliSense, содержащая средства автоформатирования, встроенный отладчик и встроенный дизайнер форм.
Описание языка PascalABC.NET - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
оператор
В последнем случае используется автоопределение типа переменной по типу начального значения. В двух последних случаях область действия объявленной переменной распространяется до конца тела цикла, которое в данном случае образует неявный блок. Вне тела цикла такая переменная недоступна, поэтому следующий цикл может использовать переменную с тем же именем:
forvar i := 1 to10 do
Print(i);
forvar i := 1 to5 do
Print(i*i);
Текст от слова forдо слова doвключительно называется заголовком цикла , а оператор после do- телом цикла. Переменная после слова forназывается параметром цикла . Для первой формы цикла с ключевым словом toпараметр цикла меняется от начального значения до конечного значения, увеличиваясь всякий раз на единицу, а для второй формы ключевым словом downto- уменьшаясь на единицу. Для каждого значения переменной-параметра выполняется тело цикла. Однократное повторение тела цикла называется итерацией цикла . Значение параметра цикла после завершения цикла считается неопределенным.
Переменная-параметр цикла может иметь любой порядковый тип. При этом начальное и конечное значения должны быть совместимы по присваиванию с переменной-параметром цикла.
Например:
varen: (red,green,blue,white);
...
foren := red toblue do
write(Ord(en):2);
for varc := 'a' to'z' do
write(c);
Если для цикла for... toначальное значение переменной цикла больше конечного значения или для цикла for... downtoначальное значение переменной цикла меньше конечного значения, то тело цикла не выполнится ни разу.
Если цикл используется в подпрограмме, то переменная-параметр цикла должна быть описана как локальная. Наилучшим решением в PascalABC.NET является описание переменной в заголовке цикла.
Изменение переменной-параметра цикла внутри цикла является логической ошибкой. Например, следующий фрагмент со вложенным оператором forявляется ошибочным:
fori := 1 to10 do
i -= 1;
Оператор цикла foreach
Оператор цикла foreachимеет одну из следующих форм:
foreachпеременная inконтейнер do
оператор
или
foreachпеременная: тип inконтейнер do
оператор
или
foreachvar переменная inконтейнер do
оператор
В качестве контейнера может фигурировать динамический массив, строка, множество, а также любой контейнер, удовлетворяющий интерфейсу IEnumerable или IEnumerable(например, List, Dictionary и т.д.). Переменная цикла должна иметь тип, совпадающий с типом элементов контейнера (если контейнер удовлетворяет интерфейсу IEnumerable, то это тип object). В последней форме foreach тип переменной цикла автовыводится по типу элементов контейнера.
Переменная цикла пробегает все значения элементов контейнера и для каждого значения переменной цикла выполняется тело цикла. Изменение переменной цикла внутри тела цикла не меняет элементы контейнера, т.е. они доступны только на чтение.
Например:
var
ss: set ofstring := ['Иванов','Петров','Сидоров'];
a: array ofinteger := (3,4,5);
b: array[1..5] ofinteger := (1,3,5,7,9);
l := new List;
begin
foreachs: string inss do
write(s,' ');
writeln;
foreachx: integer ina do
write(x,' ');
writeln;
foreachvar x inb do
write(x,' ');
writeln;
foreachvar r inl do
write(r,' ');
end.
Операторы цикла while и repeat
Оператор цикла whileимеет следующую форму:
whileусловие do
оператор
Условие представляет собой выражение логического типа, а оператор после doназывается телом цикла . Перед каждой итерацией цикла условие вычисляется, и если оно истинно, то выполняется тело цикла, в противном случае происходит выход из цикла.
Если условие всегда оказывается истинным, то может произойти зацикливание :
while2>1 do
write(1);
Оператор цикла repeatимеет следующую форму:
repeat
операторы
untilусловие
В отличие от цикла while, условие вычисляется после очередной итерации цикла, и если оно истинно, то происходит выход из цикла. Таким образом, операторы, образующие тело цикла оператора repeat, выполняются по крайней мере один раз.
Обычно оператор repeat используют в ситуациях, где условие нельзя проверить, не выполнив тело цикла. Например:
repeat
read(x);
untilx=0;
Если условие всегда оказывается ложным, то может произойти зацикливание :
repeat
write(1);
until2=1;
Оператор with
Оператор withпозволяет сократить обращение к полям записи, а также к полям, методам и свойствам объекта. Он имеет вид:
withимя записи или объекта doоператор
или
withсписок имен doоператор
Всюду внутри оператора можно опускать имя записи при обращении к полю указанной записи или имя объекта при обращении к полю, методу или свойству указанного объекта. Например, пусть описана переменная
var
DateOfBirthday = record
Day: Integer;
Month: Integer;
Year: Integer;
end;
Тогда присваивание значений ее полям без использования оператора withимеет вид:
DateOfBirthday.Day := 23;
DateOfBirthday.Month := 2;
DateOfBirthday.Year := 1965;
Использование оператора withпозволяет сократить предыдущую запись:
withDateOfBirthday do
begin
Day := 23;
Month := 2;
Year := 1965;
end;
Если внешняя переменная имеет то же имя, что и поле (метод, свойство), то предпочтение отдается полю (методу, свойству). При наличии вложенных операторов withвначале предпринимается попытка рассматривать переменную как поле записи или объекта самого внутреннего оператора with, затем непосредственно объемлющего его оператора withи т.д. Если оператор withсодержит список объектов, то они рассматривается справа налево. Например, если имеются описания
var
x,y,z: integer;
a: record
x,y: integer;
end;
b: record
x: integer;
;
то фрагмент программы
witha,b do
begin
x := 1;
y := 2;
z := 3;
;
эквивалентен фрагменту
witha do
withb do
begin
x := 1;
y := 2;
z := 3;
;
а также фрагменту
b.x:=1;
a.y:=2;
z:=3;
Оператор with устарел и сейчас практически не используется.
Читать дальшеИнтервал:
Закладка: