Схема циклического алгоритма с предусловием в ворде

Обновлено: 05.07.2024

Цель работы

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

Задачи лабораторной работы

После выполнения работы студент должен знать и уметь:

  • знать назначение алгоритма и его определение;
  • знать формы представления алгоритма;
  • уметь работать с основными алгоритмическими конструкциями;
  • уметь представлять алгоритм в виде блок-схемы;
  • уметь приводить примеры алгоритмов и применять их для построения блок-схем;
  • уметь составлять и записывать алгоритм одним из способов.

Перечень обеспечивающих средств

Для обеспечения выполнения работы необходимо иметь методические указания по выполнению работы.

Общие теоретические сведения

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

Первый этап решения задачи состоит в разработке алгоритма.

Алгоритм – это точная конечная система правил, определяющая содержание и порядок действий исполнителя над некоторыми объектами (исходными и промежуточными данными) для получения после конечного числа шагов искомого результата.

  • словесным (пример в начале раздела);
  • графическим (виде специальной блок-схемы);
  • с помощью специальных языков программирования.

Блок-схема – распространенный тип схем, описывающий алгоритмы или процессы, изображая шаги в виде блоков различной формы, соединенных между собой стрелками.

  1. Линейный алгоритм – это такой алгоритм, в котором все операции выполняются последовательно одна за другой.
  2. Алгоритмы разветвленной структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие.
  3. Алгоритмы циклической структуры .

Циклом называют повторение одних и тех же действий (шагов). Последовательность действий, которые повторяются в цикле, называют телом цикла .

Циклические алгоритмы подразделяют на алгоритмы с предусловием, постусловием и алгоритмы с конечным числом повторов. В алгоритмах с предусловием сначала выполняется проверка условия окончания цикла и затем, в зависимости от результата проверки, выполняется (или не выполняется) так называемое тело цикла.

Задание 1. Определить площадь трапеции по введенным значениям оснований (a и b) и высоты (h).

В MS Office Word 2003 средства, позволяющие строить схемы алгоритмов, сосредоточены на панели инструментов Рисование (рис. 4, а), а в MS Word 2010 – на вкладке Вставка и открываются щелчком мыши на кнопке Фигуры (рис. 4, б).



Методика изображения схемы алгоритма заключается в следующем:

Запустите текстовый процессор.


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

Щелкните на кнопке Автофигуры этой панели, наведите указатель мыши на команду Блок-схема и выберите в раскрывшемся меню графических примитивов нужный элемент щелчком мыши. Назначение элемента высвечивается в контекстной подсказке.

Перейдите в рабочее поле документа, нажмите левую кнопку мыши и, не отпуская ее, нарисуйте элемент схемы алгоритма.

Щелкните правой кнопкой по нарисованной фигуре и выберите в контекстом меню команду Добавить текст, чтобы можно было вписать текст внутри элемента.

Еще раз щелкните правой кнопкой по фигуре и выберите в контекстом меню команду Формат автофигуры.

В открывшемся одноименном диалоге перейдите на вкладку Размер и установите в полях высота и ширина необходимые размеры, например, высота 1,5 см, ширина 3 см.

Помните, что значения высоты и ширины должны быть кратны 5 мм, а ширина фигуры должна быть больше высоты в 1,5-2 раза.

Перейдите на вкладку Цвета и линии и в поле толщина установите нужное значение, например, 1 пт. После этого нажмите кнопку ОК.

Щелкните указателем мыши внутри нарисованной фигуры и введите необходимый текст. Тип шрифта выбирается в раскрывающемся списке кнопки Шрифт (), а размер – в раскрывающемся списке кнопки Выбрать размер шрифта (). Выравнивание текста осуществляется кнопками , расположенными на панели инструментов Форматирование.


Для изображения связей между фигурами щелкните на кнопкеАвтофигуры панели Рисование, наведите указатель мыши на команду Соединительные линии и выберите нужный тип линии в раскрывшемся меню.

Соедините две фигуры между собой выбранной линией с помощью мыши при нажатой левой кнопке.

Для выравнивания фигур друг относительно друга их необходимо выделить (для этого надо щелкать левой кнопкой мыши по фигурам при нажатой клавише SHIFT), а затем щелкнуть на кнопке Рисование панели Рисование, навести указатель мыши на команду Выровнять/распределить и выбрать в раскрывшемся меню нужный инструмент выравнивания/распределения (рис. 5).


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

