1717

Алгоритмизация и программирование разветвляющихся алгоритмов

Контрольная

Информатика, кибернетика и программирование

Логические выражения. Условный оператор If. Вывод тестов в ячейки рабочего листа. Логические операции. Выполнение оператора.

Русский

2013-01-06

190.76 KB

36 чел.

Алгоритмизация и программирование разветвляющихся алгоритмов

Разветвляющимся называется алгоритм, в котором некоторые действия (в программе операторы) могут выполняться один раз или не выполняется в зависимости от заданного условия.

Для реализации разветвляющегося алгоритма в языке VBA есть два оператора:

Ifусловный оператор, Select Caseоператор выбора.

Эти операторы влияют на порядок выполнения других операторов программы.

Для записи условий в операторе if используются логические выражения.

  1.  Логические выражения

Л.в. состоят из арифметических выражений, операций отношения и логических операций. Они имеют тип Boolean и могут принимать одно из двух значений: True или False.

Операции отношения (= ; <> ; < ; <= ; > ; >=) выполняют сравнение двух операндов и определяют истинно выражение (его значение true) или ложно (его значение false).

a:=5; и b:=7; a<=b – true, a a=b – false

Логические операции (not; and; or) используются для образования сложных логических выражений. Операнды логических операций должны иметь логический (булевский) тип. Приоритет логических операций ниже, чем операций отношения.

Not – логическое отрицание.

Синтаксис:

not (<логическое выражение>)

Результат операции истина, если значение операнда ложь и наоборот.

Пример: not (a<b) – false

And логическое И.

Синтаксис:

(<логическое выражение 1>) and (<логическое выражение 2>)

Результат операции истина, если оба операнда имеют значение истина, и ложь в противном случае.

Пример: (a=7) and (b>3) – false 

Or – логическое ИЛИ.

Синтаксис:

<логическое выражение 1> or <логическое выражение 2>

Результат операции истина, если хотя бы один из операндов имеет значение истина, и ложь, если оба операнда имеют значение ложь.

Пример: a=7 or b>3 – true

Примеры: Записать логическое выражения, которое имеет значение true, если:

  1.  значение переменной x принадлежит полуинтервалу (a;b]

a              b

 x>a and x<=b

  1.  значение переменной x находится вне полуинтервала [a;b)

a              b

 x<=a or x>b

Точка с координатами (х; y) находится внутри квадрата со стороной 1 

x;y

1

1

x>=0 and x<=1 and y>=0 and y<=1

  1.  Даны два числа a и b,

  1.  они оба положительные 

 a>0 and b>0

  1.  хотя бы одно из них положительное 

 a>0 or b>0

  1.  нет ни одного положительного 

 a<=0 and b<=0

2. Условный оператор If

Имеет две формы: полную и сокращённую.

условие

Блок операторов 1

Блок операторов 2

Нет

Да

условие

Блок операторов 1

Да

Нет

Для записи условий используются логические выражения.

Выполнение оператора:

  1.  Если значение логического выражения, записанного в условии true, то выполняется блок операторов 1, если false – блок операторов 2.
  2.  Если значение логического выражения true, то выполняется блок операторов 1, если false –оператор никаких действий не выполняет и происходит переход к следующему за If оператору.

При записи алгоритмов на языке VBA для каждой формы можно использовать однострочную и блочную структуры

Если каждый из блоков состоит только из одного оператора, то удобнее использовать при записи оператора if однострочную структуру.

Для полной формы:

If <условие> Then < оператор1> Else < оператор2>

Для сокращенной формы:

If <условие> Then < оператор1>

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

Для полной формы:

If <условие> Then 

 < Блок операторов 1>

 Else 

 < Блок операторов 2>

End If

Для сокращенной формы:

If <условие> Then 

 < Блок операторов1>

End If

Пример: If (x>=10) and (x<=20) Then

 MsgBox (‘Значение x в интервале [10,20] ‘)

 Else

 MsgBox (‘Значение x вне интервале [10,20] ‘)

 End If

