Примеры выполнения заданий

Лабораторная работа № 5

ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ С ИСПОЛЬЗОВАНИЕМ ВЛОЖЕННЫХ ЦИКЛОВ

Цель работы: овладеть практическими навыками разработки программ с использованием вложенных циклов.

Теоретические сведения.

Если тело какого-то цикла содержит другую циклическую структуру, то такие циклы называются вложенными. Цикл, который содержит другой цикл, называют внешним. Цикл, который содержится в теле другого цикла, называют внутренним.

Внешний и внутренний циклы могут быть трех видов: цикл с постусловием Repeat, цикл с предусловием While и цикл с параметром For.

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

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

Глубина вложенности циклов друг в друга не определена, в основном зависит от мощности компьютера.

Примеры выполнения заданий.

Пример 1. Подсчитайте, сколько чисел палиндромов лежит в промежутке от 100 до 1000 (число M называется палиндромом, если оно равно своему обращенному, например 383).

Выведите их на экран дисплея.

PROGRAM Primer_1;

var d:Integer; { Счетчик палиндромических чисел }

x,y,z: Integer; { Параметры циклов: это цифры трехзначного числа }

n:Integer; { Трехзначное число образованное цифрами x,y,z }

m:Integer; { Число образованное теми же цифрами в обратном порядке }

BEGIN

d:=0;

For x:=1 to 9 do

For y:=0 to 9 do

For z:=0 to 9 do

begin

n:=100*x+10*y+z; {Трехзначное число образованное цифрами x,y,z}

m:=100*z+10*y+x; {Число образованное теми же цифрами в обратном порядке}

If n=m then begin d:=d+1; Write (n,' ') end;

end;

WriteLn; WriteLn ('Результат: ',d)

END.


Пример 2. Вывести на экран таблицу умножения.

Program Primer_2;

Var a,I,J:Integer;

BEGIN

For I:=1 to 9 do

Begin

For J:=1 to 9 do Begin A:=i*J; Write(I,'*',J,'=',A:2,' '); End;

Writeln; {Перевод курсора на новую строку}

Writeln;{после каждой строки пропускаем одну строку}

End;

END.

По приведенной программе ответ получим в следующей форме:

Пример 3. Из отрезка [a, b] вывести числа, которые являются ступенью 6.

Program Primer_3;

Var a,b,p,x,k:Integer;

BEGIN

Writeln('Ввести концы отрезка');

Readln(a,b);

If a>b Then begin x:=a; a:=b; b:=x; end; {если начало отрезка введено больше конца}

k:=0; {счетчик искомых чисел}

Writeln('');

For x:=a to b do

Begin

p:=1; {для нахождения произведения}

While p<x do p:=p*6; {пока произведение меньше числа х}

If p=x {после выполнения цикла: если р=х, то}

Then Begin

Writeln (p); {выводим найденное число}

k:=k+1; {и считаем, что одно число уже вывели}

End;

End;

If k=0 {если счетчик искомых чисел остался равен 0, то нужных чисел нет}

Then Writeln('Степеней 6 на данном отрезке нет');

End.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: