Циклы с предусловием и постусловием — КиберПедия 

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

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

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

2020-10-20 227
Циклы с предусловием и постусловием 0.00 из 5.00 0 оценок
Заказать работу

ИНФОРМАТИКА

 

Методические материалы для студентов заочной формы обучения

 

 

Могилев 2018

Содержание

Введение. 3

1 Введение в программирование. 4

1.1 Основные понятия программирования. 4

1.2 Основы программирования на Visual Basic for Applications (VBA) 5

1.3 Типы данных и переменные. 6

1.4 Организация ввода-вывода. 10

2 Операторы.. 14

2.1 Оператор присваивания (=) 14

2.2 Условный оператор (If…Then…Else…End If) 16

2.3 Оператор цикла с параметром (For…Next) 18

2.4 Циклы с предусловием и постусловием. 20

3 Массивы.. 24

4 Форма и элементы управления. 27

5 Программа MathCAD.. 39

5.1 Документы MathCAD.. 39

5.2 Справочная система – MathCAD Help. 40

5.3 Приемы работы с системой Mathcad. 40

5.4 Преобразование алгебраических выражений. 42

5.5 Построение 2D-графиков. 43

5.6 Решение систем уравнений. 44

Список литературы.. 48

 


Введение

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

В методических указаниях приведены основные сведения о системе программирования Visual Basic for Application (VBA) (в качестве приложения будет рассмотрен табличный процессор Excel) и системе компьютерной математики Mathcad, которые могут использоваться при выполнении контрольных и курсовых работ, а также при подготовке к зачетам и экзаменам.

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

Для получения дополнительных сведений можно воспользоваться литературой, приведенной в разделе “Список литературы”.

При описании основных операторов приведен общий синтаксис (запись) оператора, а затем рассмотрены примеры. При этом в угловых скобках “< >” указывается параметр, который пользователь задает сам, а в квадратных – “[ ]” – указывается необязательный параметр, который может быть применен или опущен по необходимости.

Задания для самостоятельного выполнения помечены знаком «?».


Введение в программирование

Основные понятия программирования

Величина – это отдельный информационный объект, который имеет имя, значение и тип.

Величины бывают постоянными и переменными.

Постоянная величина (константа) не изменяет своего значения в ходе выполнения алгоритма. Константа может обозначаться собственным значением (числа 10, 3.5) или символическим именем (число π).

Переменная величина может изменять значение в ходе выполнения алгоритма. Переменная всегда обозначается символическим именем (X, A, R5 и т.п.), начинается с буквы и не содержит пробелов.

Тип величины определяет множество значений, которые может принимать величина, и множество действий, которые можно выполнять с этой величиной. Основные типы величин: целый, вещественный, символьный, логический.

Выражение – это запись, определяющая последовательность действий над величинами. Выражение может содержать константы, переменные, знаки операций, функции. Например:

А+В;            2´Х - Y;              K+L- sin(X).

Решение любой задачи имеет три части:

1. Ввод данных;

2. Обработка данных;

3. Вывод результата.

Команда ввода – команда, по которой значения переменных задаются через устройства ввода (например, клавиатуру).

Команда вывода – команда, по которой значение величины отражается на устройстве вывода компьютера (например, на экран дисплея).

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

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

Команда цикла обеспечивает повторное выполнение последовательности команд (тела цикла) по некоторому условию.

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

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

 

 

Таблица 1

Символ Значение Применение
Процесс Обработка данных любого вида (выполнение операции или группы операций)
Решение Выбор направления выполнения программы в зависимости от некоторых переменных условий
Данные Обозначает ввод, вывод данных
Типовой процесс Одна или несколько операций, которые определены в другой программе, модуле
Модификация Выполнение операций, меняющих команды или группы команд
Пуск-останов Начало, конец обработки данных или выполнения программы

Основы программирования на Visual Basic for Applications (VBA)

