Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Структура «цикл с предусловием»





Структура цикла с предусловием состоит из логического элемента проверки условия Р и функционального блока S, называемого телом цикла. Она имеет вид:

 

 

 

Цикл с предусловием выполняется так: сначала проверяется условие (отсюда название - цикл с предусловием), т.е. вычисляется значение логического выражения. Если оно истинно, то выполняется тело цикла, и снова проверяется условие. Выполнение цикла завершается, когда значение логического выражения становится ложным. Для этого необходимо, чтобы в теле цикла существовала команда, которая влияла бы на условие.

На языках программирования структура реализуется так:

Алгоритмический язык Бейсик
нцпока <условие> <серия> Кц DO WHILE <выражение> <оператор> LOOP
Паскаль Си
while <выражение> do <оператор>; while (<выражение>) <оператор>;

При решении следующей задачи используется структура цикла с предусловием.

Задача.

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

Решение.


Блок-схема

 

Алгоритмический язык

алг сумма

начвещ s,x, цел k

¦ вывод "Введите число:"

¦ ввод х

¦ s:=0

¦ k:=0

¦ нцпока x<>0

¦ ¦ s:=s+x

¦ ¦ k:=k+1

¦ ¦ вывод "Введите число:"

¦ ¦ ввод х

¦ кц

¦ вывод "Сумма чисел=",s,"их количество=",k

кон

Бейсик

'Сумма

s = 0: k=0

INPUT "Введите число:"; x

DO WHILE x <> 0

s = s+ x

k=k+1

INPUT "Введите число:"; x

LOOP

PRINT "Сумма чисел="; s; "их количество=",k

END

Паскаль

program summa;

var s,x:real; k:integer;

begin

s:=0;k:=0;

write('Введите число:');

readln(x);

while x<>0 do

begin

s:=s+x;

k:=k+1;

write('Введите число:');

readln(x);

end;

writeln('Сумма чисел=',s,' их количество=', k);

end.

Си

#include<stdio.h>

void main()

{

float x,s; int k;

s = 0;

k=0;

printf("\nВведите число: ");

scanf("%e", & x );

while(x==0)

{

s = s+ x

k=k+1

printf("\nВведите число: ");

scanf("%e", & x );

}

printf("Сумма чисел= %e", s);

printf("их количество= %e",k);

}

Структура «цикл с постусловием» (до)

Структура цикла с постусловием также состоит из логического элемента проверки условия Р и функционального блока S – тела цикла.

 
 

 


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

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



На языках программирования структура реализуется так.

Бейсик Паскаль
DO <оператор> LOOP UNTIL <выражение> repeat < оператор > until < выражение > ;

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

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

do S;

while(!P);

где !Р означает отрицание условия Р.

Рассмотрим задачу, для решения которой можно использовать цикл с постусловием.

Задача. Вычислить сумму ряда с точностью 0.001.

Решение. Блок-схема

 

 
 

 

 


Бейсик

'Вычисление суммы ряда

s = 0

i = 1

an = 1

DO

s = s + an

i = i + 1

an = 1 / i^2

LOOP UNTIL an < .001

PRINT "Сумма ряда="; s

END

Паскаль

program summa;

{Вычисление суммы ряда}

var i:integer;

an,s:real;

begin

s:=0;

i:=1;

an:=1;

repeat

s:=s+an;

i:=i+1;

an:=1/(i*i)

until an<0.001;

writeln('Сумма ряда=',s:6:3);

end.









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.