Тема 5. Алгоритмизация и методологии программирования. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тема 5. Алгоритмизация и методологии программирования.



Содержание

ВВЕДЕНИЕ. 4

1 РАБОЧАЯ ПРОГРАММА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА». 5

2 ОСНОВЫ АЛГОРИТМИЗАЦИИ.. 7

2.1 Основные этапы подготовки и решения задачи на компьютере. 7

2.2 Постановка задачи. Разработка математической модели. 9

2.3 Алгоритм и его свойства. 13

2.4 Форма записи алгоритма на естественном языке. 14

2.5 Графическая форма записи алгоритма. 16

2.6 Типовые вычислительные процессы и структуры алгоритмов. 18

2.6.1 Линейный вычислительный процесс. 18

2.6.2 Разветвляющийся вычислительный процесс. 18

2.6.3 Циклический вычислительный процесс. 20

2.6.4 Алгоритмы обработки одномерных информационных массивов 25

2.6.5 Алгоритмы обработки двумерных информационных массивов 35

3 ЯЗЫК ПРОГРАММИРОВАНИЯ VBA.. 39

3.1 Элементы языка. 40

3.2 Программирование алгоритмов линейной структуры.. 43

3.3 Программирование алгоритмов разветвленной структуры.. 48

3.4 Программирование алгоритмов циклической структуры.. 50

3.5 Организация программ обработки одномерных массивов. 53

3.6 Организация программ обработки двумерных массивов. 59

4 КОНТРОЛЬНАЯ РАБОТА И МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ЕЁ ВЫПОЛНЕНИЮ 62

4.1 Выбор варианта. 62

4.2 Задание 1. Варианты задач. 63

4.3 Задание 2. Варианты задач. 64

4.4 Задание 3. Теоретический вопрос. 70

4.5 Методические указания по выполнению контрольной работы.. 71

4.5.1 Пример выполнения задания 1. 71

4.5.2 Пример выполнения задания 2. 73

4.5.3 Пример выполнения задания 3. 76

ВОПРОСЫ ДЛЯ ПОДГОТОВКИ К ЭКЗАМЕНУ.. 78

ЛИТЕРАТУРА.. 79

УКАЗАТЕЛЬ. 79

 

ВВЕДЕНИЕ

 

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

Этот предмет является базовым для изучения цикла компьютерных дисциплин: «Программные средства офисного назначения», «Информационные технологии в экономике», «Основы электронной коммерции». Знания и практические навыки, полученные из курса «Информатика», используются при изучении других дисциплин и при выполнении курсовых и дипломных работ.

В условиях «информационного общества» одним из главных элементов рабочего места специалиста является персональный компьютер как инструмент обработки информации, поэтому при изложении разделов дисциплины особое внимание уделено основам алгоритмизации и основным понятиям теории программирования. Квалификация современного выпускника для сферы коммерческой деятельности и управления в немалой степени определяется умениями использования продуктов Microsoft Office, а именно Visual Basic for Application(VBA), потому что это - «родной» язык для этих продуктов.

Задачи дисциплины - дать основы:

- процессов сбора, передачи и накопления информации;

- устройства и принципов действия ЭВМ различной архитектуры;

- операционных систем и операционных оболочек;

- языков программирования высокого уровня;

- технологии программирования.

Данное учебное пособие предназначено для самостоятельной работы по разделу курса информатики «Алгоритмизация и программирование» и выполнения контрольной работы по теме «Обработка одномерных информационных массивов».

 

РАБОЧАЯ ПРОГРАММА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА»

Раздел 1. Программно-технические средства обработки информации

Тема 1. Введение в дисциплину «Информатика».

Понятие информатики как научной дисциплины. Понятие информации и данных. Общая характеристика процессов сбора, передачи, обработки и накопления информации. Понятие информационных процессов, технологий, систем.

Тема 2. Арифметические и логические основы ЭВМ.

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

Логические высказывания. Основные операции и законы алгебры логики.

Тема 3. Технические средства реализации информационных процессов.

История и тенденции развития ЭВМ, поколения, семейства машин. Понятие и основные виды архитектуры. Состав и назначение основных устройств персонального компьютера, и их характеристики.

Тема 4. Программные средства реализации информационных процессов.

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

Раздел 2. Алгоритмизация и программирование

Эволюция и классификация языков программирования. Основные понятия языка программирования, синтаксис и семантика, структуры и типы данных. Объявление (декларация) переменных. Встроенные функции. Синтаксис арифметических выражений и логических структур. Организация линейных, разветвляющихся и циклических алгоритмов на VBA. Работа с диалоговыми окнами ввода и вывода информации. Условные операторы и операторы цикла. Создание, отладка и тестирование программы.

Тема 7. Программирование алгоритмов обработки сложных данных и сложной структуры.

ОСНОВЫ АЛГОРИТМИЗАЦИИ

2.1 Основные этапы подготовки и решения задачи на компьютере

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

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

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

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

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

- по стадиям (этапам) управления. Например, долгосрочное планирование или прогнозирование; перспективное или среднесрочное планирование; текущее или краткосрочное планирование; оперативно-календарное планирование; оперативное управление; анализ производственно-хозяйственной деятельности; бухгалтерский учет и аудит;

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

- по иерархии (уровням) управления: например, министерство – объединение (фирма) – предприятие (организация) – цех (отдел) и т.д. вплоть до отдельного рабочего места исполнителя.

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

Любая задача, решаемая с помощью компьютера, предполагает выбор программного средства. Таким программным средством может быть одна из прикладных систем или система программирования с выбранным языком высокого уровня. В данном пособии рассматривается подготовка и решение задач в интегрированной среде разработки программных средств IDE VBA (Integrated Development Environment Visual Basic for Application).

Подготовка задачи к решению и процесс ее решения на компьютере включает следующие этапы:

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

- сбор информации о задаче;

- формулировка условия задачи;

- определение конечных целей решения задачи;

2. Анализ и исследование задачи, модели:

- разработка математической модели;

- описание данных (типов, диапазонов величин, структуры и т.п.).

- разработка структур данных.

3. Разработка алгоритма:

- выбор метода проектирования алгоритма;

- выбор формы записи алгоритма (блок-схема, псевдокод и др.);

- проектирование алгоритма.

4. Программирование:

- выбор языка программирования;

- уточнение способов организации данных;

- запись алгоритма на выбранном языке программирования.

5. Тестирование и отладка:

- синтаксическая отладка;

- отладка семантики и логической структуры;

- тестовые расчеты и анализ результатов тестирования.

6. Анализ результатов решения задачи и корректировка исследуемой модели:

- итоговые расчеты и анализ результатов решения;

- совершенствование программы.

Алгоритм и его свойства

Термин «алгоритм» произошел от имени величайшего среднеазиатского математика Мухаммеда ибн Муса ал-Хорезми (Alhorithmi), жившего в 783–850 гг. В своей книге «Об индийском счете» он изложил правила записи натуральных чисел с помощью арабских цифр и правила действий над ними «столбиком», знакомые теперь каждому школьнику. В XII веке эта книга была переведена на латынь и получила широкое распространение в Европе.

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

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

Выбор метода проектирования необходим при наличии нескольких методов решения математически формализованной задачи.

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

Любой алгоритм имеет четыре основных свойства:

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

2. Массовость – возможность использовать алгоритм для решения серии однотипных задач с различными вариантами исходных данных, причем исходные данные можно выбирать из так называемой области применимости алгоритма.

3. Однозначность или определённость – алгоритм должен содержать конечное число предписаний, не допускающих произвольного толкования исполнителя, не оставляющих исполнителю свободы выбора. Многократное повторение алгоритма с одинаковыми исходными данными должно приводить к одному и тому же результату.

4. Результативность – это свойство означает, что количество операций в алгоритме, приводящих к получению результата, должно быть конечным. Несмотря на кажущуюся очевидность последнего свойства, оно является чрезвычайно важным, так как очень часто создаются бесконечные алгоритмы. Такая ситуация в программировании носит название «зацикливание».

На практике наиболее распространены следующие формы представления алгоритмов:

- словесная (запись на естественном языке);

- псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);

- графическая (изображения из графических символов);

- программная (тексты на языках программирования).

ЯЗЫК ПРОГРАММИРОВАНИЯ VBA

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

Язык программирования VBA, являясь мощным программным средст­вом, позволяет реализовать широкий спектр практических задач. Основное его достоинство состоит в оптимальном сочетании простоты использования, доступности и большого набора разнообразных возможностей, позволяющих охватить все основные области программистской деятельности.

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

Редактор VBA активизируется из приложения MS Excel одним из следующих способов:

- командой меню Сервис/Макрос/Редактор Visual Basic;

- комбинацией клавиш [Alt]+[F11];

- щелчком по кнопке панели инструментов Редактор Visual Basic.

Вернуться из редактора VBA в приложение можно, нажав комбинацию клавиш [Alt]+[F11] или соответствующий значок приложения.

Ввод программы в память компьютера осуществляется с помощью клавиатуры, из внешней памяти или из компьютерной сети в о кно редактирования кода Листа. Открывается окно редактирования кода Листа двойным щелчком на соответствующем значке в окне проекта, например, на значке Лист1 (рис. 21).

Рис. 21 Окно редактирования кода Лист1

Программу, которая написана на алгоритмическом языке, компьютер не может выполнить непосредственно. Такая форма записи понятна человеку, но недоступна для обработки вычислительному средству. Поэтому нужен «посредник» для перевода программы с языка, понятного человеку, на язык, «понятный» машине. Такими посредниками являются специальные программы, которые называются трансляторами (от англ. translator - переводчик) и компиляторами (от англ. compiler - составитель). Для каждого языка программирования существует свой транслятор (или компилятор). В этих программах содержатся все правила и конструкции соответствующего алгоритмического языка, а также способы преобразования этих конструкций на машинный язык.

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

Тестирование - установление факта достоверности получаемых результатов. Правильность работы программы устанавливается с помощью специальных контрольных просчетов – тестов. Для тестов подбираются наборы исходных данных, для которых заранее известен результат. Анализ результатов тестирования (сравнение ожидаемых результатов с полученными при вычислении) позволяет выявить ошибки в алгоритме и программе.

Элементы языка

Язык программирования VBA служит для написания кода программы. Он, как и другие языки, имеет свой алфавит. В него входят:

1. Прописные и строчные буквы латинского алфавита (А - Z, a - z);

2. Прописные и строчные буквы кириллицы (А - Я, а -я);

3. Цифры от 0 до 9;

4. Неотображаемые символы (пробел, табуляция, переход на новую строку);

5. Специальные символы, участвующие в построении конструкций языка:

Таблица 5 – Специальные символы

. - точка
; - точка с запятой
: - разделитель операторов в одной строке
, - запятая
“” - кавычки
- апостроф
[ ] - квадратные скобки
() - круглые скобки
{ } - фигурные скобки
_ - пробел-подчёркивание
@ - амперсант, суффикс денежных единиц
& - логическое «и», суффикс длинного целого
% - целочисленный суффикс
! - вещественный суффикс
# - суффикс удвоенной точности
$ - строковый суффикс

6. Знаки арифметических операций:

+ - сложение
- - вычитание
* - умножение
/ - деление
\ - знак целочисленного деления
^ - возведение в степень

7. Знаки логических отношений:

< - меньше
> - больше
= - равно
>= - больше либо равно (³)
<= - меньше либо равно (£)
<> - не равно (¹)

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

Величина – это элемент данных с точки зрения их семантического (смыслового) содержания или обработки. Смысловое (семантическое) разбиение данных производится во время постановки задачи и разработки алгоритма ее решения (входные, выходные и промежуточные).

Исходные (входные) – это данные, известные перед выполнением алгоритма, из условия задачи.

Выходные данные – результат решения задачи.

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

Вместе с тем, архитектура ЭВМ, используемое программное обеспечение требуют указать имена и типы данных – целый, вещественный, символьный.

С понятием величины связаны следующие характеристики:

- Идентификатор (имя) – это обозначение величины и место в памяти. При наборе идентификаторов с клавиатуры регистр буквы (строчная или прописная) не играет роли. Буквы А и а воспринимаются одинаково, хотя у них разные коды, поэтому MATR, matr, Matr – одно и тоже имя.

- Тип – множество допустимых значений,принимаемых величинами этого типа см. таблицу 1; набор операций, допустимых над данной величиной; объем памяти, отводимой под неё.

- Значение – динамическая характеристика, которая может многократно меняться в ходе исполнения алгоритма. Во время выполнения алгоритма в каждый конкретный момент величина имеет некоторое значение или не определена. Так постоянной или константой называется величина, значение которой не изменяется в процессе исполнения алгоритма, а остается одним и тем же, указанным в тексте алгоритма; переменной называется величина, значение которой меняется в процессе исполнения алгоритма.

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

Для явного определения переменных существуют два способа. Первый (предпочтительный) способ предполагает использование следующего оператора:

Dim Имя1 As [Тип], Имя2 Аs [Тип],

Dim (размер) - ключевое слово, которое сообщает, что декларируется переменная и резервируется область памяти для ее хранения;

Имя - имя переменной (идентификатор);

As (как) - ключевое слово, которое сообщает, что определяется тип данных для переменной;

Тип - тип данных объявляемой переменной.

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

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

Синтаксис явного объявления переменных с помощью суффикса:

Dim Имя_Переменной Суффикс

Например:

Dim Фамилия$ - объявляется переменная типа «строка» String;

Dim Среднее_значение! - объявляется переменная типа Single;

Dim Hoмep% - объявляется переменная типа «целое» Integer.

Sub Задача()

Далее следуют строки, состоящие из операторов. Они составляют тело программы. В одной строке может находиться один или несколько операторов. Один оператор от другого отделяется знаком двоеточия. Один оператор может занимать несколько строк. В этом случае символом продолжения служит последовательность пробел-подчеркивание (_).

Последним оператором в подпрограмме должен быть оператор

End Sub

Оператор - это минимальная конструкция языка, задающая описание некоторого действия.

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

В программе ввод начальных данных производится в диалоговое окно, которое вызываются при помощи стандартной функции VBA InputBox. Синтаксис оператора ввода:

Имя_Переменной = InputBox (“Текст подсказки”, “Заголовок окна”)

Как только в программе встречается оператор ввода, компьютер вызывает диалоговое окно и ждет, когда пользователь введет с клавиатуры соответствующее значение. После нажатия кнопки ОК или клавиши enter, переменная примет соответствующее значение. Выполнение программы продолжается с оператора следующего за оператором ввода. Например:

a = InputBox("Введите значение расстояния a", "Окно ввода")

Результатом вызова функции InputBox является значение, введённое в текстовое поле, которое присваивается переменной а (рис.22).

Рис. 22 Диалоговое окно ввода данных с помощью функции InputBox

Оператор вывода результатов Debug.Print [список_вывода] осуществляет вывод результатов работы программы в окно Immediate.

Вызов этого окна выполняется командой меню Вид /Прямое окно (View/Immediate).

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

Например:

