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

Презентация:



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

Шашкина Лилия Наиловна учитель информатики МОБУ СОШ 2 городского округа город Агидель РБ.
Цель : Показать сходство и различие вложенных циклов в языках программирования QBasic и Turbo Pascal 7.0.
Вложенные циклы Старинная задача. Сколько можно купить быков, коров и телят, при условии, что плата за быка 10 рублей, за корову – 5 рублей, за теленка.
Тема: Цикл с параметром (цикл «Для») На естественном языке Для i от А до В повторять Тело цикла i,a,b- параметры цикла тело цикла – это команды, которые.
Организация программ циклической структуры. Виды циклов: Цикл с предусловием (while) Цикл с постусловием (repeat) Цикл с параметром (for)
Организация повторений в Паскале. Найди ошибки: Program new Uses crt; Var a, b, c integer Begin clrscr Readln(a,b); C:=a*a+b*b Wreteln(c); End.
Циклы в языке программирования Pascal
Алгоритмическая структура цикл Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы.
Циклические конструкции 1. Цикл с предусловием предусловием 2. Цикл с постусловием постусловием 3. Цикл с параметром параметром 4. Вложенные циклы Вложенные.
Оператор цикла с предусловием. Оператор цикла с предусловием используется в тех случаях, когда заранее неизвестно число повторений цикла. Форма записи.
Цель : Показать сходство и различие условного оператора в языках программирования QBasic и Turbo Pascal 7.0.
АЛГОРИТМИЧЕСКАЯ СТРУКТУРА ЦИКЛ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА ЦИКЛ В TURBO PASCAL Условие Оператор ДаНет Учитель информатики: Коваленко Татьяна Викторовна
Учитель информатики "СОШ 6" г. Кирова Захарова Е.В. ЦИКЛЫ В ПАСКАЛЕ.
Вложенные циклы. Если телом цикла является циклическая структура, то такие циклы называются вложенными.
Организация повторений в Паскале. i,1,n Действие 1 Действие 2 i,1,n Действие 1 Действие 2 FOR i:=1 TO N DO BEGIN действие 1; действие 2; END; FOR i:=1.
Операторы цикла © М.Е.Макарова
ЦИКЛ «ДО» i:=1,n действия … FOR i:=1 TO n DO Begin Действия End; …
Программирование на Pascal. Темы Повторение. Составные логические условия Повторение. Составные логические условия Повторение. Составные логические условия.
На этом уроке вы узнаете Что такое вложенные циклы. Как они применяются в программах. Как можно сократить количество повторений цикла.
Транксрипт:

Цель урока: Показать сходство и различие операторов цикла с предусловием и постусловием в языках программирования QBasic и Turbo Pascal 7.0. План урока: 1. Проверка домашнего задания. 2. Вложенные циклы. 3. Решение задач. 4. Домашнее задание.

Проверка задания 1.1 Дана последовательность операторов: а =1 : b=1а:=1; b:=1; while a+b

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

Например. Даны натуральные числа п и k. Составить программу вычисления выражения 1k+2k+...+nk. Решение Для вычисления указанной суммы целесообразно организовать цикл с параметром i, в котором, во- первых, вычислялось бы очередное значение y=ik и, во-вторых, осуществлялось бы накопление суммы прибавлением полученного слагаемого к сумме всех предшествующих (s= s+y). Вложенные циклы

PRIM 1Program Prim1; uses crt; DEFINT I, K, M-N,S,YVar n, k, y, i, s, m: Integer; Begin CLS clrscr; INPUT N=,K=; N,K:S=0Writeln ('n= k='); ReadLn(n, k); s:=0; FOR I=1 TO N For i:=1 To n Do Begin Y=1 y:=1; For M=1 To K For m:=1 To k Do Begin Нахождение степени k числа i Y= Y*I y:= y*i; Next End; Нахождение промежуточной суммы. S=S + Y s:=s+у; Next End; PRINT Отвem=;S WriteLn(' Отвem: ',s); Readln; END End. QB TP

Модифицировать предыдущую программу так, чтобы она вычисляла сумму nn. Решение Данная задача отличается от предыдущей тем, что показатель степени очередного слагаемого совпадает со значением ее основания, следовательно, параметры внутреннего цикла (цикла, в котором вычисляется очередное слагаемое) совпадают с параметрами внешнего цикла. For m=1 To i For m:=1 To i Do

