Составление программ циклических вычислительных процессов

Автор работы: Пользователь скрыл имя, 27 Ноября 2016 в 11:43, контрольная работа

Описание работы

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

Файлы: 1 файл

Тема 3 Программирование циклов.ppt

— 2.44 Мб (Скачать файл)

Программирование циклов.

Тема: составление программ циклических вычислительных процессов.

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

 

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

 

1. Ознакомиться с задачей.

2. Составить блок- схему алгоритма решения задачи.

3. Написать программу на языке Паскаль, используя операторы цикла.

4. Ввести программу в память компьютера, выполнить отладку программы.

5. Выполнить счёт по программе. Получить результаты. Показать результаты выполнения программы преподавателю.

7. Оформить и сдать отчёт.

Циклом называется многократно выполняемая последовательность действий (операторов). Цикл - типичная структура, характерная для программ, реализуемых на ЭВМ

 

Начальные присваивания

 

I = Iнач

 

Тело цикла

 

I = I + H

 

 I  Iкон

 

да

 

нет

Простейшим примером циклического процесса

является задача табулирования функции у = f(x) переменной х, изменяющейся в интервале от хо до xn с постоянным шагом h. Пусть у = cos х, тогда в простейшем случае цикл можно организовать с помощью операторов If и Goto:

График функции у = cosх

 

 
Цикл с операторами If и Goto: 

Найти функцию y=cos x при x0=0, h=/10, xn=

 

начало

 

x > 

 

x = x + /10

 

конец

 

x=0

 

нет

 

да

 

 = 3,14

 

y = cos x

 

x, y

Программа на языке Паскаль

 

Program tab;

Var

x,x0, xn, h, y: real;

Label

25;

Begin

Readln (x0, xn, h);

х := х0;

25: у := cos(x);

Writeln( x, у);

х := х + h;

lf x<=xn then Goto 25;

end.

Однако в языке Pascal существуют специальные операторы цикла, которые обеспечивают более компактную и наглядную запись программы:

 

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

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

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

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

 

i:=iнч,i кон.,.h

 

Тело цикла

 

да

 

нет

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

 

Оператор цикла с параметром позволяет организовать цикл с заданным числом повторений.  Число повторений в этом случае подсчитывается с помощью специальной переменной {параметра цикла}, для которой задается начальное и конечное значения и шаг ее изменения.

 

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

 

for <параметр цикла> := <выражение 1>

{to или down to} <выражение 2> do <оператор> .

При использовании в цикле служебного слова to значение параметра цикла с каждым шагом увеличивается на 1, при использовании downto - уменьшается на 1. Цикл начинается, когда параметр цикла равен выражению 1, и заканчивается, когда параметр цикла равен выражению 2.

Пример: используется оператор for... do:

 

 

 

 

Program tab;

Var

x, x0, xn, h, y: real;  i , n : integer;

begin

readln (x0, xn, h);

n := trunc ((xn - xo) / h)+1;

x := х0;

for i := 1 to n do

begin

{операторные скобки begin - end применяются, когда внутри цикла необходимо использовать более одного оператора}

у := cos (x);

Writeln (х, у);

х := х + h;

end

end.

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

 

  • параметр цикла, его начальное и конечное значения должны быть одинакового типа, но не вещественного;
  • нельзя менять внутри цикла значения параметра, выражения 1 и выражения 2;
  • в цикл нельзя входить через оператор Goto;
  • цикл не выполняется вообще, если начальное значение больше конечного значения для to (для downto - наоборот);
  • после служебного слова do может стоять только один оператор;
  • если необходимо выполнить несколько операторов, то их заключают в операторные скобки begin - end;
  • из составного оператора, входящего в оператор цикла, можно выйти до окончания цикла с помощью оператора Goto.

Найти сумму 10 первых натуральных чисел

 

начало

 

I > 10

 

S=0

 

I = I + 1

 

S = S + I

 

S

 

конец

 

да

 

нет

 

I=0

Сумма первых десяти натуральных чисел

 