Debug.Print A, B - если значение А=0.75, а В=-178, то на экране дисплея эти значения будут выведены в следующем виде: _0,75 _ _ _ _ _ _ _ _ _-178
Debug.Print A; B - если значение А=0.75, а В=-178, то на экране дисплея эти значения будут выведены в следующем виде: _0.75 _-178

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

В оператореDebug.Printможно использовать функцию TAB(n). Функция TAB используется как один из элементов в списке вывода оператора Debug.Print. Она обеспечивает вывод следующего за ней элемента в позицию n, номер которой задан как аргумент функции TAB (рис.23). Например:

Debug.Print "Sum="; Tab(15); Sum   - в 0-ую позицию выводится Sum=, а в 15-ую – число

Рис. 23 Результаты позиционированного вывода в окно Immediate

Если аргумент функции TAB меньше текущей позиции строки, то вывод результата осуществляется в следующей строке экрана.

Программа линейной структуры может содержать только операторы ввода, вывода и присваивания.

Оператор присваивания служит для присваивания переменной значения арифметического выражения и имеет вид:

Переменная = Выражение

При выполнении этого оператора вычисляется значение Выражения и присваивается Переменной, при этом тип выражения должен совпадать с типом переменной.Тип выражения определяется типом операндов, входящих в него, и зависит от операций, выполняемых над ними. Например,

X = (Y + Z) / (2 + Z * 10) - 1/3 - вещественный тип

G$=”Москва” - символьный тип

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

Таблица 6 – Встроенные математические функции

Запись на VBA Математическая запись Описание
Abs(x) |x| Модуль
Atn(x) arctg x Арктангенс
Cos(x) cos x Косинус
Exp(x) ex Экспонента
Fix(x)   Отбрасывание дробной части
Int(x)   Наибольшее целое число, не превосходящее х
Sin (x) sin x Синус
Sqr(x)   Квадратный корень
Tan(x) tg x Тангенс
Sgn(x) В зависимости от знака числа возвращается 1, 0 или -1
Log(x) ln x Натуральный логарифм
Rnd(x)   Датчик случайных чисел, аргумент является необязательным. Функция Rnd используется только после инициализации VBA-генератора случайных чисел оператором Randomize
Round (x, n) Округление числа х с точностью до n десятичных знаков

При наличии в выражении нескольких арифметических операций порядок их выполнения определяется правилами приоритета:

1. вычисляются значения в скобках;

2. вычисляются значения функций;

3. возведение в степень;

4. выполняются операции умножения и деления;

5. выполняются операции сложения и вычитания.

Операции выполняются слева направо с учетом их приоритета. Желаемая последовательность операций обеспечивается путем расстановки скобок в соответствующих местах выражения.

В пунктах 2.2 и 2.6.1 были построены математические модели и блок-схемы алгоритмов линейной структуры. Рассмотрим примеры программ, где алгоритм решения является линейным.

Листинг 1. Вычисление расстояния до складских помещений

Sub Пример1()

Dim a, b, c, d, r As Single

a = InputBox("Введите значение расстояния a", "Окно ввода")

b = InputBox("Введите значение расстояния b", "Окно ввода")

c = InputBox("Введите значение расстояния c", "Окно ввода")

d = 2 * ((a * b) ^ 2 + (a * c) ^ 2 + (b * c) ^ 2) - a ^ 4 - b ^ 4 - c ^ 4

r = Round((a * b * c) / Sqr(d), 3)

Debug.Print "Расстояние до складских помещений = "; r; "км"

End Sub

Листинг 2. Вычисление суммы значений двух функций

Sub Пример2()

Dim a, b, c, x, t, p, y, z, s As Single

a = InputBox("Введите значение переменной a", "Окно ввода")

b = InputBox("Введите значение переменной b", "Окно ввода")

c = InputBox("Введите значение переменной c", "Окно ввода")

x = InputBox("Введите значение переменной x", "Окно ввода")

t = a + b

p = c * x

y = (t ^ 3 - Sin(p)) / (a - 3.75)

z = Log(p) - ((t + 3.75) / a) ^ (1 / 3)

s = Round(y + z, 3)

Debug.Print "s = "; s

End Sub

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

Else

Блок_операторов_2

End If

Блок_операторов_1 выполняется в том случае, если Условие истинно, в противном случае выполняется Блок_операторов_2.

3) В условном операторе может проверяться несколько условий, тогда он имеет вид:

If Условие_1 Then

Блок_операторов_1

ElseIf Условие_2 Then

Блок_операторов_2

ElseIf Условие_3 Then

...

Else

Блок_операторов_по_умолчанию

End If

Если истинно Условие_N, выполняется Блок_операторов_N, если же все условия ложны, выполняется последний Блок_операто­ров по умолчанию.

4) В случае, когда ветвь Else является необязательной, условный оператор может быть записан в краткой форме:

If Условие Then

Блок_операторов_1

End If

Выражения-условия записы­ваются с помощью операций отношения. Отношение — это два выражения, разделенных между собой знаком операции отношения (>, <, =, <>, <=, >=). Отношение является простейшей конструкцией логического выражения. Оно вычисляет результат - истина, если выполняется заданное соотношение, и ложь - в противном случае.

Логические операции: NOT («не» - отрицание), AND («и» - логическое умножение), OR («или» - логическое сложение).

Приоритет выполнения операций при вычислении логических выражений следующий: 1) NOT; 2) AND; 3) OR.

Например, если значение переменной X принадлежит некоторому интервалу значений от а до b, то переменной Y будет присвоено значение 1, иначе переменной Y будет присвоено значение 0.

If (X>=a) and (X<=b) Then

Y=1

Else

Y=0

End If

В пункте 2.6.2 были построены математические модели и блок-схемы алгоритмов разветвлённой структуры. Рассмотрим примеры программ, где алгоритм решения является разветвлённым.

Листинг 3. Вычисление заработной платы за неделю

Sub Пример3()

Dim t, zp As Single

Dim k As Integer

k=InputBox("Введите количество отработанных часов","Окно ввода")

t = InputBox("Введите стоимость одного часа", "Окно ввода")

If k >= 40 Then

zp = 40 * t + (k - 40) * 2 * t

Else

zp = 40 * t

End If

Debug.Print "Заработная плата за неделю = "; Round(zp, 2); "руб."

End Sub

Листинг 4. Исключение неопределенности функции.

Фрагментпрограммыпримера 4 без описания переменных и оператора ввода:

……………………………

t = a * x - b

p = 2.5 * b * x

If p = 0 Then

Debug.Print "Y не определена"

Else

If t <= 0 Then

Debug.Print "Y не определена"

Else

y = (Log(t) + c) / p

Debug.Print "y="; Round(y, 3)

End If

End If

……………………………

Листинг 5. Табулирование функции с постусловием

Sub Пример5()

Dim a, b As Single

Dim h As Single

Dim x, y As Single

a=InputBox("Введите начальное значение аргумента", "Окно ввода")

b=InputBox("Введите конечное значение аргумента", "Окно ввода")

h = InputBox("Введите шаг изменения аргумента", "Окно ввода")

Debug.Print "Аргументы", "Значения"

x = a

Do

y = x * Sin(x) 'здесь f(x)=x*sin(x)

Debug.Print x, y

x = x + h

Loop While x <= b

End Sub

Примечание. В данной программе для того, чтобы заголовки таблицы не выводились при каждом повторе цикла (рис. 24), оператор вывода заголовков Debug.Print "Аргументы", "Значения" записан перед началом работы цикла.

Рис. 24 Результаты работы цикла при а=-5, b=5, h=2

Листинг 6. Табулирование функции с циклом For

Фрагментпрограммыпримера 5 по алгоритму с блоком модификации без описания переменных и оператора ввода исходных данных:

…………………………

Debug.Print "Аргументы", "Значения"

For x = a To b Step h

y = x * Sin(x)

Debug.Print x, y

Next x

………………………………

Листинг 7. Табулирование функции при помощи цикла со счетчиком

Фрагментпрограммыпримера 5 без описания переменных и оператора ввода исходных данных:

…………………………

Debug.Print "Аргументы", "Значения"

x = a

n = Abs((b - a) / h) + 1

For i = 1 To n

y = x * Sin(x)

Debug.Print x, y

x = x + h

Next i

…………………………

Листинг 8. Ежегодное начисление амортизации

Фрагментпрограммыпримера 6 без описания переменных и оператора ввода исходных данных:

…………………………

Debug.Print "Год", "Стоимость оборудования"

For N = 1 To 10

R0 = Round(R0 * (1 - P / 100) + D, 2)

Debug.Print N, R0

Next N

…………………………

Листинг 9. Введение последовательности чисел 1, 2, –5, 6, –111, 0 в память компьютера

Sub Ввод_статического_массива()

Dim i, N As Integer

Dim A(6) As Single

For i = 1 To 6

A(i) = InputBox("Введите" & i & "-й элемент массива")

Debug.Print i; "-й элемент ", A(i)

Next i

End Sub

Листинг 10. Заполнение одномерного массива элементами, отвечающими данному соотношению: a 1=1; a 2=1; ai = ai –2+ ai –1 (i = 3, 4, ¼, n)

Sub Ввод_динамического_массива()

Dim i, N As Integer

Dim A() As Single

N = InputBox("Введите количество элементов")

ReDim A(N) As Single

A(1) = 1

A(2) = 1

For i = 3 To N

A(i) = A(i - 1) + A(i - 2)

Next i

For i = 1 To N

Debug.Print i; "-й элемент ", A(i)

Next i

End Sub

В пункте 2.6.4 были построены математические модели и блок-схемы наиболее распространенных алгоритмов обработки одномерных массивов. Рассмотрим примеры программ, где алгоритм представляет собой обработку массива данных.

Листинг 11. Определение общей и средней суммы оборота

Sub Пример7_1()

Dim A() As Single

Dim S, C As Single

Dim i, N As Integer

N = InputBox("Введите количество элементов массива")

ReDim A(N) As Single

For i = 1 To N

A(i) = InputBox("Введите" & i & "-й элемент массива")

Debug.Print i; "-й оборот ", A(i)

Next i

S = 0

For i = 1 To N

S = S + A(i)

Next i

С = S / N

Debug.Print "общая сумма оборота за месяц= "; S

Debug.Print "средняя сумма оборота за месяц= "; С

End Sub

Примечание. Порядок вычисления произведения элементов массива такой же, как показано в Листинге 11. Отличие в том, что первоначальное значение произведения Р = 1 и формула для накопления произведения имеет вид: P = P * A(i).

Листинг 12. Нахождение количества дней с оборотом, равным плану D

Sub Пример7_2()

Dim A() As Single

Dim D As Single

Dim i, K, N As Integer

D = InputBox("Введите план оборота за день")

N = InputBox("Введите количество элементов массива")

ReDim A(N) As Single

For i = 1 To N

A(i) = InputBox("Введите" & i & "-й элемент массива")

Debug.Print i; "-й оборот ", A(i)

Next i

K = 0

For i = 1 To N

If A(i) = D Then

K = K + 1

End If

Next i

Debug.Print "количество дней c оборотом "; D; "= "; K

End Sub

Листинг 13. Определение максимального оборота предприятия за данный период и номера дня с максимальным оборотом

Sub Пример7_3()

Dim A() As Single

Dim M As Single

Dim i, NM, N As Integer

N = InputBox("Введите количество элементов массива")

ReDim A(N) As Single

For i = 1 To N

A(i) = InputBox("Введите" &



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 172; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.160.216 (0.283 с.)