Краткие теоретические сведения

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

«Циклы в языке программирования Pascal АВС»

1. Цель работы:

1) научиться применять основные операторы (команды) и редак­тировать программы с циклической структурой;

2) сформировать навыки работы в среде программирования (на примере  Раsса1 ABC);

3) изучить на практике, как составляются программы с циклической структурой.

2. Оборудование, приборы, аппаратура, материалы: персональный компьютер, среда программирования Pascal ABC.

Часть 1

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

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

Если число повторений оператора (составного оператора) заранее неизвестно, а задано лишь условие его повторения (или окончания), используются операторы while, repeat. Оператор for используется, если число повторений заранее известно.

Оператор цикла for

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

Он может быть представлен в двух форматах:

for <параметр цикла>:= <S1> to <S2> do <оператор>;

for <параметр цикла>:= <S1> downto <S2> do <оператор>;

где Sl и S2 — выражения, определяющие соответственно начальное и конечное значения параметра цикла;

for... do — заголовок цикла;

<оператор> — тело цикла.

Значение управляющей переменной изменяется на +1 (в случае to) или –1 (в случае downto).

Тело цикла может быть простым или составным оператором. Оператор for обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла от начального до конечного.

Пример 1.

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

 

Решение

Используемые переменные:i –натуральные числа, x– их квадраты

 

Program pr1;

Var i, x: integer;

 begin

for i:=1 to 10 do begin    {перебираем натуральные числа от 1 до 10}

x:=sqr(i);                    {возводим очередное число в квадрат}

write(x, ' ');              {выводим полученное значение}

end;

end.

Результат

1 4 9 16 25 36 49 64 81 100

 

Пример 2.

       Найти сумму 1 + 1/3 + 1/5 +...(N слагаемых).

 

Program pr2;

Var I, N: integer;

   S: real;

begin

      Write('N='); Readln(N); {вводим количество слагаемых}

       S:=0;                             {обнуляем сумму}

{выполняем цикл N раз, добавляя к сумме по одному слагаемому}

For I:=1 to N do   

S:=S+1/(2*I-1);

Writeln('S=',S:5:2); {выводим результат с двумя десятичными знаками}

end.

Результат:

N=4

S= 1.68

Задания на лабораторную работу (Часть 1):

1. Изучить краткие теоретические сведения.

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

3. Написать программу: Дано натуральное число n. Вычислить 31+32+…...+3n

4. Написать программу: Найти сумму ряда: S = x - x2 /4 + x3/9 - x4/16... (n слагаемых).

Часть 2

Краткие теоретические сведения

Оператор цикла Repeat

Оператор повтора repeat состоит из заголовка repeat, тела и условия окончания until.

Формат записи:

Repeat

<оператор;>

<оператор>

until <условие окончания цикла>;

Операторы, заключенные между словами repeat и until,  являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Именно поэтому цикл, организованный с помощью оператора repeat, в любом случае выполнится хотя бы один раз. Если результат булевского выражения равен False, то тело цикла активизируется еще раз; если результат True, происходит выход из цикла.

Цикл repeat часто называют циклом с постусловием, или циклом "ДО", так как он прекращает выполняться, как только значение выражения условия, записанного после слова until, равно True (истина).

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

Пример 3.

       Протабулировать функцию y:=sin(x)*x интервале [-p/2,p/2] с шагом p/10.

 

Program pr7;

Var x, y: real;

begin

x:=-pi/2;

repeat

y:=sin(x)*x;

writeln('x=',x:8:2,' y=',y:8:2);

x:=x+pi/10

 until x>pi/2;

end.

Пример 4. Вычислить сумму  с заданной точностью E=0.0001.

Program pr8;

Var S, e, slag: real;

  k: integer;

begin

    e:=0.0001; s:=0; k:=1;

    slag:= k/sqr(k+1);

repeat

s:=s+slag;

k:=k+1;

slag:=k/sqr(k+1);

until slag<e;

write (‘s=’, s:6:2);

end.

Задания на лабораторную работу (Часть 2):

1. Изучить краткие теоретические сведения.

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

3. Написать программу: Найти значение суммы ряда  c точностью e=10-4.

4. Написать программу: Протабулировать функцию y=x3-1 на интервале [-1,3] с шагом 0.2.

 

5. *Написать программу: Составить программу, которая будет вводить и суммировать любое количество чисел. Если будет введено число 999, на экран вывести результат суммирования.

 

Часть 3

Краткие теоретические сведения

Оператор цикла while

Оператор while (пока) часто называют оператором цикла с предусловием за то, что проверка условия выполнения тела цикла производится в самом начале оператора.

Формат записи:                                          

while <условие продолжения повторений> do

     <тело цикла>;

Условие - логическое выражение, тело цикла - простой или составной оператор.

Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен True, тело цикла выполняется и снова вычисляется выражение условия. Если результат равен False, происходят выход из цикла и переход к первому после while оператору.

Цикл while может не выполниться ни разу, если при первой проверке условие оказалось ложным (False).

 

 

Пример 5.

       Задана арифметическая прогрессия -21; - 16;… Определить номер первого положительного члена прогрессии.

a – очередной член прогрессии, n – его порядковый номер

 

Program Pr9;

var

a, n: integer;

begin

a:= -21; n:=1;               {задаем начальные значения}

while a<=0 do begin    {пока очередной член прогрессии меньше либо ра

          a:=a+5; n:=n+1;   равен 0, вычисляем следующий член прогрессии и end;                                      и его порядковый номер}

writeln(‘n=’, n);           {выводим номер 1-го положительного члена

                                             прогрессии}

end.  

Результат:

n=6

 

Пример 6. Первоначальный вклад составил S рублей. Через сколько лет сумма вклада более, чем в 2 раза превысит первоначальный вклад, если годовой процент составляет x%.

Например, S=1000 р, x=10%

1 год S=1000+1000*10/100=1100

2 год S=1100+1100*10/100=1210

 

Program pr10;

Var s, sum, x: real;

n: integer;

 Begin

Write(‘S=’); Readln(S);

Write(‘x=’); Readln(x);

Sum:=2*s; n:=0;

While S<=Sum do begin

s:=s+s*x/100;                   

n:=n+1;

end;

write('через ', n, ‘ лет’);                  

end.

 

Задания на лабораторную работу (Часть 3):

1. Изучить краткие теоретические сведения.

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

3. Написать программу: Задана арифметическая прогрессия 2; 2,8; …. Сколько членов прогрессии нужно сложить, чтобы полученная сумма стала >20.

4. Написать программу для нахождения суммы 10 произвольных чисел, введенных с клавиатуры.

Часть 4


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



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