90 IF Y 100 YMAX=Y 110 XMAX=X 120 NEXT X 130 RETURN Результатом решения будет два числа: значение аргумента, при котором функция имеет максимальное значение и значение функции. Задача 9: (вычислить площадь области, заключенной между левым и правым пределами, верхней заданной функцией и снизу осью координат Х, как сумму площадей элементарных кусочков этой области). Предел (A – B) разбивается на заданное число интервалов, выбираемое в зависимости от требуемой точности вычислений. Например, функция Y=X2+2 в пределах от 0.1 до 2. Число интервалов задаем, например, равным 100. 10 DEF FNY(K)=K^2+2 20 INPUT “Входные пеpеменные A,B,N=”;A,B,N 30 H=(B-A)/N 40 S=0 50 X=A 60 FOR I=1 TO N-1 70 X=X+H 80 S=S+FNY(X) 90 NEXT I 100 S=0.5*H*(FNY(A)+FNY(B)+2*S) 110 PRINT S 120 END При запросе входных переменных заносим значения: А, В и N соответственно: 0.1; 2; 100. Программирование в среде Visual Basic Среда систем визуального программирования Построение приложений WINDOWS (в том числе разработка программ) в среде систем визуального программирования (Visual BASIC, Delphi, C…) существенно облегчается вследствие использования интегрированной среды разработчика. Среда систем визуального программирования состоит: из строки меню с обязательным пунктом ФАЙЛ, через который выполняются действия с файлами: загрузка, сохранение, вывод на печать; панели инструментов, дублирующей пункты меню и ускоряющей действия пользователя; панели элементов, включающей компоненты приложений, помещаемые в окна. На экране также обычно отображается окно свойств (Properties) объектов проекта и форма-окно приложения. Стандартные компоненты Некоторые стандартные элементы перечислены ниже с комментариями по их применению. Курсор – это не компонент, просто пиктограмма для выбора или отмены выбора какого -либо объекта. Label метка служит для отображения текста на экране. Можно изменить шрифт и цвет метки. TextBox может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст или данные во время выполнения программы. Button позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. CheckBox отображает строку текста с маленьким окошком для отметки выбора элемента рядом. OptionButton позволяет выбрать одну опцию из нескольких. ListBox нужен для показа прокручиваемого списка. Например, названий файлов или каталогов из ListBox. Scrollbar полоса прокрутки, появляется автоматически в объектах редактирования, например, ListBox. Image отображает графическое изображение. Timer таймер, событие OnTimer периодически вызывается через промежуток времени, указанный в свойстве Interval. Дополнительные компоненты Для использования прочих компонент приложений можно добавить их на панель через меню: Project/Components/Insertable Objects. MainMenu позволяет поместить главное меню в программу. При помещении MainMenu на форму это выглядит, как просто значок. Значки данного типа называют "невидимым компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: помещение MainMenu на форму, вызов Дизайнера Меню, определение пунктов меню в Дизайнере Меню. PopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши на объекте. Построение приложений в среде VisualBASIC После загрузки среды программирования, выбора в окне NEW PROJECT, Standard EXE, ОТКРЫТЬ вы автоматически попадаете в среду построения приложения, где имеется пустая пока форма Form1, на этой форме вы и должны графически построить содержимое проектируемого приложения, используя компоненты панели ToolBox. Выбор элемента выполняется щелчком левой кнопки мыши. Установка элемента на форме выполняется щелчком или протаскиванием мышью с нажатой левой кнопкой. Для установленного элемента, и для самой формы в окне свойств (Properties) можно выбрать необходимые свойства, например: шрифт, цвет, надпись (Caption), имя (Name), размеры (Left, Top, Height, Width) и т.д. Размеры и расположение компонента можно менять, используя перетаскивание мышью с нажатой левой кнопкой сам элемент или метки по его периметру. Для изменения общих свойств нескольких компонентов выделение их выполняется рамкой или по одному с удержанием клавиши Shift. Двойной щелчок кнопки мыши по форме или компоненту вызывает окно, где можно в блоке процедуры с помощью операторов языка программирования написать программный код, определяющий характер действий при обработке соответствующих элементам событий. Private Sub Command1_Click программный код … End Sub Запуск программы для отладки выполняется щелчком по кнопке Start панели инструментов или через меню RUN (Start) или клавишей F5. Для выхода из программы можно использовать кнопку панели инструментов: End или закрыть окно программы. Имеются мощные графические отладчики, позволяющие находить и устранять ошибки в коде программ. Можно установить точки останова, щелчком справа от оператора текста программы, проверить ход программы, при помощи пошагового Debug выполнения. Для компиляции созданного приложения необходимо зайти в меню File, сохранить предварительно проект Save Project As, выбрав маршрут и указав имена файлов формы и проекта и затем в меню File выбрать Make ….EXE. Синтаксис языка Visual BASIC имеет некоторые отличия, но во многом совпадает с синтаксисом GWBasic. Данные языка Visual BASIC Комментарий в тексте программы начинается знаком апостроф (‘). КОНСТАНТЫ объявляются в программе с помощью оператора Const, за которым через запятую перечисляются имена величин с их значениями, например: Const M=4,N=3 и т.д. Оператор Dim объявляет тип переменных, например: Dim My_Name As String Dim Tel As String*9 (девять символов содержит переменная Tel) Dim I As Integer ,J As Integer Dim K As Double, A As Single Оператор DIM также объявляет массивы, например: Dim My_Mass(40) As String Dim Mass1!(1 To 40) Dim Mass2(1 To 30) As Double ИНДЕКСЫ массива – целые выражения, принимающие положительные значения. Минимальное значение равно 0. Массив с двумя индексами: Dim Ocenka(1 To 5, 1 To 20) As Integer Удалить из памяти массивы можно оператором Erase с указанием через запятую списка имен массивов. Для включения возможности изменения размеров массива их объявляют оператором ReDim и в диапазоне индексов можно указать имена переменных, значения которых, например, при решении ввести через текстовые поля. Чтобы при переопределении массива старые значения не были потеряны можно использовать оператор описания в виде: ReDim Preserve . В случае, если обозначение типа данного отсутствует, то идентификатору присваивается тип Variant – произвольный. Основные обозначения: % -целые (Integer), например: Atip%, от -32768 до 32767, ! -вещественные (Single) от 1.41Е-45 до 3.4Е-38, # -двойной точности (Double) от 4.95Е-324 до 1.79Е-308, $ -символьные (String), обрамляются кавычками. Для определения переменных используется оператор ПРИСВАИВАНИЯ: V=A(4) Itog_sceta=Itog_sceta+Ocenka(I,J) C= А(6)+В Ввод вывод данных Для ввода данных может использоваться элемент текстовое поле (TextBox). Он может быть установлен на экранную форму. Оператор присваивания позволяет считать данные введенные с клавиатуры: A=Dlina.Text , где Dlina это имя поля (Name). Считывание: В=InputBox("Комментарий","Заголовок окна","Начальное значение") позволяет вводить данные с помощью специального "окна ввода". Данные можно выбрать из заранее подготовленного или заполняемого при решении задачи "окна списка". Например: Х=ИмяОкнаСписка.List(N). Для ввода из файла используется оператор ОТКРЫТИЯ ФАЙЛА: OPEN. Open "A1.TXT" For Input As #K Открывается файл с именем A1 и расширением TXT, номер его К, затем из файла вводятся данные с помощью оператора Input #K,R переменная R. Оператор Line Input используется для ввода данных из файла построчно. Оператор ЗАКРЫТИЯ файла: CLOSE #K закрывает открытый #К файл. Для вывода в файл используется оператор с записью ( For Output ) и затем (Print #K, … или Write #K, …). Вывод на форму осуществляется оператором ВЫВОДА: PRINT со списком выводимых переменных. Для слитного вывода в ряд числовых значений с комментарием используется разделение точкой с запятой между переменными. Print “РЕЗУЛЬТАТ А и В =”,A;B для раздельного вывода по столбцам, запятая: Print C,D Оператор PRINT без списка данных выполняет перевод строки. Функция TAB производит форматирование вывода. Print Tab(5),X Перед выводом числа Х будет пропущено 5 пробелов. Функция TAB часто используется для построения графиков или таблиц. Результат может быть показан в установленном "текстовом поле", например: ИмяПоля.Text=Y. Нестандартные функции и процедуры Одно из проявлений модульного принципа построения программ это использование собственных функций и процедур. Повторяющиеся в программе арифметические выражения, можно представить в виде оператора функции и соответствующей процедуры. Для описания функции используется например описание: Public Function AA(A As Single,B As Single,C As Single) As Double P=(A+B+C)/2 AA=Int(Sqr(P*A*B*C) End Function где AA– имя или идентификатор функции, в скобках список ФОРМАЛЬНЫХ ПАРАМЕТРОВ ( имена фиктивных переменных фактических значений, которые должны быть вычислены к моменту выполнения функции, если их несколько, то все они перечисляются через запятую). внутри блока вид описываемой функции. В результате работы блока возвращается вычисленное значение АА. Функции как и процедуры могут быть локальными: Private и глобальными: Public. Процедура отличается от функции тем, что она возвращает значения переменных описанных в списке параметров, например: Вызов процедуры: Call ИмяПроцедуры(СписокПараметров) можно записать без скобок и ключевого слова Call , список параметров это переменные через запятую. ИмяПроцедуры СписокПараметров . Сама процедура имеет описание: Public Sub ИмяПроцедуры(СписокПараметров) и операторы для обработки данных или вычислений End Sub Cписок параметров это входные или выходные параметры процедуры. Процедура может обращаться к самой себе (рекурсивная). Некоторые особые стандартные функции Rnd = случайное число из диапазона 0 – 1 (r!=Rnd) (Для генерации псевдослучайных чисел используется оператор Randomize N, где N любое число, или Randomize Timer старт от счетчика времени). Fix(X) – отбрасывает числа после запятой; Сint(X) – определяет наибольшее целое, не превосходящее аргумент; Int(X) – округляет значение до ближайшего целого; Sgn(X) – определяет знак аргумента и присваивает результату значение -1, если знак аргумента отрицательный, 0, если аргумент равен нулю, и 1 , если положительный. Val(X$) – преобразование цифровой строки в цифровое значение; Str(X) – преобразование цифрового значения в текстовую строку, содержащую цифры; Len(Х$) – возвращает длину строки; Mid(Cтрока$,Позиция&,Длина&) – в строке выделяется подстрока с позиции заданной длиной; Asc(Cтрока$) – преобразовывает строку в код ASCII первого символа строки; Chr(Код&) – преобразует код в строку из одного символа. InputBox(Приглашение,Заголовок,Начальное значение) – ввод данных с помощью окна ввода; MsgBox(Текст,Вид значка,Заголовок окна) – вывод окна предупреждения (Вид значка: критическое сообщение=16, вопрос=32, предупреждение=48, информация=64; добавление к этому числу 0 означает кнопка ОК, 1 – это две кнопки: ОК и Отмена, 2 – Стоп, Повтор, Пропустить, 3 – Да, Нет, Отмена, 4 – Да, Нет, 5 – Повтор, Отмена); Функция возвращает значения: 1=ОК, 2=Отмена, 3=Стоп, 4=Повтор, 5=Пропустить, 6=Да, 7=Нет.