Без темы
<<  Занятие 5 Занятие 6  >>
Занятие 6
Занятие 6
Проверка задания
Проверка задания
Цикл с предусловием
Цикл с предусловием
Дано натуральное число n. Посчитать количество цифр в числе
Дано натуральное число n. Посчитать количество цифр в числе
QB
QB
Оператор цикла с постусловием DO-LOOP Repeat (повторять) Until (до тех
Оператор цикла с постусловием DO-LOOP Repeat (повторять) Until (до тех
Для программной реализации в Turbo Pascal 7.0 циклических процессов с
Для программной реализации в Turbo Pascal 7.0 циклических процессов с
Отличие этого оператора от оператора цикла с предусловием: проверка
Отличие этого оператора от оператора цикла с предусловием: проверка
При описании циклов с постусловием необходимо принимать во внимание
При описании циклов с постусловием необходимо принимать во внимание
Составить программу планирования закупки товара в магазине на сумму,
Составить программу планирования закупки товара в магазине на сумму,
'Prim9; DEFINT C, K, P, S CLS INPUT "пред сумма = "; P S = 0 DO INPUT
'Prim9; DEFINT C, K, P, S CLS INPUT "пред сумма = "; P S = 0 DO INPUT
Самостоятельно
Самостоятельно
Алгоритм Евклида — это алгоритм нахождения наибольшего общего делителя
Алгоритм Евклида — это алгоритм нахождения наибольшего общего делителя
X
X
‘prim3 Program prim3; uses crt; DEFINT X,Y Var х, у: Integer; Begin
‘prim3 Program prim3; uses crt; DEFINT X,Y Var х, у: Integer; Begin
Задание
Задание

Презентация: «Занятие 6». Автор: Чернов А.Ф.. Файл: «Занятие 6.ppt». Размер zip-архива: 138 КБ.

Занятие 6

содержание презентации «Занятие 6.ppt»
СлайдТекст
1 Занятие 6

Занятие 6

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

Цель : Показать сходство и различие вложенных циклов в языках программирования QBasic и Turbo Pascal 7.0.

2 Проверка задания

Проверка задания

1. Определить значение переменной S после выполнения следующих операторов: s=0:n=5 For i=2 То n: s=s+100 \ i :next s:=0; n:=5 For i:=2 То n Do s:=s+100 Div i Ответ:S=128 2. А) правильно Б) неправильно, так как начальное значение меньше конечного. Вопросы. Как записывается оператор цикла с параметром? Как он работает? Как записывается полный условный оператор? Как он работает? Как записывается неполный условный оператор? Как он работает?

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

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

While … Wend While ... Do

Цикл с предусловием используется для программирования процессов, в которых число повторений оператора цикла не известно, а задается некоторое условие его окончания. Выполнение оператора цикла с предусловием начинается с проверки условия, записанного после слова while. Если оно соблюдается, то выполняется <тело цикла>, а затем вновь проверяется условие и т.д. Как только на очередном шаге окажется, что условие не соблюдается, то выполнение <тела цикла> прекратится.

4 Дано натуральное число n. Посчитать количество цифр в числе

Дано натуральное число n. Посчитать количество цифр в числе

Подсчет количества цифр начнем с последней цифры числа. Увеличим счетчик цифр на единицу. Число уменьшим в 10 раз (тем самым мы избавляемся от последней цифры числа). Далее с получившимся числом проделаем ту же последовательность действий и т.д., пока число не станет равным нулю. Примечание. В теле цикла обязательно должен быть оператор, влияющий на соблюдение условия, в противном случае произойдет зацикливание.

5 QB

QB

TP

‘PRIM1 DEFLNG M – N DEFINT k CLS Вводим целое число. INPUT”N=”; N Запоминаем его и счетчику цифр M=N: K=0 Пока m<>0 делать цикл. WHILE M<>0 "уменьшаем" число на последнюю K=K+1: M=M \ 10 WEND Вывод количества цифр PRINT “ В числе “;N;” – “;K ;” цифр” END

Program prim1; uses crt; Var m, n: Longint; k: Integer; {счетчик цифр} Begin clrscr; Writeln(' Введите N='); Readln(n); присваиваем начальное значение. m: = n; k:=0; While m<>0 Do Begin цифру, т.е. в 10 раз. k:=k+1; m:= m Div 10; { Inc(k) } End; Writeln('В числе ',n,' - ',k,' цифр!'); Readln; End.

