50080

Циклические программы

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

Информатика, кибернетика и программирование

Операторов цикла в Паскале три: for repet while. Оператор For Оператор состоит из заголовка в котором определяется порядок изменения переменной параметра цикла и тела цикла являющегося многократно повторяющимся алгоритмом. Общий вид оператора: For – параметр цикла : = начальное значение to конечное значение do оператор; {тело цикла}. Этот оператор применяется если начальное значение конечного значения; For – параметр цикла:= начальное значение downto конечное значение do оператор; применяется если начальное значение конечного значения.

Русский

2014-01-15

47.5 KB

8 чел.

PAGE  3

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

Циклические программы

Наиболее часто в практике программирования встречаются циклические программы. В циклических программах какой-либо алгоритм повторяется многократно, при этом один из параметров изменяется. Операторов цикла в Паскале три: for, repeat, while.

Оператор For

Оператор состоит из заголовка, в котором определяется порядок изменения переменной параметра цикла и тела цикла, являющегося многократно повторяющимся алгоритмом.

Общий вид оператора:

For – <параметр цикла>: = <начальное значение> to <конечное значение> do оператор; {тело цикла}.

Этот оператор применяется, если начальное значение < конечного значения;

For – параметр цикла:= начальное значение downto конечное значение do оператор; применяется, если начальное значение > конечного значения.

Пример: найти сумму квадратов целых чисел от 8 до 24.

Program Prim;

Var     i,s:integer;

BEGIN   s:=0;

for i:= 8 to 24 do

s:=s+sqr(i);  

writeln('s=',s);  

END.

Работа программы. В разделе Var выделяется ячейка памяти с именем i и s для хранения величин. Поскольку в S мы должны накапливать сумму, то вначале занесем в S ноль. Затем заголовок цикла присваивает i=8. далее выполняется тело цикла: извлекается содержимое ячейки S (а там у нас 0) и к этому содержимому прибавляется sgr(i), т.е. i2=82. Результат присваивается ячейке S, т.е. в S теперь 82.

Проверяется, не стал ли параметр цикла больше конечного значения параметра 24. Это не произошло, поэтому i присваивается следующее значение равное 9 и вновь выполняется тело цикла, т.е. S:=82+92. Можно сказать так: S присвоить тому S, которое было раньше, + следующее i2. Так как цикл еще не закончился, то i станет равным 10, а S присвоится тому S, которое было раньше, т.е. 82+92, и к нему прибавится еще текущее i2, т.е. 102. Этот процесс повторяется до тех пор, пока параметр цикла не станет равным 24. Тогда в последний раз 242 прибавляется к накапливаемой сумме.

Итак:  выполнение цикла значения i  значения S

  1   8   82

   2   9  82+92

   3   10   82+92+102

При i=25 происходит выход из цикла и переход к оператору writeln ('S=' ,S);

Правила применения оператора цикла For

  1.  Тело цикла – всегда один оператор. Если нужно, чтобы тело цикла состояло из нескольких операторов, то их объединяют в один с помощью операторных скобок begin, end.

For i:=l to n do

Begin

S:=S+sin(x)/cos(x);

x=x+0.01;

writeln('S=' ,S)

end.

Операторы, взятые в операторные скобки begin, end, считаются одним составным оператором.

  1.  Начальное и конечное значения параметра цикла в общем случае являются выражениями. Тип этих выражений и тип параметра цикла должны совпадать. Здесь допускается применение любых типов, которые упорядочены с каким-либо фиксированным шагом, это может быть любой скалярный тип, кроме вещественного, т.е. байтовый, целый, символьный, перечисляемый, интервальный, булевский. На практике чаще всего применяют целочисленный тип.
  2.  В теле цикла параметр цикла не должен изменяться.
  3.  Нельзя с помощью оператора перехода goto войти в тело цикла, минуя заголовок.
  4.  Выйти из тела цикла в программу можно по if..goto, не дожидаясь полного перебора параметров цикла.

 

Оператор Repeat.

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

Repeat

оператор;

оператор;

 – – – – – – – –

until <булевское выражение>;

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

Явного перебора параметров в Repeat не предусмотрено, поэтому изменение параметров осуществляется в теле цикла. Здесь же необходимо позаботиться, чтобы рано или поздно булевское выражение стало истиной.

Замечания:

  1.  Тело оператора repeat выполняется по меньшей мере один раз. Оператор repeat еще называют циклом с послеусловием.
  2.  Перед until ';' не ставится.

Пример: найти сумму четных чисел в интервале от 0 до 100.

Program Prim;

Var i,s:integer;

BEGIN   i:=0;    s:=0;

