Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы по программированию с 55 по 64.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
43.69 Кб
Скачать

Вопрос 57

Цикл с предусловием

Оператор цикла с предусловием (или цикла-«до») имеет следу­ющий синтаксис:

while условие do

begin

оператор_1;

оператор_2;

……….

оператор_n;

end;

На естественном языке оператор цикла с предусловием можно сформулировать следующим образом: «до тех пор, пока условие остается истинным, выполнять операторы тела цикла».

При практическом использовании данного типа цикла следует учитывать следующие особенности:

  1. Число итераций цикла с предусловием неизвестно изна­чально и определяется в ходе работы программы.

  2. До выполнения тела цикла условие проверяется как ми­нимум один раз. Если условие изначально имеет значение false, тело цикла не выполнится ни разу.

  3. Выражение условия может содержать (и, обычно, со­держит) значение некоторой переменной. Изменять ее значение в теле цикла допускается. Более того, без подоб­ного изменения вся конструкция цикла с предусловием теряет смысл. Например, если в качестве условия указа­но i>25, то при задании начального значения i:=100 и наличия в теле цикла оператора i : =i-1;, тело цикла вы­полнится ровно 76 раз.

  4. Если условие всегда остается истинным (например, 1>0), то цикл будет выполняться бесконечно.

  5. Если ошибочно поставить символ ; (точка с запятой) по­сле зарезервированного слова do, то транслятор не выдаст ошибки, но результаты работы оператора цикла будут не­корректны.

Пример:

Найти наибольший общий делитель (НОД) двух натуральных чисел A и B.

program evklid;

var

a,b:integer;

begin

write('Введите число A = '); readln(a);

write('Введите число B = '); readln(b);

while a<>b do

begin

if a>b then

a:=a-b

else

b:=b-a

end;

write('НОД = ',a)

end.

Цикл с постусловием

Оператор цикла с постусловием (или цикла-«пока») имеет следующий синтаксис:

repeat

оператор_1;

оператор_2;

……..

оператор_n;

until условие;

На естественном языке оператор цикла с постусловием можно сформулиро-

вать следующим образом: «выполнять тело цикла, пока условие ложно».

При практическом использовании данного типа цикла следует учитывать следующие особенности:

  1. Число итераций цикла с постусловием неизвестно изна­чально и определяется в ходе работы программы.

  2. Тело цикла выполнится как минимум один раз.

  3. Если условие всегда имеет логическое значение false, например, l<0, цикл будет выполняться бесконечно.

  4. Выражение условие может содержать (и обычно содер­жит) значение некоторой переменной. Изменять ее значе­ние в теле цикла допускается.

Пример:

Вводить в переменную x числа, пока их сумма не будет больше 100.

Program p1;

Var s,x:Integer;

Begin

S:=0;

REPEAT

WRITE ('Введите x');

READLN (X);

S:=S+X;

UNTIL S>100;

WRITE ('S=',S);

End.

Вопрос 58

Константа — неизменяемая в процессе исполнения програм­мы величина. Все константы должны быть указаны в разделе описа­ний после зарезервированного слова Const. В зависимости от того, указан ли тип константы явно или нет, все константы делятся на нетипизированные и типизированные.

Объявление нетипизированных констант имеет синтаксис имя_константы = значение;

Они характеризуются тем, что тип их данных не указывает­ся явно, а автоматически определяется транслятором из указанного значения.

Объявление типизированных констант имеет синтаксис

имя константы : тип = значение;

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

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

В зависимости от используемого транслятора различия между типизированными и нетипизированными константами могут быть бо­лее существенными. Типизированные константы могут изменять свои значения в ходе исполнения программы и даже могут быть использованы в левой части оператора присваивания, фак­тически представляя собой инициализированные переменные с начальным значением и типом. В PascalABC.NET изменять значения типизированных констант в программе нельзя.

В PascalABC.NET имеется ряд изначально определенных кон­стант. Примерами могут служить константы

Pi=3.1415926535897 93 и Е=2.718281828459045