6 Оператор цикла с постусловием DO-LOOP Repeat (повторять) Until (до тех

Оператор цикла с постусловием DO-LOOP Repeat (повторять) Until (до тех

пор, пока)

Наибольшими в QBasic возможностями обладает следующая конструкция циклов типа DO-LOOP. DO и LOOP - верхная и нижняя границами цикла, позволяют тестировать условие завершения цикла в верху цикла, в низу цикла, в обоих местах или нигде. Если цикл должен повториться по TRUE, то используйте управляющее слово WHILE. Если цикл должен повториться по FALSE, то используйте управляющее слово UNTIL.

7 Для программной реализации в Turbo Pascal 7.0 циклических процессов с

Для программной реализации в Turbo Pascal 7.0 циклических процессов с

неизвестным числом повторений существует еще один оператор — оператор цикла с постусловием, который имеет следующий вид: Repeat <оператор 1>; <оператор 2>; <оператор n>; Until <условие>; где Repeat (повторять), Until (до тех пор, пока …)

8 Отличие этого оператора от оператора цикла с предусловием: проверка

Отличие этого оператора от оператора цикла с предусловием: проверка

условия производится после очередного выполнения тела цикла. Это обеспечивает его выполнение хотя бы один раз. Данный оператор цикла предполагает наличие нескольких операторов в теле цикла, поэтому служебные слова Begin и End не нужны. Последовательность операторов, входящих в тело цикла выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом Until. Если условие не соблюдается, цикл завершается. В противном случае — тело цикла повторяется еще раз, после чего снова проверяется соблюдение условия.

9 При описании циклов с постусловием необходимо принимать во внимание

При описании циклов с постусловием необходимо принимать во внимание

следующее: - перед первым выполнением цикла условие его окончания (или продолжения) должно быть определено; - тело цикла должно содержать хотя бы один оператор, влияющий на условие окончания (продолжения), иначе цикл будет бесконечным; - условие окончания цикла должно быть в результате выполнено. - Для досрочного выхода из цикла используют в QBasic операторы EXIT DO (LOOP), в Turbo Pascal 7.0 функции EXIT, BREAK.

10 Составить программу планирования закупки товара в магазине на сумму,

Составить программу планирования закупки товара в магазине на сумму,

не превышающую заданную величину.

Решение х, k — соответствующие цена и количество товара, р — заданная предельная сумма, s — общая стоимость покупки. Начальное значение общей стоимости покупки (s) равно нулю. Значение предельной суммы считывается с клавиатуры. Необходимо повторять запрос цены и количества выбранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока она не превысит предельную сумму р. В этом случае на экран нужно вывести сообщение о превышении:

11 'Prim9; DEFINT C, K, P, S CLS INPUT "пред сумма = "; P S = 0 DO INPUT

'Prim9; DEFINT C, K, P, S CLS INPUT "пред сумма = "; P S = 0 DO INPUT

"цена тов и его кол-во = "; C, K S = S + C * K PRINT "стоимость покупки ="; S LOOP UNTIL S > P PRINT "суммарная стоим. Покупки > предел. Суммы " END

Program prim9; uses crt; var c,k,p,s:integer; begin clrscr; write('пред сумма = ');readln(p); s:=0; repeat writeln('цена тов и его кол-во ='); readln(c,k); s:=s+c*k; writeln('стоимость покупки =',s); until s>p; writeln('суммарная стоим. Покупки > предел. Суммы '); readln; end.

QB

TP

12 Самостоятельно

Самостоятельно

Осуществите досрочный выход из цикла при условии, что Вы приобрели вещи на сумму Р/2. If S>p/2 then exit do if (s>p/2) then break;

13 Алгоритм Евклида — это алгоритм нахождения наибольшего общего делителя

Алгоритм Евклида — это алгоритм нахождения наибольшего общего делителя

(НОД) двух целых неотрицательных чисел. Алгоритм Евклида нахождения НОД основан на следующих свойствах этой величины. Пусть х и у одновременно не равные нулю целые неотрицательные числа и пусть x >= y, тогда если у=0, то НОД(х,у) = х, а если у<>О, то для чисел х, у и r, где r — остаток от деления х на у выполняется равенство НОД(х, у)=НОД(у, r). Например, пусть х=48, а у=18, найдем их наибольший общий делитель.

14 X

X

Y

Результаты

48

18

x>y

48 mod 8=12

18

x<y

Нод(48,18)=нод(12,18)

12

18 mod 12=6

x>y

Нод(12,18)=нод(12,6)

12 mod 6=0

6

x=0

Нод(12,6)=нод(0,6)

0

6

Нод(0,6)=6

15 ‘prim3 Program prim3; uses crt; DEFINT X,Y Var х, у: Integer; Begin

‘prim3 Program prim3; uses crt; DEFINT X,Y Var х, у: Integer; Begin

CLS clrscr; Вводим два целых неотрицательных числа. INPUT”X=,Y=”;X,Y Writeln('x:=,y:=');Readln(x,y); DO Repeat IF X>Y THEN X=X mod Y ELSE Y=Y mod X If x>y Then x:=x Mod у Else y:=y Mod х; До тех пор, пока одно из чисел не станет равно нулю. LOOP UNTIL x=0 or Y=0 Until (х=0) Or (y=0); Вывод НОД - без условного оператора, так как одно из чисел равно нулю. PRINT”NOD(A,B)=”;X+Y Writeln('НОД=',х+у)); Readln; End End.

QB

TP

16 Задание

Задание

Дана последовательность операторов: а =1 : b=1 а:=1; b:=1; while a+b<8 while a+b<8 do а=а+1: b=b+2 Begin а:=а+1; b:=b+2 End; wend: s:=a+b s:=a+b Сколько раз будет повторен цикл, и какими будут значения переменных а, b, и s после завершения этой последовательности операторов? Определить значение переменной s после выполнения следующих операторов: s=0 : i:=l s:=0; i:=l; DO Repeat s=s+5 Div i : i=l-l s:=s+5 Div i; i:=l-l; LOOP Until i<=1 Until i<=1;

«Занятие 6»
http://900igr.net/prezentacija/pedagogika/zanjatie-6-201335.html
cсылка на страницу
Урок

Педагогика

135 тем
Слайды