Repeat

i:=i+2;  s:=s+i

until i>100;

writeln('s=',s);

END.

Оператор While

While – оператор цикла с предусловием.

Общий вид оператора: While  <булевское выражение> do

тело цикла.

Работа оператора. Вначале вычисляется булевское выражение, и если оно истинно, то выполняется тело цикла; если оно ложно, то происходит выход из цикла.

Тело цикла – один оператор, как правило, составной. Мы должны позаботиться о том, чтобы булевское выражение в теле цикла на каком-то этапе стало ложным, иначе цикл никогда не закончится. Цикл можно сделать умышленно бесконечным, написав: while true do оператор;

Пример: найти сумму четных чисел в интервале от 0 до 100.

Program Prim;

Var i,s:integer;

BEGIN  

i:=0; s:=0;

while i<100 do

Begin  i:=i+2;   s:=s+i; end;

writeln('s=',s);

END.

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

Program Prim;

Var

i,j:integer;

  BEGIN

for i:=1 to 5 do

   Begin       

   writeln;

       for j:=20 to 23 do

            write('i=',i,' j=',j);

     end;

END.

Для цикла

for i:=1 to 5 do

телом цикла является

begin for j:=20 to 23 do

write('  i= ', i, ' ,  j = ', j);

writeln;     

end;

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


 

А также другие работы, которые могут Вас заинтересовать

13845. Арендные отношения в сфере недвижимости 50 KB
  Арендные отношения в сфере недвижимости. Арендная плата ее экономическая природа факторы состав и способы определения. Использование методов оценки стоимости недвижимости для определения уровня арендной платы. Аренда – право возмездного владения и/или пользования ч...
13846. Внешние эффекты на рынке недвижимости. Способы управления внешними эффектами: теоретические основы и практические проблемы 30.5 KB
  Внешние эффекты на рынке недвижимости. Способы управления внешними эффектами: теоретические основы и практические проблемы. Внешние эффекты от использования недвижимости – влияние способа использования недвижимости на интересы третьих лиц собственников и пользоват
13847. Государственные и муниципальные инвестиции и их роль в развитии экономики. Проблема оценки эффективности государственных инвестиций 32 KB
  Государственные и муниципальные инвестиции и их роль в развитии экономики. Проблема оценки эффективности государственных инвестиций. Участие государства в инвестиционном процессе реализуется по двум основным направлениям. С одной стороны государство выступает в ка
13848. Гос. кадастровый учет земель: состояние, перспективы развития, роль в процессе управления недвижимостью 32.5 KB
  Гос. кадастровый учет земель: состояние перспективы развития роль в процессе управления недвижимостью. Гос. кадастровый учет – действия уполномоченного органа по внесению в гос. кадастр сведений о недвижимом имуществе. Сведения позволяют идентифицировать объект ка
13849. Есть ли будущее у мышления 20.84 KB
  Философия это наука помогающая сформировать целостную картину мира. Она занимается поиском ответов на вопросы о существовании Бога об отношении человека и мира о принципах бытия. Вообще термину философия нельзя дать однозначного определения одни определяют философ
13850. Философия и трагичность человеческого бытия 18.64 KB
  Философия и трагичность человеческого бытия не хорошо и не плохо нет ни дорог ни подвоха. безосновательна наверняка метафизическая тоска метафизическая тоска Музыкальный коллектив Atlantida projet Я забыл о своем хомяке на балконе и три дня не кормил его. Ко...
13851. Анализ романа Алекса Гарленда «Пляж» 27.1 KB
  Бартули Регина Анализ романа Алекса Гарленда Пляж Романантиутопия английского писателя А. Гарленда Пляж был написан в 1997 году. Данный роман описывает людей так называемого поколения х родившихся в разных странах с 1965 по 1982 гг. В годы после войны во Вьетна
13852. Эссе по книге Энтони Берджесса «Заводной Апельсин» (1962) 34.87 KB
  Зиганьшин М. А. Задание по курсу Политическая этика Эссе по книге Энтони Берджесса Заводной Апельсин 1962 Выше огненных созвездийБрат верши жестокий пирВсех убей кто слаб и сирВсем по morder вот возмездиеВ зад пинай voniutshi мир Роман Энтони Берджесса З...
13853. Эссе. Фильм «Ельцин. Три дня в августе» 32.16 KB
  Золотухиной Ирины политология. 4 курс Эссе. Фильм Ельцин. Три дня в августе Ельцин. Три дня в августе художественный фильм снятый журналистами телеканала НТВ о противостоянии членов Государственного комитета по чрезвычайному положению в СССР и политического ру