Операторы If могут быть вложены в другие операторы If.

условие 1

Блок операторов 3 3

условие 2

Блок операторов 1

Блок операторов  2

If <условие 1> Then

 If < условие 2> Then

 <Блок операторов 1>

 Else

 <Блок операторов 2>

 End If

 Else 

 <Блок операторов 3>

 End If

Если по ветке Else каждый раз проверяется условие, то можно использовать сжатую структуру оператора If.

If <условие 1> Then

 <Блок операторов 1>

 Else If < условие 2> Then

 <Блок операторов 2>

 Else If < условие 3> Then

 <Блок операторов 3>

 Else 

 <Блок операторов 4>

 End If

Пример:

Найти максимум из чисел a, b, c.

Пример 1: Вычислить значение функции и определить номер формулы, по которой она вычислялась.


             начало

0

         Ввод x

10

          Вывод x

2

   -5≤x<1

       n=1

n=2

        n=3

     Вывод y,n

111

          Конец

3

4

5

8

10

12

да

нет

 x>1; x≠10

   

да

нет

7

9

6

Таблица используемых переменных

Имя переменной в задаче

Имя переменной в программе

Тип переменной

Комментарий

x

x

вещественный

аргумент функции, исходное данное

y

y

вещественный

значение функции, результат

n

byte

N формулы, результат

Sub prim2 ( )

 Dim x As Single, y As Single

 Dim n As byte

 x = InputBox ("Введи x", "Ввод исходных данных")

 MsgBoxx=” & x , , “Ввод”

 Cells(1, 2) = "Исходные данные"

 Cells(2, 2) = "x=" & x

 If x >=-5 And x < 1 Then

 y = Sqr (Abs(x))

 n = 1

 Else

 If x > 1 And x <> 10 Then

 y = x ^ 3

 n = 2

 Else

 y = 2 * x^2 + 1

 n = 3

 End If

 End If

 MsgBox “y=” & y & “ N формулы” & n , , “Вывод

 Cells(3, 2) = "Результаты"

 Cells(4, 2) = "y=" & y

 Cells(4, 3) = "N формулы=" & n

End Sub


Тесты

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

-5

3

1

1

2

1000

x

3

1

x y N формулы

-6 73 3

-5 2,… 1

0 0 1

1 3 3

2 8 2

10 201 3

11 1331 2

Вывод тестов в ячейки рабочего листа

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

 Пример:

 k = InputBox ("Введите номер строки для вывода")

 ……………………..

 Cells(k, 1) = "x=" & x

 Cells(k, 2) = "y=" & y

 Cells(k, 3) = "N формулы=" & n

Пример 2. Даны числа a, b. Если a<0, то найти min (a, b), если a=0, то найти max (a, b), в противном случае каждое число увеличить на 50%.

Начало

0

Ввод a,b

10

Вывод a,b

2

a<0

min=b

b=b+0.5*|b|

Конец

3

4

14

16

да

нет

a=0

нет

13

   a<b

a=1,5*a

min=a

Вывод a,b

max=a

   b>a

max=b

Вывод min

Вывод max

7

5

6

8

10

9

11

12

15

14


 

А также другие работы, которые могут Вас заинтересовать

45496. Иерархия протоколов 304 KB
  Информационная совместимость это правила передачи информации от одного узла к другому. Для того чтобы передать информацию от одного узла другому используют как минимум три уровня: физический; канальный; сетевой; На физическом уровне описаны характеристики передающей среды Основной задачей канального уровня является преобразование физической среды в канал передачи данных а так же выявление ошибок и деление информации на кадры. Кадр единица измерения для передачи информации для сетей. Первые четыре уровня обеспечивают...
45497. Теоретические основы передачи данных 378.5 KB
  Ограничения на пропускную способность передачи данных.5c ∑ n sin2pnft∑ bncos2pnft f частота nbn амплитуды nой гармоники t время передачи сигнала gt определенное ограничение на пропускную способность. При этом скорость передачи информации зависит от способа кодирования и скорости изменения кодирования.
