Компьютерное моделирование типовых вычислительных алгоритмов

Автор работы: Пользователь скрыл имя, 07 Декабря 2011 в 15:00, курсовая работа

Краткое описание

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

Содержимое работы - 1 файл

$ Курсовая.docx

— 98.07 Кб (Скачать файл)

    Начальное значение, конечное значение и шаг определяют значения, которые принимает параметр цикла при работе программы - на первом шаге параметр цикла принимает начальное значение, после выполнения операторов, входящих в цикл (блок операторов), параметр цикла изменяется на величину шага (выполняется оператор Next), опять выполняются операторы, входящие в цикл, параметр цикла изменяется на величину шага и т. д., пока параметр цикла не примет последовательно все свои значения.

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

    шаг цикла >= 0 и конечное значение >= начальное  значение шаг цикла < 0 и конечное значение <= начальное значение. Для вывода результата используется встроенная функция MsgBox, в которой используется встроенная функция Str 'для преобразования числового значения в строку.

    При использовании оператора цикла  необходимо соблюдать правила:

    1. Следует избегать изменения значения параметра цикла в каких-либо операторах внутри цикла.

    2. Передача управления на операторы  внутри цикла (кроме первого)  из каких-либо операторов вне  цикла запрещена.

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

    При выполнении цикла в цикле внутренний цикл выполняется для каждого  значения параметра внешнего цикла (в фрагментах программ оператор C(I,J) = A(I) * B(J) выполнится 12 раз со следующей последовательностью индексов: С(1,1), С(1,2), С(1,3), С(1,4), С(2,1), С(2,2), С(2,3), С(2,4), С(3,1), С(3,2), С(3,3),С(3,4)).Внутренний (“вложенный”) цикл должен целиком содержаться во внешнем цикле. Число вложенных циклов не ограничено.

    Форма и программы процедур обработки  событии обеспечивают следующую логику работы. При загрузке формы меткам (Label I, Label2, Label3) присваиваются названия экзаменов и активизируется командная кнопка “Ввод”, командная кнопка “Вычисление” не активна Последовательное пятикратное щелканье мыши по кнопке “Ввод” после заполнения информацией текстовых окон обеспечивает ввод необходимых исходных данных После чего командная кнопка “Ввод” деактивизируется, а командная кнопка “Вычисление” активизируется После ввода в текстовое окно под ней фамилии и щелчка мыши по кнопке “Вычисление” производится вычисление средней оценки студента и результат выводится в текстовое окно.

    Оператор  цикла Do-Loop

    Синтаксис оператора следующий:

    Do [{While | Until} логическое выражение] [блок операторов]  [Exit Do] [блок операторов ] Loop или Do [блок операторов]  [Exit Do] [блок операторов ]

    Loop [{While | Until} логическое выражение ] где Do, While, Until, Exit Do, Loop ключевые слова. Пара Do-Loop определяют начало и конец оператора цикла;

    While определяет выполнение операторов, входящих в цикл, пока стоящее следом логическое выражение принимает значение “True”;

    Until определяет выполнение операторов, входящих в цикл, до тех пор пока стоящее следом логическое выражение не примет значения “True”; Exit Do используется для прекращения выполнения цикла (управление передается на оператор, который следует сразу за Loop) и применяется, например, и логическом операторе, который проверяет альтернативное условие прерывания цикла (например, ошибку).

    Запись  условия “{While | Until} логическое выражение в начале или в конце цикла определяет, где это условие (задается логическим выражением) будет проверяться.

    Когда условие проверяется в начале цикла, цикл выполняется, если условие  удовлетворено (значение логического  выражения равно True). Такой вид цикла удобно применять в тех случаях, когда цикл не должен выполняться до тех пор, пока условие не будет выполнено. Операторы чтения файла будут выполняться только в случае значения функции EOF — False (текущая запись не является концом файла).

    Запись  условия в конце цикла означает, что цикл выполнится хотя бы один раз (при этом первом проходе обычно формируется условие, которое затем  будет проверяться). Циклы Do-Loop позволяют также строить циклы со счетчиком, аналогично циклам For-Next.

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

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

    If логическое выражение Then then-последователпость [Else  -последовательность} или

    If логическое выражение Then

    [блок  операторов —  1} [Else If логическое выражение Then

    [блок  операторов —  2]

      [Else [блок операторов — п] ] End If где If, Then, Elself, Else, End If ключевые слова.

    Во  второй синтаксической конструкции If и End If являются как бы открывающей и закрывающей скобкой группы операторов, образующих структурный логический оператор.

    Then-последователность и else-последовательность имеют вид

    {операторы  \ [GoTo] номер строки \ GoTo метка } операторы последовательность расположенных на одной строке операторов, разделенных двоеточием.

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

    Оператор  присваивания (assignment statement) имеет следующий вид:

    [Let] {переменная | элемент массива} = выражение

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

    Если  в левой части оператора используется переменная или элемент массива  символьного типа (String), то выражение в правой части должно быть тоже символьное; Если в левой и правой частях оператора используются арифметические данные (Integer. Long, Single, Double, Currency)  но разных типов, то тип правой части” преобразуется к типу левой части.

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

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

    Оператор  перехода

    Оператор  перехода имеет вид  GoTo { метка | номер строки} и вызывает переход к выполнению оператора, с указанной меткой или номером строки. Следует отметить, что использование оператора перехода в программах является признаком низкой квалификации программиста и его желательно избегать.

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

    GoSub { метка \ номер строки }

    {метка : \ номер строки } Return

    этот  оператор вызывает переход к выполнению группы операторов, начало коюрои указано меткой или номером строки. Последний оператор группы является оператор Return (Return и GoSub — ключевые слова).

    Совместное  использование операторов цикла и условного  операторов

    При одновременном использовании в  процедурах и функциях операторов цикла  и условных операторов должно выполняться  так называемое правило вложенности.

    Если  среди операторов, выполняющихся  в цикле (циклы For-Next и Do-Loop), имеется условный оператор (If-Endlf), то условный оператор должен целиком содержаться внутри цикла (между операторами For-Next или Do-Loop). Если в Then — блоке или Else ~ блоке условного оператора It’-Endlf имеются выполняющиеся в цикле операторы (циклы For-Next и Do-Loop), то эти циклы должны целиком содержаться в этих блоках.

    Visual Basic позволяет :

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

    Visual Basic предоставляет три очень полезных объекта для предоставления доступа к файловой системе. Это списки дисковых накопителей, которые позволяют пролистывать доступные диски в системе; списки директорий, которые позволяют ориентироваться в папках на выбранном диске, и списки файлов, позволяющие выбрать нужный файл в папке.

    Использование объектов данных для просмотра баз  данных Microsoft Access.

    Для работы с базами данных Visual Basic предоставляет три объекта, которые позволяют показывать и изменять информацию в файлах базы данных. Объект данные, дает доступ к полям и записям файла базы данных непосредственно на форме. Объект также позволяет менять информацию в базе данных.

      Если вы регулярно работаете  с базами данных - особенно с  Microsoft Access, Microsoft FoxPro, Paradox, Brieve и Base - то Visual Basic окажется весьма мощным средством для обработки и отображения данных. Поскольку Visual Basic предусматривает технологию обработки баз данных, аналогичную, используемой Microsoft Access , то можно создавать основные приложения для работы с базами данных с помощью всего нескольких десятков строк в тексте программы.

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

      Средства управления Line(отрезок) и Shape(фигура) позволяют создать геометрические фигуры.

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

    Любая программа, написанная даже квалифицированным  программистом, содержит ошибки, которые  выявляются и исправляются в процессе отладки программы. Кроме того, при работе с отлаженной программой пользователь может создать ситуацию, которая программой не обрабатывается корректно Рассмотрим процесс отладки программ и способы обработки ошибок при выполнении программы и имеющиеся для этого средства в Visual Basic

 

  1. Аппроксимация.

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

    Концепция аппроксимации

                Близость исходной и аппроксимирующей функций определяется числовой мерой – критерием аппроксимации (близости). Наибольшее распространение получил квадратичный критерий, равный сумме квадратов отклонений расчетных значений от «экспериментальных» (т.е. заданных), - критерий близости в заданных точках :

    

                Здесь yi – заданные табличные значения функции; - расчетные значения по аппроксимирующей функции; - весовые коэффициенты, учитывающие относительную важность i –й точки (увеличение  приводит при стремлении уменьшить R к уменьшению прежде всего отклонения в i –й точке, так как это отклонение искусственно увеличено за счет относительно большого значения весового коэффициента).

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

Информация о работе Компьютерное моделирование типовых вычислительных алгоритмов