В данных методических указаниях рассматривается Visual Basic for Applications (VBA) – встроенный язык программирования приложений Microsoft Office, в частности, электронных таблиц Excel.

Для создания программы на VBA необходимо находясь в рабочей книге Excel, выполнить команду Сервис/Макрос/Редактор Visual Basic. Возвратиться из редактора VBA в рабочую книгу можно нажатием кнопки Вид Microsoft Excel. Программа размещается в модуле, который добавляется к файлу Excel и сохраняется вместе с ним.

Интерфейс редактора VBA состоит из следующих основных компонентов: окно проекта, окно свойств, окно редактирования кода, окна форм, меню и панели инструментов (рисунок 1).

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

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

В окне свойств перечисляются основные установки свойств выбранной формы или элемента управления. Используя это окно, можно просматривать свойства и изменять их установки. Для просмотра свойств выбранного объекта надо либо щелкнуть кнопку Окно свойств, либо выбрать команду Вид/Окно свойств (View/Property Window).

Программа (код программы) записывается в окне кода. Окно кода используется при написании любой программы VBA, будь это код макроса, запуск которого осуществляется при нажатии кнопки в созданной пользователем форме, или подпрограмма. Код программы вводится непосредственно в окно кода, так же как текст в любом текстовом редакторе.

Рисунок 1 - Интерфейс редактора VBA

Для того чтобы получить окно модуля, необходимо выполнить следующие действия: Вставка / Модуль(Insert / Module).

Типы данных и переменные

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

Наиболее распространенные типы данных приведены в таблице 2.

Таблица 2

Тип данных Диапазон
Byte (целый без знака) От 0 до 255
Boolean (логический) True или False
Integer (целый) от - 32768 до 32767
Long (длинный целый) от - 2147483648 до 2147483647
Single (число с плавающей запятой обычной точности) От - 3.402823Е +38 до - 1.401298Е-48 и от 1.401298Е-45 до 3.402823Е+38
Double (число с плавающей запятой двойной точности) От -1,79769313486232Е308 до -4,94065645841247Е-324 для отрицательных значений; от 4,94065645841247Е-324 до 1,79769313486232Е308 для положительных значений
Date (дата и время) от 01. 01. 100 до 31. 12.9999
String (строка) от 0 до 65535 символов
Variant Любой встроенный тип данных

Переменные – это поименованные области в памяти компьютера. После вычисления какого-либо значения оно записывается в память, чтобы затем можно было к нему возвращаться. Использование переменных дает Visual Basic возможность создавать прямое соответствие между областями памяти и заданным именем. Затем можно использовать это имя в программе.

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

Объявляя переменную, можно указать ее тип, указывая тем самым Visual Basic, какой тип данных должен быть использован при записи переменной в память. Если тип не указан - по умолчанию используется тип Variant, который дает возможность хранить в нем практически любую величину. Переменная объявляется следующим образом:

Dim <ИмяПеременной> [As Тип]

Пример.

Dim A As Integer Переменная А объявляется как целочисленная
Dim Фамилия As String Переменная Фамилия объявляется как строка символов

? Напишите оператор объявления переменной Х, которая является числом с дробной частью.

______________________________________________________________

 

 

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

Const <ИмяКонстанты> [As Single] = <Выражение>

Пример

Const ПроцентнаяСтавка As Single =0.2

Const g=9.8

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

В таблице 3 представлены математические операции VBA. 

Таблица 3

Выражение

Операция

Пример

А B Результат
A+B Сложение 5 2.75 7,75
А – В Вычитание 5 2,75 2,15
А * В Умножение 2 6 12
А/В Деление 7 2 3.5
A \ В Целочисленное деление 7 2 3
A mod В Остаток от деления по модулю 7 2 1
A^B Возведение в степень 2 3 8

Стандартные математические функции VBA представлены в таблице 4.

Таблица 4

Обращение Функция
Abs(х) Модуль аргумента
Atn(x) Арктангенс (радианы)
Соs (x) Косинус (x в радианах)
Eхр(х) ex – экспонента
Int(x) Целая часть х, полученная отбрасыванием дробной части
Fix(x) Число, округленное до ближайшего меньшего целого
Log(x) Натуральный логарифм
Sin(x) Синус (х – в радианах)
Sqr(x) Корень квадратный
Tan(x) Тангенс числа

Старшинство операций (в порядке убывания приоритета):

ð операции в скобках;

ð вычисление функции;

ð ^;

ð смена знака;

ð *, /, \, mod;

ð +, -

ð =, >,<,>=,<=,<>, 

ð Not,

ð And,

ð Or,

ð Xor.

Логические выражения в результате вычисления принимают логические значения True (Истина) или False (Ложь). Операндами логического выражения могут быть логические константы, переменные логического типа, отношения. В VBA чаще используют 4 логические операции: отрицание – NOT, логическое умножение – AND, логическое сложение – OR, исключающее “или” – XOR. Результаты логических операций для различных значений операндов приведены в таблице 5. Использованы обозначения: Т – True, F – False.

Таблица 5

А В not A A and В А оr В А хоr В
Т Т F Т Т F
Т F F F Т Т
F F Т F F F
F Т Т F Т Т

Пример. Записать математические выражения в виде арифметических выражений на VBA

Математическое выражение  Выражение на VBA
x2-7x+6 x^2-7*x+6
(Abs(x)-Abs(y))/(1+Abs(x*y))
ln   Log(Abs((y-Sqr(Abs(x)))*(x-y/(z+(x)^2/4))))

? Напишите выражение на VBA для следующих функций

Математическое выражение  Выражение на VBA
 
 

? Найдите ошибки в записи выражений на VBA

Математическое выражение  Выражение на VBA
=tan2*a+1/2*cos(a)^2
=abs(exp^x)-(cos^2*x)^1/3

Функции преобразования типов выполняют преобразование переменной некоторого типа в заданный тип (таблица 6). Чаще всего выполняется преобразование из строки символов в число и числа в его строковое представление.

Таблица 6

Функция Назначение
Val(строка)  Возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа
Str(число)   Возвращает значение типа variant (String), являющееся строковым представлением числа

В качестве допустимого разделителя функция Str воспринимает только точку. При наличии другого десятичного разделителя следует использовать функцию CStr. Остальные функции преобразования из данного типа в указанный приведены в таблице 7.

Таблица 7

Функция Тип, в который преобразуется выражение
CBool Boolean
CByte Byte
CDate Date
CDbl Double
CInt Integer
CLng Long
CSng Single
CStr String

? Запишите выражение, в котором переменная W преобразуется к типу Double.

______________________________________________________________

? Какому типу принадлежит переменная Y, после выполнения функции

Y = CInt(Y0)  
Y = CByte(Y0)  

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

Таблица 8

Функция Проверка
IsNumeric(х) Является ли переменная числовым значением
IsNull(х) Является ли переменная пустым значением (Null)
IsError(х) Является ли переменная кодом ошибки

Организация ввода-вывода

Ввод и вывод данных в VBA может выполняться несколькими способами: с листа Excel, с помощью диалоговых окон, с помощью пользовательской формы.

Для ввода данных с листа или вывода на лист используется объект Worksheets и его методы Range или Cells.

Метод Range использует в качестве аргументов одну или две ссылки на ячейки и возвращают объект Range. Ссылки на ячейки должны быть оформлены в стиле А1 (колонка-буква-строка-число). Ссылка на единичную ячейку, использованная в качестве аргумента, возвращает объект Range для единичной ячейки. Две ссылки на единичные ячейки возвращают объект Range для прямоугольной области, заключенной между этими двумя ячейками:

