Скачать презентацию Циклические алгоритмы Повторение — это многократное выполнение одного Скачать презентацию Циклические алгоритмы Повторение — это многократное выполнение одного

Циклические типовые алгоритмы.ppt

  • Количество слайдов: 24

Циклические алгоритмы Повторение - это многократное выполнение одного или нескольких предписаний алгоритма. Цикл - Циклические алгоритмы Повторение - это многократное выполнение одного или нескольких предписаний алгоритма. Цикл - это оператор языка программирования, с помощью которого это повторение будет выполнять компьютер - исполнитель алгоритмов. В языке Visual Basic циклы - многострочные операторы двух видов: • циклы с параметром (счетчиком) • циклы с условием

Цикл с параметром For Имя=Знач1 To Знач2 [Step Знач3] Серия повторяющихся операторов [Exit For] Цикл с параметром For Имя=Знач1 To Знач2 [Step Знач3] Серия повторяющихся операторов [Exit For] Next [Имя] где Имя - это имя переменной, которую называют счетчиком; Знач1 - начальное значение счетчика; Знач2 -. конечное значение счетчика; Знач3 - величина, на которую изменяется значение счетчика при одном повторении (шаг цикла); Серия повторяющихся операторов - тело цикла.

Особенности алгоритмов и программ с накоплением Сумма вычисляется всегда по такой формуле: Сумма = Особенности алгоритмов и программ с накоплением Сумма вычисляется всегда по такой формуле: Сумма = сумма + очередное слагаемое Произведение вычисляется всегда по такой формуле: Произведение = Произведение* очередной сомножитель Количество вычисляется по формуле: Количество = Количество+1 Примечание: до вычисления этих величин в цикле они должны быть подготовлены таким образом: начальному значению суммы и количества надо присвоить ноль, а произведению присвоить единицу.

Особенности поиска экстремальных значений 1. В начале за текущий минимум (максимум) принимается значение функции Особенности поиска экстремальных значений 1. В начале за текущий минимум (максимум) принимается значение функции при первом значении аргумента, например, min=y(x 1) или max= y(x 1). 2. Затем в цикле, начиная со второго значения функции, производится его сравнение со значением переменной min (max) и если это число меньше min (больше max), то на место min (max) записывается это число и оно становится текущим минимумом (максимумом).

Задача 1 Подсчитать сумму значений функции Z=a*Ln(x)+x^3, ввести a с помощью окна ввода, х Задача 1 Подсчитать сумму значений функции Z=a*Ln(x)+x^3, ввести a с помощью окна ввода, х изменяется от 1 до 10 с шагом 0, 5. Сумму вывести с помощью окна вывода, а таблицу значений функции занести в массив Result().

Блок – схема задачи 1 Начало Ввод a i=1; Sum=0 X=1, 10, 0. 5 Блок – схема задачи 1 Начало Ввод a i=1; Sum=0 X=1, 10, 0. 5 Z = a * ln(x)+x 3 Sum = Sum+Z Result(1, i)=x Result(2, i)=Z i= i +1 Вывод Sum Конец

Текст процедуры задачи 1 Sub Задача 1() Dim Sum As Single, a As Single, Текст процедуры задачи 1 Sub Задача 1() Dim Sum As Single, a As Single, Z As Single Dim x As Single, i As Integer, n As Integer Dim Result(1 to 2, 1 to 21) as Single a = Val(Input. Box("Введите значение a=")) i=1 Sum = 0 For x = 1 To 10 Step 0. 5 Z = a * Log(x) + x ^ 3 S=S+Z Result (1, i) = x Result (2, i) = Z i=i+1 Next x Msg. Box " Cумма значений функции Z =" + Str(S) End Sub

Задача 2 Составить проект программы вычисления минимального значения функции для x=-1. 2, -1, 0. Задача 2 Составить проект программы вычисления минимального значения функции для x=-1. 2, -1, 0. 231, 3, 4. 33, 5. 22.

Блок – схема задачи 2 Начало Повторять по x= -1. 2 i от 1 Блок – схема задачи 2 Начало Повторять по x= -1. 2 i от 1 до 6 Ввод x Нет x>3 Да Да -1 x 3 y= y

Текст процедуры задачи 2 Sub задача 2() Dim x As Single, y As Single, Текст процедуры задачи 2 Sub задача 2() Dim x As Single, y As Single, min As Single, i As Integer For i = 1 To 6 x = Val(Input. Box("Введите значение x ")) If x > 3 Then y = Sin(x) Else. If x >= -1 And x <= 3 Then y = Sqr(x ^ 4 + 1) + 2 Else y = (x + 12) / (x ^ 2 + 2) End If If (y < min) OR (i=1) Then min = y End If Next i Msg. Box "Минимальное значение функции y =" + Str(min) End Sub