45498. Магистрали 261 KB
  Основное достижение это применение одного канала для передачи сигналов между различными источниками и приемниками. Основано на разделении передачи сигналов от разных источников по различным несущим частотам. Это связано с тем что пропускная способность составляет 25000 Гц и за счет этого в оптических каналах скорость передачи на порядок выше. Это связано с тем что после получения канала с аналоговой петли скорость передачи данных может быть увеличена в несколько раз поэтому для цифровых каналов связи применяется метод мультиплексирования...
45499. Коммутация 466 KB
  Для систем передачи используются три способа коммутации: коммутация сообщений; коммутация каналов; коммутация пакетов. При использовании коммутации каналов снижаются накладные расходы на передачу информации. При коммутации пакетов все сообщения разделяются на определенные пакеты. В отличие от коммутации каналов абонент не может монополизировать линию.
45500. Использование амплитудно-импульсной модуляции (АИМ) для построения систем передачи с временным разделением канала 311.5 KB
  При амплитудноимпульсной модуляции амплитуда периодической последовательности импульсов изменяется в соответствии с изменеием модулирующего сигнала. АИМ1 амплитуда импульсов пропорциональна амплитуде моделирующего сигнала. При преобразовании: частота дискретизации; скважность определяет количество времени свободное для передачи сигнала. Для простоты моделирующее колебание представляется: Для амплитудномоделирующей последовательности выражение: показывает глубину модуляции после преобразования получим ряд: Из данного...
45501. Использование широкоимпульсной модуляции (ШИМ) для построения систем передачи с временным разделением канала 299 KB
  Использование фазовоимпульсной модуляции ФИМ для построения систем передачи с временным разделением каналов. ФИМ является более помехоустойчивым видом модуляции чем ШИМ и АИМ. При ФИМ используется следующий моделирующий сигнал: В этом случае основным определяющим элементом является величина фазового сдвига которая определяется по следующей формуле: ∆τmx максимальный временной сдвиг между импульсами: ∆τmx=MФИМUmx MФИМ коэффициент глубины модуляции. Модуляция фазы импульсов определяется в соответствии со следующим...
45502. CASE-средства. Общая характеристика и классификация 51 KB
  Общая характеристика и классификация Современные CSEсредства охватывают обширную область поддержки многочисленных технологий проектирования ИС: от простых средств анализа и документирования до полномасштабных средств автоматизации покрывающих весь жизненный цикл ПО. Наиболее трудоемкими этапами разработки ИС являются этапы анализа и проектирования в процессе которых CSEсредства обеспечивают качество принимаемых технических решений и подготовку проектной документации. Графические средства моделирования предметной области позволяют...
45503. Типизация проектных решений АСОИУ. Использование коробочных продуктов и адаптируемых интегрированных систем. Подходы к созданию автоматизированной системы 58 KB
  Подходы к созданию автоматизированной системы В настоящее время существуют различные подходs к построению АСОИП отличающиеся признаками положенными в основу классификации. Полученная таким образом схема классификации подходов к построению АСОИП приведена на рис. В соответствии с этой схемой при выборе подхода к построению АСОИП решается вопрос о возможности использования существующих на рынке тиражируемых систем или необходимости создавать уникальную систему полностью ориентированную только на задачи конкретного предприятия. Подходы к...
45504. Графические средства представления проектных решений АСОИУ (IDEF, DFD, UML, ERD и т.п.) 36 KB
  DFD диаграммы потоков данных являются основным средством моделирования функциональных требований к проектируемой системе. Первый шаг моделирования извлечение информации из интервью и выделение сущностей. Второй шаг моделирования идентификация связей. Язык UML находится в процессе стандартизации проводимом OMG организацией по стандартизации в области ОО методов и технологий в настоящее время принят в качестве стандартного языка моделирования и получил широкую поддержку в индустрии ПО.