X = Worksheets(“Лист1”).Range(“B1”).Value Присваиваем переменной Х значение ячейки B1 листа Лист1.
Worksheets(“Лист1”).Range(“B1”).Value = Х Выводим в ячейку B1 листа Лист1 значение переменной Х
Worksheets(“Лист1”).Range(“C1”,”D6”).Value = 2 Выводим в ячейки C1 и D6 листа Лист1 число 2
Worksheets(“Лист1”).Range(“В7:С9”).Value = 3 Выводим в диапазон ячеек “В7:С9” листа Лист1 число 3

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

A=Worksheets(1).Cells(1,2).Value Переменной А присвоено значение из ячейки первой строки и второго столбца первого листа.
Worksheets(1).Cells(2,2).Value= Х В ячейку второй строки и второго столбца заносится значение переменной Х

? Запишите команду (2 способа), с помощью которой можно вывести слово “Задача” в ячейку Е10 листа “Пример”.

______________________________________________________________

______________________________________________________________

? Запишите команду (2 способа), с помощью которой вводится значение переменной t с листа “Задача” из ячейки F2.

______________________________________________________________

______________________________________________________________

Для ввода данных с клавиатуры используется окно ввода InputBox (таблица 9), а для вывода данных на экран – окно сообщений MsgBox (таблица 10).

Таблица 9 – Параметры функции InputBox

Функция InputBox Выводит на экран диалоговое окно, содержащее сообщение, поле ввода и две кнопки OK и Cancel. Устанавливает режим ожидания ввода текста пользователем или нажатия кнопки, а затем возвращает значение типа string по нажатию кнопки OK, содержащее текст, введенный в поле. При нажатии кнопки Cancel возвращает пустую строку. Синтаксис: InputBox(prompt[, title] [, default]) - prompt – строковое выражение, отображаемое как сообщение в диалоговом окне. Строковое значение prompt может содержать несколько строк. Для разделения строк допускается использование символа возврата каретки (chr (13)), символа перевода строки (chr(10)) или комбинацию этих символов (chr(13) & Chr (10)); - title – строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения; - default – строковое выражение, отображаемое в поле ввода как используемое по умолчанию, если пользователь не введет другую строку. Если этот аргумент опущен, поле ввода изображается пустым.

Пример.

Имя =InputBox(“Введите Ваше имя”, “Пример окна ввода”)

На экране появится окно.

Рисунок 2 – Пример окна ввода

Переменной Имя будет присвоено значение типа String, введенное пользователем.

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

X=CDbl(InputBox(“Введите значение Х”, “Пример окна ввода”, “1,678”))

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

Рисунок 3 – Пример окна ввода

Введенное пользователем значение будет преобразовано к типу Double и присвоено переменной Х. Если пользователь не будет вводить значение, а просто нажмет кнопку OK, переменной Х будет присвоено значение по умолчанию – 1.678.

? Запишите команду, позволяющую ввести целочисленное значение переменной a через окно ввода, представленного на рисунке 4:

Рисунок 4 – Пример окна ввода

____________________________________________________________________

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

к= CInt(InputBox(“Укажите значение переменной е”, “Введите переменную е”, “5.12”))

 

? Укажите, какое значение примет переменная к (из предыдущего вопроса), если была нажата кнопка ОК.____________

 

Таблица 10 – Параметры функции/процедуры MsgBox

Процедура/ функция MsgBox Выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа integer, указывающее, какая кнопка была нажата. Синтаксис: MsgBox(prompt[, buttons] [, title]) Аргументы: - prompt – строковое выражение, отображаемое как сообщение в диалоговом окне; - buttons – числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения. Значение по умолчанию этого аргумента равняется 0. Значения констант, определяющих число и тип кнопок используемого значка, приведены в таблицах 11–12; - title – строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения

Значения параметра Buttons процедуры/функции MsgBox, определяющие отображаемые в диалоговом окне кнопки, приведены в таблице 11:

Таблица 11

Константа Значение Отображаются кнопки
VbOKOnly 0 OK
VbOKCancel 1 OK, Отмена
VbAbortRetryIgnore 2 Стоп, Повтор, Пропустить
VbYesNoCancel 3 Да, Нет, Отмена
VbYesNo 4 Да, Нет
VbRetryCancel 5 Повтор, Отмена

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

Таблица 12

Константа Значение Нажатая кнопка
VbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo 1 2 3 4 5 6 7 ОК Отмена (Cancel) Прервать (Abort) Повторить (Retry) Пропустить (Ignore) Да (Yes) Нет (No)

Пример.

N = MsgBox (“Значение переменной Х=” & X & Chr(10) & “Продолжить вычисления?”, VbYesNo, “Пример окна MsgBox”)

Если к моменту выполнения данного оператора переменная Х равнялась числу 2,14587895, то на экране появится следующее окно

Рисунок 5 – Пример окна сообщений

Пользователь может нажать одну из кнопок – Да или Нет. Если будет нажата кнопка Да, переменной N будет присвоено значение 6, если будет нажата кнопка Нет – 7. Проанализировав в дальнейшем это значение, можно выбрать одну из ветвей выполнения программы.

Часто процедура MsgBox используется в «минимальном» варианте – только для вывода сообщения, с одной кнопкой – OK. В этом случае аргументы не берутся в скобки. Например:

MsgBox “Значение переменной Х=” & X

Рисунок 6 – Пример окна сообщений

? Запишите процедуру, позволяющую вывести значение переменной у (к моменту вывода значения переменной у равнялось 1,27) с помощью окна вывода следующего вида:

Рисунок 7 – Пример окна сообщений

Ответ:____________________________________________________

 

Операторы

2.1 Оператор присваивания (=)

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

Синтаксис: <переменная> = <выражение >

Порядок выполнения: вычисляется значение <выражения> и присваивается полученное значение < переменной> (вычисляется значение выражения, стоящего справа от знака присваивания, и присваивается переменной, стоящей слева от знака присваивания).

Изображение в блок – схеме:

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

x=5

y=4

x=x+3

x=x+y

Ответ:___________________

Пример: вычислить значение функции

f(x,y)=|x|+sin2(y+5)

 

Public Sub prog1()   Dim x As Double, y As Double Dim f As Double x=CDbl(InputBox("Введите х")) y=CDbl(InputBox("Введите y"))     f = Abs(x) + Sin(y + 5) ^ 2   MsgBox "Результат = " & f     End Sub Заголовок процедуры prog1 (начало программы) Описание переменных: переменные x,y,f вещественного типа (Double) Ввод значений х и у. Функция InputBox выводит на экран окно с полем ввода и сообщением «Введите х» и возвращает значение типа строка (String). Для преобразования вводимого значения к вещественному типу – Double– используется функция CDbl. Вычисление значения переменной f: функция Abs(аргумент) возвращает модуль аргумента, Sin(аргумент) – синус аргумента, ^ – степень числа. Процедура MsgBox выводит на экран окно сообщений с текстом «Результат = 12» (если f=12). Конец программы.

Рисунок 6 – Блок-схема программы prog1

Ñ Составьте программу для вычисления площади прямоугольного треугольника, заданного длиннами катетов.

 

 

2.2 Условный оператор (If…Then…Else…End If)

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

Синтаксис: условный оператор имеет два варианта синтаксиса.

a) однострочная форма записи условного оператора:

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

б)блочная форма записи условного оператора:

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

[ <операторы 1> ]

...

[ ElseIf <условие n > Then

[ <операторы n > ]…

[ Else ]

[< ИначеОператоры >]]

End If

Порядок выполнения: вычисляется значение <условие>. Оно может принимать значения TRUE (Истина) или FALSE (Ложь). Если <условие> принимает значение TRUE, то выполняются [< операторы 1 >], в противном случае, т.е. значение <условие> FALSE, [ <операторы 2> ] (операторы ветки Else).

Изображение в блок – схеме:

 

Пример: определить вид введенного числа – положительное, отрицательное или ноль.

Public Sub prog2() Dim x As Double Dim s As String x=Worksheets(1).Range("A1")     If x > 0 Then s = "положительное"  ElseIf x = 0 Then s = "ноль" Else s = "отрицательное"  End If Worksheets(1).Range("C2")=s End Sub     Описание переменной строкового типа Ввод значения переменной х. Значение располагается на Листе1 (Worksheets(1)) в ячейке А1 (Range ("A1")).   Условный оператор. Если условие принимает значе ние True (Истина), то выполняется оператор присваивания ветки Then (s=”положительное”) и завершается условный оператор, в противном случае проверяется второе условие: x=0. Если условие True, то s присваивается значение “нуль”, иначе – “отрицательное”.   Вывод результата – s– на лист1 в ячейку С2.

Рисунок 7 – Блок-схема программы prog2

? Найдите и исправьте ошибки (если есть) в следующих фрагментах программ:

а) If a>0 Then x=0 Else x=1 End If б) If a>0 Then x=0 Else x=1 End If

? Найдите и исправьте ошибки (если есть) в следующем фрагменте программы. Изобразите блок-схему данного фрагмента:

If t > 0 Then

x = 1

 ElseIf t < 0 Then

x = -1

 Else

х = 1

 End If

End If

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

2.3 Оператор цикла с параметром (For…Next)

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

Синтаксис: For <счётчик_цикла> = <начало> To <конец> [ Step <шаг>]

<тело цикла>

[ Exit For ]

 

 ...

Next [<счётчик_цикла>]

 

 

где <счётчик_цикла> – числовая переменная;

<начало> – начальное значение (выражение) переменной <счётчик_цикла>;

<конец> – заключительное значение (выражение) переменной <счётчик_цикла>;

<тело цикла>– это последовательность операторов, которая будет выполнена заданное число раз.

Порядок выполнения: переменной <счётчик_цикла> присваивается значение <начало> и проверяется условие: <начало > £ <конец >; если условие неверно, то <тело цикла > не выполняется и управление передается на оператор, следующий за Next.

Если же условие выполняется, то выполняется <тело цикла>, затем значение <счётчик_цикла > изменяется на значение <шаг > (увеличится в случае положительного значения <шаг >, и уменьшается при отрицательном значении <шаг >). Данный процесс будет выполняться пока значение <счётчик_цикла > не достигнет значения <конец > (если шаг положителен, цикл завершится, когда впервые выполнится условие: < счетчик_цикла> > <конец >. Если шаг цикла отрицателен, условие его завершения: < счетчик_цикла> < <конец >).

Досрочно завершить цикл For…Next можно и с помощью оператора Exit For. Такие операторы могут быть расположены в тех местах тела цикла, где требуется из него выйти, не дожидаясь выполнения условия завершения.

Изображение в блок-схемах:

? Какое значение примут указанные переменные в результате выполнения следующих фрагментов программы:

 

а) t = 10: f = 0 For i = 1 To 5 f = f + I f = t + I Next I t=_____, f=_____, i=______ б) y = 0 For i = 2 To 10 Step 2 y = y + i Next i y=_____, i=_____

Пример: вычислить n-ый член последовательности, заданной формулой , если .

Public Sub prog3() Dim n As Byte Dim an As Integer,a1 As _ Integer, a2 As Integer n=CByte(InputBox("n ="))     a1 = 1: a2 = 1     For i = 3 To n    an = a1 + a2   a1 = a2: a2 = an   Next i MsgBox an End Sub   Описание переменной типа Byte     Ввод значения переменной n (номера элемента последовательности) через окно ввода и преобразование вве- денного значения к типу Byte Присваивание начальных значений переменным а1 и а2 (двоеточием разделяются операторы, записанные на одной строке) Организация цикла For…Next, в котором счетчик i изменяется от 3 до n с шагом 1 Вычисление следующего члена последовательности как сумму двух предыдущих Изменение последнего и предпоследнего значений последовательности на данный момент Увеличение счетчика на 1 (конец тела цикла)    

Блок-схема программы:

 

Рисунок 8 - Блок-схема программы prog3

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

Public Sub pp()

 n = CInt(InputBox("n="))

 a = 0: b = 0

For i = 100 To n Step -1

 If i Mod 2 = 0 Then

a = a + i

 Else

b = b + 1

 End If

Next i

MsgBox Abs(a - b)

End Sub

______________________________________________________________

______________________________________________________________

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

Массивы

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

Описание массивов:

1) одномерный статический массив

Dim <имя массива> ( <начальное значение индекса > To <конечное значение индекса> ) [ As <тип элементов массива >]

или

Dim <имя массива> ( <номер последнего элемента массива > ) [ As <тип элементов массива >]

 

2) двумерный статический массив

Dim <имя массива > ( <начальное значение индекса по строкам> To <конечное значение индекса по строкам >, < начальное значение индекса по столбцам > To < конечное значение индекса по столбцам> ) [ As <тип элементов массива> ]

или

Dim <имя массива> ( < номер последней строки >, < номер последнего столбца > ) [ As <тип элементов массива>]

Первый способ отличается от второго тем, что в первом случае указывается индекс первого и последнего элементов, во втором же – только количество элементов, нумерация которых может начинаться как с 0, так и с 1. Это зависит от опции Base (задает базовый индекс). Если опция не указана, то нумерация элементов массива начинается с нуля. Для изменения базового индекса в начале листа модуля необходимо написать Option Base 1.

Пример:

а) Dim А(1 To 10) As Integer – массив А состоит из 10 элементов целого типа, индексы которых 1, 2, …, 10.

б) Dim А(10) As Integer – массив состоит из 11 значений целого типа. Индексация зависит от опции Base. Если опция не указана, то номера элементов - от 0 до 10, если же указана (т.е. вначале модуля записано Option Base 1), то номера элементов изменяются от 1 до 10.

? Какие значения принимают указанные объекты при описании следующего массива: Dim A (9) As Byte

 

Элементы массива_______________________________________

Индекс массива_____________________________

 

? Укажите значение всех элементов массива, ввод и описание которого организованы следующим образом:

Dim a(1 To 10) As Double

 For i = 1 To 10

a(i) = i + 5

 Next i

______________________________________________________________

 

3) динамический массив

Dim <имя массива> () [ As <тип элементов массива>]

После определения количества элементов массива выполняется его переопределение:

ReDim <имя массива> ( <задается размерность массива (одномерного/двумерного > )

Пример: Dim А() As Single–динамический массив А вещественных элементов

n=7

ReDim A(1 To n) – переопределение одномерного массива из n значений

ReDim A(5,n) – переопределение двумерного динамического массива, состоящего из 5 сток и n столбцов (начало индексации элементов определяется по опции Base)

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

? Исправьте ошибки (если они есть) в следующем фрагменте программы:

Dim a(1 To 10) As Double

n = 5

ReDim a(1 To n)

For i = 1 To n

 a(i) = i

Next i

Пример. Определить сумму положительных элементов массива A5×8.

Public Sub prog4() Dim a(1 To 5, 1 To 8) As _ Integer Dim s As Integer s = 0 For i = 1 To 5  For j = 1 To 8 a(i,j)=Worksheets(1).Cells(i,j) If a(i, j) > 0 Then s = s + a(i, j) End If  Next j Next i Worksheets(1).Range("A12")= s End Sub   Описание целочисленного массива из 5 строк и 8 столбцов   Обнуление переменной s Цикл по строкам (номер строки от 1 до 5) Цикл по столбцам (номер столбца от 1 до 8) Ввод элементов массива с листа Excel (номера строк изменяются от 1 до 5, столбцов – от 1 до 8) Сравнение элементов массива с нулем Добавление положительного элемента к текущей сумме положительных элементов Прибавление шага (в данном случае 1) к счетчикам j и i Вывод результата в ячейку А12


Поделиться с друзьями:

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

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

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

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.21 с.