Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемwww.yaruga-yo.belnet.ru
1 Цель : Показать сходство и различие вложенных циклов в языках программирования 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= А) правильноБ) неправильно, так как начальное значение меньше конечного. Вопросы. Как записывается оператор цикла с параметром? Как он работает? Как записывается полный условный оператор? Как он работает? Как записывается неполный условный оператор? Как он работает?
3 Цикл с предусловием. While … Wend While... Do Цикл с предусловием используется для программирования процессов, в которых число повторений оператора цикла не известно, а задается некоторое условие его окончания. Выполнение оператора цикла с предусловием начинается с проверки условия, записанного после слова while. Если оно соблюдается, то выполняется, а затем вновь проверяется условие и т.д. Как только на очередном шаге окажется, что условие не соблюдается, то выполнение прекратится.
4 Дано натуральное число n. Посчитать количество цифр в числе Подсчет количества цифр начнем с последней цифры числа. Увеличим счетчик цифр на единицу. Число уменьшим в 10 раз (тем самым мы избавляемся от последней цифры числа). Далее с получившимся числом проделаем ту же последовательность действий и т.д., пока число не станет равным нулю. Примечание. В теле цикла обязательно должен быть оператор, влияющий на соблюдение условия, в противном случае произойдет зацикливание.
5 PRIM1 DEFLNG M – N DEFINT k CLS Вводим целое число. INPUTN=; N Запоминаем его и счетчику цифр M=N: K=0 Пока m0 делать цикл. WHILE M0 "уменьшаем" число на последнюю 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 m0 Do Begin цифру, т.е. в 10 раз. k:=k+1; m:= m Div 10; { Inc(k) } End; Writeln('В числе ',n,' - ',k,' цифр!'); Readln; End. QB TP
6 Оператор цикла с постусловием DO-LOOP Repeat (повторять) Until (до тех пор, пока) Наибольшими в QBasic возможностями обладает следующая конструкция циклов типа DO-LOOP. DO и LOOP - верхная и нижняя границами цикла, позволяют тестировать условие завершения цикла в верху цикла, в низу цикла, в обоих местах или нигде. Если цикл должен повториться по TRUE, то используйте управляющее слово WHILE. Если цикл должен повториться по FALSE, то используйте управляющее слово UNTIL.
7 Для программной реализации в Turbo Pascal 7.0 циклических процессов с неизвестным числом повторений существует еще один оператор оператор цикла с постусловием, который имеет следующий вид: Repeat ; ; Until ; где Repeat (повторять), Until (до тех пор, пока …)
8 Отличие Отличие этого оператора от оператора цикла с предусловием: проверка условия производится после очередного выполнения тела цикла. Это обеспечивает его выполнение хотя бы один раз. Данный оператор цикла предполагает наличие нескольких операторов в теле цикла, поэтому служебные слова Begin и End не нужны. Последовательность операторов, входящих в тело цикла выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом Until. Если условие не соблюдается, цикл завершается. В противном случае тело цикла повторяется еще раз, после чего снова проверяется соблюдение условия.
9 При описании циклов с постусловием необходимо принимать во внимание следующее: - перед первым выполнением цикла условие его окончания (или продолжения) должно быть определено; - тело цикла должно содержать хотя бы один оператор, влияющий на условие окончания (продолжения), иначе цикл будет бесконечным; - условие окончания цикла должно быть в результате выполнено. - Для досрочного выхода из цикла используют в QBasic операторы EXIT DO (LOOP), в Turbo Pascal 7.0 функции EXIT, BREAK.
10 Составить программу планирования закупки товара в магазине на сумму, не превышающую заданную величину. Решение х, k соответствующие цена и количество товара, р заданная предельная сумма, s общая стоимость покупки. Начальное значение общей стоимости покупки (s) равно нулю. Значение предельной суммы считывается с клавиатуры. Необходимо повторять запрос цены и количества выбранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока она не превысит предельную сумму р. В этом случае на экран нужно вывести сообщение о превышении:
P PRINT "суммарная стоим. покупки > предел. суммы " END program prim9; uses crt; var c," title="'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," class="link_thumb"> 11 '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 P PRINT "суммарная стоим. покупки > предел. суммы " END program prim9; uses crt; var c,"> 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"> P PRINT "суммарная стоим. покупки > предел. суммы " END program prim9; uses crt; var c," title="'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,">
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 XY Результаты 4818x>y 48 mod 8=1218xyНОД(12,18)=НОД(12,6) 12 mod 6=06x=0НОД(12,6)=НОД(0,6) 06 НОД(0,6)=6
15 prim3 Program prim3; uses crt; DEFINT X,YVar х, у: Integer; Begin CLSclrscr; Вводим два целых неотрицательных числа. INPUTX=,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); Вывод НОД - без условного оператора, так как одно из чисел равно нулю. PRINTNOD(A,B)=;X+Y Writeln('НОД=',х+у)); Readln; End End. QB TP
16 Задание Дана последовательность операторов: а =1 : b=1а:=1; b:=1; while a+b
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.