Вариант 1. Задана функция y=f(x) на отрезке [a; b]. Разбив отрезок на n частей Вариант 1. Задана функция y=f(x) на отрезке [a; b]. Разбив отрезок на n частей занести в массив таблицу ее значений. y = x^3 + 2*x^2 – 3*x -12, пользователь вводит границы интервала a, b и число строк в таблице n) Вариант 2 На отрезке [a; b] задана функция y = f(x). Найти ее наибольшее и наименьшее значения на этом отрезке. y(x) = x^3/3 + x^2 - 5*x + 3, пользователь вводит границы интервала a, b

Циклы с предусловием Цикл с предусловием, где Л. Выр - условие продолжения цикла завершения Циклы с предусловием Цикл с предусловием, где Л. Выр - условие продолжения цикла завершения цикла Do While Л. Выр Операторы [Exit Do] Loop Do Until Л. Выр Операторы [Exit Do] Loop

Циклы с постусловием Цикл с постусловием, где Л. Выр - условие продолжения цикла Цикл Циклы с постусловием Цикл с постусловием, где Л. Выр - условие продолжения цикла Цикл с постусловием, где Л. Выр - условие завершения цикла Do Операторы [Exit Do] Loop While Л. Выр. Do Операторы [Exit Do] Loop Until Л. Выр

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

Блок – схема задачи 3 Начало S=0 Нет X 0 Да Ввод X Да Блок – схема задачи 3 Начало S=0 Нет X 0 Да Ввод X Да X 0 Нет S=S+X Вывод S Конец Блок схема задачи 3 с использованием цикла с предусловием

Текст процедуры задачи 3 (с предусловием с ключевым словом While) Sub задача 3() Dim Текст процедуры задачи 3 (с предусловием с ключевым словом While) Sub задача 3() Dim X As Single, S As Single S=0 X = Val(Input. Box(" Введите число")) Do While X >= 0 S=S+X X = Val(Input. Box(" Введите число")) Loop Msg. Box ("Сумма = " + CStr(S)) End Sub

Текст процедуры задачи 3 (с предусловием с ключевым словом Until ) Sub задача 3() Текст процедуры задачи 3 (с предусловием с ключевым словом Until ) Sub задача 3() Dim X As Single, S As Single S=0 X = Val(Input. Box(" Введите число")) Do Until X < 0 S=S+X X = Val(Input. Box(" Введите число")) Loop Msg. Box ("Сумма = " + CStr(S)) End Sub

Текст процедуры задачи 3 (с постусловием с ключевым словом While ) Sub задача 3() Текст процедуры задачи 3 (с постусловием с ключевым словом While ) Sub задача 3() Dim X As Single, S As Single S=0 Do X = Val(Input. Box(" Введите число")) If X >= 0 Then S=S+X End If Loop While X >= 0 Msg. Box "Сумма = " + Str(S) End Sub

Текст процедуры задачи 3 (с постусловием с ключевым словом Until ) Sub задача 3() Текст процедуры задачи 3 (с постусловием с ключевым словом Until ) Sub задача 3() Dim X As Single, S As Single S=0 Do X = Val(Input. Box(" Введите число")) If X >= 0 Then S=S+X End If Loop Until X < 0 Msg. Box ("Сумма = " + CStr(S)) End Sub

Задание 2 По записанному на алгоритмическом языке алгоритму подсчитать сумму квадратов последовательности натуральных чисел. Задание 2 По записанному на алгоритмическом языке алгоритму подсчитать сумму квадратов последовательности натуральных чисел. Начало алг S: =0 Нц для n от 2 до 4 S: =S+n*n кц кон алг a. S=15 b. S=18 c. S=36 d. S=29

Задание 3 Результатом выполнения алгоритма: Ввод N P=1 Повторять для K=1 до N P=P*K Задание 3 Результатом выполнения алгоритма: Ввод N P=1 Повторять для K=1 до N P=P*K Конец повтора Вывод P при N=5 будет: a. 5; b. 115; c. 120; d. 20; e. 130;

Задание 4 Данная программа Нц для I=1 до N Вывод A A=A+D Кц выводит Задание 4 Данная программа Нц для I=1 до N Вывод A A=A+D Кц выводит … a) b) c) d) A чисел, начиная с N, с шагом D Сумму D чисел, начиная с А, с шагом N N чисел, начиная с А, с шагом D Сумму A чисел, начиная с N, с шагом D

Задание 5 После выполнения фрагмента алгоритма K=0 Нц для i от 1 до 5 Задание 5 После выполнения фрагмента алгоритма K=0 Нц для i от 1 до 5 Нц для j от 1 до i k=k+1 кц кц Значение переменной k будет равно … a) b) c) d) 5 15 0 5

Вычислите число ПИ с точностью 0. 00001. Вычислите число ПИ с точностью 0. 00001.