Введение

ИНФОРМАТИКА

В.П. ЖУКОВ. КУРС ЛЕКЦИЙ. 2001 г.

Содержание

Информатика и информация
Структура ПК - структура курса
Вспомогательная оболочка Norton Commander
Язык программирования Турбо Паскаль
Операторы повторения (цикла)
Условный оператор IF
Графика Турбо Паскаля
Среда Турбо Паскаля
Первичная обработка информации
Численное дифференцирование
Численное интегрирование
Решение нелинейных уравнений
Численное решение дифференциальных уравнений
Численное решение системы дифференциальных уравнений

Введение

Предлагаемый курс лекции по информатике разработан для студентов электромеханического факультета, обучающихся по специальностям 180100 и 180400 в рамках проекта "Синтез знаний". Данный проект предусматривает одновременное преподавание смежных тем по различным дисциплинам, что повышает, по нашему мнению, качество обучения. В первом семестре при изучении математики и информатики синхронизированы соответственно следующие темы: исследование функций – табулирование и построение графиков функций; дифференцирование - численное дифференцирование; интегрирование - численное интегрирования; решение дифференциальных уравнений - численные методы решения дифференциальных уравнений и т.д. Такая синхронизация определила порядок изложения материала в предлагаемом курсе. Курс лекций состоитиз 3 частей (20 лекций).

В первой части (лекции 1-3) рассмотрены цель и задачи курса, структура и назначение частей компьютера, операционные системы DOS и WINDOWS.

Во второй части (лекции 4-9) даны основные сведения о Турбо Паскале, рассмотрены методы первичной обработки информации.

В третьей части (лекции 10-20) приведены численные методы решения инженерных задач, задания к лабораторным и зачетной работам.

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

  1. Фигурнов В.Э. IBM PC для пользователя. Краткий курс. - М.:ИНФРА, 1997.
  2. Ахметов К. Windows 95 для всех - М.: Компьютер пресс, 1997.
  3. Фаронов В.В. Основы турбо-паскаля. - М.:Наука, 1992.
  4. Довгаль С.И., Литвинов Б.Ю., Сбитнев А.И. Персональные ЭВМ: турбо-паскаль v.7.0, объектное программирование, локальные сети. - Киев, 1993.
  5. Kaрякин А.М. Основы вычислительной техники и программирования. Учебное пособие. Ивановский государственный энергетический университет. - Иваново, 1994.
  6. Шуп Т. Решение инженерных задач на ЭВМ. - М.:Мир,1982
  7. Дьяконов В.П.Справочник по алгоритмам и программам на языке бейсик для персональных ЭВМ. - М.:Наука,1987.
  8. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. - М.:Наука,1984.-832 с.
  9. Зельдович Я.Б., Яглом И.М. Высшая математика для начинающих физиков и техников.- М.:Наука,1982.-512 с.


Информатика и информация

Цель и задачи курса

Цель курса: научить студента решению инженерных задач с помощью персонального компьютера (ПК).

Задачи курса:

  • получить представление об информатике и информации;
  • изучить структуру ПК и назначение его элементов;
  • изучить основные операции технологии программирования;
  • изучить язык Турбо Паскаль и его графические возможности;
  • изучить численные методы решения инженерных задач;
  • получить представление о математическом моделировании;
  • получить представление о базах данных.

Информатика - это наука, изучающая законы и методы получения, переработки, хранения и передачи информации с помощью ПК.

Информация – сведения о ком-то или о чем-то, представленные в форме знаков и символов.

Для измерения количества информации используют 1 бит – один символ двухбуквенного алфавита, состоящего из нулей и единиц {0,1}.

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

1 байт=8 бит,

1024 байт=1 Кбайт,

1024 Кбайт=1 Мбайт,

1024 Мбайт=1 Гбайт.

В 1948 году Шенон предложил следующий способ измерения количества информации. Пусть X - случайная величина, принимающая значения x1, x2, x3,…, xn c вероятностью p1, p2, p3,…, pn, и Y- случайная величина, принимающая значения y1, y2, y3,…, yn c вероятностью q1, q2, q3,…, qn. Тогда информация I(X,Y) относительно Y, содержащаяся в X, определяется формулой

где pij - вероятность совмещения событий Х = xi и Y= yj.

Свойства информации:

  1. I(X, Y)≥0,
I(X, Y) = 0 при pij = pi qj т.е. X, Y – независимые
события,I(X, Y) = I(Y, X),
  2. I(X, Y) = H(X) + H(Y) – H(X, Y)
    где H – информационная энтропия,
  3. H(X) = ∑ pi log2 (1/pi),
    H(Y) = ∑ qj log2 (1/qj),
    H(X, Y) = ∑ pij log2 (1/pij).
    Величина энтропии показывает среднее число знаков, необходимых для различия (записи) возможных значений случайной величины. Это позволяет понять роль количества информации при хранении информации в запоминающих устройствах.

Если величины X,Y – независимые, то для записи Х требуется в среднем H(X) двоичных знаков, для записи Y – H(Y), а для пары (X,Y) – H(X)+H(Y).

Если величины X,Y зависимы, то среднее число двоичных знаков оказывается меньше H(X,Y)=H(X)+H(Y)-I(X,Y).

Области применения ПК

  1. Научные и инженерные расчеты.
  2. Управление и автоматизация технологическими процессами (оборона, энергетика, космос и др.).
  3. САПР - система автоматизированного проектирования.
  4. Распознавание образов.
  5. Базы данных.
  6. Виртуальное пространство (гиперпространство).
  7. Internet: Internet дом, Е-mail.
  8. Музыка, кино, реклама, мультипликация, телевидение, издательская деятельность и т.д.
  9. Нейрокомпьютеры.

Вопросы для контроля.

  1. Чем отличается информатика от информации?
  2. Как измерить количество информации?
  3. Что такое информационная энтропия?
  4. Какое минимальное количество информации (бит) необходимо для угадывания одного выбранного человека из 32?
Содержание
Следующая


Структура ПК - структура курса

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

Аппаратные средства | Программное обеспечение (ПО)
Процессор | Системное ПО | Прикладное ПО
Сопроцессор | Операционная система | Базы данных
Дисплей, принтер, плоттер | Вспомогательные оболочки (nc, wc) | Текстовые редакторы
Оперативная память | Языки программирования | Графические редакторы
Дисководы |  | Разработки и программы пользователя
Клавиатура, мышь |  |

  1. Аппаратные средства
    1. Процессор - основной элемент ПК для обработки информации. Тактовая частота: 20, 40, 100, 166, 700, 800, 1400, … MГц.
    2. Сопроцессор - предназначен для увеличения (в 4-20 раз) скорости выполнения математических операций.
    3. Дисплей - устройство для вывода информации. Размер экрана 14", 15", 17", 19", …. Разрешение 640×200, 640×480, 720×348, 1024×768, 1152×864, 1600×1200,.. пикселей.
    4. Оперативная память - служит для хранения информации, емкость оперативной памяти: 0.63, 1, 4 ,8, 16, 32, 64, 128, 256, 512,… Мбайт.
    5. Дисковод - устройство для ввода-вывода и хранения информации на дисках:

      Гибкие диски (FDD):

      3.5" - 0.720, 1.44, 2.0 Мбайт.

      5" - 0.360, 0.720, 1.2 Мбайт.

      Лазерный диск (CD) - 650 Мбайт.

      Жесткий диск (HDD, винчестер) - 10, 20,40, 60, 160, 800, 1200, 2100, 10000, 20000, 30000, 40000, 60000,… Мбайт

    6. Модем - устройство для подключения компьютера в сеть через телефон.
    7. Сканер - устройство для графического ввода информации.
    8. Принтер, плоттер - устройство для вывода информации на печать.
    9. Клавиатура - устройство ввода информации.

      На клавиатуре размещены клавиши русских и латинских букв, цифр и несколько социальных клавиш:

      (←↑→↓) – управление курсором.

      Esc - отмена, отказ.

      Tab - табулирование.

      Del - удаление символа над курсором.

      ← - "забой", удаление символа слева от курсора.

      Ins - клавиша переключения режима забой/вставка.

      Home - перевод курсора в начало строки.

      End - перевод курсора в конец строки.

      PgUp - переход на страницу вверх.

      PgDn - переход на страницу вниз.

      F1-F12 - функциональные клавиши.

      Enter - клавиша ввода.

      Break -прерывание.

      Shift – cмена регистра при удержании.

      Саps Lock - cмена регистра.

      Num Lock – перевод правой клавиатуры в цифровой режим.

      Print Screen - печать экрана в буфер обмена.

      Ctrl-Alt-Del - перезагрузка.

  2. Программное обеспечение

    Программное обеспечение на компьютере хранится в каталогах (директориях, папках) в виде файлов.

    Файл - это обособленный программный продукт.

    Имя файла состоит из трёх частей:

    1. Спецификатор накопителя {A:\Pascal}.
    2. Имя файла {Латинские буквы и цифры, до 8 символов. Символы « . , : ; < > \ / | + = » в имени файла использовать НЕЛЬЗЯ!!!}.
    3. Расширение файла. {Латинские буквы и цифры, до 3 символов. Символы « . , : ; < > \ / | + = » в расширении файла использовать НЕЛЬЗЯ!!!}.

    Примечание 1: Если в имени или в расширении файла стоит "?", то на его месте может стоять любой символ.

    Пример.

    Примечание 2: Если в имени или в расширении файла стоит "*", то на его месте может стоять любая последовательность символов.

    Пример.

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

    2.1. Системное программное обеспечение

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

    Операционная система предназначена для облегчения работы на ПК. Наибольшее распространение получили дисковая операционная система DOS и многозадачная операционная система WINDOWS корпорации Microsoft.

    Операционная система MS-DOS загружается автоматически при включении компьютера. Операционная система подключает внутренние и внешние функции. Внешние функции выполняются при наличии дополнительного файла, внутренние – без дополнительного файла.

    Таблица

    Назначение некоторых функций операционной системы DOS.

    Команды

    Тип

    Назначение

    Пример

    COPY

    Внутренняя

    копирование

    COPY a:p.pas c:\tp\p.pas

    DATE

    Внутренняя

    позволяет задать или изменить дату

    DATE

    DEL

    Внутренняя

    удаление файлов

    DEL a:p.pas

    DIR

    Внутренняя

    вывод содержимого каталогов

    DIR C: DIR C:\CW

    REN

    Внутренняя

    переименование

    Файла

    REN a.pas b.pas

    TIME

    Внутренняя

    Изменение, установка даты

    TIME

    FORMAT

    Внешняя

    Форматирование диска

    FORMAT A:

    Graphics

    Внешняя

    Вывод на принтер графического экрана

    Graphics


Вспомогательная оболочка Norton Commander (NC)

Оболочка Norton Commander (NC) предназначена для облегчения работы с дисковой операционной системой.

nc.exe - загрузочный файл NC.

Определения:

Файл – обособленный программный продукт.

Директория, папка, каталог – некоторая обособленная совокупность файлов.

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

Активный файл (директория, панель) – такой файл (директория, панель), на котором находится курсор.

Назначение функциональных и зарезервированных в NC клавиш:

F1 - помощь.

F2 - меню пользователя.

F3 - просмотр активного файла.

F4 - редактирование активного файла.

F5 - копирование активного файла из активной панели в неактивную (после выполнения команды остается 2 файла: старый и новый).

F6 - перемещение / переименование активного файла из активной панели в неактивную (после выполнения команды остается 1 файл).

F7 - создание каталога (директории).

F8 - удаление активного файла / каталога.

F9 - выход в меню NC.

F10 - выход из NC в DOS.

Tab - смена активности панелей.

"+"- выбор группы файлов.

"-"- снимает выделение с файлов активной панели.

Ins - выделение активного файла / группы файлов / каталога.

Alt+F1 - выбор активного диска в левой панели.

Alt+F2 - выбор активного диска в правой панели.

Ctrl+F1 - убрать левую панель.

Ctrl+F2 - убрать правую панель.

Alt+F7 - поиск файла.

Ctrl+Enter - перемещение активного файла в командную строку.

Shift+F9 - сохранение конфигурации.

Ctrl+Е - вызов предыдущей команды в командную строку.

Ctrl+U - смена панелей.

Ctrl+L – вывод информации о диске.

Ctrl+Break- прерывание программы.

Операционная система Windows

Microsoft® Windows – многозадачная операционная система, которая в последнее время развивается наиболее динамично.

Историческая справка.

1985 – Windows 1.0.

1987-1988- Windows/286, Windows/386 (Windows 2.x).

1990 – Windows 3.0 – лучший продукт года, продано 5 млн. экземпляров.

1993-1995 -Windows 95.

Windows 95 – первая самостоятельная операционная система, которая не использует команды DOS. Аппаратные требования: процессор 80386, оперативная память - 4 Мбайт, монитор - VGA, свободное пространство на HDD - 30-40 Мбайт.

Преимущества Windows:

  1. Многозадачность.
  2. Широкие возможности совместимости периферийных устройств.
  3. Операционная система одноранговой локальной сети.
  4. Встроенный выход в Internet.
  5. Разрешает записывать имена файлов из 255 символов.
  6. Оформление в виде рабочего стола и папок.

Рабочий стол содержит несколько программ - значков, которые позволяют запустить программы на выполнение. Минимальное количество объектов на рабочем столе - два: Мой компьютер (My Computer) и корзина (Recycle).

Каждой программе соответствует окно, которое можно перемещать по экрану, изменять его размер и закрывать. Управление приложениями осуществляется, как правило, мышкой, которая имеет три или две клавиши:

  • Однократное нажатие на левую клавишу активизирует объект, на который указывает стрелка.
  • Двукратное нажатие на левую клавишу приводит к запуску соответствующей программы.
  • Нажатие и удержание левой кнопки позволяет перетаскивать/копировать приложения на рабочем столе.
  • Нажатие правой кнопки в Windows - вызов контекстного меню.

Назначение некоторых клавиш и их комбинаций:

  • Alt+F4 или Ctrl+F4 - закрытие окна,
  • Alt+Tab - переключение между текущими приложениями,
  • Tab - перемещает курсор с рабочего стола на панель задач (нижняя строка экрана)

Windows Commander (WC) вспомогательная оболочка для Windows, которая практически дублирует функции оболочки Norton Commander (NC).

Правая кнопка мыши в WC сохраняет функцию вызова контекстного меню.


Язык программирования Турбо Паскаль

  1. Идентификаторы языка Турбо Паскаль (ТП)

    Идентификаторами ТП называют произвольный набор символов.

    Требования к идентификаторам:

    • Идентификатор состоит из латинских букв и цифр (заглавные и строчные буквы не различаются).
    • Идентификатора должен начинаться обязательно с буквы {"а1", а не "1а"}.
    • Идентификатор может состоять из любого количества символов, но распознаются только первые 63 .
    • Служебные слова запрещается использовать в качестве идентификаторов.
    • При написании идентификатора нельзя использовать пробелы.
  2. Общие понятия и правила программирования на языке Турбо Паскаль
    • Программа составляется из операторов Турбо Паскаля, которые разделяются символом ";".
    • Для выделения группы операторов используют операторные скобки: begin…..end.
    • Несколько операторов, заключенных в операторные скобки, называют составным оператором.
    • В тексте программы фигурными скобками выделяются комментарии, которые игнорируются при выполнении программы. В тексте лекций будем также использовать фигурные скобки для комментирования.
  3. Структура программы на языке Турбо Паскаль

    Program P1; {заголовок, название программы} {±}

    Uses………;{подключение внешних модулей с расширением *.tpu}{±}

    Const……...;
  {описание констант}
  {±}

    Type………;
  {задание типов}
   {±}

    Var………..; {раздел объявления переменных}{±}

    Function F1
  ….;
  {описание функций}
  {±}

    Procedure Pr1 ….; {описание процедур} {±}

    Begin{начало основной программы} {+}

    ….. {тело основной программы} {±}

    End. {конец основной программы} {+}.

    Примечание. {+} – обязательная часть программы,

    {±} – необязательная часть программы.

    Рассмотрим основные части программы

    3.1. Uses – подключение внешних библиотек для расширения в программе набора доступных операторов.

    Пример:

    UsesDOS, Crt, Graph, Printer; { Подключение четырех стандартных модулей:

    DOS – использование в программе команд операционной системы.

    Crt – расширение возможностей ввода-вывода, использование звукового генератора.

    Graph – подключение графических процедур и функций.

    Printer – легкий доступ к печати.}

    Пример. Следующая программа обеспечивает реализацию легкого доступа к печати.

    UsesPrinter; { подключение модуля}

    begin

    Write(‘привет’); { выводится на экран слово "привет"}

    Write(lst,‘привет’); { выводится на принтер слово "привет"}

    end.

    3.2. Const (константы).

    В этом разделе описания идентификаторам задаются значения, которые не меняются при выполнении программы.

    Пример.

    Const

    a=4; {численная константа}

    b=’A’; {символьная константа }

    s=’ABBA’; {строковая константа }

    b1=false; {логическая константа }

    M:array[1..4] of integer=(1,5,6,7); {массив констант }.

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

    На рисунке приведены основные типы данных языка Турбо Паскаль.

    Основные типы данных ТП

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

    Простые типы

    3.3.1 Численные типы

    Тип

    Размер,

    Байт

    Диапазон значений

    Byte

    1

    0…255

    Shortint

    1

    -128…127

    Word

    2

    0…65535

    Integer

    2

    -32768…32767

    Longint

    4

    -2147483648…2147483647

    Single

    4

    7..8 значащих цифр

    -45…38-диапазон десятичного порядка

    Real

    6

    11..12 значащих цифр

    -39…38-диапазон десятичного порядка

    Double

    8

    15..16 значащих цифр

    -324…308-диапазон десятичного порядка

    Extended

    10

    19..20 значащих цифр

    -4951…4932-диапазон десятичного порядка

    3.3.2. Символьные переменные - char

    Значениями символьного типа является множество всех символов ПК. Каждому символу приписывается целое число в диапазоне 0…255.

    3.3.3. Логические переменные - boolean

    Значениями логического типа может быть одна из предварительно объявленных констант (False – ложь, True – истина).

    Сложные типы

    3.3.4. Массивы- array.

    Тип данных Массив позволяет одному идентификатору задать несколько значений, которые отличаются порядковым номером. Номер элемента массива указывается после идентификатора в квадратных скобках {M[5] – пятый элемент массива М}. При описании массива указывается диапазон номеров элементов массива и тип, к которому относится каждый его элемент. Массивы могут быть одно-, двух- и многомерными.

    Пример описания и заполнения элементов массива.

    Var {описание массивов}

    M: array [1..5] of integer; {одномерный массив М с номерами элементов от 1 до 5, состоящий из целых чисел}

    M1: array [2..3,11..15] of char; {двумерный массив М1 с номерами строк от 2 до 3, с номерами столбцов от 11 до 15, состоящий из символов}

    Begin {заполнение массива}

    М[2]:=100; {второму элементу численного массива М присвоено значение 100}

    М1[2,3]:=’d’; {элементу второй строки и третьего столбца символьного двухмерного массива М1 присвоено значение ’d’}

    End.

    3.3.5. Строковые переменные – string.

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

    Пример.

    Var s:string; {описание идентификатора s как строковую переменную}

    Begin

    s:=’Привет’; {задание значения строковой переменной}

    Writeln(s); {распечатка на экране слова "Привет"}

    end.

    3.4. Var (Переменные).

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

    Пример.

    Var

    x,y:real; {идентификаторы x,y - переменные реального типа}

    i,j,k:integer; { идентификаторы i,j,k – переменные целого типа }

    M:array [1..4] of char; { M - одномерный символьный массив из 4 элементов}

    M1:array [1..3,1..4] of byte; { M1 двухмерный массив из 12 элементовцелого типа}

    Type

    re=real; { описание нового типа: идентификатор re - реальный тип}

    Var

    z:re; {идентификатор z – переменная типа re, то есть реального типа}

    {Четыре последние строки примера можно заменить следующим

    образом: Var z:real;}

    3.5. Основная программа

    Основная программа, как правило, состоит из трех частей:

    1. Ввод исходных данных.
    2. Расчет.
    3. Вывод результата.

    Рассмотрим эти части более подробно.

    3.5.1. Ввод исходных данных.

    Варианты ввода исходной информации покажем на примерах:

    • Const х=20; {идентификатору x задается постоянного значения в разделе описания констант}
    • y:=20; {идентификатору y присваивается численное значение в теле основной программы}
    • read(x); { выполнение программы приостанавливается для ввода значения "x" с клавиатуры. Оператор аналогичен оператору INPUT в Бейсике}
    • readln(x); {ввод значения идентификатора с новой строки}
    • read(x,y); {ввод двух значений x ,y. Одно значение от другогоотделяется нажатием клавишей пробела или Enter}
    • Write(‘x= ’); readln(x); {Ввод значения с пояснением. На экране в месте ввода появляется сообщение: ‘х= ’}

    3.5.2.Расчет.

    Основные математические соотношения и операции Турбо Паскаль:

    • + { сложение}
    • – { вычитание}
    • * { умножение}
    • / { деление}
    • = {равенство (используется при описании констант, типов и т.д.)}
    • := {присваивание}
    • > { больше}
    • < { меньше}
    • >= { больше либо равно}
    • <= { меньше либо равно}
    • <> { не равно}.

    Стандартные функции Турбо Паскаля

    • abs(x); {модуль, абсолютная величина}
    • exp(x); {еx- экспонента}
    • sqr(x); {x2 - квадрат числа}
    • sqrt(x); { [image] - корень квадратный}
    • ln(x); {вычисление натурального логарифма }

    { [image] - вычисление логарифма по произвольному основанию}

    {xa=exp(a*ln(x)) - возведение в степень}

    • sin(x); {-вычисление синуса}
    • cos(x); {-вычисление косинуса}

    {tg(x) = sin(x)/cos(x) - вычисление тангенса}

    {ctg(x) = cos(x)/sin(x) - вычисление котангенса}

    • arctan(x); {вычисление арктангенса}
    • round(x); {округление: x=4.9; y=round(x), ⇒ y=5 }
    • trunc(x); { выделение целой части: x=4.9; y=trunc(x), ⇒ y=4}
    • i mod j; { остаток целочисленного деления 10 mod 3 → 1 {10:3=3(1)}
    • i div j ; { целочисленное деление 10 div 3 → 3}
    • chr(i) ; { по порядковому номеру i возвращает символ}
    • ord(b); {функция, обратная предыдущей (возвращение порядкового номера)}
    • int(r) ;{возвращение целой части числа}
    • frac(r) ;{возвращение дробной части числа}

    Стандартные процедуры

    • Dec(i); {i:=i-1}
    • inc(i); {i:=i+1}
    • GotoXY(i,j); {перемещение курсора в указанную точку экрана с координатами i, j}
    • str(x,S); {идентификатор численного типа x переводит в строковую переменную S: x→S. }{ Требуется модуль Crt}
    • Clrscr; {очистка экрана} {Требуется модуль Crt }

    Константы

    Pi{число π = 3.14…}

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

    • Write(x); {вывод на экран значения x: при реальном x=4, на экран выводится "4.0000000000E+00"}
    • Write(x:5:1); {вывод форматированных данных, то есть выделение на экране заданного количества позиций для вывода идентификатора: 5 показывает общее число позиций, 1 – число знаков после запятой: при x=4 , на экран выводится "4.0"}
    • Writeln(x); {вывод с новой строки}
    • Writeln(x,y); {вывод двух значений идентификаторов}
    • Writeln(‘x= ’,x:4:1); {вывод с комментариями и форматированием: "x= 4.0"}
    • Writeln(‘Площадь круга радиусом 3 м равна’,3.14*sqr(3):4:1); {Вывод с комментариями и выполнением расчетов: "Площадь круга радиусом 3 м равна 28.3"}

    Технология программирования

    Включает пять технологических операций (этапов):

    1. Постановка задачи.
    2. Математическое описание.
    3. Алгоритм – структограмма.
    4. Написание текста программы.
    5. Отладка, получение результатов.

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

    Пример. Определить площадь круга.

    Этапы разработки программы сведены в таблицу.

    Таблица

    N

    Этапы программирования

    Выполнение

    1.

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

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

    2.

    Математическое описание

    Расчетная формула: S=πR2

    3.

    Разработка алгоритма (структограммы)

    Описание R,S

    Ввод R

    Расчет S=πR2

    Вывод S

    4.

    Написание программы

    Program P1; { программа вычисления площади круга}

    Var r,S:real; {Описание переменных}

    Begin

    Read(R); {в этом месте программа останавливается, для ввода числового значения R}

    {R:=4;}{другой вариант ввода исходных данных}

    S:=3.14*Sqr(R); {расчет}

    {S:=Pi*sqr(R);} {другой вариант расчета}

    Writeln(‘R=’,R:3:1, ‘S=’,S:8:4); {Вывод}

    end.

    5.

    Отладка и получение результатов

    R= 4.0 S= 48.7654

    Структурное программирование

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

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

    1. Программа разбивается на блоки, каждый из которых имеет один "вход" и один "выход".
    2. Любая программа может быть составлена из трех структур или блоков, которые представлены в таблице.
    3. Алгоритмы при структурном программировании представляются в виде структоргамм, элементы написания которых также приведены в таблице.

    Таблица

    Основные типы структур и примеры их изображения на структограммах

    Название

    Алгоритм

    Блок-схема

    Структограмма

    а) линейная структура

    б) Ветвящаяся структура

    в) циклическая структура:

    с предусловием

    с постусловием


Операторы повторения (цикла)

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

Для организации цикла в ТП имеются три различных оператора.

  1. Счетный оператор цикла For:

    For <параметр цикла>:=<начальное значение> to <конечное значение> do Р;

    P- простой или составной оператор.

    При каждом прохождении цикла < параметр цикла >, начиная с <начального значения>, увеличивается на единицу. Цикл выполняется, пока <параметр цикла> не станет больше <конечного значения>.

    Другой вариант записи оператора For:

    For <параметр цикла >:=< начальное значение> downto <конечное значение> do Р;

    В этом случае при каждом прохождении цикла < параметр цикла > уменьшается на единицу от <начального значения> до <конечного значения>.

  2. Оператор цикла While с проверкой предусловия:

    While <условие> do P; {Пока выполняется условие, делать}

    Цикл выполняется, пока условие истинно (true).

  3. Оператор цикла Repeat … until с проверкой постусловия:

    Repeat P until <условие>; {Выполнять до тех пор, пока не будет выполнено условие}

    Цикл выполняется, пока условие ложно (false).

    Пример.

    1. Постановка задачи. Найти сумму 5 целых чисел от 1 до 5. Написать программы для определения суммы с помощью трех рассмотренных операторов цикла.
    2. Математическое описание.
    3. Структограммы и программы для каждого оператора цикла приведены в таблице:

    Таблица

    Структограммы и программы

    Цикл For …

    While…

    Repeat…

    3.1.

    3.2

    3.3

    4.1:

    Program P2;

    Var i,S:integer;

    Begin

    S:=0;

    For i:=1 to 5 do

    S:=S+i;

    Writeln(‘S=’,S:5);

    End.

    4.2:

    Program P2;

    Var i,S:byte;

    Begin

    S:=0; i:=1;

    While i<=5 do

    Begin

    S:=S+i;

    I:=i+1;

    End;

    Writeln(‘S=’,S);

    End.

    4.3:

    Program P3;

    Var i,S:integer;

    Begin

    S:=0; i:=1;

    Repeat

    S:=S+i;

    I:=i+1;

    Until i>=6;

    Writeln(S);

    End.


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

- предназначен для ветвления программы на два направления.

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

Рассмотрим четыре варианта записи оператора IF:

  1. If <условие> then P1 else P2;
  2. If <условие> then P1;
  3. If (<условие1>) or (<условие2>) then P1 else P2;
  4. If (<условие1>) and (<условие2>) then P1 else P2;

где <условие>,<условие1>, <условие2> - переменные логического типа. Р1, Р2 - простые или составные операторы.

  • В первом случае если условие истинно, то выполняется оператор P1, если ложно – то P2.
  • Во втором варианте записана краткая форма оператора.
  • В третьем и четвертом примерах два условия объединены служебными словами or (или) и and (и). В результате объединения получается новая логическая переменная, истинность которой определяется согласно следующей таблицы.

Таблица

Таблица истинности сложных условий: И - истинно, Л - ложно

(<условие1>) | И | И | Л | Л
(<условие2>) | И | Л | И | Л
(<условие1>) or (<условие2>) | И | И | И | Л
(<условие1>) and (<условие2>) | И | Л | Л | Л

Пример. Написать программу для решения квадратного уравнения a∙x2+b∙x+c=0.

Технологические операции программирования и их выполнение приведены в таблице

Таблица

N | Этапы программирования | Выполнение
1. | Постановка задачи | Написать программу для решения квадратного уравнения a∙x2+b∙x+c=0.
2. | Математическое описание |
3. | Разработка структограммы |
4. | Написание программы | Program P3; Var a,b,c,d,x1,x2:real; Begin a:=1; b:=3; c:=5; D:=sqr(b)-4*a*c; If D>=0 then Begin X1:=(-b+sqrt(D))/2/a; X2:=(-b-sqrt(D))/2/a; Writeln(x1,x2); End Else Writeln(‘Действ.корней нет’); End.
5. | Отладка и получение результатов | Выполнить самостоятельно

Оператор выбора (case)

Предназначен для ветвления программ на 2 или несколько направлений.

Case <ключ выбора> of <список выбора> else P end;

<ключ выбора> - идентификатор целого или символьного типа,

<список выбора> - включает в себя две или более конструкций следующего вида:

<константа выбора> : <оператор>;

<константа выбора> - это идентификатор того же типа, что и <ключ выбора>.

Пример. Для 100 целых значений x рассчитать значение [image].

Составить два варианта программ: с помощью условного оператора if и c помощью оператора выбора Case.

Технологические операции программирования приведены в таблице

Таблица

N | Технологическая операция | Выполнение
1. | Постановка задачи | Для 100 целых значений x рассчитать значение y,
2. | Математическое описание | Для определения четности воспользуемся оператором mod – остаток целочисленного деления: Если x mod 2=0, то x-четное Если x mod 2=1, то x-нечетное
3. | Разработка структограммы |
4. | Написание программы |
4.1 | С помощью оператора If | Program P4; Var x,y:integer; Begin For x:=1 to 100 do Begin If x mod 2 =0 then y:=2*x else y:=2+x; Writeln(x,y); End; End.
4.2 | С помощью оператора Case | Program P4; Var x,y:integer; Begin For x:=1 to 100 do Begin Case x mod 2 of 0: y:=2*x; 1: y:=2+x; end; Writeln(x,y); End; End.
5. | Отладка и получение результатов | Выполнить самостоятельно

ФУНКЦИЯ И ПРОЦЕДУРА

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

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

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

  1. Заголовок:

    Function F1(<С.Ф.П.>): тип; {для функций},

    Procedure Pr(<С.Ф.П.>); {для процедур},

    где Function, Procedure – служебные слова, показывающие, что далее следует описание функции и процедуры соответственно,

    F1 и Pr – имена функции и процедуры, которые записываются как идентификаторы ТП, <С.Ф.П.> - список формальных параметров.

    Входные параметры от выходных при описании процедуры разделяются служебным словом var. Выходным параметром у функции является имя функции.

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

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

Технология разработки программы приведена в таблице.

Таблица

N

Этап программирования

Выполнение

1

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

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

2

Математическое описание

Формула для площади круга S=π∙R2

3

Разработка структограммы

3.1

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

3.2

С использованием процедуры

4.

Написание программы

4.1

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

Program PY;

Var R,S:real;
Function PL(R:real):real;{Описание функции }

Begin
PL:=p*sqr(R);

End;

Begin

R:=3;
S:=PL(R); {Обращение к функции}

Writeln(R,S);

End.

4.2

С использованием процедуры

Program PY;

Var R,S:real;
Procedure PL(R:real;var S:real); {Описание процедуры }

Begin
S:=p*sqr(R);

End;

Begin

R:=3;
PL(R,S); {Обращение к процедуре}

Writeln(R,S);

End.

5.

Отладка и получение результатов

Выполнить самостоятельно


Графика Турбо Паскаля

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

Графические процедуры

Arc(x,y:integer;St,En,R:word); {рисование дуги, где x,y - коорд. центра дуги, R - радиус, St, En - нач. и конечный углы.}

ClearDevice; {очистка экрана}

Circle(x,y:integer;R:word); {окружность радиуса R

cцентром в точке (x,y)}

CloseGraph; {закрытие графики}

InitGraph(gd,gm:integer;Path:string); {инициализация графики, где

gd - графический драйвер,

gm - графический режим,

Path - путь размещения файла

с расширением .bgi.}

Line(x1,y1,x2,y2:integer); {рисование линии, проходящей через две точки:

с координатами (x1,y1) и (x2,y2) }

LineRel(dx,dy:integer); {рисование линии: dx, dy – приращения

координат к координатам текущей

позиции курсора}

LineTo(x,y:integer); {рисование линии, проходящую через текущую

позицию курсора и точку с координатами (x,y)}

Moveto(x,y:integer); {задание координат текущей точки}

OutText(T:string); {вывод текста в текущую точку}

OutTextXY(x,y:integer;T:string);{вывод текста в точку с координатами х,у}

Rectangle(x1,y1,x2,y2:integer); {рисование прямоугольника: (x1,y1) и (x2,y2) - координаты противоположных вершин}

PutPixel(x,y:integer;c:word); {выводит точку с координатами (х,у) цветом с}

Графические функции

GetMaxX - определяет максимальный размер экрана по оси x.

GetMaxY - определяет максимальный размер экрана по оси y.

GetX - координата текущей позиции курсора по оси x.

GetY - координата текущей позиции курсора по оси y.

Машинные координаты

Начало машинной системы координат, направление осей, а также максимальные значения координат монитора показаны на рисунке

На рисунке приведена также машинная (xm, ym) и физическая (x,y) системы координат. Для изображения на экране точки с физическими координатами (x,y) необходимо определить ее машинные координаты (xm, ym). Расчетные формулы имеют следующий вид (попробуйте самостоятельно получить эти формулы):

xm=x0+x*Mx ,

ym=y0-y*My,

где Mx, My-масштабы соответственно по осям x и y, которые показывают число пикселей в одной физической единице,

x, y- физические координаты точки,

xm, ym- машинные координаты точки,

x0, y0- машинные координаты начала физической системы координат.

Пример. Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора.

Этапы разработки программы сведены в таблицу.

Таблица

N | Этапы программирования | Выполнение
1. | Постановка задачи | Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора.
2. | Математическое описание | Изобразим вид экрана с указанием координат требуемых линий
3. | Разработка структограммы |
4. | Написание программы | Program P5; Uses graph; {подключение граф.модуля} Var gd,gm:integer; Begin gd:=detect;{определение граф. драйвера} InitGraph(gd,gm,’ ‘);{инициализация графики} Line(0, round(GetMaxY/2), GetMaxX, Round(GetMaxY/2));{гориз. лин.} Line(round(GetMaxX/2), 0, Round(GetMaxX/2), GetMaxY); {вертик. лин.} Readln; {пустой ввод} CloseGraph; {закрытие графики} End.
5. | Отладка и получение результатов | Выполнить самостоятельно

Пример. Написать программу построения графика функции y=x2 для x∈[-1;1].

Этапы разработки программы сведены в таблицу.

Таблица

N | Этапы программирования | Выполнение
1. | Постановка задачи | Построить график функции y=x2 для x∈[-1;1].
2. | Математическое описание | Изобразим вид экрана, который мы хотели бы получить после выполнения программы.
3. | Разработка структограммы |
4. | Написание программы | Program P6; Uses graph; Var gd,gm:integer; x,y:real; x0,y0,xm,ym,Mx,My:integer; begin gd:=detect; InitGraph(gd,gm,’ ‘); Mx:=300; x0:=320; My:=440; y0:=460; {выбраны для монитора 640×480 пикс.} For xm:=20 to 620 do Begin x:=(xm-x0)/Mx; y:=sqr(x); ym:=round(y0-y*My); PutPixel(xm,ym,1); End; Readln; CloseGraph; End.
5. | Отладка и получение результатов | Выполнить самостоятельно


Среда Турбо Паскаля

Среда Турбо Паскаля загружается файлом turbo.exe.

Главное меню ТП содержит оглавление дополнительных меню:

  1. - вспомогательные действия.
  2. File(файл) – действие с файлами.
  3. Edit (редактировать) – редактирование файлов.
  4. Search (искать) – поиск.
  5. Run (работа) –прогон программы.
  6. Compile (компиляция) – компиляция программы.
  7. Debug ( отладка) – отладка программы.
  8. Options (варианты) – установка параметров среды.
  9. Windows (окно) – работа с окнами.
  10. Help (помощь) –обращение к справочной службе.

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

  1. Вспомогательные действия

    About

    Версия о Паскале

    Refresh display

    Восстановление экрана

    Clear Desktop

    Очистка экрана

  2. File (файл) – действие с файлами;

    OpenF3

    Открыть файл {A:\LB1}

    New

    Новый файл

    SaveF2

    Сохранение

    Save as …

    Сохранить как

    Save all

    Записать всё

    Change dir

    Изменение директории

    Print

    Распечатывает файл из активного окна

    Get into

    Получение информации

    Dos shell

    Временный выход в DOS (из Turbo Pascal)

    Exit Alt-X

    Выход из Turbo Pascal

  3. Edit – редактирование

    Restore Line

    Восстановление строки

    CutShift+Del

    Удаление выделенного блока из окна в буфер

    Copy Ctrl-Ins

    Копирование выделенного блока из окна в буфер

    Paste Shift-Ins

    Копирование буфера в окно редактирования

    Copy Examples

    Копирование примера

    Clear Ctrl-Del

    Удаление выделенного блока

  4. Search - поиск

    Find

    Найти

    Replace

    Заменить

    Search again

    Повторить поиск

    Go to line number

    Искать линию с номером

    Find procedure

    Поиск процедуры

    Find Error

    Поиск ошибки

  5. Run – работа

    Run Ctrl+F9

    Запуск программы

    Program Reset

    Прекращение отладки

    Go to cursor

    Начало режима отладки

    Trace into F7

    Режим отладки сначала

    Step over F8

    Следующий шаг

    Parameters

    Параметры

  6. Compile – компиляция

    CompileAlt+F9

    Создание exeфайла

    MakeF9

    Перекомпиляция измененных файлов

    Build

    Перекомпиляция всех файлов

    Destination

    Путь компиляции

    Primary File

    Имя компилируемого файла

  7. Debug – отладка

    Evaluate/Modify Ctrl+F4

    Оценка модификации

    Watches

    Наблюдение

    Toggle Break Point Ctrl+F8

    Установка контрольной точки

    Break points

    Контрольные точки

  8. Options – Опции

    Compiler

    Компилятор

    Memory size

    Размер памяти

    Linker

    Редактор связи

    Debugger

    Отладка

    Directories

    Директории

    Environment

    Окружающая среда

    Save options

    Запись опций

    Retrieve

    Загрузка опций

  9. Windows – окна

    Size/Move

    Размер и положение окна на экране

    ZoomF5

    Распахнуть

    Title

    Черепица

    Cascade

    Каскад

    Next F6

    Следующее окно

    Previous Shift+F6

    Предыдущее окно

    CloseAlt+F3

    Закрыть

    Watch

    Окно наблюдения

    Register

    Регистр

    Output

    Выходное окно

    Call stack

    Показать список

    User screenAlt+ F5

    Окно пользователя

    List

    Посмотреть содержимое экрана

  10. Help – помощь

    Contents

    Содержание

    IndexSheft+F1

    Алфавитный список

    Topic Search Ctrl+F1

    Поиск в окрестностях курсора

    Previous Topic Alt+F1

    Предыдущее сообщение

Редактирование файла

Для корректировки файла в редакторе ТП зарезервированы следующие комбинации клавиш:


Первичная обработка информации

Подготовка к промежуточному контролю

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

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

Пример. Для заданного случайным образом массива x (1.5<=x<=2.5), состоящего из 12 элементов, определить среднее арифметическое для всех и среднее геометрическое для x>2. Этапы решения задачи сведены в таблицу

Таблица

N | Этапы программирования | Выполнение
1. | Постановка задачи | Для заданного случайным образом массива х (1.5<=x<=2.5), состоящего из 12 элементов, определить среднее арифметическое для всех x и среднее геометрическое для х>2.
2. | Математическое описание | - среднее арифметическое. - среднее геометрическое
3. | Разработка структограммы |
4. | Написание программы | Program PK1; Var x:array [1..12] of real; i,n,k:integer; A,P:real; Begin A:=0; P:=1; n:=12; k:=0; {задание нач. зн.} Randomize; {подключение генератора случайных чисел} For i:=1 to 12 do Begin x[i]:=random+1.5; {генерация x∈(1.5,2.5)} A:=A+x[i]; {сумматор для среднего арифметического} If x[i]>2 then Begin P:=P*x[i]; {произведение для вычисление среднего геометрического} k:=k+1; {счетчик сомножителей для вычисление среднего геометрического} end; end; A:=A/n; {среднее арифметическое} P:=exp(Ln(P)/k); {среднее геометрическое} Writeln(A,P); end.
5. | Отладка и получение результатов | Выполнить самостоятельно.

Пример. Для шести произвольных значений X∈(1,3) рассчитать и записать массив Y

Этапы решения задачи сведены в таблицу

Таблица

N | Этапы программирования | Выполнение
1. | Постановка задачи | Для шести произвольных значений X∈(1,3) рассчитать и записать массив Y.
2. | Математическое описание | —
3. | Разработка структограммы |
4. | Написание программы | Program P6; Var x,y:array[1..6] of real; I:integer; Begin X[1]:=1,2;X[2]:=2,5;X[3]:=2,9;{зад. массивов} X[4]:=1,7;X[5]:=1,5;X[6]:=2,3; {опер. присв.} For i:=1 to 6 do Begin If x[i]<2 then y[i]:=exp(x[i]*ln(2,5)); If x[i]>=2 then y[i]:=sqr(sin(x[i])/cos(x[i]); Writeln(x[i],y[i]); End; End.
5. | Отладка и получение результатов | Выполнить самостоятельно

Пример. Самостоятельно составьте программу для решения задачи.

Заполнить массив из 10 элементов. Отсортировать элементы массива в порядке возрастания. Найти min и max значения массива. Вывести на экран исходный, отсортированный массивы, min и max значения.

Контрольное задание. Лабораторная работа 1

Табулирование функций и построение графиков

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

Задание.

  1. Для 10 произвольных значений аргумента x рассчитать f(x), 2f(x), f(2x), f(x+1)+2, |f(|x|)| и занести в таблицу.

    Таблица

    Представление результатов расчета

    X

    f(x)

    2 f(x)

    f(2x)

    f(x+1)+2

    |f(|x|)|

  2. Построить на экране и распечатать на принтере графики указанных функций (5 графиков).

    Варианты функций приведены в таблице.

    Таблица

    Варианты функций

    Вар.

    f(x)

    Вар.

    f(x)

    1

    sin(x)

    16

    2+x

    2

    cos(x)

    17

    2-x

    3

    tg(x)

    18

    1/x2

    4

    ctg(x)

    19

    ln (x)

    5

    arcсos(x)

    20

    lg (x)

    6

    arctg(x)

    21

    log2(x)

    7

    2∙ex

    22

    3∙x1.5

    8

    23

    4∙1.5x

    9

    1/(x+1)

    24

    sin(x)/x

    10

    1/(x2+1)

    25

    sin(3x)

    11

    (x-1)2

    26

    sin2(x)

    12

    x2-1

    27

    3∙cos2(x)+1

    13

    x3+1

    28

    2tg2(x)

    14

    29

    arctg(2x)

    15

    1-e-x

    30

Содержание отчета:

  1. Название, цель работы и задание.
  2. Структограмма и распечатка программы.
  3. Таблица расчетных значений, графики функций и выводы по работе.


Численное дифференцирование

Производная функции есть предел отношения приращения функции к приращению независимой переменной при стремлении к нулю приращения независимой переменной

.

При численном нахождении производной заменим отношение бесконечно малых приращений функций и аргумента [image] отношением конечных разностей. Очевидно, что чем меньше будет приращение аргумента, тем точнее численное значение производной.

Первая производная. Двухточечные методы.

Для двухточечных методов при вычислении производных используется значение функции в двух точках. Приращение аргумента задается тремя способами, откладывая Δx = h вправо, влево и в обе стороны от исследуемой точки. Соответственно получается три двухточечных метода численного дифференцирования:

метод 1

метод 2

метод 3

Суть указанных методов проиллюстрирована на рисунке. Численное значение тангенса угла α образованного касательной к графику y(x) и осью абсцисс, показывает точное значение производной(геометрический смысл производной). Тангенсы углов α1, α2, α3 соответствуют приближенным значениям производных, определенных методами 1,2,3 соответственно (подумайте почему?).

Пример. Вычислить точное и приближенное (тремя методами) значения производной функции y=x*x в точке x=1 с шагом h=1 и h=0.001.

Этапы решения задачи приведены в таблице.

Таблица

N | Этап программирования | Выполнение
1. | Постановка задачи | Вычислить точное и приближенное (тремя методами) значения производной функции y=x*x в точке x=1 с шагом h=1 и h=0.001.
2. | Математическое описание | Аналитическое решение: y'=2x , y'(1)=2, Численное решение для шага: h=1 , для шага h=0.001
3. | Разработка структограммы | Выполнить самостоятельно
4. | Написание программы | Выполнить самостоятельно
5. | Отладка и получени результатов | Выполнить самостоятельно

Вычисление первых производных по трёхточечным схемам.

Расчетные формулы для указанной трехточечной схемы имеют вид:

Вычисление производных второго порядка.

Вторая производная вычисляется как первая производная от первой производной. Для следующей пятиточечной схемы

расчетная формула имеет вид:

Пример. Написать программу для нахождения второй производной функции y = 2 * x4

в точке x=1 с шагом h=0.01, сравнить с точным значением.

Таблица

N

Технологическая операция

Выполнение

1.

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

Написать программу для нахождения второй производной функции y = 2 * x4 в точке x=1 с шагом h=0.01, сравнить с точным значением.

2.

Математическое описание

Аналитическое значение

.

Приближенное значение

3.

Разработка структограммы

Описание x,y,h

x=1; h=0.01

Вывод

4.

Написание программы

Program P7;

Var x,ddy,h:real;

Function y(x:real):real;

begin

y:=2*sqr(sqr(x));

end;

begin

x:=1;h:=0.01;

ddy:=(y(x+h)-2*y(x)+y(x-h))/h/h;

writeln(ddy);

end.

5.

Отладка и получение результатов

Выполнить сомостоятельно.

Вычисление производных третьего порядка.

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

Контрольное задание. Лабораторная работа 2.

Численное дифференцирование

  1. Вычислить значение производной в произвольной точке x=x0 аналитически и численно тремя методами для пяти значений приращения аргумента Δx=1; 0.2; 0.1; 0.01; 0.001. Результаты расчета вывести на экран и распечатать в виде таблицы

    Таблица вывода результатов расчета

    Δx

             y(x) y'(x)

    1

    0.2

    0.1

    0.01

    0.001

  2. Построить графики функций y'(x0) = F(Δx). Варианты функций приведены в таблице.

    Таблица

    Варианты функций

    Вар.

    Вид функции

    Вар.

    Вид функции

    1

    x(t)=Ae-at sin(ωt+b)

    14

    y=ctgm (ax)

    2

    x(t)=Aeat cos(ωt+b)

    15

    y(x)=(eax-e-ax)n

    3

    16

    x(t)=tat

    4

    уυ(t)=cos2(at+b)

    17

    y(x)=(ax)sin(bx)

    5

    yυ(t)=sin2(at+b)

    18

    6

    19

    7

    q(t)=(a-btn)n

    20

    8

    y(x)=xncos(ax)

    21

    R(φ)=arccosm(a+bφn)

    9

    22

    r(φ)=csin(aφ+b)

    10

    23

    y(x)=ln(tgn(ax+b))

    11

    24

    vυ(t)=loga(tn+bm)k

    12

    S(φ)=Вcоsn(aφ+b)

    25

    S(φ)=Asinn(aφ+b)

    13

    y=tgax( x/a )

    26

    X(t)=lg(atn+b)

Примечание. Значение параметров a, b, c, d, m, n, A, B выбрать самостоятельно.

Содержание отчета:

  1. Название, цель работы и задание.
  2. Математическое описание, алгоритм (структограмма) и текст программы.
  3. Таблица результатов расчета, четыре графика зависимости y'(x0) = F(Δx) для трехчисленных методов и точного значения интеграла, выводы по работе.


Численное интегрирование

Определенным интегралом функции f(x), взятом в интервале от a до b, называется предел, к которому стремится интегральная сумма [image] при стремлении всех промежутков ∆xi к нулю

При приближенном вычислении определенного интеграла шаг интегрирования h=∆x выбирается конечным: , где Ii - элемент интегральной суммы. Заменяя подынтегральную функцию на каждом шаге отрезками линий нулевого, первого и второго порядков, получаем приближенные формулы для вычисления интеграла методами прямоугольников, трапеций и Симпсона соответственно.

  1. Правило прямоугольников (n=0). Заменяем график функции F(x) горизонтальной линией (линий нулевого порядка) и вычисляем значение элемента интегральной суммы как площадь прямоугольника

    , где h - шаг интегрирования, у0 - значение функции в точке х=х0

    у(х0)=у0

  2. Правило трапеций (n=1). Заменяем график функции F(x) прямой, проходящей через две точки (х0,у0) и (х0+h,у1), и вычисляем значение элемента интегральной суммы как площадь трапеции

  3. Правило Симпсона (n=2). Заменяем график функции F(x) квадратичной параболой, проходящей через три точки с координатами (х0,у0), (х0+h,у1), (х0+2h,у2). Расчетную формулу для вычисления элемента интегральной суммы получим, используя интерполяционный многочлен Лагранжа, в виде

    y(x)=y0A0(x)+y1A1(x)+y2A2(x), где

    При x0=0; x1=h; x2=2h, получим

    При интегрировании на отрезке [a,b] расчетные формулы для методов прямоугольника, трапеций и Симпсона имеют вид

    где h - шаг по x, fa, fi, fb - значения функции при x равном a, xi, b соответственно. Для метода прямоугольников приведены две расчетные формулы, так как площадь прямоугольника на каждом шаге интегрирования может определяться по левой или правой стороне. Суть метода прямоугольников для отрезка [a,b] проиллюстрирована на рисунке, при этом площадь под кривой f(x) (вспомните геометрический смысл определенного интеграла) заменена суммой площадей заштрихованных прямоугольников.

    Рис. Численное интегрированние методом прямоугольников

Пример. Вычислить определенный интеграл [image] четырьмя численными методами, сравнить с точным значением.

Этапы решения задачи приведены в таблице

Таблица

N | Этап программирования | Выполнение
1. | Постановка задачи | Вычислить определенный интеграл четырьмя численными методами и сравнить с точным значением
2. | Математическое описание | Аналитическое решение: Численное решение: выполнить самостоятельно
3. | Разработка структограммы | Выполнить самостоятельно
4. | Написание программы | Выполнить самостоятельно
5. | Отладка и получение результатов | Выполнить самостоятельно

Контрольное задание. Лабораторная работа 3.

Численное интегрирование

Задание.

  1. Вычислить значение определенного интеграла [image] аналитически и численно четырьмя методами для пяти значений N, где N – число разбиений интервала интегрирования N=10; 20; 50; 100; 1000. Результаты расчета вывести на экран и распечатать в виде таблицы.

    Таблица

    Представление результатов расчета

    N

    Аналит. Значение

    Метод

    прямоуг. 1

    Метод прямоуг. 2

    Метод трапеций

    Метод Симпсона

    10

    20

    50

    100

    1000

  2. Построить графики функций I=F(N).

    Варианты интегралов приведены в таблице

    Таблица

    Варианты интегралов

    Вар.

    Вид интеграла

    Вар.

    Вид интеграла

    1

    14

    2

    15

    3

    16

    4

    17

    5

    18

    6

    19

    7

    20

    8

    21

    9

    22

    10

    23

    11

    24

    12

    25

    13

    26

Содержание отчета:

  1. Название, цель работы и задание.
  2. Математическое описание, алгоритм (структограмма) и текст программы.
  3. Таблица результатов расчета, пять графиков зависимости I(N) для четырех численных методов и точного значения интеграла, выводы по работе.


Решение нелинейных уравнений

Уравнение типа F(x)=0 или x=f(x) называется нелинейным. Решить уравнение это значит найти такое x, при котором уравнение превращается в тождество. В общем случае уравнение может иметь 0; 1; 2;...∞ корней. Рассмотренные ниже численные методы решения нелинейных уравнений позволяют находить один корень на заданном интервале [a,b]. При этом на интервале должен существовать только один корень. Рассмотрим несколько методов решения нелинейных уравнений.

  1. Метод перебора. При решении нелинейного уравнения методом перебора задаются начальное значение аргумента x=a и шаг h, который при этом определяет и точность нахождения корней нелинейного уравнения. Пока выполняется условие F(x)*F(x+h)>0 аргумент x увеличиваем на шаг h (x=x+h). Если произведение F(x)*F(x+h) становится отрицательным, то на интервале [x,x+h] существует решение уравнения. Структограмма метода приведена на рисунке.

    Пока F(x)∙F(x+h)>0

    Рис. Структограмма для метода

    перебора

    x=x+h

  2. Метод половинного деления. При решении нелинейного уравнения методом половинного деления задаются интервал [a,b], на котором существует только одно решение, и желаемая точность ε. Затем определяется середина интервала с=(а+b)/2 и проверяется условие F(a)∙F(c)<0. Если указанное условие выполняется, то правую границу интервала b переносим в среднюю точку с (b=c). Если условие не выполняется, то в среднюю точку переносим левую границу(a=c). Деление отрезка пополам продолжается пока |b-a|>ε. Структограмма решения нелинейных уравнений методом половинного деления приведена на рисунке.

    Пока |b-a|>ε

    c=(a+b)/2

    F(a)∙F(c)<0

    да

    нет

    b=c

    a=c

    Рис. Структограмма для метода половинного деления

  3. Метод хорд. При решении нелинейного уравнения методом хорд задаются интервал [a,b], на котором существует только одно решение, и точность ε. Затем через две точки с координатами (a,F(a)) и (b,F(b)) проводим отрезок прямой линии (хорду) и определяем точку пересечения этой линии с осью абсцисс (точка c). Если при этом F(a)∙F(c)<0, то правую границу интервала переносим в точку с (b=c). Если указанное условие не выполняется, то в точку c переносится левая граница интервала (а=с). Поиск решения прекращается при достижении заданной точности |F(c)|< ε. Для определения точки пересечения хорды с осью абсцисс воспользуемся следующей формулой [image] (попытайтесь получить формулу самостоятельно).Структограмма метода хорд показана на рисунке.

    Пока |F(c)|>ε

    F(a)∙F(c)<0

    да

    нет

    b=c

    a=c

    Рис. Структограмма для метода хорд

  4. Метод касательных. При решении нелинейного уравнения методом касательных задаются начальное значение аргумента x0 и точность ε. Затем в точке(x0,F(x0)) проводим касательную к графику F(x) и определяем точку пересечения касательной с осью абсцисс x1. В точке (x1,F(x1)) снова строим касательную, находим следующее приближение искомого решения x2 и т.д. Указанную процедуру повторяем пока |F(xi)| > ε. Для определения точки пересечения (i+1) касательной с осью абсцисс воспользуемся следующей формулой [image] (получите формулу самостоятельно). Условие сходимости метода касательных F(x0)∙F''(x0)>0. Структограмма решения нелинейных уравнений методом касательных показана на рис.

    Пока |F(x)|> ε

    Рис. Структограмма для

    метода касательных

  5. Метод хорд-касательных. Если в методе касательных производную функции F'(xi) заменить отношением конечных приращений, то получаем расчетную формулу для метода хорд-касательных [image]. Порядок выполнения вычислений в данном методе аналогичен рассмотренному ранее.
  6. Метод итераций. При решении нелинейного уравнения методом итераций воспользуемся записью уравнения в виде x=f(x). Задаются начальное значение аргумента x0 и точность ε. Первое приближение решения x1 находим из выражения x1=f(x0), второе - x2=f(x1) и т.д. В общем случае i+1 приближение найдем по формуле xi+1 =f(xi). Указанную процедуру повторяем пока |f(xi)|>ε. Условие сходимости метода итераций |f'(x)|<1. Структограмма метода итераций показана на рис.

    Пока |f(xi)|> ε

    Рис. Структограмма для метода итераций

    xi+1 =f(xi)

Контрольное задание. Лабораторная работа 4.

Решение нелинейных уравнений.

Задание. Решить нелинейное уравнениеуказанными в табл. методами, предварительно определив интервал [a,b], на котором существует решение уравнения. Сделать проверку решения.

Варианты уравнений и методов их решения приведены в таблице.

Таблица

Варианты уравнений и методов их решения

Вар. | Уравнение | Методы решения
1 | x=exp(-x) | Перебора и половинного деления
2 | x=cos(x) | перебора и хорд
3 | х=x2-1 | Перебора и касательных
4 | x=2exp(-x) | Перебора и хорд-касательных
5 | x=exp(-3x) | Перебора и половинного деления
6 | x=3cos(x) | перебора и хорд
7 | x=exp(-3x2) | Перебора и касательных
8 | x=tg(x) | Перебора и хорд-касательных
9 | x=cos(2x) | Перебора и половинного деления
10 | x=tg(2x)-1 | перебора и хорд
11 | x=exp(-3x)+1 | Перебора и касательных
12 | x=exp(-x2) | Перебора и хорд-касательных
13 | x= ln(x)+2 | Перебора и половинного деления
14 | x=exp(-3x) | перебора и хорд
15 | x2=exp(-x2) | Перебора и касательных
16 | x=2exp(-3x)+1 | Перебора и хорд-касательных
17 | x=exp(-x2)+2 | Перебора и половинного деления
18 | x= ln(x)+3 | перебора и хорд
19 | x=3exp(-3x) | Перебора и касательных
20 | x2=exp(-x2)-1 | Перебора и хорд-касательных
21 | x=exp(-3x2) | Перебора и половинного деления
22 | x=tg(x) | перебора и хорд
23 | x=cos(2x) | Перебора и касательных
24 | x=tg(2x)-1 | Перебора и хорд-касательных
25 | x=exp(-3x)+1 | Перебора и половинного деления

Содержание отчета:

  1. Название, цель работы и задание.
  2. Математическое описание, алгоритм (структограмма) и текст программы.
  3. Результаты расчета, проверка и выводы по работе.


Численное решение дифференциальных уравнений

Дифференциальным уравнением первого порядка называется уравнение вида F(x,y,у')=0 или у'=f(x,y). Функция y(x), при подстановке которой уравнение обращается в тождество, называется решением дифференциального уравнения.

Рассмотрим несколько численных методов решения дифференциальных уравнений первого порядка. Описание численных методов приводится для уравнения в виде у'=f(x,y).

  1. Метод Эйлера.

    Рассмотрим два варианта вывода расчетных формул

    • вариант 1 (аналитический) у=f (x,y)

      y1=y0+h*f(x0,y0)

      x1=x0+h

               Расчетные формулы для 1-го шага

      yi+1=yi+h*f(xi,yi)

      xi+1=xi*h

               Расчетные формулы для i-го шага

    • вариант 2 (графический)

      y1=y0+f(x0,y0)*h;

      x1=x0+h

      yi+1=yi+h*f(xi,yi)

      k1=h*f(xi,yi)

      yi+1=yi+ki

      xi+1=xi+h

      Аналогично варианту 1

    Следующие расчетные формулы приводятся без вывода.

  2. Модифицированный метод Эйлера (вариант 1).

    уi+1=уi+hf(xi+h/2, yi+hf(xi,yi)/2),

    xi+1=xi+h.

  3. Модифицированный метод Эйлера (вариант 2).

    уi+1=уi+(h/2)[f(xi,yi)+f(xi,+h,yi+hf(xi,yi))],

    xi+1=xi+h.

  4. Метод Рунге-Кутта третьего порядка.

    уi+1=уi+(k1+4k2+k3)/6,

    k1=hf(xi, yi),

    k2=hf(xi+h/2, yi+k1/2),

    k3=hf(xi+h, yi+2k2-k1),

    xi+1=xi+h.

  5. Метод Рунге-Кутта четвертого порядка.

    уi+1=уi+(k1+2k2+2k3+k4)/6,

    k1=hf(xi,yi),

    k2=hf(xi+h/2, yi+k1/2),

    k3=hf(xi+h/2, yi+k2/2),

    k4=hf(xi+h, yi+k3),

    xi+1=xi+h,

    где уi+1,уi - значения искомой функции в точках xi+1, xi соответственно, индекс i показывает номер шага интегрирования, h - шаг интегрирования. Начальные условия при численном интегрировании учитываются на нулевом шаге: i=0, x=x0, y=y0.

Пример. Численно и аналитически решить дифференциальное уравнение dy/dx=x2 при y|x=0 =1. Определить значение функции при xk=1, h=1.

Решение задачи приведено в таблице.

Таблица

N

Этап программирования

Выполнение

1.

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

Решить дифференциальное уравнение dy/dx=x2 при y|x=0 =1. Определить знач. функции при xk=1, h=1

2.

Математическое описание
  1. Аналитическое решение.

    dy/dx=x2

    y=1+x3/3,

    yk=y(1)=1+1/3=4/3.

  2. Метод Эйлера.
  3. Модифицированный метод Эйлера 1.
  4. Модифицированный метод Эйлера 2.
  5. Метод Рунге-Кутта четвертого порядка.

3.

Разработка структограммы

Выполнить самостоятельно

4.

Написание программы

Выполнить самостоятельно

5.

Отладка и получение результатов

Выполнить самостоятельно

Контрольное задание. Лабораторная работа 5.

Численное решение дифференциальных уравнений

Задание.

  1. Решить дифференциальное уравнение аналитически и численно указанными методами для двух значений шага интегрирования h=0.01; 0.001. Результаты расчета вывести на экран и распечатать в виде таблицы.
  2. Построить графики функций y(x) (5 графиков).

Варианты уравнений и методов их решения приведены в таблице

Оформление результатов расчета

Таблица

х | Решения уравнения, у(x)
 | Аналит | Численное
 |  | метод 1 |  | Метод 2
 |  | h=0.01 | h=0.001 | h=0.01 | h=0.001

Варианты уравнений и методов их решения

Таблица

Вар. | Вид уравнения | Метод | Вар. | Вид уравнения | Метод
1 | у'=(xy2+x)/(y-x2y) | 1,4 | 14 | у'=cos(t)-y | 3,5
2 | у'=(1-2x)/y2 | 2,4 | 15 | y'=exp(bx)-ay | 1,4
3 | у'=(1-x2)/xy | 3,4 | 16 | У'=-2y/(y2-6x) | 2,4
4 | у'=(y2-y)/x | 1,5 | 17 | у'=1/(2x-y2) | 3,4
5 | y'=(1+y)/(tg(x) | 2,5 | 18 | у'=sec(x)- y tg(x) | 1,5
6 | у'=exp(x)-1 | 3,5 | 19 | y'=(exp(x)-y)/x | 2,5
7 | y'=y ln(y)/sin(x) | 1,4 | 20 | у'=1+y/(x(x+1)) | 3,5
8 | у'=(1+y2)/(1+x2) | 2,4 | 21 | у'=(y+yx2-x2)/(x(1+x2)) | 1,4
9 | у'=4x-2y | 3,4 | 22 | у'=cos(x-y) | 2,4
10 | у'=x exp(-x2)-2xy | 1,5 | 23 | у'=3x-2y+5 | 3,4
11 | у'=2x-y | 2,5 | 24 | у'=sin(x)-y | 1,5
12 | у'=exp(-x)-2y | 3,5 | 25 | у'=exp(x)-y | 2,5
13 | у'=exp(-x)-2x | 1,4 | 26 | у'=exp(2x)-1 | 3,5

Примечание. Значение параметров a, b и начальные условия y|x=x0=y0 выбрать cамостоятельно.

Содержание отчета:

  1. Название, цель работы и задание.
  2. Математическое описание, алгоритм (структограмма) и текст программы.
  3. Результаты расчета, пять графиков зависимости y(x) и выводы по работе.


Численное решение системы дифференциальных уравнений

Системой дифференциальных уравнений называется система вида

где x - независимый аргумент,

yi - зависимая функция, [image],

yi|x=x0 =yi0 - начальные условия.

Функции yi(x), при подстановке которой система уравнений обращается в тождество, называется решением системой дифференциальных уравнений.

Численные методы решения систем дифференциальных уравнений.

  1. Метод Эйлера.

    yij+1=yij+hfi(xi,y1j y2j..ynj)

    j - номер шага.

    xj+1=xj+h

  2. Модифицированный метод Эйлера.

    ki1=h*fi(xj,y1j..ynj)

    ki1=h*fi(xj+h,y1j+ki1..ynj+ki2)

    yij+1=yij+(ki1+ki2)/2

    xj+1=xj+h

  3. Метод Рунге-Кутта четвертого порядка.

    ki1=hfi(xj,y1j..ynj)

    ki2=hfi(xj+h/2,y2j+ki1/2,..,ynj+kn1/2)

    ki3=hfi(xj+h/2,y2j+ki2/2,..,ynj+kn2/2)

    ki4=hfi(xj+h,y1j+ki2,..,ynj+kn3)

    yij+1=yij+(ki1+2ki2+2ki3+ki4)/6

    xj+1=xj+h

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

F(x,y,у',y")=0 (1)

или

y"=f(x,y,y'). (2)

Функция y(x), при подстановке которой уравнение обращается в тождество, называется решением дифференциального уравнения.

Численно ищется частное решение уравнения (2), которое удовлетворяет заданным начальным условиям, то есть решается задача Коши.

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

. (3)

Функция f2(x, y1, y) в систему (3) введена формально для того, чтобы методы, которые будут показаны ниже, могли быть использованы для решения произвольной системы дифференциальных уравнений первого порядка. Рассмотрим несколько численных методов решения системы (3). Расчетные зависимости для i+1 шага интегрирования имеют следующий вид. Для решения системы из n уравнений расчетные формулы приведены выше. Для решения системы из двух уравнений расчетные формулы удобно записать без двойных индексов в следующем виде:

  1. Метод Эйлера.

    у1,i+1=у1,i+hf1(xi, y1,i, yi),

    уi+1=уi+hf2(xi, y1,i, yi),

    xi+1=xi+h.

  2. Метод Рунге-Кутта четвертого порядка.

    у1,i+1=у1,i+(m1+2m2+2m3+m4)/6,

    уi+1=уi+(k1+2k2+2k3+k4)/6,

    m1=hf1(xi, y1,i, yi),

    k1=hf2(xi, y1,i, yi),

    m2=hf1(xi+h/2, y1,i+m1/2, yi+k1/2),

    k2=hf2(xi+h/2, y1,i+m1/2, yi+k1/2),

    m3=hf1(xi+h/2, y1,i+m2/2, yi+k2/2),

    k3=hf2(xi+h/2, y1,i+m2/2, yi+k2/2),

    m4=hf1(xi+h, y1,i+m3, yi+k3),

    k4=hf2(xi+h, y1,i+m3, yi+k3),

    xi+1=xi+h,

    где h - шаг интегрирования. Начальные условия при численном интегрировании учитываются на нулевом шаге: i=0, x=x0, y1=y10, y=y0.

Контрольное задание по зачетной работе.

Колебания с одной степенью свободы

Цель. Изучение численных методов решения дифференциальных уравнений второго порядка и систем дифференциальных уравнений первого порядка.

Задание. Численно и аналитически найти:

  1. закон движения материальной точки на пружинке х(t),
  2. закон изменения силы тока I(t) в колебательном контуре (RLC - цепи) для заданных в табл.1,2 режимов. Построить графики искомых функций.

Варианты заданий.

Таблица режимов

№ | Режим
1 | Свободные незатухающие колебания
2 | Затухающее колебательное движение
3 | Апериодическое движение
4 | Предельное апериодическое движение
5 | Вынужденное колебание без сопротивления
6 | Вынужденное колебание без сопротивления, явление резонанса
7 | Вынужденное колебание с линейным сопротивлением
8 | Вынужденное колебание с линейным сопротивлением, явление резонанса

Таблица

Варианты заданий и номера режимов:

  1. движение точки
  2. RLC - цепь

Вар. | Задание | Вар. | Задание
1 | а) 1,2,5 | 16 | б)1,2,6
2 | а) 1,3,6 | 17 | а) 1,4,7
3 | б)1,3,7 | 18 | б)1,2,7
4 | а) 1,4,8 | 19 | а) 1,2,5
5 | б)1,2,8 | 20 | б)1,4,6
6 | а) 1,4,7 | 21 | а) 1,3,5
7 | б)1,3,6 | 22 | б)1,3,8
8 | а) 1,4,5 | 23 | б)1,4,5
9 | б)1,3,8 | 24 | а) 1,3,6
10 | а) 1,3,5 | 25 | б)1,4,7
11 | б)1,4,6 | 26 | а) 1,2,8
12 | а) 1,2,7 | 27 | б)1,4,8
13 | б)1,2,5 | 28 | а) 1,3,6
14 | а) 1,2,6 | 29 | б)1,3,7
15 | б)1,4,7 | 30 | а) 1,2,5

