ТОП 10:

Практическое занятие № 5. Программирование. Циклы



Цель занятия

Цель занятия – знать операторы цикла. Уметь записать алгоритм цикла в виде программы Turbo Pascal, ввести в компьютер и запустить программу, получить результат.

Теоретический материал для практического занятия № 5

Оператор цикла с параметрами

Счетный оператор цикла FOR имеет структуру:

а) FOR i:=a TO b DO <оператор>;

Здесь FOR, TO, DO – зарезервированные слова (для, до, выполнить);

i – переменная цикла типа INTEGER;

a – начальное значение переменной цикла (тип INTEGER);

b – конечное значение переменной цикла (тип INTEGER);

<оператор> – произвольный оператор Турбо Паскаля.

Шаг изменения параметра цикла равен единице.

Алгоритм выполнения оператора цикла с параметрами при выполнении оператора FOR:

  1. вначале осуществляется присваивание i:=a;
  2. проверяется условие i > b; если это условие выполняется, то следует выход из цикла, иначе на пункт 3;
  3. выполняется тело цикла;
  4. счётчик увеличивается на единицу: i:=i + 1;
  5. переход на 2;
  6. при выполнении условия i > b цикл заканчивается.

Пример 1.

Найти сумму значений переменной цикла. Фрагмент программы с оператором цикла запишется в виде:

For i: =1 to 10 do s:=s+i;

Writeln(‘s=’, s);

В примере 1 рассматривается простой оператор цикла.

Счётный оператор цикл FOR может иметь такую структуру:

б) FOR i:= b DOWNTO a DO <оператор>;

Замена зарезервированного слова TO на DOWNTO означает, что шаг изменения переменной цикла равен (-1).

Пример 2.

Найти сумму значений переменной цикла.

Фрагмент программы с оператором цикла запишется в виде:

For i: =10 to 1 downto s:=s+i;

Writeln(‘s=’,s:8:3);

{Результат получится тот же, что и в примере 1}.

При работе с оператором FOR следует соблюдать ряд правил.

Правила оператора FOR.

  1. Нельзя войти в цикл, минуя оператор FOR.
  2. Нельзя изменять параметры цикла (a,b) внутри цикла.
  3. Параметры цикла и переменная цикла должны быть целыми.
  4. Шаг цикла может быть единица или минус единица.
  5. Естественное окончание цикла осуществляется при условии i > b.
  6. Из цикла можно выйти до естественного окончания цикла по условию.

Оператор цикла WHILE с предусловием

Структура оператора имеет вид:

WHILE <условие> DO <оператор>;

Здесь WHILE, DO – зарезервированные слова:

WHILE –пока; DO – выполнить,

<условие> – выражение логического типа;

<оператор> – произвольный оператор Турбо Паскаля.

Если выражение <условие> имеет значение TRUE, то выполняется <оператор>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> имеет значение FALSE, оператор WHILE прекращает свою работу.

Пример 3.

Переписать фрагмент примера 1, используя оператор цикла с предусловием.

Фрагмент программы с оператором цикла запишется в виде:

s:=0; i:=1;

while i<=10 do

Begin

s:=s+i;

i:=i+1;

End;

Writeln(‘s=’,s);

В примере 3 рассматривается составной оператор цикла, тело цикла заключено в операторные скобки. Оператор цикла начинается со строки while i<=10 do, которая читается «пока выполняется условие i<=10 делать …». После чего начинается словом Begin выполнение операторов внутри цикла до слова End;

2.3. Оператор цикла REPEAT…UNTIL с постусловием

Структура оператора имеет вид:

REPEAT <тело_цикла> UNTIL <условие>;

Здесь REPEAT, UNTIL – зарезервированные слова (REPEAT –повторять, UNTIL не переводится , <условие> -условие выхода из цикла);

<тело_цикла> – произвольная последовательность операторов Турбо Паскаля; <условие> – выражение логического типа.

Операторы, входящие в <тело_цикла>, выполняются хотя бы один раз, после чего вычисляется выражение <условие>: если его значение есть FALSE, операторы <тело_цикла> повторяются, в противном случае оператор REPEAT…UNTIL завершает свою работу.

Пример 4.

Выполнить задание примера 3.

Фрагмент программы с оператором цикла запишется в виде:

s:=0; i:=1;

repeat

s:=s+i;

i:=i+1;

Until i>10;

Writeln(‘s=’,s); В примере 4 цикл выполняется пока переменная i £ 10, при i>10 цикл закончится.

3. Примеры выполнения задания к практическому занятию № 5

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

Пример 5.

Написать программу примера 4 из практической работы № 2 (блок-схема 2.2 ).

В цикле вычислить значение функции z= x* y при условии, что одна из переменных - x меняется в каждом цикле, а другая переменная - у не меняется и может быть любым целым числом.

PROGRAM PR5;

Var

x, y, z, i, n :integer;

begin

{циклический алгоритм}

writeln (‘ввести x,y, количество циклов-n’);

readln (x,y,n);

{оператор цикла с параметрами}

for i:=1 to n do

begin

z:=x*y;

writeln (‘x= ’, x, ‘ y= ’, y, ‘ z= ’, z);

x:=x+1;

End; {конец оператора цикла с параметрами}

End.

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

Пример 6.

Написать программу примера 2 из практической работы № 2, в котором заданы начальные значения переменных: x=1; y=5 и условие: пока y>x выполняется y: = y – x.

Определить количество циклов и значения переменных: x; y после выхода из цикла.

Алгоритм этой задачи представлен в виде блок-схемы 2.1. и программы:

PROGRAM PR6;

Var

k, x, y: integer;

begin

{циклический алгоритм}

x:=1; y:=5; k:=0;

{оператор цикла с предусловием}

while y>x do

begin

y: = y – x;

k:=k+1;

writeln (‘k=’, k, ‘ x= ’, x, ‘ y= ’, y);

end; {конец оператора}

end.

В примере 6 используется оператор цикла с предусловием, который работает при условии y>x. Условие проверяется при входе в цикл. В теле цикла счётчик цикла задан в виде оператора присваивания k:=k+1; который выдаёт количество выполненных циклов.

Пример 7.

Этот же алгоритм рассматривается в примере 7, где используется оператор цикла с постусловием. Цикл выполняется при условии y>x, но в конце оператора проверяется условие выхода из цикла (y<=x).

PROGRAM PR7;

Var

k, x, y: integer;

begin

{циклический алгоритм}

x:=1; y:=5; k:=0;

{оператор цикла с постусловием}

repeat

y: = y – x;

k:=k+1;

writeln (‘k=’, k, ‘ x= ’, x, ‘ y= ’, y);

until y<=x; {конец оператора}

end.

Пример 8.

Написать программу. Вычислить и вывести таблицу значений функции y=cos(x). Переменная X изменяется в интервале от x1 до xk с шагом dx.

В данной программе используется оператор цикла с параметрами.

PROGRAM PR8;

Var

x,y,dx,x1,xk:real;

i, n :integer;

begin

{циклический алгоритм}

writeln (‘ввести начальное – x1, конечное – xk, шаг – dx’);

read (x1,xk,dx);

n:=trunc((xk-x1)/dx+1);

x:=x1;

{оператор цикла с параметрами}

for i:=1 to n do

begin

y:=cos(x);

Writeln (‘x= ’, x:8:5, ‘ y= ’, y:8:5);

x:=x+dx;

End; {конец оператора цикла с параметрами}

End.

Задания к практическому занятию № 5

  1. Написать программу по примеру 5 для своего циклического алгоритма, выполненного в практической работе №2.
  2. Ввести программу в компьютер, сохранить в файл.
  3. Запустить программу, исправить ошибки, ввести данные, получить результат.
  4. Представить преподавателю программу с полученным результатом на компьютере.
  5. Оформить и защитить работу преподавателю (тест по данной теме).

Задание ИДЗ №3 по теме: «Программирование. Циклы» в Приложении №1 (Задание 5).

Вопросы для самоконтроля к практическому занятию № 5. Тема «Программирование. Циклы»

1. Дан оператор на паскале: FOR k:=1 TO m DO S:=S+k;

Всего циклов будет выполнено:

1) k; 2) 1; 3) m; 4) s.

2. Дан оператор на паскале: FOR k:=1 TO m DO s:=s+k;

Выберите условие выхода из цикла:

1) k=1; 2) k=m; 3) k>m; 4) k<m.

3. Дан фрагмент на паскале, в котором цикл закончится при условии:

k:=1; s:=0;

while k<=m do

begin

s:=s+k;

k:=k+1;

end;

1) k>m; 2) k=m; 3) k<m; 4) k<=m .

4. Дан фрагмент на паскале, в котором цикл закончится при условии:

k:=1;

repeat

s:=s+k;

k:=k+1;

until k>m;

1) k>m; 2) k=m; 3) k<m; 4) k=s.

5. Дан оператор на паскале FOR k:=m TO n DO s:=s+k

Счетчиком цикла является переменная:

1) m; 2) n; 3) k; 4) s.

6. Дан фрагмент на паскале:

k:=1; s:=0;

while k<=m do

begin

s:=s+k;

k:=k+1;

end;

в котором цикл выполняется при условии:

1) k<=m; 2) k=m; 3) k<m; 4) k>m.

7. Дан оператор на паскале: FOR k:=3 TO m DO S:=S+k;

Для выполнения циклов значение m должно быть:

1) m<k; 2) m= s; 3) m>=k; 4) m<=k.

8. Дан оператор на паскале: FOR k:=3 TO m DO S:=S+k;

Значение шага изменения переменной k будет:

1) любым; 2) шаг=3; 3) шаг=1; 4) шаг= k;

9. Определите правильный ответ

Дан фрагмент на паскале:

k:=3; s:=0;

while k>=1 do

begin

s:=s+k;

k:=k-1;

end;

Writeln(‘s=’, s);

Результат выполнения цикла:

1) s=6; 2) s=5; 3) s=3; 4) s=0.

10. Дан фрагмент на паскале:

x:=5; z:=0;

repeat

z:=z+x;

x:=x - 1;

until x>3;

writeln(z);

Результат выполнения цикла:

1) z=0; 2) z=5; 3) z=9; 4) z=12.

Практическое занятие №6. Языки программирования высокого уровня

Цель занятия

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







Последнее изменение этой страницы: 2016-08-16; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 35.175.121.230 (0.017 с.)