Скачиваний:
18
Добавлен:
01.05.2014
Размер:
12.08 Кб
Скачать

Turbo Pascal | Глава 5 a:link {TEXT-DECORATION: none} a:visited {TEXT-DECORATION: none} a:active {TEXT-DECORATION: none} a:hover {COLOR: #007EFF;} A.menu:link { Color:#FFFFFF; } A.menu:visited { Color:#EEEEEE; } A.menu:hover { Color:#CCDDFF; } .glow { FILTER: DropShadow(Color=#000000, OffX=1, OffY=1, Positive=1)FILTER: Glow(Strength=1, Color=#454545); } .logot { color:#FFFFFF; }  

В в е д е н и е  /  О г л а в л е н и е  /  О т   а в т о р а

М е н ю

1. Интегрированная среда разработки программ Turbo Pascal 7.0 2. Лексические основы языка Pascal 3. Программирование алгоритмов линейной структуры 4. Алгоритмы и программы ветвящейся структуры 5. Алгоритмы и программы циклической структуры 5.1 Понятие цикла. Разновидности циклов

5.2 Цикл с параметром в Pascal

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

5.4 Цикл с постусловием 6. Регулярные типы данных. Массивы 7. Подпрограммы в Turbo Pascal

Цикл с параметром в Pascal

      Для реализации цикла с параметром в Pascal используется оператор For. Синтаксис оператора For выглядит следующим образом:

      For i:=n to k do <оператор>;

      где i - параметр цикла;

n - начальное значение параметра цикла;

k - конечное значение параметра цикла;

<оператор> - оператор, являющийся телом цикла;

For, to, do - служебные слова.

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

      Например: For i:=1 to 20 do <оператор>;

      При выполнении данного цикла, параметр i (целочисленный) будет при каждой итерации (повторении) принимать последовательно значения 1, 2, …,20. Приращение (шаг изменения значения) параметра для такого цикла всегда равен 1. Начальное значение параметра всегда должно быть меньше конечного.

      Если же i, n, k символьного типа n и k имеют значения, например, 'A' и 'Z' соответственно, то переменная i принимает последовательные значения в порядке букв алфавита: 'А', 'В', 'С', ... ,'Z'.

      Возможна и другая конструкция цикла For.

      For i:=n downto k do <оператор>;

      Отличие заключается в том, что приращение параметра для такого цикла всегда равно -1 и начальное значение всегда должно быть больше конечного.

      Если оператор, содержащийся в теле оператора For, изменяет значение параметра, то это является ошибкой. После выполнения оператора For значение параметра становится неопределенным, если только выполнение оператора For не было прервано с помощью оператора перехода.

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

      Например:

      For i:=n downto k do

      begin

<оператор 1>;

<оператор 2>;

. . .

<оператор N>;

      end;

      Пример 5.1. Найти все простые числа на заданном отрезке (использовать цикл с параметром)

      Для организации выполнения программы определим целочисленные переменные n, k для обозначения начального и конечного значения отрезка, i, j - для обозначения параметров соответственно внешнего и внутреннего циклов, kl - счётчик для количества делителей проверяемого числа. Во внешнем цикле последовательно перебираются значения отрезка от начального до конечного. Во внутреннем цикле параметр j изменяется от 2 до округлённого значения корня квадратного проверяемого значения, при этом, если остаток от деления числа на параметр j равен нулю, то параметр является делителем данного числа. После каждого завершения работы внутреннего цикла проверяется переменная kl, и если она равна нулю, то найдено простое число.

Рисунок 5.4 - Блок-схема алгоритма решения задачи

Program Example_5_1 (Input, Output);

var n : Integer;

   k : Integer;

   i,j: Integer;

   kl : Integer;

Begin

Write ('Введите нижнюю границу отрезка - '); ReadLn (n);

Write ('Введите верхнюю границу отрезка - '); ReadLn (k);

WriteLn ('Все простые числа из отрезка [',n,',',k,']');

For i:=n to k do

begin

   kl:=0;

   For j:=2 to Round (Sqrt(i)) do

   If (i MOD j)=0 then kl:=kl+1;

   If kl=0 then Write (i,' ')

end

End.

Учебно-познавательный сайт по программированию в среде Turbo Pascal

Мирошниченко Марина, Краснодар, 2003

 

Соседние файлы в папке Pascal