Program sum;

Var

I, s: integer;

Begin

s:=0;

for i:=1 to 10 do

s:=s + i;

Writeln (‘s=‘,s:5)

End.

 

Вывести чётные числа в порядке убывания от 10 до 0

 

начало

 

I  0

 

I = I - 2

 

I = 10

 

конец

 

I

 

нет

 

да

Программа

 

Program htn;

var

I, n: integer;

begin

i:=10;

for n:=1 to 6 do

     begin

write (i:2);

i:=i-2;

    end

end.

 

Составить таблицу умножения числа 11

 

начало

 

N =1

 

N ≤ 10

 

X = 11N

 

X,N

 

конец

 

да

 

нет

 

N = N + 1

 

Программа

 

Program pr11;

Const n=11;

Var

i, p: integer;

Begin

for i:=1 to 10 do

begin

    p:=i*n;

    writeln (i, ’*’, n,  ‘=‘,  p);

end

End.

 

 

 

,

Начальные присваивания

 

Тело цикла

 

нет

 

да

 

Начальные присваивания

 

Тело цикла

 

Нет

 

 

да

 

условие

 

условие

 

Цикл с постусловием

 

 

(условные циклические алгоритмы)

 

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

Особенности условных циклических алгоритмов

 

  • В цикле с предусловием условие проверяется до тела цикла, в цикле с постусловием – после тела цикла;

 

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

 

  • В цикле с предусловием проверяется условие продолжения цикла, в цикле с постусловием – условие выхода из цикла.

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

 

while…do (пока…делать)

While условие do оператор

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

While условие do

begin

  оператор 1;

оператор 2;

  …

оператор n;

end.

Оператор while…do реализует цикл с предусловием.

 

 

 

 

Пример цикла while…do

 

  • Найти наибольший общий делитель (НОД) двух натуральных чисел A, B.
  • Алгоритм Евклида реализует эту задачу: будем уменьшать каждый раз большее из двух чисел на величину меньшего до тех пор, пока оба значения не станут равными. Например:

 

 

Исходные данные

 

1 шаг

 

2 шаг

 

3 шаг

 

НОД (a, b)=5

 

A=25

 

A=10

 

A=10

 

A=5

 

B=15

 

B=15

 

B=5

 

B=5

Программа нахождения НОД (a, b)

 

Program evklid;

Var

a, b: word;

Begin

Writeln (‘a=‘); readln (a);

Writeln (‘b=‘); readln (b);

While a<>b do

IF A>B THEN

A:=A-B

ELSE

B:=B-A;

WRITELN (‘НОД=‘, A:2);

END.

 

{a, b: word – описание целочисленных переменных}

 

Оператор цикла с постусловием repeat…until

 

Repeat

   оператор 1;

   оператор 2;

  …

   оператор n;

Until условие;

 

В цикле Repeat действует алгоритм: выполнять тело цикла, пока не станет истинным условие, т. е. пока условие ложно, выполняется цикл.

 

 

Программа нахождения НОД (a, b) 
Оператор цикла repeat…until 

 

Program evklid;

Var

a, b: word;

Begin

Writeln (‘a=‘); readln (a);

Writeln (‘b=‘); readln (b);

repeat

IF A>B THEN

A:=A-B

ELSE

B:=B-A;

Until a=b; {закончить работу при условии, что a=b}

WRITELN (‘НОД=‘, A:2);

END.

 

Контрольные вопросы

 

  • Какая форма организации действий называется циклом?
  • Какие циклы различают?
  • Какие составные части различают в циклическом алгоритме?
  • Что такое тело цикла?
  • Что такое параметр цикла?
  • Как задается формат цикла с параметром?
  • В каких случаях применяют служебное слово toв каких случаях - downt ?
  • Какая формула позволяет определить количество повторений тела цикла?

Литература

 

  • Учебное пособие по информатике для студентов 1 курса под ред. Чекановой Н.Н. с. 87 - 97

Информация о работе Составление программ циклических вычислительных процессов