Рассмотрим более подробно порядок составления дифференциальных уравнений и приведения их к машинному виду для описания движения тела на пружинке и RLC-цепи.

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

    Рис. Материальная точка на пружинке.

    Уравнение движения (второй закон Ньютона) для материальной точки с учетом действия сил линейного сопротивления (-βx'), упругости пружины (-cx) и синусоидальной силы F0∙sin(pt) может быть записано следующим образом

    ,

    где m=1+int(n/2) - масса материальной точки, β - коэффициент сопротивления, с=2+int(n/3) - жесткость пружины, х - координата (х=0 в положении равновесия точки), t - время, p - частота вынужденных колебаний, F0=n - амплитуда силы, n - номер варианта, int - целая часть числа. Параметры β, p и начальные условия выбираются самостоятельно с учетом рассматриваемого режима.

  2. Колебательный контур (RLC цепь) показан на рис.

    Уравнение падения напряжения в цепи переменного тока имеет вид

    ,

    где L=1+int(n/2) - индуктивность, R - сопротивление, C=2+int(n/3) - емкость конденсатора, q - заряд, U0=n - амплитуда напряжения, p - частота, [image] - сила тока. Параметры R, p и начальные условия выбираются самостоятельно с учетом рассматриваемого режима.

Содержание отчета:

  1. Название, цель работы и задание.
  2. Математическое описание, алгоритм (структограмма) и текст программы.
  3. Шесть графиков зависимости (три точные и три приближенные) x(t) или I(t), выводы по работе.