Цель работы: овладение практическими навыками разработки алгоритмов и программ с циклической структурой.

Цикл – это выполнение определенного набора команд некоторое количество раз. В языке Pascal различают три вида операторов цикла: while, repeat, for.

Если число повторений оператора (составного оператора) заранее неизвестно, а задано лишь условие его повторения (или окончания), используются операторы while, repeat. Оператор for используется, если число повторений заранее известно.

Оператор while.

Оператор while (пока) часто называют оператором цикла с предусловием за то, что проверка условия выполнения тела цикла производится в самом начале оператора.

while <условие продолжения повторений> do

Условие – булевское выражение. Тело цикла – простой или составной оператор. Составной оператор используется в тех случаях, когда тело цикла состоит из 2-х и более операторов. На рис.1 представлен алгоритм циклической структуры с предусловием.


Рис.1. Алгоритм циклической структуры с предусловием

Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен True, тело цикла выполняется и снова вычисляется выражение условия. Если результат равен False, происходят выход из цикла и пере­ход к первому после while оператору.

Оператор повтора repeat.

Оператор repeat реализует цикл с постусловием. Он аналогичен оператору while, но отличается от него тем, что условие проверяется после очередного выполнения операторов тела цикла, поэтому цикл с постусловием всегда будет выполнен хотя бы один раз.

<операторN>;

until <условие окончания цикла>;

На рис.2 представлен алгоритм циклической структуры с постусловием.


Рис.2. Алгоритм циклической структуры с постусловием

Операторы, заключенные между словами repeat и until, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикли. Именно поэтому цикл, организованный с помощью оператора repeat, в любом случае выполнится хотя бы один раз. Если результат булевского выражения равен False, то тело цикла активизируется еще раз; если результат True, происходит выход из цикла.

Оператор повтора for.

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

Оператор повтора for может быть представлен в двух форматах:

for <параметр цикла> := <S1> to <S2> do <тело цикла>;

for <параметр цикла> := <S1> downto <S2> do <тело цикла>;

где SI и S2 — выражения, определяющие соответственно начальное и конечное значения параметра цикла;

Параметр цикла может принимать значение любого скалярного типа, кроме вещественного и должен быть дискретной величиной.

for . do — заголовок цикла;

Тело цикла может быть простым или составным оператором. Оператор for обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все зна­чения параметра цикла от начального до конечного.

На рис.3 представлен алгоритм циклической структуры с параметром.


Рис.3. Алгоритм циклической структуры с параметром

При первом обращении к оператору for вначале вычисляются выражения SI, S2 и осуществляется присваивание <параметр цикла>:=S1.

После этого циклически повторяются следующие действия.

Проверяется условие <параметр цикла> <= S2.

Если условие выполнено, то оператор for продолжает работу (выполняется оператор в теле цикла), если условие <параметр цикла> <= S2 не выполнено, то оператор for завершает работу, и управление в программе передается на оператор, следующий за циклом.

Значение управляющей переменной изменяется на +1 (если to) или -1 (если downto) и далее с п. 1. Шаг изменения управляющей переменной — единица.

После завершения оператора значение параметра цикла становится неопределенным, если только выполнение оператора не было прервано оператором перехода goto.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Порядковый номер студента по списку группы соответствует номеру варианта. По заданию требуется:

Определить порядок реализации вычислений.

Составить графическую схему алгоритма.

Записать программу на языке Turbo Pascal.

Выполнить расчеты на ЭВМ.

Написать отчет по лабораторной работе.

Пример выполнения работы

Задание: Вычислить и вывести на экран значение заданной функции



x[-20; 20], h = 4.

Значение функции вычислять многократно при изменении аргумента в указанном диапазоне и с заданным шагом h. Организовать вывод значения аргумента и вычисленного значения функции в виде таблицы:

Таблица функции Y(X)

Обозначим xo=-20 ; xk=20 ; h=4.

Program lab_31;

Var x,y,xo,xk,d : real;

n, i : byte;

Writeln (‘Введите xo , xk’);

Read ( xo , xk );

Writeln (‘Таблица функции y(x) ‘);

Writeln (‘ x y(x) ’);