Пример. Старинная задача. Сколько можно купить быков, коров и телят, если плата за быка 10 рублей, за корову 5 рублей, за теленка полтинник (0,5 рубля), если на 100 рублей надо купить 100 голов скота. Решение Обозначим через b количество быков; k количество коров; t количество телят. После этого можно записать два уравнения: 10b+5k+0.5t=100 и b+k+t=100. Преобразуем их: 20b+10k+t=200 и b+k+t=100. На 100 рублей можно купить: не более 10 быков, т.е. 0

PRIM3Program prim3 uses crt; DEFINT b,k,tVar b, k, t: Integer; Begin CLS clrscr; For b:=0 To 10 For b:=0 To 10 Do For k:=0 To 20 For k:=0 To 20 Do For t:=0 To 200 For t:=0 To 200 Do If (20*b+10*k+t=200) And (b+k+t=100) Then PRINTБыков ;b;коров ;k; телят ;t WriteLn('Быков ',b,'коров ',k,' телят ',t); NEXT t,k,b Readln; END End. QB TP

Написать программу, которая находит и выводит на печать все четырехзначные abcd, числа a, b, c, d различные цифры, для которых выполняется: abcd=a+b+c+d. Решение Задачу можно решать несколькими способами. Одним из возможных способов является перебор всех четырехзначных чисел и проверка для каждого из них выполнения условий. Попробуем сократить перебор, для этого преобразуем второе условие: 10a+b-(10c+d) = a + b + c + d; 9(a-c)=2(c+d); (a-c)/(c+d)=2/9 Проанализировав первое условие, получаем, что а=с+2, d=9-c, следовательно 0

Prim 4Program Prim4; uses crt; DEFINT A-D Var a, b, c, d: Integer; Begin CLS clrscr; For c = 0 To 7 For c:=0 To 7 Do Begin A = c+2: d = 9-c a:=c+2; d:=9-c; For b = 0 To 9 For b:=0 To 9 Do Begin If bc And ba And bd Then Print a, b, c, d If (bc) And (ba) And (bd) Then Write (a, b, c, d'); Print Writeln NEXT End; Readln; End End. QB TP

Если мы сложим все цифры какого-либо числа, затем все цифры найденной суммы и будем повторять много раз, мы, наконец, получим однозначное число (цифру), называемое цифровым корнем данного числа. Например, цифровой корень числа равен 2 ( =29; 2+9=11; 1+1=2). Составим программу для нахождения цифрового корня натурального числа.

Решение Сколько переменных потребуется для решения задачи, какого типа будут эти переменные? Всегда ли необходимо вычислять сумму цифр числа (а если введенное число является однозначным)? Вычислим сумму цифр числа: для этого будем выделять цифры числа и увеличивать текущую сумму. Какую конструкцию необходимо использовать для этого? В результате выполнения цикла мы получили число. Является ли оно однозначным (корнем данного числа)? Какую конструкцию необходимо использовать для нахождения корня числа? Какие действия должна выполнять программа внутри этой конструкции? Программа, вычисляющая корень данного числа, может выглядеть следующим образом:

PRIM 5 Program prim5; uses crt; DEFLNG N,K,S Var n,k,s: Longint; Begin CLS clrscr; INPUT число N=;N:S=NWriteln(' число='); Readln(n); s:=n; Пока сумма является двузначным числом. While S>9 While s>9 Do Begin K=S: S=0 k:=s; s:=0; Вычисляем сумму цифр числа. DO Repeat S=S+K Mod 10: K = K \ 10S:=s+k Mod 10; k:=k Div 10; LOOP Until K=0 Until k=0; Wend End; PRINT цифр. корень числа Writeln(' цифр. корень числа ',n, равен ;S равен ',s); Readln; End End. QB TP

Задание Что будет выведено на экране монитора после выполнения следующего фрагмента программы: A=28 а:=28; FOR I = 1 ТO A\2 For i:=1 То a div 2 Do Begin IF A MOD I=0 THEN PRINT I if a mod i =0 then Writeln(i); NEXTEnd; Решение какой задачи выражает этот фрагмент программы?