d : = ( xk - xo ) /h;

n : = trunc ( d ) + 1;

For i : = 1 to n do

if x < -10 then y : = 2*exp(0.01*x)

else if (x >= -10) and (x <= 10) then y : = x

else y : = 7*exp(-0.2*x) ;

Writeln ( x :6 : 3 , ’ ‘, y : 6 : 3 ) ;

x : = x + h ;

Блок-схема алгоритма решения данной задачи при использовании цикла с параметром, представлена на рис.4.

Отработка навыков создания блок-схем для реализации циклов при решении задач и овладение навыками работы с операторами FOR-NEXT и DO- LOOP. Использование этих операторов для решения различных задач. Научить исследовать задачу и найти оптимальный план решения и удобный интерфейс.

2. Темы для предварительного изучения:

Циклический алгоритм назначение и применение.

Для реализации циклического алгоритма используются операторы FOR-NEXT (с параметром) или DO – LOOP (с постусловием или предусловием).

Цикл с параметром

Цикл с параметром используется в случае, когда параметр цикла изменяется на постоянную величину, называемую шагом.







Начальное значение параметра цикла
























цикла

Приращение параметра цикла на величину шага






Рис.14. Модифицированная блок-схема алгоритма цикла с параметром.




Рис.13. Блок -схема алгоритма

цикла с параметром

FOR<параметр цикла> = <нач.значение>TO <кон.значение>[STEP шаг]

NEXT [параметр цикла]

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

Закон изменения переменной

.DO WHILE <условие>


Начальное значение переменной цикла

Начальное значение переменной цикла











Закон изменения переменной

2. DO UNTIL <условие>


Рис. 15. Блок-схема циклического алгоритма с предусловием


Цикл с постусловием

LOOP WHILE <условие>


LOOP UNTIL <условие>.

Начальное значение переменной цикла

Рис. 16. Блок-схема циклического алгоритма с постусловием









Закон изменения переменной





Постановка задачи:

Построить график функции при x[-1;2].

Математическая модель:


, аргумент изменяется по закону xi+1=xi+0.3, а=2,3 и b=-5.3

Форма должна иметь следующие объекты: две командные кнопки, два поля списков (Рис 17.)для вывода значений аргумента и функции соответственно.




Рис. 17 Интерфейс пользователя

Создадим алгоритм решения задачи в виде блок-схемы (Рис 18).

Блок-схема
























y=(ae x -sin 2 bx)/(2+x)

y=(ae x -sin 2 bx)/(2+x)


















Рис 18 Блок -схема алгоритма нахождения значений функции

Программный код:

Private Sub Command1_Click()

Dim a As Single, b As Single, x As Single, y As Single

a = Val(InputBox("введи а", "ввод"))

b = Val(InputBox("введи b", "ввод"))

y = (a * Exp(x) - Sin(b * x) ^ 2) / (2 + x)

Loop Until x > 2

Проверьте работу программного кода. Создайте кнопку перехода на вторую форму; разместите на ней PictureBox и командную кнопку «График».

Private Sub Command1_Click()

Dim a As Single, b As Single, x As Single, y As Single

a = Val(InputBox("введи а", "ввод"))

b = Val(InputBox("введи b", "ввод"))

Picture1.Line(-1,0)-(2,0),vbBlack ’ось х

Picture1.Line(0,10)-(0,-10),vbBlack ’ось у

For x = -1 to 2 step 0.3

y = (a * Exp(x) - Sin(b * x) ^ 2) / (2 + x)

Отладка программы.

Проверьте работу этого программного кода, уменьшая размер шага, получите непрерывный график функции (Рис.19).


Рис.19 Вид графика после выполнения программы


Найти сумму рядадля двух вариантов исходных данных.

Создадим форму (Рис.20) следующего вида:




Рис. 20 Текстовые поля, метки и командные кнопки

Для элементов CheckBox изменим свойство Caption на вариант 1 и вариант 2

Для элемента PictureBox создадим формулу с помощью редактора Equation 3.0 (Word) и вставим ее, используя буфер обмена(Рис.19).

После нажатия на кнопку «Пуск» должен быть выполнен соответствующий вариант расчета суммы ряда 1) при h = 1: x = 0.7: m = 10 и 2) h = 2: x = 0.4: m = 21.

Читайте также: